POST actually went through.
How it works
Send anIdempotency-Key header on any POST, PUT, PATCH, or DELETE request to /api/public/v1/*. Replays of the same key by the same API token return the original response — same status, same body — without re-executing the endpoint.
Picking a key
Generate a fresh value per logical operation — typically a UUID4 — and reuse it only when retrying that exact request. Use different keys for different operations; use the same key for retries of the same operation.Example
Caveats
The cache key is
(API token user, Idempotency-Key). A different token from the same account is treated as a different caller.- Request bodies are not checksummed — sending a different body with a reused key still returns the original response. Keep one key per operation.
- Binary downloads (PDF invoices, etc.) are out of scope: replays of those endpoints will re-execute.
- Idempotency is best-effort. If the cache is briefly unavailable, requests are let through rather than failed; in that rare window a retry may produce a duplicate side effect. Pair this header with normal defensive patterns for true at-most-once semantics.