# Idempotency

Retry state-changing requests without creating duplicate operations.

Product: Account API
Guides follow API reference 0.3.0 and event reference 0.2.0.
Canonical page: https://docs.axiym.io/account-api/integration-guide/fundamentals/idempotency

Idempotency protects state-changing requests from being processed twice after
a timeout, network error, or ambiguous response. It uses the
`Idempotency-Key` request header.

Send the header on every endpoint that lists it in the API Reference.

## Rules

| Situation                                    | Which key to use    |
| -------------------------------------------- | ------------------- |
| Retry after a timeout or dropped connection  | Reuse the same key. |
| Retry after an unclear response              | Reuse the same key. |
| Start another operation                      | Generate a new key. |
| Change the endpoint, body, or resource scope | Generate a new key. |
| Make a `GET` or list request                 | No key is needed.   |

Use a non-empty ASCII string up to 255 characters. UUIDs are recommended but
not required.

```http
Idempotency-Key: a1b2c3d4-e5f6-7890-abcd-ef1234567890
```

The resource path is part of the operation scope. Retry with the same path
and resource identifiers, body, endpoint, and key.

Use `Idempotency-Key` to retry a request; use a new `X-Request-Id` for every
attempt.
