CoinsPaid
HomeLogin
  • General description
  • Integration guide
    • Deposits
    • What is crypto payment form?
    • Withdrawals
    • Exchanges
    • Callbacks
    • Invoices
  • API Documentation
    • Obtaining API Keys
    • Authorization
    • API Reference
    • Callback Examples
  • Confirmations and limits
  • Dynamic minimum deposit fee for BTC
  • FAQ
  • Mining fees concept
  • How to start
    • Introduction
    • API Set Up Stage
    • User Permissions
    • Addresses
    • Limits and Cold Addresses
    • Balance management
    • Notifications
    • Bank Accounts and Fiat Transactions
    • Mass Payouts
    • Transaction and address tracking
    • Withdrawal Limits
    • Starting Point of API Testing
Powered by GitBook
On this page
  • Withdrawals
  • Common withdrawal workflow

Was this helpful?

  1. Integration guide

Withdrawals

Contains withdrawals description and provides common workflow for that feature

PreviousWhat is crypto payment form?NextExchanges

Last updated 2 months ago

Was this helpful?

Withdrawals

To the opposite of deposits, sending cryptocurrencies to the users is similar to classic payment methods. Users fill 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". Coinspaid provides web-services with on-the-fly exchange solution. 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.

For exchanges between the USDC tokens, the exchange rate is always 1:1 — this means that 1 USDC in ERC-20 is always equivalent to 1 USDC in SOL. Standard fees for “withdrawals with exchange” still apply.

In case of regular withdrawals without exchange the workflow will be the same except of conversion operation.

Algorithm

  1. You have EUR balance in our system

  2. User wants to get a withdrawal from their EUR balance on your site to their BTC wallet

  3. 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.

  4. After that your system makes the request to our processing.

  5. 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.

  6. You decrease the user's EUR balance for the transaction amount

Hint

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.

A request to the endpoint needs to include two additional identifiers: end_user_reference and foreign_id. The end_user_reference value must be a persistent identifier of the end user in your system that does not change between operations. The foreign_id value must be a unique identifier of the operation, i.e., each call of this API method must use a different foreign_id. Both values will be included in the response and in all the callbacks related to the transaction.