Self-Custodial Wallet Payout
Payout Resources
Setup
- Create your merchant account on sandbox or production
React SDK Implementation
- Install Coinflow package
- Implement the
CoinflowWithdrawcomponent:
- Configure withdraw webhooks so you can get notified when users KYB or any withdraw events.
- View all webhook activity from merchant dashboard’s ‘Webhook Activity’ tab.
API Implementation
- Generate a session key for the withdrawer
RequestResponse
- KYC / KYB for Withdrawers
To complete a payout/withdraw, every Withdrawer must complete verification before they can proceed with a payout through Coinflow. Withdrawers only need to KYC the first time they withdraw and do not need to KYC again for any subsequent withdrawals.
Before you start, determine how you will KYC your users:
🌝 1. I want to use Coinflow for KYC
Merchants who want to use Coinflow for KYC should call Register User.
🇺🇸 U.S. Withdrawers
Request
Response
🌍 Non-U.S. Withdrawers
Request
Response
💼 2. I am using my own KYC provider and I want to pass KYC data to Coinflow
Merchants who want to pass KYC data from their existing KYC provider can call our Register User via Document endpoint.
Request
Response
💼 3. I use Sumsub as my KYC provider and I want to share KYC data with Coinflow
Merchants who want to share Sumsub data with Coinflow will need to enter a tri-party agreement with Sumsub and Coinflow. Reach out to the Coinflow team with your Sumsub client ID to get started.
Once this agreement has been signed, follow these steps:
- Call Sumsub’s Generate Share Token endpoint to obtain a token.
- Call our Register User Via Share Token endpoint to pass KYC data.
Request
Response
💼 4. I have my own KYC provider and will complete KYC reliance process with Coinflow.
Merchants must receive approval from the Coinflow Compliance team regarding approval of your kyc reliance program. Once you’ve receive approval, follow these implementation steps.
Request
Response
- Get Withdrawer
Call this endpoint after KYC to ensure the withdrawer’sverification.status = approved. They must be approved before they can proceed further!
Request
Response
- Enable U.S. end-users to link their bank accounts via our Create Withdrawer Bank Account endpoint
Request
Response
- Tokenize the debit card.
Follow the below recipe to learn how to tokenize the debit card before a payout.
- Add A Debit Card for push to card payouts (USA Only)
Request
Response
- Add a US bank account for USD payouts. ACH, Same Day ACH or RTP (Real Time Payments) are available.
Request
Response
- Add a European bank account for Euro payouts
Request
Response
- Add a UK bank account for GBP Payouts
Request
Response
- Add a Brazilian PIX Account for BRL Payouts
Request
Response
- Display the quote for the withdraw by calling out Get Quote endpoint
- Note: On sandbox, pass
token= 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU. On prod, passtoken=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
- Call our Create a transaction endpoint, then have the user sign and send the transaction returned. Below is an example of what the request would look like.
- When calling this endpoint,
accountshould be thebankAccounts[0]['token']orcards[0]['token']value returned from calling our Get Withdrawer endpoint
Request
Response
- Have the Withdrawer wallet sign and send the transaction.
- Optional: Get all past withdraws for a specific withdrawer.
- Log into your admin dashboard > Withdraws. You should see a withdraw was initiated.

