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

# Idempotence

> Retentez les requêtes de création sans créer accidentellement de doublons.

Les requêtes `POST` qui créent une ressource nécessitent un en-tête `Idempotency-Key`. Cette clé permet de retenter une requête après un délai d’attente ou une coupure de connexion sans créer deux fois la même ressource.

```bash theme={null}
curl https://server.chataigne.ai/v1/locations/loc_r8v4n2c6tz/special_closings \
  -X POST \
  -H "x-api-key: $CHATAIGNE_API_KEY" \
  -H "Idempotency-Key: 6f1d3b8a-2c47-4e90-9a1b-0d2f7c5e1234" \
  -H "Content-Type: application/json" \
  -d '{
    "starts_at": "2026-12-24T23:00:00Z",
    "ends_at": "2026-12-25T23:00:00Z",
    "reason": "Jour de Noël"
  }'
```

## Générer les clés

Utilisez une nouvelle valeur imprévisible, par exemple un UUID v4, pour chaque création logique. Conservez-la avec l’opération jusqu’à la réception d’une réponse définitive.

```javascript Node.js theme={null}
import { randomUUID } from 'node:crypto';

const idempotencyKey = randomUUID();
```

## Règles de nouvelle tentative

* Retentez la **même opération** avec la même clé et exactement le même corps.
* La répétition d’une opération terminée renvoie la réponse d’origine et l’en-tête `Idempotent-Replayed: true`.
* La réutilisation d’une clé avec un corps différent renvoie `409 idempotency_error`.
* Un doublon simultané pendant le traitement de la première requête renvoie `409 conflict_error` ; attendez brièvement puis retentez la même requête.
* Les clés sont conservées pendant 24 heures.

<Warning>
  Ne générez pas une nouvelle clé d’idempotence pour une nouvelle tentative. Une nouvelle clé représente une nouvelle création et peut produire une ressource en double.
</Warning>

Les requêtes `PATCH`, `PUT`, `GET` et `DELETE` ne nécessitent pas cet en-tête. Consultez [Erreurs](/fr/concepts/errors) pour une stratégie de nouvelle tentative bornée.
