
Pour des webhooks fiables : signer chaque payload (HMAC), traiter les événements de façon idempotente et gérer les retries sans doubler les effets de bord.
Les webhooks automatisent l'intégration entre services en poussant un événement vers votre URL dès qu'il se produit. Côté réception, vous exposez pourtant un point d'entrée HTTP que n'importe qui peut tenter d'appeler. La documentation Stripe sur les signatures rappelle qu'il faut vérifier chaque payload avant de le traiter. Sans signature, idempotence et politique de retries, vous cumulez risques d'abus, doublons et pertes silencieuses d'événements.
La signature des webhooks repose en général sur HMAC (Hash-based Message Authentication Code) : l'émetteur hache le corps brut de la requête avec une clé secrète partagée. À la réception, vous recalculez le digest et le comparez à l'en-tête fourni (par exemple Stripe-Signature ou X-Hub-Signature-256). La validation des livraisons GitHub illustre ce schéma avec SHA-256.
L'idempotence garantit qu'un webhook dupliqué ne déclenche pas deux fois la même action. Les émetteurs réémettent souvent le même événement après un timeout ou une réponse ambiguë.
event_id (ou équivalent) avant tout traitement long.received, processed, failed pour refuser proprement un doublon.200 si l'événement est déjà traité, pas une erreur qui provoquerait de nouveaux retries.Les bonnes pratiques API de l'OWASP REST Security Cheat Sheet s'appliquent aussi aux endpoints de callback.
Les échecs réseau ou un handler trop lent poussent l'émetteur à relancer la livraison. Votre code doit rester court : valider, enfiler en file (queue) ou worker, répondre rapidement.
2xx seulement quand le message est accepté ou déjà traité, 5xx uniquement si vous voulez une relance.L'architecture event-driven de Microsoft Learn décrit comment découpler réception et traitement pour absorber ces pics.
Découvrez d'autres articles sur le sujet : Monitoring applicatif : Sentry et OpenTelemetry en pratique et Node.js : le runtime JavaScript côté serveur.
Des webhooks bien signés, idempotents et tolérants aux retries réduisent les incidents en production et simplifient le diagnostic quand un partenaire signale un événement manquant.