Chaque fois que Coffrify déclenche un Webhook, une ligne est créée dans la table coffrify_webhook_deliveries. Si votre serveur répond avec un code HTTP hors de la plage 2xx (ou si la connexion expire après 10 secondes), la livraison passe en statut retrying et sera re-tentée jusqu'à un maximum de 10 tentatives. Une fois ce budget épuisé, la livraison bascule en abandoned et rejoint la file des livraisons mortes. Deux endpoints vous permettent de piloter ce cycle de vie : la liste des livraisons d'un Webhook donné et la recherche transversale sur tout le workspace.
/v1/webhooks/{id}/deliveriesListe l'historique paginé des tentatives de livraison pour un Webhook précis (tri par date décroissante).GET/v1/webhooks/deliveries/searchRecherche transversale sur toutes les livraisons du workspace, filtrable par statut, event_id, webhook_id et date.POST/v1/webhooks/deliveries/{id}/retryForce la ré-exécution d'une livraison en statut failed ou abandoned en remettant le compteur de tentatives à zéro.Authentification
Ces trois endpoints nécessitent une clé API valide (préfixe cof_live_…, cof_test_… ou cof_sandbox_…) passée dans l'en-tête Authorization: Bearer <clé>. La lecture des livraisons requiert le scope webhooks:read. Le déclenchement d'un retry ou d'un replay nécessite le scope webhooks:manage, qui inclut les droits d'écriture sur les Webhooks du workspace.
Paramètres de requête disponibles
Les endpoints de listing et de recherche acceptent des filtres (statut, événement, webhook, date) et la pagination. Le tableau ci-dessous les détaille par endpoint.
| Endpoint | Paramètre | Type | Description |
|---|---|---|---|
| /v1/webhooks/{id}/deliveries | limit | integer | Nombre maximum de résultats (défaut : 50, max : 100). |
| /v1/webhooks/{id}/deliveries | offset | integer | Décalage pour la pagination (défaut : 0). |
| /v1/webhooks/deliveries/search | event_id | string | Filtre sur l'identifiant d'événement exact. |
| /v1/webhooks/deliveries/search | status | string | Filtre par statut : pending, success, failed, retrying ou abandoned. |
| /v1/webhooks/deliveries/search | webhook_id | string | Restreint la recherche à un Webhook précis. |
| /v1/webhooks/deliveries/search | since | string (ISO 8601) | Retourne uniquement les livraisons créées après cette date. |
| /v1/webhooks/deliveries/search | limit | integer | Nombre de résultats (défaut : 100, max : 500). |
Exemples d'appel
Les exemples ci-dessous listent les livraisons d'un webhook, en recherchent les échecs, puis en rejouent une. Choisissez votre langage.
Réponses
Voici les formes de réponse réelles retournées par chaque endpoint, basées sur les champs sélectionnés dans les handlers.
Cycle de vie d'une livraison
Une livraison passe par plusieurs statuts (en attente, livrée, en échec, abandonnée). La liste ci-dessous décrit chaque étape et les transitions de retry automatique.
pending: la livraison vient d'être créée, en attente d'exécution par le cron.retrying: au moins une tentative a échoué (code non-2xx ou timeout 10 s),next_retry_atindique la prochaine tentative.success: le serveur de destination a répondu avec un code 2xx. Aucune nouvelle tentative n'est effectuée.failed: toutes les tentatives ont été effectuées sans succès, mais le budget n'est pas encore épuisé.abandoned: le quota demax_attempts(10) est atteint. La livraison entre dans la file morte consultable via/v1/webhooks/deliveries/abandoned.
Erreurs
Les erreurs portent sur un webhook ou une livraison introuvable, ou un scope manquant. Le tableau ci-dessous indique la résolution.
| Code HTTP | Code d'erreur | Quand | Résolution |
|---|---|---|---|
| 400 | validation_error | Paramètre status invalide (valeur hors de pending, success, failed, retrying, abandoned). | Vérifiez l'orthographe du statut passé en query string. |
| 401 | missing_api_key / invalid_api_key | En-tête Authorization absent ou clé invalide. | Passez une clé cof_live_…, cof_test_… ou cof_sandbox_… valide. |
| 403 | scope_missing | Scope webhooks:read ou webhooks:manage absent de la clé. | Créez ou mettez à jour la clé API avec le scope requis. |
| 404 | not_found | Webhook ou livraison introuvable dans le workspace, ou webhook_id invalide. | Vérifiez l'identifiant et que la ressource appartient bien au workspace courant. |
| 409 | validation_error | Tentative de retry sur une livraison déjà en success. | Utilisez l'endpoint /replay pour renvoyer un événement déjà réussi. |
| 500 | internal_error | Erreur côté base de données Supabase. | Réessayez dans quelques secondes. Si l'erreur persiste, contactez le support Coffrify. |
Bonnes pratiques
Voir aussi
- Créer et gérer vos Webhooks
- Vérifier la signature HMAC d'un Webhook
- Rejouer une livraison manuellement
- File des livraisons abandonnées
- Référence endpoint : GET /v1/webhooks/{id}/deliveries
- Référence endpoint : GET /v1/webhooks/deliveries/search