Types de webhooks
Metronome envoie ces types de webhooks : Notifications de seuilalerts.<notification_type>
Les notifications de seuil surveillent les métriques en temps réel et se déclenchent lorsque des seuils définis sont franchis. Consultez notre documentation sur les notifications de seuil pour en savoir plus sur la configuration de ces types de notifications
Les notifications de seuil ont cette structure :
contract.<notification_type>
commit.<notification_type>
credit.<notification_type>
Les notifications système surveillent quand des événements ou des actions se produisent en fonction de l’horodatage configuré d’un objet (par exemple, le début d’un contrat) ou de l’heure à laquelle une action s’est produite (par exemple, la création d’un contrat). Consultez notre documentation sur les notifications système pour en savoir plus sur la configuration de ces types de notifications
Les notifications système ont cette structure :
invoice.finalized
Déclenché chaque fois qu’une facture est finalisée (se produit après la période de grâce).
Les notifications de finalisation de facture ont cette structure :
CONFIGURATION DES NOTIFICATIONSParlez à votre représentant Metronome pour configurer les notifications
invoice.finalized.invoice.billing_provider_error
Les webhooks d’erreur de fournisseur de facturation s’appliquent uniquement à Stripe et sont déclenchés chaque fois qu’il y a une erreur dans l’envoi d’une facture à Stripe (par exemple, le client n’existe pas dans Stripe ou le client n’a pas de méthode de paiement valide). Aucune configuration supplémentaire n’est nécessaire pour ce webhook ; les notifications sont envoyées automatiquement lorsqu’une destination de webhook est configurée et que l’intégration Stripe est activée sur le compte. Notez qu’aucun webhook Metronome n’est déclenché pour les erreurs résidant entièrement dans Stripe (comme les échecs de paiement).
Les notifications d’erreur de fournisseur de facturation ont cette structure :
integration.issue
Les webhooks de problème d’intégration sont déclenchés lorsqu’il y a une erreur avec l’intégration tierce du client (par exemple, identifiants invalides, connexions mal configurées ou erreurs API). Aucune configuration supplémentaire n’est nécessaire ; les notifications sont envoyées automatiquement lorsqu’une destination de webhook est configurée et que l’intégration est activée.
Les notifications de problème d’intégration ont cette structure :
marketplaces.aws_metering_disabled
Déclenché lorsqu’un client du marketplace AWS est désactivé
Les notifications de mesure du marketplace AWS ont cette structure :
marketplaces.azure_metering_disabled
Déclenché lorsqu’un client du marketplace Azure est désactivé
Les notifications de mesure du marketplace Azure ont cette structure :
marketplaces.gcp_metering_disabled
Déclenché lorsqu’un client du marketplace GCP est désactivé
Les notifications de mesure du marketplace GCP ont cette structure :
Notifications de gating de paiement
Les notifications de gating de paiement sont liées à des workflows spécifiques dans Metronome qui conditionnent l’accès à un produit (par exemple, le solde d’engagement) en fonction de la collecte réussie du paiement. Seuil de paiement atteint Ce webhook est déclenché lorsqu’une action de gating de paiement est déclenchée, par exemple lorsqu’un client atteint sonthreshold_amount pour la facturation par seuil.
Statut de la barrière de paiement
Après une tentative de paiement pour un workflow de barrière de paiement, ce webhook renvoie le statut. Il inclut les métadonnées pertinentes de la passerelle, telles que les codes d’erreur, le cas échéant.
Action requise pour la barrière de paiement
Ce webhook est déclenché si une action supplémentaire est nécessaire pour compléter le paiement. Il inclut les métadonnées pertinentes pour identifier le paiement associé dans la passerelle, le cas échéant.
Workflow externe initié
Si le traitement du paiement passe par une passerelle externe en dehors d’une intégration native Metronome, ce webhook vous fournira les informations pour traiter cette transaction. Le workflow_id fourni est utilisé pour libérer ou annuler le solde, en attendant le résultat du paiement.
Les notifications de gating de paiement ont cette structure :
Statut de la barrière de paiement
Statut de la barrière de paiement
Action requise pour la barrière de paiement
Action requise pour la barrière de paiement
Seuil atteint
Seuil atteint
Workflow externe initié
Workflow externe initié
Adresses IP des webhooks
Les notifications webhook peuvent provenir des adresses IP suivantes. Cette liste peut changer, mais si c’est le cas, nous donnerons un préavis d’au moins 30 jours.Gérer les notifications webhook
Pour recevoir les webhooks Metronome, vous avez besoin d’un gestionnaire de webhook écoutant sur une URL HTTPS accessible publiquement qui effectue les tâches ci-dessous.Accuser réception de la notification
Lors de la réception d’une notification, votre point de terminaison doit renvoyer un code de statut de réussite, comme200 OK. Si Metronome reçoit un code de statut > 299, des tentatives de notification sont effectuées jusqu’à ce qu’un code de statut de réussite soit renvoyé.
Si votre point de terminaison webhook n’accuse pas correctement réception de la notification, Metronome la retente en continu avec un backoff exponentiel jusqu’à atteindre une cadence de réessai de 15 minutes. Une fois que le processus de réessai atteint 15 minutes, Metronome répète la notification jusqu’à ce qu’elle soit acceptée ou que deux jours se soient écoulés depuis la tentative de notification initiale (~200 réessais).
Il est recommandé de traiter les webhooks de manière asynchrone : stockez la charge utile du webhook dans une file d’attente, renvoyez un code de réponse 200, puis seulement validez ou traitez la charge utile. Retirer le traitement webhook du chemin de réception réduit le risque de blocage de vos systèmes.
Préparez-vous aux notifications en double
Dans des circonstances normales, Metronome envoie chaque notification exactement une fois. Cependant, il y a quelques situations qui pourraient vous amener à recevoir la même notification plusieurs fois :- Réessais — comme mentionné ci-dessus, si Metronome reçoit une erreur en tentant de livrer la notification à votre gestionnaire de webhook, nous retentons la notification. Selon la nature de l’erreur, il est possible que votre point de terminaison reçoive une notification sans l’accuser, auquel cas votre point de terminaison recevra à nouveau la même notification.
- Plusieurs URL de webhook — si vous configurez Metronome pour notifier plusieurs URL de webhook, ou même la même URL plusieurs fois, les notifications sont envoyées plusieurs fois. Si vous voulez vous assurer que les notifications en double sont ignorées, vous pouvez utiliser le champ
idde la notification pour dédupliquer.
Vérifier les notifications
Étant donné que votre point de terminaison webhook est une URL publique, n’importe qui peut lui envoyer une requête. Avant de prendre des actions basées sur la notification, vous devez vérifier les informations qu’elle contient. Vous pouvez le faire de deux manières : en récupérant vous-même les données de l’API Metronome ou en vérifiant la signature de la requête webhook.INFOMetronome peut introduire des modifications rétrocompatibles aux formes de webhook existantes sans préavis, comme l’ajout d’un nouveau champ webhook. Metronome recommande de ne valider que les champs qui sont censés être présents selon la documentation au moment de l’intégration.
Appelez l’API Metronome
Les notifications webhook ne contiennent que des informations minimales sur l’événement qui s’est produit. Cela signifie qu’il est souvent utile d’appeler le point de terminaison API Metronome approprié pour obtenir les détails complets. Par exemple, si vous recevez une notification webhook vous informant qu’une facture a été finalisée, vous pouvez appeler le point de terminaison/customers/{customer_id}/invoices/{invoice_id} pour récupérer les détails de la facture mentionnée dans la notification. Ainsi, la notification sert d’indice que quelque chose a changé, mais votre code ne dépend que des données obtenues directement de l’API Metronome.
Vérifier les signatures
Si la stratégie ci-dessus ne fonctionne pas pour votre cas d’usage, Metronome fournit également une méthode pour vérifier l’authenticité des notifications au fur et à mesure que vous les recevez en utilisant l’en-tête HTTPMetronome-Webhook-Signature. La valeur de cet en-tête est une signature cryptographique de la requête HTTP, utilisant une clé secrète configurée lorsque vous configurez votre webhook.
Pour valider la signature, concaténez d’abord la valeur de l’en-tête X-Metronome-Date de la requête et les octets exacts du corps de la requête, séparés par un caractère de nouvelle ligne (\n). Calculez ensuite le HMAC-SHA256 de la chaîne résultante, en utilisant la clé secrète du webhook comme clé. Enfin, comparez la représentation hexadécimale du HMAC que vous avez calculé avec celle trouvée dans l’en-tête Metronome-Webhook-Signature. Si elles ne correspondent pas, la notification webhook ne provient pas de Metronome.
X-Metronome-Date est inclus pour aider à la déduplication. Vous devez ignorer les requêtes webhook qui ont plus de cinq minutes, ce qui signifie que votre gestionnaire de webhook n’a qu’à stocker les ID de notification récents pour éviter les doublons.
L’exemple de code suivant montre comment effectuer la validation de signature :
correct-horse-battery-staple :
Envoyer des webhooks à Slack
Si vous voulez recevoir les notifications Metronome dans Slack sans construire de gestionnaire webhook personnalisé, vous pouvez configurer Metronome pour envoyer les notifications directement à un canal Slack. À partir de là, vous pouvez les trier et agir sur elles. Pour envoyer les webhooks Metronome à Slack : Pour envoyer les webhooks Metronome à Slack :- Créez un webhook entrant dans Slack et copiez l’URL de webhook générée. Elle ressemblera à :
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX - Créez une destination de webhook dans Metronome pour votre canal Slack. Dans l’application Metronome, allez à Connections > API tokens & webhooks > Webhooks > Add et collez votre URL de webhook Slack.
- Configurez une notification de test pour vérifier l’intégration. Dans l’application Metronome, allez à Connections > Notifications > Create Notification et créez une notification telle que Low credit balance reached.
- Vérifiez l’intégration en testant la connexion webhook. Déclenchez votre notification de test et vérifiez votre canal Slack pour un message de Metronome.