
# Envoyer un événement de test à un endpoint de webhook

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

Envoie un événement synthétique signé du type choisi (par défaut `user.created`) à l'endpoint et renvoie le résultat. L'événement contient `data.test = true` et est signé avec le secret actuel de l'endpoint, exactement comme une livraison réelle, afin de vous permettre de vérifier votre contrôle de signature. Aucun enregistrement de livraison n'est écrit et le corps de réponse du récepteur n'est pas renvoyé. Chaque endpoint autorise 10 tests par minute.

## Requête

| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| `endpoint_id` | path | oui | Identifiant de l'endpoint de webhook (`whe_…`). |
| `event_type` | string | non | Type d'événement du catalogue à envoyer ; par défaut `user.created`. Le corps est facultatif. |
| `Idempotency-Key` | header | non | Renvoie le résultat pour une requête répétée avec la même clé. |

```json
{
  "event_type": "user.updated"
}
```

## Réponse

`200 OK` avec le résultat. Une livraison en échec reste `200` : `succeeded` vaut `false` et `error_class` indique la cause (`timeout`, `tls`, `dns`, `egress_blocked`, `http_status`, `connection`).

```json
{
  "succeeded": true,
  "http_status": 204,
  "error_class": null,
  "latency_ms": 87,
  "event_id": "evt_01k8a3m7s9v1w3x5y7z9b2c4d6"
}
```

## Erreurs

| HTTP | code | Quand |
|---|---|---|
| 400 | `unknown_field` | Le corps contient un champ qui n'est pas listé ci-dessus. |
| 404 | `not_found` | Aucun endpoint de ce type dans cet environnement. |
| 409 | `conflict` | L'endpoint n'est pas `enabled`. |
| 422 | `validation_failed` | `/event_type unknown_event_type` : ce n'est pas un type du catalogue. |
| 429 | `rate_limited` | Plus de 10 tests par minute pour cet endpoint ; réessayez après `Retry-After`. |
| 401 | `unauthenticated` | Le identifiant d'authentification est absent, invalide ou révoqué. |
| 403 | `insufficient_permissions` | L'identifiant d'authentification ne dispose pas de `webhook-endpoints:write`. |
| 503 | `service_unavailable` | L'administration des webhooks est temporairement indisponible ; réessayez après la période indiquée par `Retry-After`. |

## Exemple

```bash
curl -X POST https://api.eu.keenauth.com/v1/webhook-endpoints/whe_01k8a3m5q7t9v1w3x5y7z9b2c4:test \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"event_type":"user.updated"}'
```

CLI : `keenauth webhook-endpoints test whe_01k8a3m5q7t9v1w3x5y7z9b2c4 --event-type user.updated`
