Skip to main content
A fiat payout sends money from your balance to a bank-rail beneficiary. Read Payouts first — idempotency, beneficiaries, error codes and how status behaves are shared with the stablecoin rail and are not repeated here.
Every example on this page is a signed request. $SIGNATURE is computed per request over a canonical string — see Authentication. Bearer tokens are not accepted.

Create a payout

string
required
Your own unique key for this payout. See Idempotency.
string
required
A bank-rail beneficiary you own.
string
required
There is no FX on this rail — currency and amount apply to both sides of the transfer. To pay out in a currency you do not hold, convert first.
number
required
The amount to send.
string
Optional. Echoed back on the response and surfaced on the transaction. Up to 140 characters, which is the scheme ceiling for unstructured remittance information.

Response

201 Created on first submission, 200 OK on an idempotent replay.
201 means accepted for processing. A fiat payout settles on banking-rail timescales, not API timescales, and can still fail after acceptance — a closed account, a rejected transfer. Subscribe to transaction.status.changed rather than treating the response as final.

Replacing the old withdrawal endpoint

This endpoint replaces the partner-managed withdrawal call, which was published on a service host rather than on the public API and took the destination bank details inline on every request.The shape is different in one way worth planning for: you no longer send creditorAccount, creditorName and the rest of the bank details with the payout. You register the destination once as a beneficiary and then send its beneficiaryId. Migrating means creating beneficiaries for your existing destinations before you switch the call over.