Webhooks
Ce qui fait foi, c'est le webhook.
La redirection du navigateur peut être interrompue : un réseau qui coupe, un onglet fermé, un client pressé. Le webhook, lui, insiste — sept fois, sur trente-six heures.
Comment ça marche
Déclarez, vérifiez, répondez
01
Déclarez une adresse
Et choisissez les événements qui vous intéressent. Vous recevez un secret de signature, propre à cette adresse.
02
Vérifiez la signature
Chaque envoi porte une signature calculée sur son horodatage et son corps. Un message rejoué plus de cinq minutes après coup doit être refusé.
03
Répondez vite
Un 2xx suffit. Faites le travail long après avoir répondu : un serveur lent déclenche une nouvelle tentative, pas un abandon.
Ce sur quoi vous pouvez compter
Les seuls chiffres de cette page, et chacun se relit dans le code du service.
7
tentatives de livraison
webhook · config/webhook.ts
36 h
de fenêtre de reprise
espacement croissant, de la minute au jour
5 min
de tolérance au rejeu
au-delà, la signature est refusée
100 %
des tentatives archivées
code, réponse, durée — consultables
checkout.session.completed
evt_01K…
| Tentative | Réponse | Durée |
|---|---|---|
| 1 | 500 | 1 240 ms |
| 2 | 500 | 980 ms |
| 3 | 200 | 310 ms |
Chaque tentative garde son code, sa durée et la réponse reçue. Le rejeu est manuel, à votre main.
Ce qu'un webhook ne fait pas
- Il ne garantit pas l'ordre d'arrivée : traitez chaque événement comme indépendant.
- Il peut arriver deux fois — rendez votre traitement idempotent de votre côté aussi.
- Le rejeu se déclenche depuis le tableau de bord, pas depuis la CLI.
Un webhook qui n'arrive pas ?
Le journal des livraisons montre ce que votre serveur a répondu, à la milliseconde près. C'est là qu'il faut regarder d'abord.