Skip to main content
Network failures happen. When you call 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 the Idempotency-Key header to any POST, PUT, or PATCH request:
If you send the same request with the same key again, Anton returns the original response instead of creating a duplicate. Replayed responses include X-Idempotent-Replayed: true so you can tell a replay from a fresh result.

Required vs. optional

Some endpoints require an idempotency key and return 400 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.
Prefer deterministic keys. If your process crashes between sending a request and persisting its response, a deterministic key lets you retry safely without needing to remember whether the request went through.

Behavior

What idempotency does not cover

  • GET requests — 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.