Un webhook est un mécanisme de communication entre applications basé sur des callbacks HTTP. Quand un événement se produit dans un système A (nouveau paiement, formulaire soumis, commit Git), celui-ci envoie automatiquement une requête HTTP POST vers une URL configurée dans un système B, avec les données de l'événement en payload.
Contrairement au polling (interroger régulièrement une API pour vérifier s'il y a du nouveau), le webhook fonctionne en mode push : c'est l'émetteur qui prend l'initiative de notifier. C'est plus efficace en termes de ressources et de réactivité. Stripe envoie un webhook quand un paiement est confirmé, GitHub quand du code est poussé, et Slack quand un message est posté.
L'implémentation d'un webhook côté récepteur nécessite quelques précautions : vérifier la signature de la requête (pour s'assurer qu'elle provient bien de l'émetteur attendu), traiter les requêtes de manière idempotente (un même événement peut être envoyé plusieurs fois), et répondre rapidement (traitement asynchrone si l'opération est longue). Un endpoint webhook mal sécurisé est un vecteur d'attaque potentiel.