Webhook vs API pour les intégrations de lieux : un guide pratique

Explication des Webhook vs API pour les équipes de lieux et d'hôtellerie. Comparez la latence, la fiabilité, la sécurité, et choisissez la meilleure option pour le WiFi, les POS, les réservations et les séjours.

Webhook vs API for Venue Integrations: A Practical Guide

Vous êtes à six semaines d'un déploiement multi-sites. La capture WiFi est active, les caisses sont connectées, les réservations affluent, et le marketing ne veut qu'une chose simple. Lorsqu'un visiteur achète, réserve, se connecte au WiFi ou règle son note, envoyez le bon message au bon moment. Puis un webhook d'achat arrive deux fois et émet deux offres à usage unique. Une connexion WiFi disparaît pendant le redémarrage d'un récepteur. Personne n'a choisi un mauvais fournisseur. Vous avez traité le dilemme webhook vs API comme un choix entre deux tuyaux interchangeables, et la production a révélé la différence.

Table des matières

Pourquoi les équipes sur site font le mauvais choix

Un groupe de restauration connecte Purple WiFi pour les connexions, Square ou Epos Now pour les reçus, ResDiary pour les réservations et, pour son activité hôtelière, Mews pour les séjours. Chaque fournisseur affirme prendre en charge l'intégration. Mais chacun l'entend d'une manière légèrement différente. L'un pousse des événements, l'un s'attend à ce que vous fassiez du polling, un autre fait les deux mais avec des champs et un comportement de tentative distincts.

L'équipe configure d'abord le chemin le plus rapide. Une vente POS déclenche un parcours de remerciement avec une offre. Le POS ne reçoit pas une réponse suffisamment rapide, retente sa chance, et le récepteur traite à nouveau la même vente parce qu'il n'a jamais stocké l'ID d'événement. Le client reçoit deux messages et, pire encore, deux codes promo.

L'événement manqué est la défaillance la plus silencieuse

Le même week-end, le récepteur est hors ligne pour un déploiement. Les connexions WiFi s'accumulent dans la file d'attente de l'émetteur pendant un moment, puis les tentatives s'épuisent. Il n'y a pas de lecture API planifiée pour les récupérer, donc ces clients n'entrent jamais dans le parcours de bienvenue. Les rapports semblent simplement faibles, pas interrompus. Personne ne signale les connexions manquantes.

Règle pratique : Considérez un webhook comme un signal indiquant qu'un événement s'est produit, et non comme la preuve d'un état actuel. Vérifiez l'état avant d'envoyer, d'émettre ou de valider quoi que ce soit.

Ce ne sont pas des cas isolés. C'est le comportement normal des systèmes distribués, comme le soulignent les recommandations sur la combinaison des webhooks avec les API pour la récupération. La livraison se fait généralement au moins une fois, les événements peuvent arriver en retard ou dans le désordre, et un récepteur indisponible crée des lacunes à moins que vous n'ayez conçu une réconciliation.

Les équipes sur site se trompent pour trois raisons compréhensibles.

  • Ils se demandent quel outil l'emporte : La question utile est de savoir quel modèle convient à chaque événement (connexion WiFi, vente POS, réservation ou paiement), compte tenu de son besoin de latence et du coût de l'erreur.
  • Ils font aveuglément confiance au payload : Un payload est une capture instantanée au moment de l'envoi. Le consentement, l'éligibilité et les dépenses peuvent changer avant qu'une nouvelle tentative n'aboutisse des heures plus tard.
  • Ils négligent la récupération : Les démos basées sur des cas idéaux ne montrent pas les livraisons en double, le réordonnancement ou un destinataire en panne pendant le service du samedi.

Voici une fiche de travail destinée aux responsables IT, des données et CRM dans les restaurants, les hôtels et les espaces de vente au détail. Vous y trouverez les mécanismes clés, une comparaison critère par critère, une recommandation événement par événement et la conception de récepteur que nous souhaiterions faire valider avant tout lancement multi-site. L'objectif n'est pas de désigner un gagnant entre webhook vs API. Il s'agit d'arrêter les campagnes en double et les parcours clients manqués.

Ce que font réellement les webhooks et les API

Commencez par déterminer qui initie l'appel. Ce simple fait explique la plupart des compromis qui en découlent.

Une API utilise un modèle pull. Votre client envoie une requête HTTP lorsqu'il a besoin de données ou souhaite effectuer une action, et le serveur répond. Un webhook utilise un modèle push. Le système source envoie une requête HTTP à un point d'accès que vous avez préconfiguré lorsqu'un événement se produit, comme un achat, une réservation, un opt-in ou une mise à jour de compte. Cette distinction est exposée dans l'étude State of Webhooks de Svix sur l'adoption par les fournisseurs d'API.

L'analogie avec l'établissement fonctionne très bien. Une API, c'est comme demander le menu au serveur quand vous le souhaitez. Un webhook, c'est le serveur qui vous apporte votre plat lorsqu'il est prêt, sans que vous n'ayez à l'interpeller.

Une infographie éducative comparant la façon dont les webhooks poussent les données par rapport à la façon dont les API les extraient, en utilisant des analogies de restaurant.

Les mécanismes que vous configurez

Les deux modèles utilisent le protocole HTTP, transportent généralement des charges utiles JSON, transmettent des métadonnées dans les en-têtes et communiquent le succès ou l'échec via des codes de réponse. La direction s'inverse, tout comme la charge opérationnelle. Avec une API, vous détenez les identifiants, choisissez le moment et gérez la pagination ainsi que les limites de débit. Avec un webhook, vous exposez une URL accessible publiquement, authentifiez le trafic entrant que vous n'avez pas initié, et devez répondre rapidement sous une charge que vous ne contrôlez pas.

  • Vente POS : La caisse envoie un webhook lorsqu'une transaction se termine, permettant ainsi d'initier un reçu ou un parcours d'évaluation sans interroger chaque caisse.
  • Historique de séjour : Votre plateforme appelle l'API du PMS pour récupérer les séjours passés d'un client, régulariser un départ ou compléter une semaine manquante.
  • Actualisation de segment : Une plateforme marketing extrait les enregistrements mis à jour via une API selon un calendrier défini, plutôt que de réagir à chaque changement de champ.

Ce sont des couches complémentaires et non des substituts. Des recherches examinant 100 fournisseurs d'API établis ont révélé que 83 % proposaient un service de webhook dans l'étude de 2023, et un suivi a montré une adoption montant à 85 %, comme le documente l'étude State of Webhooks. Les fournisseurs ne remplacent pas les API par des webhooks. Ils ajoutent la livraison d'événements par-dessus.

Le côté push implique également des obligations inexistantes du côté pull. Un endpoint webhook doit vérifier les signatures, tolérer les livraisons en double et journaliser chaque événement pour un rapprochement ultérieur, car la source déclenchera à nouveau l'envoi, que vous soyez prêt ou non.

Si vous acheminez les deux via une infrastructure partagée, il est utile de comprendre ce qu'est une passerelle d'API selon GoReplay, car les passerelles gèrent souvent l'authentification, la limitation de débit et le routage pour le trafic API, tandis que les récepteurs de webhooks nécessitent leur propre vérification et mise en file d'attente en amont.

Dessinez l'architecture sur un tableau blanc avant de valider une conception. Identifiez l'initiateur sur chaque flèche. Si votre équipe ne peut pas préciser qui appelle qui pour une connexion WiFi par rapport à une recherche d'historique de séjour, vous n'êtes pas prêt à comparer des fournisseurs.

Comparaison des webhooks et des API selon les critères essentiels

Oubliez les listes génériques de pour et de contre. Évaluez les deux modèles en fonction de la direction, de la latence, du volume de requêtes, du comportement en cas d'échec, de l'exposition à la sécurité et de la gouvernance. Le graphique ci-dessous présente visuellement ces six critères avant le tableau détaillé.

Un tableau comparatif détaillant les différences entre les Webhooks et les API selon six critères techniques clés.

Webhook vs API selon les critères d'intégration

Critère Webhook API
Direction du trafic La source envoie vers votre point de terminaison lors d'un événement Le client extrait de la source à la demande
Latence Quasi temps réel, estimée à moins d'une seconde dans la comparaison ci-dessous Limitée par votre intervalle d'interrogation (polling)
Volume de requêtes Requêtes principalement en cas de modifications Appels répétés même si rien n'a changé
Panne et récupération Au moins une fois, tentatives de réémission, doublons possibles Le client réessaie à tout moment, réconciliation plus facile
Exposition à la sécurité Récepteur accessible publiquement, messages falsifiés et rejoués possibles Authentifiez et autorisez chaque requête client
Gouvernance Vérifications de signature, journaux en ajout seul, gestion des messages non distribués Portées (scopes), limites de débit, audit des lectures et écritures

Les lignes de latence et de volume sont là où le calcul du polling devient brutal. Dans une comparaison représentative dans la documentation Hook0 comparant les webhooks et le polling, un polling de 60 secondes produit un délai moyen de 30 secondes et environ 14,4 millions d'appels API par jour lors d'une vérification toutes les secondes dans un scénario à fort volume. Réduire à un polling de 5 secondes donne une moyenne de 2,5 secondes mais augmente le trafic à environ 172,8 millions d'appels par jour, selon cette même comparaison. Ce sont des calculs de scénario et non des benchmarks universels, mesurez donc la latence des fournisseurs, la fréquence des événements et les limites de débit dans votre propre région. La tendance reste claire. Vous ne pouvez pas atteindre le temps réel à bas coût en utilisant le polling.

L'échec et la récupération fonctionnent dans les deux sens. Le polling est prévisible et récupérable. Si une récupération échoue, vous effectuez une nouvelle tentative et vous réconciliez. Les webhooks exigent une mise en file d'attente, des contrôles de contre-pression et une gestion du rejeu, car c'est l'émetteur qui décide du moment où le trafic arrive, y compris pendant votre service le plus chargé ou votre fenêtre de déploiement.

La démonstration suivante confirme la différence de direction et de rythme avant de passer à la sécurité.

L'exposition en matière de sécurité est asymptomatique et non deux versions d'une même tâche. La sécurité des API se concentre sur l'authentification de chaque requête client. La sécurité des webhooks ajoute la défense d'un point d'accès public contre les messages forgés, rejoués, malformés et dupliqués, comme expliqué dans les conseils de SuprSend sur la sécurité des webhooks par rapport aux API. Cela implique de signer la requête brute, de valider la fraîcheur de l'horodatage, d'utiliser une comparaison en temps constant, d'imposer HTTPS et de rendre le traitement idempotent.

La gouvernance en découle. Demandez-vous si un événement entrant peut modifier en toute sécurité un profil client ou déclencher un envoi à travers plusieurs sites, fuseaux horaires et règles d'approbation. Lorsque vous examinez les intégrations Purple Engage ou tout autre catalogue, ne vous arrêtez pas à la présence d'un logo. Demandez quels événements sont poussés, lesquels vous devez extraire, à quoi ressemblent les tentatives de retransmission, et comment vous prouveriez qu'un enregistrement est correct après une interruption de service.

Quel modèle convient à chaque événement sur site

Évaluez chaque événement selon deux questions. À quelle vitesse devez-vous réagir, et quel est le coût d'une action basée sur des données obsolètes ou dupliquées ? L'image ci-dessous rappelle utilement que ces événements commencent sous forme de moments physiques dans un établissement, et non sous forme de lignes dans une base de données.

Une femme interagissant avec une borne en libre-service dans le hall d'un hôtel près d'une réception avec du personnel.

Connexions WiFi

Utilisez un webhook comme déclencheur. Un client qui vient de se connecter est présent sur place dès maintenant ; un message de bienvenue, une offre sur place ou une invitation à répondre à un sondage perdent donc de leur valeur s'ils sont retardés. Interroger régulièrement pour détecter les connexions ajoute de la latence sans aucun bénéfice.

Ne laissez pas le contenu du message créer le fichier à lui seul. Conservez l'identifiant de l'événement, puis confirmez l'identité et le consentement avant d'inscrire le client dans un parcours. Une lecture régulière par API permet de récupérer les connexions manquées lorsque votre récepteur était hors service.

Ventes POS

Les webhooks conviennent aux ventes pour la même raison, mais avec des enjeux plus élevés. Une transaction conclue peut déclencher l'envoi d'un reçu, une demande d'avis ou la mise à jour d'un segment basé sur les dépenses pendant que la visite est encore récente. Si vous évaluez une caisse telle que l'intégration Toast pour Purple Engage, vérifiez précisément quels états de transaction émettent des événements, si les remboursements et les annulations émettent des événements distincts, et comment une facture partiellement payée apparaît. Ces détails comptent plus que le mot webhook sur une fiche technique.

Le mode de défaillance ici est coûteux. Des événements de vente en double peuvent doubler le montant des dépenses, corrompre l'attribution et émettre des offres en double. Rendez les gestionnaires idempotents et considérez l'enregistrement API comme faisant foi pour la dépense finale.

Réservations et rendez-vous

Les réservations nécessitent les deux, avec une préférence pour l'API. Un webhook pour une réservation nouvelle, modifiée ou annulée vous permet de réagir rapidement, de confirmer, de rappeler ou de débloquer une étape du parcours. Cependant, l'état des réservations change constamment. La taille du groupe évolue, les horaires changent, les acompte arrivent.

Un webhook de réservation vous indique d'aller vérifier. Il ne doit pas être le dernier mot sur l'état actuel de la réservation.

Récupérez l'état actuel via l'API avant d'envoyer quoi que ce soit au client. Si vous agissez sur une charge utile précédente alors qu'un webhook d'annulation a été manqué, vous rappellerez à un client une réservation qu'il n'a plus.

Séjours hôteliers et départs

Les départs déclenchent des enquêtes post-séjour et des demandes d'avis, un webhook vous offre donc un déclenchement opportun. L'historique des séjours, les revenus des chambres et les détails de facturation relèvent de la lecture d'API. Ils sont historiques, paginés et sujets à correction après le départ.

S'appuyer uniquement sur les webhooks pour les enregistrements de séjour est l'erreur classique. Une seule panne de récepteur et des séjours entiers disparaissent de la segmentation. Utilisez la réconciliation API planifiée pour combler l'écart, et effectuez un rattrapage via l'API lorsque vous intégrez un établissement. Purple Engage, pour contexte, regroupe les connexions WiFi, les reçus de caisse (POS), les réservations et les séjours hôteliers dans un profil client unique, ce qui ne fonctionne que si chaque source dispose à la fois d'un parcours de déclenchement et d'un parcours de récupération.

Concevoir un récepteur qui ne plante pas en production

La fiabilité n'est pas une fonctionnalité fournisseur que vous achetez. C'est un ensemble de décisions que vous prenez avant la mise en service du premier site. Concevez votre système pour une livraison au moins une fois (at-least-once delivery), et non exactement une fois, et tout le reste en découlera.

Une infographie sous forme de checklist intitulée Concevoir un récepteur qui ne plante pas en production, décrivant les meilleures pratiques pour les webhooks.

Accusez réception rapidement, traitez plus tard

Authentifiez la requête, mettez-la en file d'attente de manière durable, puis renvoyez un succès. Considérez uniquement une réponse 2xx comme un accusé de réception, comme indiqué dans les recommandations Svix sur les garanties de livraison des webhooks. N'exécutez pas de segmentation, d'attribution d'offres ou d'envois de messages dans le gestionnaire de requêtes. Les gestionnaires lents provoquent des délais d'expiration, les délais d'expiration provoquent des re-tentatives, et les re-tentatives multiplient vos doublons.

Un calendrier documenté utilise des délais de 30 secondes, 2 minutes, 15 minutes, 1 heure, 4 heures, 12 heures et 24 heures, pour un total de huit tentatives sur environ 41 heures, avec un retrait exponentiel et du jitter, conformément aux directives Svix mentionnées ci-dessus. C'est la fenêtre à laquelle votre architecture doit survivre. Une nouvelle tentative qui aboutit un jour plus tard est normale, pas anormale.

Rendez les doublons inoffensifs

Stockez l'identifiant d'événement stable du fournisseur et utilisez-le comme clé d'idempotence. Si vous l'avez déjà traité, confirmez la réception et ignorez l'effet secondaire. Les livraisons épuisées sont envoyées vers une dead-letter queue avec prise en charge du rejeu, afin qu'un opérateur puisse les inspecter et les retraiter au lieu de découvrir des lacunes à travers les réclamations des clients.

Pour les équipes qui diffusent des événements en continu vers des infrastructures en aval, cette intégration webhook Kafka no-code de Streamkap est une référence utile pour transférer des événements webhook vers Kafka sans construire manuellement la couche d'ingestion. Quel que soit votre choix, la file d'attente se situe entre la réception et la logique métier. C'est essentiel.

Vérifiez avant d'accorder votre confiance

  • Vérifiez la signature HMAC sur le corps brut (raw body) : Analysez d'abord puis re-sérialisez, et vous briserez des signatures valides ou en accepterez des invalides.
  • Vérifiez la fraîcheur de l'horodatage : Une requête ancienne mais valide rejouée aujourd'hui doit être rejetée, ce qui vous protège contre le renvoi de charges utiles capturées.
  • Comparez en temps constant : Une comparaison de chaînes ordinaire peut fuiter des informations de temps (timing).
  • Autorisez par source : Une signature de votre fournisseur de réservation ne devrait pas pouvoir écrire des événements de type POS.

La standardisation s'améliore. La spécification Open Webhooks converge vers des identifiants, des horodatages et des signatures HMAC-SHA256 communs, et RFC 9421 fournit un cadre standardisé de signature de messages HTTP. N'attendez pas une adoption universelle. Implémentez ces contrôles dès maintenant.

Vérifiez à nouveau le consentement au dernier moment

La gouvernance est le domaine où le marketing d'établissement s'éloigne des conseils d'intégration génériques. Conservez des journaux d'audit en ajout seul, gérez explicitement les fuseaux horaires des établissements, respectez les exigences régionales de traitement et vérifiez à nouveau le consentement et l'éligibilité actuels immédiatement avant tout envoi ou émission d'offre. Un client peut se désinscrire entre l'événement d'origine et une nouvelle tentative 12 heures plus tard. Votre gestionnaire doit respecter le choix le plus récent, et non le payload antérieur.

Pourquoi le vrai choix combine Webhook et API

La comparaison honnête n'est pas Webhook vs API. C'est Webhook seul contre Webhook plus API. L'option Webhook seul échoue en production.

Les nouvelles tentatives créent des doublons. Les événements arrivent dans le désordre, de sorte qu'une annulation peut arriver avant la réservation qu'elle annule. Une brève interruption crée des lacunes que personne ne remarque jusqu'à ce qu'un segment sous-compte les habitués ou qu'une campagne s'attribue le mérite de visites qu'elle n'a pas générées. Les tests de référence de latence ne capturent rien de tout cela.

Le modèle de cohérence qui fonctionne

  1. Conservez l'ID d'événement du fournisseur dès la réception, avant tout traitement.
  2. Rendez chaque gestionnaire idempotent, afin qu'une seconde livraison ne modifie rien.
  3. Récupérez l'état actuel via l'API avant tout effet secondaire, message, offre, changement de segment ou utilisation.
  4. Exécutez une réconciliation planifiée par rapport à l'instantané source pour identifier les enregistrements manqués, réordonnés ou corrigés.

Considérez le webhook comme une sonnette et l'API comme le fait de vérifier qui est à la porte. Ce cadrage s'aligne avec webhook vs API pour les développeurs de WebinOne, qui couvre le choix d'implémentation côté développeur. Pour les équipes sur site, c'est la conséquence opérationnelle qui importe. Le profil client, comme la vue unifiée décrite dans les données visiteurs Purple Engage, n'est fiable que si chaque source qui l'alimente dispose d'un chemin de récupération, et pas seulement d'un déclencheur.

Test de conception : si votre récepteur était hors ligne pendant une heure lors de votre samedi le plus chargé, pourriez-vous prouver demain que chaque connexion WiFi, vente, réservation et paiement a été récupéré exactement une fois dans les faits ? Si ce n'est pas le cas, vous ne disposez pas encore d'une conception hybride.

Ignorez la réconciliation et les coûts s'accumuleront. Les parcours en double agacent les clients et gaspillent le budget des offres. Une segmentation obsolète cible des personnes venues hier comme si elles étaient inactives. L'attribution surévalue l'impact incrémental parce que les achats ont été comptabilisés deux fois ou que des passages en caisse ont été manqués. Aucun de ces problèmes n'apparaît comme une erreur d'intégration dans un tableau de bord. Ils apparaissent sous la forme d'un marketing auquel on finit lentement par ne plus croire.

Développez la solution hybride dès le départ. C'est moins spectaculaire qu'une démonstration en temps réel, mais c'est ce qui fait la différence entre une intégration qui survit à un déploiement multi-site et une intégration en laquelle votre équipe perd confiance. Choisissez les webhooks pour les signaux à faible latence, les API pour l'état d'autorité et la récupération, et refusez de déployer l'un ou l'autre seul pour tout ce qui peut envoyer un message ou émettre une offre.


Si vous planifiez un déploiement multi-sites et souhaitez que le WiFi, les caisses (POS), les réservations et les séjours alimentent un profil client unique avec des webhooks signés, une API publique et un consentement vérifié à nouveau avant tout envoi, découvrez Purple Engage et examinez ses intégrations par rapport à la liste de contrôle hybride ci-dessus. Testez votre événement le plus complexe - la vente en caisse ou le départ que vous ne pouvez pas vous permettre de dupliquer - et vérifiez si l'architecture le récupère après une panne.

More ways to bring guests back