Idempotency

Idempotency-Key: payout-2026-10-03-000123

Required on every POST that creates something: swaps, withdrawals, chain payouts, address registration and derivation, xpubs, deposit keys, customers and transfers. The API reference marks each one. Retire, watch-now and sweep-hold calls do not take one; repeating them changes nothing. POST /v1/quotes does not take one either: two quotes are two quotes.

Rules

CodeHTTP
idempotency_key_required400The header is missing
idempotency_key_too_long400Over 120 characters
idempotency_key_reused422Same key, different body
idempotency_key_in_progress409The first call has not finished

Asking what a key produced

GET /v1/operations/by-key/{key}

For a request whose response you lost and which you must not send again. Answers:

AnswerMeaning
ANSWERED with an operationThe request was accepted; this is what it created
ANSWERED without an operationThe request was answered, for example refused, and created nothing
IN_PROGRESSClaimed and not finished
404 no_operation_for_keyNo committed record under this key

404 means no committed record, which is narrower than "it never happened": a request of yours that is still running reads the same way. Before you treat a 404 as final, make sure no request with that key is still in flight on your side.