Where it is required
TheIdempotency-Key header is required on:
A request without the header is rejected with
400 before anything is processed. Other endpoints ignore the header.
Choosing a key
- Generate a new, unique key for each payout you intend to make, for example a UUID v4 or your own payout ID.
- Keys can be up to 200 characters. Leading and trailing whitespace is ignored.
- Store the key with your payout record before you send the request, so a retry after a crash reuses it.
- Reuse the key only to retry the same payout with the same request body.
Idempotency-Key header is separate from x-request-id. Each retry still needs a fresh x-request-id, x-timestamp and signature (see Authentication); only the idempotency key and the body stay the same.
How it behaves
Keys are scoped to your merchant account and the endpoint, so the same key used on/payout/fiat and /payout/crypto refers to two different requests.
“Same body” means the same fields with the same values, in the same order. Fields the endpoint doesn’t recognise are ignored and don’t affect the comparison. The simplest approach is to serialise the body once and resend exactly those bytes.
Errors
Recommended retry pattern
- Create the key and save it with your payout record.
- Send the request.
- On a network error, timeout,
429,500or503, retry with the same key and body, using exponential backoff. - On
409 … already being processed, wait a few seconds and retry with the same key. - On any other
4xx, fix the request. If you change the body, use a new key. - Confirm the final state with the payout
GETendpoints rather than resending the payout.