Aller au contenu

Journal et rejeu

Chaque envoi vers votre serveur est une livraison : Cartflox garde ce qui a été envoyé, quand, la réponse reçue, et réessaie tant que votre serveur n’a pas répondu 2xx.

Votre serveur a 10 secondes pour répondre. Sans réponse 2xx, la livraison est rejouée selon ce calendrier, soit 10 tentatives sur environ 72 heures :

Tentative Délai après la précédente
1 immédiat
2 1 minute
3 5 minutes
4 15 minutes
5 1 heure
6 3 heures
7 6 heures
8 12 heures
9 24 heures
10 24 heures

Après la dernière tentative, la livraison est marquée failed et une notification apparaît dans votre tableau de bord. L’adresse et la clé de signature sont relues à chaque tentative : corrigez votre adresse dans API et Logs, la prochaine tentative la prend.

Chaque requête porte deux en-têtes utiles au dédoublonnage : X-Afriflow-Event (le nom de l’événement) et X-Afriflow-Delivery (l’identifiant de la livraison, identique d’une tentative à l’autre). Un traitement idempotent sur X-Afriflow-Delivery, ou sur data.id et data.status, vous protège des doublons.

Depuis API et Logs, le bloc « Livraisons des webhooks » liste les 50 derniers envois avec la réponse reçue. « Renvoyer » repart tout de suite, avec une signature neuve, vers votre adresse actuelle, quel que soit l’état de la livraison.

GET/v1/webhooks/deliveriesLister les livraisons (50 par défaut, 200 au plus)
GET/v1/webhooks/deliveries/{id}Lire une livraison
POST/v1/webhooks/deliveries/{id}/resendRenvoyer une livraison

Filtres de la liste : transaction_id, status (pending, delivered, failed), event, limit. Une clé de test ne voit que les livraisons de test.

Les livraisons d'une transaction
curl "https://cartflox.com/api/v1/webhooks/deliveries?transaction_id=cmf3k2p1x0001abcd9e8f7g6h" \
-H "Authorization: Bearer af_live_sec_VOTRE_CLE"
200 OK
{
"object": "list",
"data": [
{
"id": "cmu8d4e5f0003abc",
"object": "webhook.delivery",
"event": "payment.completed",
"url": "https://maboutique.com/webhooks/cartflox",
"status": "delivered",
"attempts": 2,
"max_attempts": 10,
"next_attempt_at": null,
"last_status_code": 200,
"last_error": null,
"response_ms": 412,
"transaction_id": "cmf3k2p1x0001abcd9e8f7g6h",
"transfer_id": null,
"livemode": true,
"created_at": "2026-09-19T08:00:00.000Z",
"delivered_at": "2026-09-19T08:01:03.000Z"
}
],
"count": 1
}
Renvoyer
curl -X POST https://cartflox.com/api/v1/webhooks/deliveries/cmu8d4e5f0003abc/resend \
-H "Authorization: Bearer af_live_sec_VOTRE_CLE"

La réponse est la livraison mise à jour. Limite : 30 renvois par minute et par espace.

Champ Description
status pending (nouvelle tentative prévue), delivered (réponse 2xx reçue), failed (abandonnée après la dernière tentative)
attempts / max_attempts Tentatives faites, et plafond
next_attempt_at Prochaine tentative automatique, null sinon
last_status_code / last_error La dernière réponse de votre serveur, ou l’erreur rencontrée (délai dépassé, réseau)
livemode false pour un événement de test