Up to 50 payouts in one call
post/payouts/batches
Up to 50 payouts in one call. All are checked first, and the batch's total per customer and currency is checked against the caller's daily and monthly limits before anything is sent; each then runs as its own payout and reports its own outcome. Needs an Idempotency-Key. A dry run checks every item and the totals and sends nothing.
Before you call
- Credential
Authorization: Bearer $KEY- Scope
payouts:write- Moves money
yes- Idempotency
required- Untrusted
reference, payouts.reference
Parameters
- Idempotency-KeystringrequiredHeader. A repeat with the same key and body returns the first answer instead of acting twice.
Request bodyapplication/json, required
- payoutslist of objectrequired
- customer_idstringrequiredAt most 200 characters.
- amountstringThe amount as a decimal string in
from.currency. Send this oramount_minor. Pattern: ^\d{1,18}(.\d{1,10})?$. - amount_minorintegerThe same amount in integer minor units of
from.currency. At least 1. - fromobjectrequired
- currencystringrequiredA lowercase currency code or stablecoin ticker.
- wallet_idstringrequiredAt most 200 characters.
- currencystringrequired
- toobjectrequiredExactly one of
payee_id,wallet_idoraddress.- currencystringrequiredA lowercase currency code or stablecoin ticker.
- payee_idstringAt most 200 characters.
- wallet_idstringAt most 200 characters.
- addressstringAt most 200 characters.
- chainstringAt most 40 characters.
- currencystringrequired
- railstringAt most 40 characters.
- speedstringOne of: fastest, cheapest, standard.
- quote_idstringExecutes exactly what was quoted, once. At most 200 characters.
- execute_atstring (date-time)
- scheduleobject
- everyintegerrequiredAt least 1.
- unitstringrequiredOne of: day, week, month.
- end_atstring (date-time)
- countintegerAt least 1.
- everyintegerrequired
- release_onstring or object
- expires_atstring (date-time)
- travel_ruleobject
- originatorobject
- beneficiaryobject
- referencestringAt most 500 characters.
- external_refstringThe document this belongs to in your own system. At most 200 characters.
- external_kindstringOne of: invoice, bill, order, booking, other.
- remittanceobject
- invoice_numberstringAt most 200 characters.
- amountstringAt most 40 characters.
- datestringAt most 40 characters.
- invoice_numberstring
- dry_runbooleanCheck the request and report what would happen, without doing it.
- customer_idstringrequired
- referencestringAt most 500 characters.
- dry_runbooleanCheck the request and report what would happen, without doing it.
Responses
- 200Success.
- 202requires_approval — Not an error: the operation is held for a person. The body names the approval.
- 400price_below_minimum — The price is below the smallest single payment for a method (
detail.method,detail.minimum), or has a part of a cent. Setcredit_only, raise the price, or drop the method. - 401dpop_invalid — The token is bound to a key and the DPoP proof was missing, wrong for this request, or already used.
- 402payment_failed — The payer's bank or card refused.
detail.reasonsays why in plain terms. - 403agent_payment_over_max — The merchant asks for more than
max_amount. Nothing was signed.detail.asked_minoris the lowest price asked, in US cents. - 404not_found — No such object in this project — including one that belongs to somebody else.
- 409token_not_issued — A delegated payment token could not be issued ready to use, for instance because the payer would have to act. Nothing was sent to the merchant.
- 429too_many_waiters — This key already has as many requests waiting (
?wait=) as it may. Let one finish, or read without wait. - 500internal_error — Ours. Quote the
request_idand we can find the call. - 502platform_error — A provider failed. Safe to retry with the same Idempotency-Key.
- 503oauth_unavailable — The authorisation server's keys could not be read, so tokens cannot be checked. API keys still work.