Upload a Batch
Upload a batch file (CSV or XLSX) containing many payout rows. The file
is stored, hashed for duplicate detection, and queued for asynchronous
validation. The response returns the batch in uploaded status; the
status transitions to validating, then validated (or
validation_failed) via webhook.
After validated, review GET /v1/batches/{id} and the summary, then
call POST /v1/batches/{id}/confirm to actually create the payouts.
Confirmation expires — see expires_at on the batch record.
Maximum file size: 32 MB. Maximum rows per batch: check current limits with support.
Authorizations
Per-request DPoP proof JWT (RFC 9449). MUST accompany the Authorization: DPoP <access_token> header on every protected operation. The proof is signed by the merchant's private DPoP key and carries htm, htu, iat, jti, and ath claims.
Headers
Unique key identifying this operation. Sending the same key twice returns the original response instead of creating a duplicate. Keys are retained for 24 hours.
255Body
CSV or XLSX file. Filename is preserved.
Response
Batch accepted and queued for validation.
A batch upload. Moves through uploaded -> validating -> validated -> confirmed -> processing -> completed | partial | failed. Can be
cancelled from any pre-processing state.