> ## Documentation Index
> Fetch the complete documentation index at: https://docs.livingsecurity.com/llms.txt
> Use this file to discover all available pages before exploring further.

# idempotency_key_reuse

> Résolvez les conflits HTTP 409 : distinguez une requête encore en cours de traitement d'un en-tête Idempotency-Key réutilisé avec des données différentes.

| | |
| - | - |
| **Code** | `idempotency_key_reuse` |
| **Statut HTTP** | `409 Conflict` |
| **Nouvelle tentative possible** | Consultez `retryable` dans la réponse |

## Choisir la bonne procédure de reprise

Le même code d'erreur décrit deux situations différentes. Vérifiez `retryable` avant
d'agir ; le statut HTTP seul ne permet pas de savoir s'il faut réessayer.

| Réponse | Signification | Étape suivante |
| - | - | - |
| `retryable: false` | La clé identifie déjà une requête dont les données sont différentes. | Comparez le corps de la requête avec celui de la requête d'origine. N'utilisez une nouvelle clé que pour une opération volontairement différente. |
| `retryable: true` | Une autre requête utilisant la clé est toujours en cours de traitement. | Conservez la même clé et la même requête. Attendez au moins `Retry-After` secondes, puis réessayez dans la limite d'un délai maximal défini. |

### Données différentes

```json theme={null}
{
  "type": "https://docs.livingsecurity.com/developers/v1/errors/idempotency_key_reuse",
  "title": "Conflict",
  "status": 409,
  "detail": "Idempotency-Key was already used with a different request.",
  "code": "idempotency_key_reuse",
  "request_id": "req_0199a1e0-7c00-7000-8000-000000000001",
  "doc_url": "https://docs.livingsecurity.com/developers/v1/errors/idempotency_key_reuse",
  "retryable": false,
  "param": "Idempotency-Key"
}
```

### Requête toujours en cours de traitement

Cet exemple comporte également l'en-tête de réponse HTTP `Retry-After: 1`.

```json theme={null}
{
  "type": "https://docs.livingsecurity.com/developers/v1/errors/idempotency_key_reuse",
  "title": "Conflict",
  "status": 409,
  "detail": "A concurrent request is still processing this Idempotency-Key. Retry shortly.",
  "code": "idempotency_key_reuse",
  "request_id": "req_0199a1e0-7c00-7000-8000-000000000001",
  "doc_url": "https://docs.livingsecurity.com/developers/v1/errors/idempotency_key_reuse",
  "retryable": true,
  "param": "Idempotency-Key"
}
```

## Conserver une identité de nouvelle tentative stable

Pour les opérations qui documentent l'idempotence, la clé est limitée à l'organisation,
au compte de service, à la méthode HTTP, au chemin de la ressource et à la version d'API résolue. La modification
de l'un de ces éléments crée une identité de nouvelle tentative différente ; elle ne permet pas de récupérer l'opération
d'origine. La rotation d'un identifiant au sein du même compte de service ne modifie pas
cette identité, bien que l'identifiant de remplacement doive toujours disposer des autorisations nécessaires.

Conservez la clé, le corps, le chemin et la version d'origine lors d'une reprise après un délai d'attente dépassé.
Ne générez pas une nouvelle clé simplement pour contourner un conflit : l'écriture d'origine
a peut-être déjà abouti. Récupérez la ressource lorsque son ID est connu et appliquez
la procédure de reprise documentée pour l'opération. Une relecture terminée comporte
`Idempotent-Replayed: true` lorsque l'opération documente la relecture des réponses.

L'envoi d'un en-tête `Idempotency-Key` ne rend pas une opération idempotente, sauf si sa
référence prend explicitement en charge cet en-tête. La protection contre les nouvelles tentatives est limitée par la
politique de rétention de l'opération ; elle ne constitue pas une garantie permanente contre les doublons.

Si le traitement reste non résolu, contactez le [Support de Living Security](mailto:support@livingsecurity.com)
en indiquant `request_id`, l'horodatage UTC, la méthode, le chemin et la version d'API. N'incluez jamais
de clé d'API, de secret client ni de jeton d'accès.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.