Withdrawal flow
Get a fee estimate
Preview the fee, exchange rate, and net amounts before creating the withdrawal. No funds are moved at this step.
Lock an exchange rate (cross-currency only)
For payouts where
from_currency and to_currency differ, create a quote to lock the exchange rate for the duration of your transaction.Get a fee estimate
Preview the full cost breakdown for a withdrawal before submitting it.| Parameter | Type | Description |
|---|---|---|
from_currency | string | The currency you are paying out from, e.g. USD, NGN. |
payout_method | string | The payout method: BANK_TRANSFER, MOBILE_MONEY, or CRYPTO. |
Estimate a withdrawal
Get a detailed breakdown including the exchange rate and the exact amount the recipient will receive.The gross amount you are sending, in
from_currency.The fee deducted from your balance, in
from_currency.The amount after fees that is converted and sent, in
from_currency.The indicative exchange rate at the time of the estimate. This rate is not locked — use Create a quote to lock it.
The estimated amount the recipient receives, in
to_currency.Create a quote
Lock an exchange rate for a cross-currency payout. The quote expires after a short window — submit your withdrawal before it expires.Supported currencies
List the currencies supported for a given payout method.Create a withdrawal
Submit a withdrawal request to initiate a payout.Request fields
The currency you are paying out from. Must match your available balance currency.
The currency the recipient receives. Use the same value as
from_currency for same-currency payouts.The gross amount to send, in
from_currency.The payout method:
BANK_TRANSFER, MOBILE_MONEY, or CRYPTO.Your unique reference for this payout. Used together with
idempotency_key to deduplicate requests.Notification email for this withdrawal.
A unique key to prevent duplicate payouts. If you retry a request with the same key, Syncgram Pay returns the original response. Cached for 30 minutes.
The ID of a locked quote. Required for cross-currency payouts to guarantee the exchange rate.
The ID of a saved destination. When provided, Syncgram Pay uses the stored payment details.
Bank account number. Required for
BANK_TRANSFER payouts when payout_destination_id is not set.Bank routing code. Required for
BANK_TRANSFER payouts when payout_destination_id is not set.Recipient phone number. Required for
MOBILE_MONEY payouts when payout_destination_id is not set.On-chain wallet address. Required for
CRYPTO payouts when payout_destination_id is not set.Blockchain network, e.g.
TRC20, ERC20. Required for CRYPTO payouts when the network is not encoded in to_currency.Optional memo or tag for crypto transfers.
Optional internal note for your records.
Optional key-value pairs for your own use. Not processed by Syncgram Pay.
Examples
Response
The Syncgram Pay withdrawal ID. Use this to track the payout status.
Initial status of the withdrawal:
PENDING, PROCESSING, COMPLETED, or FAILED.The payment provider’s reference for this payout. May be
null for asynchronous processors.Error cases
| Error | Cause | Resolution |
|---|---|---|
| Insufficient balance | Your available balance is less than the withdrawal amount plus fees. | Check your balance before initiating a withdrawal. |
| Unsupported currency | The from_currency or to_currency is not supported for the selected payment_method. | Call GET /api/v1/payouts/supported-currencies to verify supported currencies. |
| Expired quote | The quote_id you provided has expired. | Create a new quote and retry. |
| Duplicate request | A withdrawal with the same idempotency_key is already being processed. | Wait briefly and retry — the original response will be returned once processing completes. |