Idempotency
Create operations (for example: transactions, refunds, and chargebacks) support idempotency. Idempotency lets you safely retry a request without accidentally performing the same operation twice.
How it works
To make an idempotent request, include an Idempotency-Key header. The value should be a unique identifier for the resource you are creating (for example, a UUID).
- If the
Idempotency-Keyis set and there is a non-expired key (<= 24 hours), we return the resource previously created with this key. - If the
Idempotency-Keyis set and there is an expired key (> 24 hours), we create a new resource and store the key with the request. - If the
Idempotency-Keyis set and there is no existing record with the same key, we create a new resource and store the key with the request. - If the
Idempotency-Keyis not set, we create a new resource without idempotency protection. In this case, you are responsible for ensuring duplicate requests are not sent for the same resource.
Recommendation
Always use idempotency for operations you may retry due to network issues, timeouts, or 5xx responses.