
# Rejouer des événements vers un point de terminaison webhook

`POST /v1/webhook-endpoints/{endpoint_id}:replay` · autorisation `webhook-endpoints:write` · tous les forfaits

Remet en file d'attente les événements de `[from, to)` des 30 derniers jours, par exemple les événements d'une période pendant laquelle le point de terminaison était désactivé. Seuls les types d'événements du point de terminaison sont envoyés, sauf si `types` les restreint. Chaque livraison rejouée conserve le `webhook-id` de l'événement, de sorte qu'un récepteur qui supprime les doublons par `webhook-id` ne traite chaque événement qu'une fois ; `replay_no` sur la livraison augmente de un.

## Requête

| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| `endpoint_id` | path | oui | ID du point de terminaison webhook (`whe_…`). |
| `from` | date-time | oui | Début de la plage (inclus), dans les 30 derniers jours. |
| `to` | date-time | oui | Fin de la plage (exclue), après `from`. |
| `types` | string[] | non | Types d'événements à rejouer ; vide ou absent signifie les types du point de terminaison. |
| `Idempotency-Key` | header | non | Rejoue la réponse pour une requête répétée avec la même clé, sans remettre en file d'attente. |

```json
{
  "from": "2026-10-20T00:00:00Z",
  "to": "2026-10-21T00:00:00Z",
  "types": ["user.created"]
}
```

## Réponse

`200 OK` avec le nombre de livraisons mises en file d'attente.

```json
{
  "enqueued": 42
}
```

## Erreurs

| HTTP | code | Quand |
|---|---|---|
| 400 | `unknown_field` | Le corps contient un champ qui n'est pas listé ci-dessus. |
| 404 | `not_found` | Aucun point de terminaison de ce type dans cet environnement. |
| 415 | `unsupported_media_type` | Le corps est absent ou n'est pas `application/json`. |
| 422 | `validation_failed` | `/from required`, `/to required`, ou une règle de plage : `to` n'est pas après `from`, ou date de plus de 30 jours. |
| 401 | `unauthenticated` | L'identifiant est absent, invalide ou révoqué. |
| 403 | `insufficient_permissions` | L'identifiant ne dispose pas de `webhook-endpoints:write`. |
| 503 | `service_unavailable` | Le rejeu n'est pas encore disponible dans cette région, ou l'administration des webhooks est temporairement indisponible ; réessayez après `Retry-After`. |

## Exemple

```bash
curl -X POST https://api.eu.keenauth.com/v1/webhook-endpoints/whe_01k8a3m5q7t9v1w3x5y7z9b2c4:replay \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 7a1c3e5f-9b2d-4f6a-8c0e-2b4d6f8a0c2e" \
  -d '{"from":"2026-10-20T00:00:00Z","to":"2026-10-21T00:00:00Z"}'
```

CLI (le corps provient de l'entrée standard ou d'un fichier (`--data @replay.json`)) :

```bash
echo '{"from":"2026-10-20T00:00:00Z","to":"2026-10-21T00:00:00Z"}' | keenauth webhook-endpoints replay whe_01k8a3m5q7t9v1w3x5y7z9b2c4 --data -
```
