Deposits
Request a payment from a user
A deposit is made by transferring funds from a user wallet to the merchants wallet. This is done by requesting a payment from the user using the api/Transaction/RequestPayment
endpoint.
Steps
- Create a payment Request
- Wait for callback
- Check status
After you have created a payment request you should wait for a callback that will be sent once the user approves the request. It is not strictly necessary to use callbacks, you can just call the check status endpoint but this is not really recommended as you would need to continually poll the server to check the status. However, after you get a callback then it is recommended to check the status to confirm that the transaction did complete. use this endpoint to check the status api/Transaction/StatusByReference
To get callback, you will need to set this up on your account. (the profile that is used to create this transaction). This can be done by going to setting/preferences in Xprizo and setting the "Approval Webhook" to your api end point where you would like to receive the callback. You can also set this using api/Preference/SetApprovalWebhook
- Leave the currency field empty - The system will check that the 2 wallet have the same currency and use the currency of the wallet (both wallets should have the same currency)
- The payment request will only stay active for a specific period (24 hrs by default). If the user does not respond within this time period, the request is automatically canceled.
- Before the transaction has been approved, it will be visible on both the user and merchants wallet and either party may cancel the transaction
Integrating Deposits
This is an example of the flow that should be used when integrating with Xprizo to perform deposits
o Only currencies supported by the operator should be allowed
- (on your system) Create a new transaction
- Create a reference to be used for this transaction
- Set the transaction as pending
- (on Xprizo) Create the Xprizo transaction
- Find the users wallet using their (phone number or email or username) and specified currency
api/Wallet/Info
- Find the merchants wallet with the same currency
api/Wallet/Info
- Call
api/Transaction/RequestPayment
to create the transaction - Wait for the callback
- Check the status of the transaction
api/Transaction/StatusByReference
- Find the users wallet using their (phone number or email or username) and specified currency
- (on your system) Update or cancel the transaction
- If the transaction is approved, update the transaction your system
- If the transaction is rejected, cancel the transaction on your system