Aller au contenu principal

Webhooks

Guide de l'organisateur 6 min de lecture

Les articles d'aide peuvent ne pas être parfaitement exacts — mises à jour fréquentes et traduction automatique peuvent les décaler de l'application. En cas de doute, contactez le support.

Un webhook prévient votre propre système dès qu’un événement se produit dans EventMann, sans que vous ayez à interroger en permanence. EventMann envoie une requête HTTPS à une adresse de votre choix à chaque fois qu’un événement auquel vous êtes abonné survient : une réservation est confirmée, une commande est remboursée, un événement est publié. Les webhooks se trouvent dans l’onglet Webhooks de Intégrations, dans la barre latérale.

  1. Ouvrez Intégrations et cliquez sur l’onglet Webhooks.
  2. Cliquez sur Ajouter un webhook pour créer un point de terminaison.
  3. La colonne Statut indique Actif ou Désactivé, avec le code HTTP de la dernière tentative.
  4. Un point de terminaison désactivé propose Réactiver.

Ajouter un point de terminaison

  1. Donnez-lui un Nom, pour votre usage personnel.
  2. Saisissez l’URL du point de terminaison, une adresse web publique qui accepte une requête POST.
  3. Cochez les événements souhaités sous S’abonner aux événements. Au moins un est requis.
  4. Cliquez sur Ajouter un webhook. Une clé secrète de signature de 64 caractères est créée pour vous.

Les événements que vous pouvez choisir

Le formulaire liste quinze événements, et chacun d’eux est envoyé :

ÉvénementEnvoyé lorsque
booking.createdUne commande prend existence : au moment du paiement pour les commandes gratuites et les demandes d’approbation, à l’étape de paiement pour les commandes payantes.
booking.confirmedUne commande est confirmée : payée, gratuite ou saisie manuellement.
payment.receivedUn paiement est crédité. Il est envoyé en même temps que booking.confirmed, y compris pour les commandes gratuites.
booking.cancelledUne commande est annulée : par l’acheteur, par vous ou votre équipe, ou par le support EventMann. cancelled_by indique qui (attendee, organizer ou admin).
booking.refundedUne commande est remboursée intégralement.
payment.refundedUn remboursement est crédité, y compris les remboursements partiels. Un envoi par remboursement, avec son montant.
event.createdUn événement est créé, quelle qu’en soit la méthode (assistant, copie, série récurrente).
event.updatedLes détails d’un événement changent : titre, description, image, dates, lieu ou adresse, lien en ligne, période de vente, visibilité. changed liste les champs. Un changement de statut n’est pas une mise à jour ; il dispose de ses propres événements.
event.publishedUn événement est publié.
event.cancelledVous annulez un événement.
ticket.checked_inUn billet est admis à l’entrée : scanné, saisi manuellement, enregistré en masse, synchronisé depuis un scanner hors ligne ou vendu et admis au guichet. Le retrait d’un billet et le marquage d’une absence ne l’envoient pas, pas plus que l’action en masse Enregistrer de la liste des commandes, qui marque des commandes entières comme arrivées sans scan à l’entrée.
staff.assignedUne personne devient membre du personnel d’un événement : vous approuvez sa candidature, ou elle accepte une invitation pour cet événement.
staff.checked_inUn membre du personnel pointe pour un créneau.
vendor.assignedVous affectez un fournisseur à un événement.
vendor.invoice_submittedUn fournisseur soumet une facture pour une affectation.

Il n’existe aucun événement de versement. Stripe verse vos ventes de billets directement sur votre propre compte, et EventMann ne crée ni ne voit ces versements.

À quoi ressemble une livraison

Chaque livraison est une requête POST avec un corps JSON de cette forme : event (le nom), data (les détails), timestamp et delivery_id. Les données de booking.confirmed comprennent le numéro de commande, la référence, le statut, le total, le nom et l’adresse e-mail du participant, l’identifiant de l’événement et l’heure de confirmation. booking.created ajoute le titre de l’événement et porte l’heure de création à la place. payment.received contient l’identifiant de la réservation, le montant, la passerelle, l’identifiant de transaction et l’heure.

La requête contient trois en-têtes : X-Webhook-Event, X-Webhook-Delivery-Id et X-Webhook-Signature. La signature est un HMAC-SHA256 du corps brut de la requête, en hexadécimal, calculé avec la clé secrète de signature de votre point de terminaison. Recalculez-la de votre côté à partir du corps brut et comparez-la avant de faire confiance à une charge utile.

Vérifier un point de terminaison

  1. Cliquez sur Envoyer un test pour envoyer un ping d’exemple à votre adresse et voir le résultat immédiatement.
  2. Événements abonnés indique ce que le point de terminaison reçoit. Utilisez Modifier pour changer le nom, l’adresse ou les événements.
  3. La Clé secrète de signature est masquée ; cliquez sur Afficher pour la révéler.
  4. Livraisons récentes liste les dernières tentatives avec l’événement, le statut, le code HTTP, la durée et l’heure. Voir tout en affiche davantage.

Nouvelles tentatives, échecs et désactivation automatique

  • Seule une réponse 2xx compte comme livraison réussie. Une redirection ou toute autre réponse est un échec ; les redirections ne sont pas suivies.
  • Une livraison en échec est retentée jusqu’à cinq fois, avec des attentes de 10, 30 puis 60 secondes entre les tentatives.
  • Lorsque toutes les tentatives d’un même événement échouent, le compteur d’échecs du point de terminaison augmente d’une unité. Dix échecs en une heure suspendent les livraisons vers ce point de terminaison pendant cinq minutes ; les livraisons attendent la fin de cette pause.
  • Si la pause est déclenchée, ou si le compteur d’échecs dépasse dix, le point de terminaison est désactivé et vous recevez une notification le nommant.
  • Une adresse qui pointe vers un réseau privé ou interne est refusée lors de la tentative de livraison. Le test affiche « Bloqué », et une livraison réelle désactive le point de terminaison.
  • L’historique des livraisons est conservé pendant 30 jours.
  1. Un point de terminaison désactivé affiche Ce point de terminaison est désactivé avec la raison.
  2. Corrigez ce qui n’allait pas chez votre récepteur, puis cliquez sur Réactiver. Le compteur d’échecs est remis à zéro ; l’adresse et la clé secrète restent les mêmes. Modifier le nom ou l’adresse ne réactive pas le point de terminaison.
  3. Réessayer sur une livraison en échec renvoie cet événement sous forme d’une nouvelle livraison à vos points de terminaison actifs actuellement abonnés à cet événement. Cela inclut vos autres points de terminaison, qui peuvent donc le recevoir deux fois.

Bon à savoir

  • L’envoi des webhooks s’exécute dans sa propre file d’attente, de sorte qu’un récepteur lent ne ralentit ni les réservations ni les e-mails de billets.
  • Décocher un événement l’arrête silencieusement. Vous ne recevez aucune notification indiquant que vous ne le recevez plus.
  • Si vous connectez un outil comme Zapier avec un jeton d’API EventMann, les abonnements qu’il crée apparaissent ici aussi, nommés d’après l’événement.
  • Les webhooks envoient à votre serveur le nom et l’adresse e-mail du participant de chaque commande. Assurez-vous que l’adresse vous appartient et que vous êtes autorisé à traiter ces données.

Dépannage

  • Les livraisons se sont arrêtées et je ne vois aucune erreur — ouvrez le point de terminaison. S’il est désactivé, corrigez le récepteur et cliquez sur Réactiver.
  • La signature ne correspond jamais — calculez le hash du corps brut exact, et non d’une copie réencodée, avec la clé secrète de la page du point de terminaison, puis comparez des textes hexadécimaux.
  • Le test fonctionne mais les événements réels n’arrivent pas — vérifiez que l’événement est coché sur ce point de terminaison, et que ce qui s’est passé correspond à la colonne « Envoyé lorsque » du tableau.
  • Je reçois deux fois le même événement — vous avez cliqué sur Réessayer, ou vous avez deux points de terminaison abonnés à cet événement. Utilisez l’identifiant de livraison pour ignorer les doublons.

Voir aussi

Besoin d'aide supplémentaire sur ce sujet ?

Contacter le support

Nous utilisons des cookies

Nous utilisons des cookies et des technologies similaires pour personnaliser le contenu, analyser le trafic et améliorer votre expérience. Vous pouvez accepter tous les cookies, refuser les non-essentiels, ou personnaliser vos préférences.