Réponse exemple
POST/v1/webhooks/deliveries/{id}/replayRejoue une livraison de webhook passée vers l'URL du webhook parent.Cet endpoint renvoie une livraison passée vers la même URL que le webhook d'origine. L'event_id initial est préservé, afin que vos récepteurs puissent dédupliquer via l'en-tête webhook-id conformément à la spécification Standard Webhooks. Le rejeu est synchrone : Coffrify effectue immédiatement l'appel HTTP POST (timeout de 10 secondes) et retourne le statut obtenu. Une nouvelle ligne de livraison est insérée dans l'historique avec attempt_number = précédent + 1, et la charge utile envoyée porte les marqueurs replay: true et replay_of: {id} dans l'enveloppe de l'événement ainsi que les en-têtes X-Coffrify-Replay et X-Coffrify-Replay-Of.
La livraison ciblée comme le webhook parent sont résolus dans le périmètre du workspace de la clé API : tenter de rejouer une livraison appartenant à un autre workspace renvoie une erreur not_found.
Authentification
Nécessite une clé API valide disposant du scope webhooks:manage. Transmettez la clé via l'en-tête Authorization: Bearer cof_live_... (ou cof_test_...). Une clé restreinte ou un token MCP sans ce scope est rejeté avec une erreur scope_missing.
Paramètres de chemin
| Champ | Type | Requis | Description |
|---|---|---|---|
| id | string (UUID) | Oui | Identifiant de la livraison passée (coffrify_webhook_deliveries.id) à rejouer. Extrait du chemin de l'URL. |
Aucun corps de requête n'est attendu : tous les paramètres (URL cible, secret, type d'événement, charge utile) sont déduits de la livraison d'origine et de son webhook parent.
Réponse
Retourne un objet JSON décrivant le résultat du rejeu. replayed vaut toujours true une fois l'opération exécutée. delivery_id est la livraison source, new_delivery_id la nouvelle ligne d'historique créée. event_id et event_type reprennent ceux de l'événement d'origine. status est le code HTTP renvoyé par votre endpoint (0 si l'appel a échoué avant réception, par exemple un timeout). duration_ms mesure la latence de l'appel, body_preview contient les 500 premiers caractères de la réponse de votre serveur, et error porte le message d'erreur réseau le cas échéant (sinon null).
| Champ | Type | Description |
|---|---|---|
| replayed | boolean | Toujours true après exécution du rejeu. |
| delivery_id | string | Identifiant de la livraison source rejouée. |
| new_delivery_id | string (UUID) | Identifiant de la nouvelle livraison enregistrée dans l'historique. |
| event_id | string | Identifiant de l'événement d'origine, conservé pour la déduplication. |
| event_type | string | Type de l'événement (ex. transfer.completed). |
| status | number | Code HTTP renvoyé par votre endpoint, ou 0 en cas d'échec réseau. |
| duration_ms | number | Durée de l'appel HTTP en millisecondes. |
| body_preview | string | 500 premiers caractères de la réponse de votre serveur. |
| error | string | null | Message d'erreur réseau si l'appel a échoué, sinon null. |
Erreurs
| Code | Quand | Résolution |
|---|---|---|
| 400 validation_error | L'identifiant de livraison est absent du chemin. | Fournissez un id de livraison valide dans l'URL. |
| 401 missing_api_key | En-tête Authorization absent. | Ajoutez Authorization: Bearer cof_live_.... |
| 401 invalid_api_key | Clé API invalide, révoquée ou expirée. | Vérifiez ou régénérez votre clé API. |
| 403 scope_missing | La clé ne possède pas le scope webhooks:manage. | Utilisez une clé disposant du scope webhooks:manage. |
| 404 not_found | Livraison introuvable dans ce workspace, ou webhook parent manquant. | Vérifiez l'identifiant de livraison et qu'il appartient bien à votre workspace. |
| 409 validation_error | Le webhook parent est désactivé. | Réactivez le webhook avant de rejouer la livraison. |
| 429 rate_limited | Quota de requêtes du workspace dépassé. | Respectez l'en-tête Retry-After avant de réessayer. |
| 500 internal_error | Erreur de base de données lors de la résolution de la livraison ou du webhook. | Réessayez ; si l'erreur persiste, contactez le support avec le request_id. |
Voir aussi
GET /v1/webhooks/deliveries— lister l'historique des livraisons d'un webhook.POST /v1/webhooks/{id}/secret/rotate— faire pivoter le secret de signature du webhook.- PATCH /v1/webhooks/{id} — réactiver un webhook désactivé avant un rejeu.