Qu'est-ce qu'un webhook ?
Un webhook est une URL que vous confiez à un service tiers pour qu'il envoie une requête HTTP à votre application dès qu'un événement se produit chez lui : un paiement encaissé, un formulaire soumis, une commande expédiée. C'est l'inverse du *polling* : au lieu d'interroger une API toutes les cinq minutes pour savoir s'il y a du nouveau, vous attendez qu'on vous prévienne.
Un webhook est une URL que vous confiez à un service tiers pour qu'il envoie une requête HTTP à votre application dès qu'un événement se produit chez lui : un paiement encaissé, un formulaire soumis, une commande expédiée. C'est l'inverse du polling : au lieu d'interroger une API toutes les cinq minutes pour savoir s'il y a du nouveau, vous attendez qu'on vous prévienne.
La définition officielle
La documentation de GitHub la formule ainsi : « Webhooks let you subscribe to events happening in a software system and automatically receive a delivery of data to your server whenever those events occur. » Et elle pose la comparaison dans la phrase suivante : les webhooks servent à recevoir les données au moment où elles surviennent, « as opposed to polling an API (calling an API intermittently) to see if data is available » (GitHub Docs, About webhooks).
Le mot désigne donc deux choses à la fois : le mécanisme, et l'URL qui le reçoit. Dans une conversation d'intégration, « donne-moi ton webhook » veut dire « donne-moi l'adresse où t'envoyer les événements ».
Ce qui circule concrètement
Une requête POST, un corps JSON, des en-têtes. Rien de plus exotique.
Stripe résume bien ce qu'un émetteur sérieux attend de vous : URL publiquement accessible en HTTPS, TLS 1.2 ou 1.3 uniquement, et une réponse de redirection 3xx comptée comme un échec de livraison (Stripe Docs, Receive Stripe events in your webhook endpoint).
Les trois règles qu'on découvre trop tard
Répondez vite, réfléchissez ensuite. Votre endpoint doit renvoyer un code 2xx avant toute logique métier susceptible de prendre du temps. Stripe l'écrit sans ambiguïté : vous devez renvoyer une réponse 200 avant de marquer la facture comme payée dans votre outil comptable. Le traitement va dans une file asynchrone, pas dans la requête.
Vérifiez la signature. Sans vérification, n'importe qui connaissant votre URL peut vous envoyer un faux événement « paiement réussi » et déclencher une expédition. Stripe signe chaque événement dans l'en-tête Stripe-Signature avec un HMAC SHA-256, horodatage inclus, et ses bibliothèques appliquent par défaut une tolérance de 5 minutes entre cet horodatage et l'heure courante — c'est ce qui bloque les attaques par rejeu. Attention : la vérification se fait sur le corps brut de la requête, et beaucoup de frameworks le modifient avant que votre code ne le voie.
Attendez-vous aux doublons et au désordre. Stripe ne garantit pas l'ordre de livraison des événements et recommande de tracer leurs identifiants plutôt que leur horodatage pour repérer un doublon. En cas d'échec, les tentatives se poursuivent jusqu'à trois jours avec un délai exponentiel. Votre traitement doit donc être idempotent : recevoir deux fois le même événement ne doit pas facturer deux fois.
Et côté no-code
Le principe est identique, sans écrire de serveur. Le nœud Webhook de n8n accepte les méthodes DELETE, GET, HEAD, PATCH, POST et PUT, fournit une URL de test distincte de l'URL de production, et permet d'exiger une authentification basique, par en-tête ou par JWT. La charge utile maximale est de 16 Mo, modifiable en auto-hébergement via la variable N8N_PAYLOAD_SIZE_MAX (n8n Docs, Webhook node).
Un avis, pour finir : activez l'authentification dès le premier jour, même sur un workflow de test. Une URL de webhook n8n laissée ouverte est une porte d'entrée publique dans vos automatisations, et elle finit toujours par se retrouver dans un ticket, un e-mail ou une capture d'écran.
Sources
- GitHub Docs, About webhooks — GitHub — https://docs.github.com/en/webhooks/about-webhooks — consultée le 21 septembre 2026
- Stripe Docs, Receive Stripe events in your webhook endpoint — Stripe — https://docs.stripe.com/webhooks — consultée le 21 septembre 2026
- n8n Docs, Webhook node — n8n — https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/ — consultée le 21 septembre 2026
Note de maillage interne (articles à publier) : lier vers Qu'est-ce qu'une API REST ? depuis la section sur le polling, et vers Automatiser les relances de factures impayées avec n8n depuis la section no-code.
Sources
Chaque affirmation chiffrée de cet article renvoie à une source publique, datée du jour où elle a été consultée.
- [1]
- [2]Receive Stripe events in your webhook endpoint
Stripe Docsconsultée le
https://docs.stripe.com/webhooks
- [3]Webhook node
n8n Docsconsultée le
https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/
Ce sujet est exactement votre chantier du moment ?
L'offre « Nos services » détaille la méthode, les livrables et les délais sur ce périmètre précis.