Skip to main content

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>