Idempotency
Idempotency​
Use idempotency for all request types that can create or mutate state.
Required behavior​
- Send a unique key per logical mutation attempt.
- Reuse the same key only when retrying the same logical mutation.
- Keep a stable payload for retries under one key.
transaction_id guidance​
- Generate caller-side deterministic transaction IDs when possible.
- Store
(transaction_id, idempotency_key, outcome)in your system. - Treat duplicate accepted responses as success, not as a new operation.
Example key format​
paywise:<merchant_id>:<operation>:<uuid>