Aller au contenu

Logs de livraison

Chaque tentative de livraison d’un webhook est enregistrée. Consultez l’historique depuis le dashboard ou via l’API pour diagnostiquer les problèmes de livraison et rejouer les événements échoués.

Accéder aux logs

  • Dashboard : Développeurs → Webhooks → [Endpoint] → Logs.
  • API : GET /webhooks/{id}/deliveries/.
  • Filtres disponibles : statut (succeeded / failed), type d'événement, période.

Champs disponibles par tentative

ChampDescription
idIdentifiant unique de la tentative de livraison.
event_typeType d'événement livré.
event_idIdentifiant de l'événement source.
statussucceeded ou failed.
http_status_codeCode HTTP retourné par votre endpoint.
response_time_msDurée de réponse de votre endpoint (ms).
attempt_countNuméro de la tentative (1, 2, 3…).
next_retry_atDate de la prochaine tentative si failed.
created_atTimestamp de la tentative.

Rejouer une livraison échouée

Depuis la fiche d’un log d’échec dans le dashboard, cliquez sur Rejouer pour déclencher immédiatement une nouvelle tentative, sans attendre le prochain cycle de retry automatique. Vous pouvez également le faire via l’API : POST /webhooks/{id}/deliveries/{did}/retry/.

Déboguer un échec 500

Si votre endpoint retourne systématiquement 500, consultez d’abord les logs applicatifs de votre serveur. Le champ response_time_ms vous indique si c’est un timeout (proche de 30 000 ms) ou une erreur applicative rapide. Corrigez votre code, puis rejouez la livraison.

Schéma de l’objet

Response GET /webhooks/{id}/deliveries/
Liste paginée des tentatives de livraison pour un endpoint donné.
json
{
  "object": "list",
  "count": 42,
  "has_more": true,
  "data": [
    {
      "id": "del_xxxxxxxxxxxx",
      "object": "webhook_delivery",
      "event_type": "payment_intent.succeeded",
      "event_id": "evt_xxxx",
      "status": "succeeded",
      "http_status_code": 200,
      "response_time_ms": 145,
      "attempt_count": 1,
      "created_at": "2026-03-01T10:05:01Z"
    },
    {
      "id": "del_yyyyyyyyyyyy",
      "object": "webhook_delivery",
      "event_type": "refund.succeeded",
      "event_id": "evt_yyyy",
      "status": "failed",
      "http_status_code": 500,
      "response_time_ms": 3050,
      "attempt_count": 2,
      "next_retry_at": "2026-03-01T12:00:00Z",
      "created_at": "2026-03-01T10:05:00Z"
    }
  ]
}

Rejouer une livraison (API)

bash
curl -X POST \
  https://api.sangho.com/v1/webhooks/wh_xxx/deliveries/del_yyy/retry/ \
  -H "Authorization: Bearer sk_live_xxxx"
Response 200 OK — Livraison rejouée
Sangho envoie immédiatement une nouvelle tentative à votre endpoint.
json
{
  "id": "del_zzzzzzzzzzzz",
  "object": "webhook_delivery",
  "event_type": "refund.succeeded",
  "status": "pending",
  "attempt_count": 3,
  "created_at": "2026-03-01T14:00:00Z"
}