Both take the same request body. The rail you call, and the beneficiary you name, decide
everything else — there is no rail field, no network field and no token field to set.
This page covers what the two rails share. The per-rail pages cover what differs.
You pay a beneficiary, not an address
A payout cannot go to a raw account number or wallet address. You register a beneficiary first, and then pay out to itsbeneficiaryId.
This applies to payouts. To pay one of your customers to their own bank account, use the
customer withdrawal instead, which takes the IBAN on the call — see Customers.
Idempotency
Every payout requires anidempotencyKey, and it is the mechanism that makes a retry safe.
- The key namespace is shared across both rails. A key used for a fiat payout cannot be reused for a stablecoin payout.
- Replay detection hashes the mapped request, not the raw bytes. Whitespace or field ordering in your JSON cannot cause a spurious conflict.
- Reusing a key with a different payload returns
409withidempotency_key_reuse. - A blank key is treated as absent rather than as a value, so blanks do not collide with one another. Send a real key.
status is the outcome, not the HTTP code
Errors
Tracking a payout
Thereference on the response is the business reference. Use it to look the payout up in
Transactions, and subscribe to transaction.status.changed to be told when
it settles rather than polling. See Receiving webhooks.