POST /v1/payouts and the connection drops before you receive the response, you don’t know whether the payout was created. Retrying naively could create a duplicate.
Idempotency keys solve this. Include a unique key with your request, and Anton guarantees the operation happens at most once — even if you send the same request many times.
How to use
Add theIdempotency-Key header to any POST, PUT, or PATCH request:
X-Idempotent-Replayed: true so you can tell a replay from a fresh result.
Required vs. optional
Some endpoints require an idempotency key and return400 missing_idempotency_key if you omit one — payout creation, beneficiary creation, batch confirmation, webhook subscription creation, authenticated intelligence evaluation creation, and a handful of others. The endpoint documentation lists the requirement explicitly.
Endpoints that accept an optional key will still honor it — a good default is to send one on every mutation.
Key requirements
Generating good keys
The best idempotency keys are deterministic — derived from your own business data — so that a retry after a crash produces the same key without you having to remember whether the request succeeded.Behavior
What idempotency does not cover
GETrequests — already safe to retry.- Soft deletes (archive/restore, cancel) — repeated calls converge on the same state, so they’re naturally idempotent.
- Screening, routing, or rail outcomes — idempotency guarantees Anton won’t create the same payout twice. It does not guarantee the same downstream routing or settlement result if you submit two different payouts back-to-back.