Concepts

Idempotency

Retry anything safely. Duplicates are impossible by design.

Every create endpoint accepts anIdempotency-Keyheader (up to 64 characters, your choice of format). If a request with the same key already succeeded, we return the original result — same payout ID, same body — instead of creating anything new.

Safe retry

POST /v1/payouts
Idempotency-Key: payroll-2026-07-batch1-row42

# network drops… retry with the SAME key
POST /v1/payouts
Idempotency-Key: payroll-2026-07-batch1-row42
→ 200 (original payout returned; nothing sent twice)

Reusing a key with a different payload is an error (409 idempotency_conflict) so a bug can’t silently bind two different payments to one key. Keys are scoped per environment and retained for 24 hours.