Skip to main content
Placing an order is a money movement, so it must be safe to retry. Send an Idempotency-Key header on POST /v1/orders and a retry with the same key never charges you twice.
Use a fresh unique key (a UUID) per distinct order, and reuse the same key when retrying that same order after a network error or timeout.

How it behaves

  • Same key, same body → you get the original order back, charged exactly once.
  • Same key, different body422 idempotency_key_reused. The key is bound to its first request; do not reuse a key for a different order.
  • Same key, still processing409 request_in_progress. The first request has not finished; retry after a short delay.
  • No key on a mutating request400 idempotency_key_missing.
Store the idempotency key with your order record before you send the request, so a crash mid-request still lets you retry with the same key.