Idempotency-Key header. A request without one is rejected with 400 missing_idempotency_key. This is not optional and there is no way to opt out.
Behaviour
Keys are scoped to your application and the endpoint, and retained for 24 hours.
A different body under the same key returns an error rather than silently replaying the first response. Silently replaying would hide a real bug in your integration.
Choosing a key
Use something derived from the operation, not from the attempt. A UUID generated once per logical action and reused across retries is correct. A UUID generated fresh inside a retry loop defeats the mechanism entirely.reference is not an idempotency key
reference is your own order id, unique per application, used for correlation and lookup:

