Withdraw funds
Users are able to withdraw money from wallets through the methods activated for their types of Contract.
Some of the available withdrawal methods:
• via external provider (to the card, to third-party provider, directly to bank account etc.)
• to bank account via bank transfer
• via cash desk
Currently the system allows manual top-up of Users wallets through bank transfer or through cash desk.
Withdraw funds via bank transfer
In this type of withdrawal required bank transfers are made manually by the Accountant in the appropriate banking software.
From the bank point of view, wallet withdrawal to a bank account is just a transfer from the appropriate bank account to specified bank requisites.
Withdrawal is available only to banks which are created in the system.
Success flow:
• User creates withdrawal request in the system and provides the following information:
a. wallet to withdraw from
b. withdrawal amount
c. bank requisites for withdrawal (BIC is required)
• User with Accountant role or with a relevant permission checks specified requisites and accepts withdrawal request in the system.
• User with Accountant role creates bank transfer in the banking software.
• The funds on User’s wallet are on hold and the transaction is pending until the Accountant doesn’t confirm the transaction.
APIs for this Use case:
GET /bank-catalog | View list of created banks |
POST/bank-withdrawals/calculate | Calculate commission for withdrawal via bank |
POST/bank-withdrawals/with-bank | Perform withdrawal via bank with bank |
POST/bank-withdrawals/view | View requests to withdraw via bank |
POST/bank-withdrawals/create-request/with-bank | Create a request to withdraw via bank with bank |
POST/bank-withdrawals/{requestIdentifier}/accept | Accept request to withdraw via bank |
POST/bank-withdrawals/{requestIdentifier}/decline | Decline request to withdraw via bank |
POST/bank-withdrawals/{requestIdentifier}/lift-limit | Lift limit for request to withdraw via bank |
POST/bank-withdrawals/{requestIdentifier}/reject | Reject limited request to withdraw via bank |
Withdraw funds via Cash Desk
Users can make withdrawal requests via Cash Desk. The operation of withdrawal of funds from the wallet is possible only after reinforcement / deposit of capital into the Cash Desk (system operation).
This functionality is not available on UI but there’s an implemented flow and logic covered by a list of APIs.
One of the possible flows:
1. User makes a request to withdraw funds through the Cash Desk
2. Accountant confirms the request
3. Cashier has enough funds in cash and the Cash Desk is open.
4. User visits Cash Desk and provides the request ID number
5. Cashier validates the request
6. Cashier gives money to the User
7. User’s wallet balance is decreased for the amount of withdrawal (and commission if applicable)
APIs for this Use case:
GET/cash-desk-withdrawals/details/{requestIdentifier} | View withdrawal request details |
GET/cash-desk-withdrawals/{cashDeskId} | View withdrawal requests for specified cash desk |
POST/cash-desk-withdrawals/{cashDeskId} | Execute withdrawal via specified cash desk |
POST/cash-desk-withdrawals/{cashDeskId}/calculate | Calculate commission to withdraw via specified cash desk |
POST/cash-desk-withdrawals/{requestIdentifier}/accept | Accept withdrawal request |
POST/cash-desk-withdrawals/{requestIdentifier}/approve | Approve withdraw request |
POST/cash-desk-withdrawals/{requestIdentifier}/decline | Decline request to withdraw via cash desk |
Additional Cash Desk APIs:
Cash Desk Investment | POST/investments | Top up of authorized capital via cash desk |
Cash Desk Investment | GET/investments/{requestIdentifier} | View cash desk investment details |
Cash Desk Investment | POST/investments/{requestIdentifier}/accept | Accept cash desk investment request |
Input to cash desk operations | POST/inputs | Input collected cash to cash desk |
Input to cash desk operations | GET/inputs/{requestIdentifier} | View cash desk input request details |
Input to cash desk operations | POST/inputs/{requestIdentifier}/accept | Accept input cash desk request |
Gate Investment | GET/gate-investments/{requestIdentifier} | View cash investment details |
Cash desk collect | POST/collects | Cash collect request |
Cash desk collect | GET/collects/{requestIdentifier} | View transaction details |
Cash desk collect | POST/collects/{requestIdentifier}/accept | Accept collect request |
Cash desk operations | POST/cash-desks/report-turnover | View cash desk turnover report |
Cash desk operations | POST/cash-desks/view | Get cash desks for specified coin |
Withdraw funds via Third-Party Provider
To allow withdrawals via other services of Third Party Providers the integration with a relevant Third Party is required.
After the integration a service will be available for configuration in the Contract’s gate commission profiles.
It can be a withdrawal to the payment card, withdrawal direct to the bank account, withdrawal to a third-party provider, etc.
Block Wallet
Users can block their wallet. This will not allow out-going operations from this wallet, but the wallet will be operational for incoming transactions.
This functionality is available on the UI provided.
To block the wallet User should click the “Block wallet” and “Update” in the Wallet settings menu.
APIs for this Use case:
PATCH/coins/{serial} | Update coin (change status) |
Delete Wallet
Users can delete wallets only with zero balance. In the event when the User initiates closing of the wallet with the funds on it, the System proposes to transfer funds to another wallet. In this case, if the other wallet is in a different currency, the System will perform the internal currency exchange operation and will transfer funds in the currency of the target wallet.
When User doesn’t have another wallet to transfer funds to, he will not be able to close the current wallet which has a positive balance.
This functionality is available on UI, in the Wallet – Settings menu.
APIs for this Use case:
DELETE/coins/{serial} | Delete coin |