POST/PUT requests accept — and generally require — an
Idempotency-Key header. This includes creating customers, payment routes, webhook subscriptions,
API keys, Treasury beneficiaries, payouts, withdrawals, quotes, and conversions. It lets you retry
after a network error without creating a duplicate.
Direct-route transfers are created automatically when a route is funded. Treasury is an explicit
wallet API, so its payouts, stablecoin withdrawals, conversion quotes and quote acceptance are all
idempotent writes.
How it works
- Use a unique key per logical operation (a UUID is ideal). Reuse the same key when retrying that same operation.
- Persist the key before the first network attempt. A browser refresh, MFA step-up, worker restart, or client timeout must not generate a replacement key for the same action.
- Same key + same parameters → you get back the original, cached response (with an
Idempotency-Replayed: trueheader). The action runs once. - Same key + different parameters → the request is rejected with
409(idempotency_key_conflict), protecting you from accidentally reusing a key for a different operation. - Keys are isolated by tenant account and credential context. Do not deliberately reuse one across separate tenant accounts.
Idempotency keys are scoped to supported
POST/PUT writes, which require a secret key (sk_).
Read requests (GET) are naturally idempotent and do not need a key. The current PATCH and
DELETE resources do not use this header: read current state before retrying an unknown response,
as explained on each endpoint page.Unknown money outcomes
If a payout, conversion, or withdrawal response is lost, retry the identical request with the same key. Do not create a replacement operation while the original isaccepted, submitted, held, or
unknown. Fetch the original by its Wayex ID or your externalReference and inspect its reservation
state first. See Operations and reconciliation.
Webhooks and ordering
Wayex is event-driven: webhooks are the source of truth for asynchronous state. Do not assume webhook ordering — dedupe by the reference on each event and, when in doubt, fetch the current resource state with aGET. See Developers for subscription setup and signature verification.
