Payout API Error Codes
Payout API Error Codes
This page provides a consolidated reference of the error responses returned by the Payout (Withdraw) APIs. Use it to build error decoders and to surface actionable messages to your users.
Error Response Format
When a payout request fails, the API returns a non-2xx HTTP status code. Most payout errors share a simple response body with a single msg field describing the reason:
A small number of endpoints return additional fields (for example, the verification flow returns a verificationLink). These are noted in the tables below.
The msg string is a human-readable description and may be refined over time. Whenever possible, key your error handling on the combination of the HTTP status code and the endpoint, and treat msg as supplementary context.
Consolidated Error Reference
The following tables enumerate the error responses for each payout endpoint.
POST /withdraw/kyc/attested — Register User Via Attested KYC
GET /session-key — Get Session Key
GET /withdraw/quote — Get Quote
POST /api/withdraw — Create Withdraw
GET /withdraw/history — Get Withdrawer History
DELETE /withdraw/account/{token} — Delete Withdrawer Bank Account
DELETE /withdraw/card/{token} — Delete Withdrawer Card
Common Payout Error Messages
Several msg values can be returned across multiple payout endpoints. The most frequently encountered ones are explained below.
Card is not eligible for disbursements
The user’s card can’t receive payouts due to restrictions from the card network, issuing bank, or card type. Even some debit cards aren’t eligible unless they meet specific criteria.
- Visa/Mastercard may support payouts (Visa Direct, Mastercard Send) if enrolled
- Amex/Discover usually don’t support disbursements
- Some prepaid cards (especially those not linked to a name or account) don’t support disbursements
- Cards issued by banks that block incoming push payments due to internal policy
We recommend the user contact their bank to confirm eligibility.
Share token is not eligible for you
This error usually indicates a misconfiguration when generating the KYC share token — the token you’re passing to Coinflow is invalid or cannot be processed. Check the following:
- Tri-Party Agreement: Ensure the agreement has been signed by all parties and properly configured with Coinflow’s KYC account.
- Correct Client ID: When generating the share token, make sure you are passing Coinflow’s client ID as the
forClientIdparam.
User is blocked
Typically means the user was flagged for suspected fraud — either on your account or another merchant’s in the Coinflow ecosystem. If it’s the same user across accounts, they may be globally blocked. You can view the reason in the merchant dashboard or by calling the Get Withdrawer endpoint and reviewing withdrawer.availability.reason.
For a deeper explanation of the most common payout failures and how to resolve them, see Common Payout Errors.

