Idempotency-Key

Every money movement (/v4/collections, /v4/payouts/approve) requires an Idempotency-Key header — a unique string you generate per logical operation (UUIDv4 recommended). This closes the V3 double-pay gap where a timeout + retry could move money twice.

  • Same key, same operation → the original result is returned; nothing is re-executed.
  • Missing key400 missing_idempotency_key; nothing happens.
  • Collections are additionally idempotent on your reference: re-submitting an existing reference returns its current state.
Retry recipe
  1. Generate the key before the first attempt; persist it with your order.
  2. On timeout or 5xx, retry with the same key (fresh nonce/timestamp/signature — those protect the transport, the key protects the operation).
  3. Never reuse a key for a different operation.