Withdrawals are the opposite of deposits, sending cryptocurrencies to the users is similar to classic payment methods. Users fill out the form where they provide the address and the amount of the withdrawal. After that, the web service creates the transaction and sends a withdrawal request to the payment provider. When the transaction is confirmed by the payment provider, the web service decreases the user's balance on the website.
Common withdrawal workflow
The most common scenario for sending crypto is "withdrawal with exchange". WallexPay provides web services with on-the-fly exchange solutions. This means that the funds that are stored on a merchant's fiat balance can be automatically converted into cryptocurrencies before being sent to the user's crypto wallet.
In the case of regular withdrawals without exchange, the workflow will be the same except for conversion operation.
- You have EUR balance in our system
- The user wants to get a withdrawal from their EUR balance on your site to their BTC wallet
- The user uses some kind of “withdrawal” option on your site, chooses BTC as the currency to use for the payout, and fills the payout form with their BTC address where they want to receive the funds and the withdrawal amount.
- After that your system makes the request to our processing.
- Our system makes an automatic exchange from EUR to BTC, sends funds to the user’s crypto address and your system gets the callback with transaction parameters, including the transaction's status, currency pairs, amount, fees, and so on.
- You decrease the user's EUR balance for the transaction amount
In order to make a withdrawal you should use the "/v2/withdrawal/crypto" method from our API.
You can define what currency should be used to send the funds, and, if necessary, from what fiat currency the funds should be converted before sending to the user.
Unlike the "/v2/addresses/take" method, you should use the unique "foreign_id" every time you make a withdrawal request to our system.