What a bank payout to this beneficiary needs
/payouts/requirementsThe rail a bank_account payout to this beneficiary would travel on, and every field of the bank destination
that rail needs — the same choice and the same rules POST /payouts applies, so you never have to know about
rails to fill in a payout. The rail depends on your country, the currency and where the IBAN is: SEPA rails
only reach IBANs in the SEPA zone.
sepa,sepa_instant,swift: the destination's owniban,accountHolderNameandbic(required forswiftonly).instant_bank_transfer: whatever its provider route defines today; the country, the transfer scheme and any pre-filled values come from the IBAN.
Each field is a path inside the bank destination — holderAddress.city, bankName, or
additionalFields.taxId for a field with no typed property — and is the same path a validation_failed
error on POST /payouts names, prefixed with destination..
A read: nothing is priced, reserved or written, and no Idempotency-Key is needed. It is a POST only so
the IBAN travels in the body and stays out of URLs and access logs.
Requirements can change without notice (a rail enabled, a field made mandatory); POST /payouts decides the
rail and checks the fields at the time of the payout, not from an answer read earlier.
No rail can reach this beneficiary for you in this currency, or the instant route does not serve it:
400 payout_rail_unavailable, never an empty list. An unreachable instant route is
500 temporarily_unavailable, safe to retry.
Request body application/jsonrequired
ibanstringrequiredThe beneficiary's IBAN.max length 34
currencystringrequiredISO 4217 code for fiat (EUR), asset ticker for crypto (USDT).Example:
EURpattern ^[A-Z0-9]{3,10}$
Responses
The fields, in the order the route lists them.
Headers
X-Request-IdstringThe request's trace id: the same value a problem body carries astraceId. Quote it when you contact support. A replayed response (Idempotent-Replayed: true) carries the replay's own; its body keeps the original request'straceId.RateLimit-LimitintegerRateLimit-RemainingintegerRateLimit-ResetintegerSeconds until the window resets.
Schema application/json
railstringrequiredThe rail a payout to this beneficiary would travel on — the choicePOST /payoutsmakes.Allowed values:
sepasepa_instantswiftinstant_bank_transferfieldsarray<PayoutFieldRequirement>requiredfieldstringrequiredIts path inside the bank destination.Example:
holderAddress.cityrequiredbooleanrequiredA payout without it is refused. An optional field is still checked when you send it.patternstringA regular expression the whole value must match.minLengthintegermaxLengthintegerallowedValuesarray<string>The only values accepted, when the route restricts them.prefilledValuestringA value derived from the IBAN, used when you leave the field out.