Webhooks
Last updated
Was this helpful?
Last updated
Was this helpful?
Les Webhooks sont conçus pour communiquer des mises à jour d'état en temps réel, telles que des notifications de paiement réussi. Il s'agit essentiellement d'URL que Moneroo appelle pour fournir l'ID d'un objet mis à jour. DÚs réception de l'appel, vous devez récupérer le dernier statut et le traiter s'il y a eu des changements.
Moneroo peut envoyer des Webhooks pour alerter votre application chaque fois qu'un Ă©vĂ©nement se produit sur votre compte. Ceci est particuliĂšrement utile pour les Ă©vĂ©nements tels que les transactions Ă©chouĂ©es ou rĂ©ussies. Ce mĂ©canisme est Ă©galement utile pour les services qui ne sont pas directement responsables de la crĂ©ation d'une requĂȘte d'API, mais qui ont besoin de la rĂ©ponse Ă cette requĂȘte. Vous pouvez spĂ©cifier les URLs du Webhook oĂč vous souhaitez ĂȘtre notifiĂ©.
Lorsqu'un Ă©vĂ©nement se produit, Moneroo vous envoie un objet contenant tous les dĂ©tails de l'Ă©vĂ©nement via une requĂȘte HTTP POST aux URLs dĂ©finies.
Voici les événements que nous déclenchons actuellement.
D'autres seront ajoutés au fur et à mesure que nous étendrons nos actions à l'avenir.
payment.initiated
Déclenché lorsqu'un nouveau paiement est initié.
payment.success
Déclenché lorsqu'un paiement se termine avec succÚs.
payment.failed
Déclenché lorsqu'un paiement échoue.
payment.cancelled
Déclenché lorsqu'un paiement est annulé.
payout.initiated
Déclenché lorsqu'un transfert est initié.
payout.success
Déclenché lorsqu'un transfert se termine avec succÚs.
payout.failed
Déclenché lorsqu'un transfert échoue.
Vous pouvez utiliser ces types d'événements dans votre application pour déclencher des actions spécifiques lorsque Moneroo émet ces événements.
Tous les contenus des Webhooks suivent une structure de base cohérente, comprenant deux éléments principaux :
Event : Le type d'événement qui s'est produit.
Data : Les données associées à l'événement. Le contenu de cet objet varie en fonction de l'événement, mais il contient généralement les détails de l'événement, y compris :
un id contenant l'ID de la transaction.
un status, décrivant l'état du paiement de la transaction, le paiement ou les détails du client, le cas échéant.
Exemple
Nous ne fournissons pas d'informations complĂštes par le biais du Webhook, vous devrez donc rĂ©cupĂ©rer le dernier statut de l'objet par une requĂȘte pour retrouver un paiement/payout.
Pour configurer les Webhooks, naviguez dans le tableau de bord de votre application, accédez à la section Développeurs et cliquez sur l'onglet Webhooks.
Vous pouvez ajouter un nouveau Webhook en cliquant sur le bouton Ajouter un Webhook et en remplissant le formulaire avec les détails suivants :
URL : L'URL du Webhook.
Secret : La clé secrÚte utilisée pour signer la charge utile du Webhook.
La clé secrÚte est utilisée pour signer le Webhook, ce qui vous permet de vérifier que le Webhook provient réellement de Moneroo.
Vous pouvez ajouter un maximum de 15 Webhooks par application.
Vous pouvez également activer, désactiver ou supprimer un Webhook existant en cliquant sur les boutons correspondants.
Le Webhook est envoyĂ© sous la forme d'une requĂȘte POST Ă l'URL que vous avez spĂ©cifiĂ©e. Le corps de la requĂȘte contient du JSON et des informations sur l'Ă©vĂ©nement qui s'est produit. Assurez-vous que votre point d'accĂšs peut accepter les requĂȘtes POST et analyser les donnĂ©es utiles JSON.
Lorsque Moneroo envoie un Webhook à votre URL, il inclut un corps en format JSON détaillant l'événement.
Par exemple, voici un corps de réponse pour l'événement payment.success
âŁÂ :
Vous pouvez utiliser le champ event
dans le contenu de la requĂȘte pour dĂ©terminer l'action que votre application doit entreprendre.
Pour accuser rĂ©ception d'un Webhook, votre point d'accĂšs doit renvoyer un code d'Ă©tat HTTP 200. Tout autre code de rĂ©ponse, y compris les codes 3xx, sera considĂ©rĂ© comme un Ă©chec. Nous ne tenons pas compte du corps de la rĂ©ponse ni des en-tĂȘtes.
Si votre point d'accĂšs ne renvoie pas un code d'Ă©tat HTTP 200 ou ne rĂ©pond pas dans les 3 secondes, nous rĂ©essayerons le Webhook jusqu'Ă 3 fois avec un dĂ©lai de 10 minutes entre chaque tentative.Les frameworks web tels que Rails, Laravel ou Django vĂ©rifient gĂ©nĂ©ralement que chaque requĂȘte POST contient un jeton CSRF.
Bien qu'il s'agisse d'une fonctionnalitĂ© de sĂ©curitĂ© utile contre la falsification des requĂȘtes intersites, vous devrez exempter le point de terminaison du Webhook de la protection CSRF pour garantir le fonctionnement du Webhook.
Lorsque vous recevez un Webhook, vous devez en vĂ©rifier l'origine. Chaque demande de Webhook comprend un en-tĂȘte X-Moneroo-Signature
. La valeur de cet en-tĂȘte est une signature gĂ©nĂ©rĂ©e Ă l'aide du secret de signature de votre Webhook et du corps du Webhook.
Pour vĂ©rifier la signature, vous devez calculer la signature de votre cĂŽtĂ© et la comparer Ă la valeur de l'en-tĂȘte X-Moneroo-Signature
.
La signature est calculée en utilisant HMAC-SHA256 avec le secret de signature du Webhook comme clé et le corps comme valeur.
Si la signature est valide, la rĂ©ponse doit ĂȘtre un code d'Ă©tat 200 OK. Si elle n'est pas valide, la rĂ©ponse doit ĂȘtre 403 Forbidden.
Veuillez remplacer 'your_webhook_signing_secret'
, 'your_payload'
et 'header_value'
par vos valeurs rĂ©elles. Pour les exemples en Node.js, Java et Go, vous devez obtenir le corps de la requĂȘte et la valeur de l'en-tĂȘte Ă partir de votre objet de requĂȘte HTTP.
Ne vous fiez pas uniquement aux Webhooks : Veillez à disposer d'une stratégie de sauvegarde, telle qu'une tùche d'arriÚre-plan qui vérifie à intervalles réguliers l'état des transactions en attente. Cela peut s'avérer utile en cas de défaillance de votre point d'accÚs au Webhook.
Utilisez un hachage secret : L'URL de votre Webhook est publique, n'importe qui peut envoyer une fausse charge utile. Nous recommandons d'utiliser un hachage secret pour authentifier les demandes.
Toujours réinterroger : Vérifiez les détails reçus avec notre API pour garantir l'intégrité des données. Par exemple, lors de la réception d'une notification de paiement réussie, utilisez notre point de terminaison de vérification de transaction pour vérifier le statut de la transaction.
RĂ©pondre rapidement : Votre point d'accĂšs au Webhook doit rĂ©pondre dans un certain dĂ©lai pour Ă©viter les Ă©checs et les nouvelles tentatives. Ăvitez d'exĂ©cuter des tĂąches de longue haleine dans votre point de terminaison du Webhook afin d'Ă©viter les dĂ©passements de dĂ©lai. RĂ©pondez immĂ©diatement avec un code d'Ă©tat 200, puis exĂ©cutez toutes les tĂąches longues de maniĂšre asynchrone.
GĂ©rer les doublons : Dans certains cas, les Webhooks peuvent ĂȘtre transmis plusieurs fois. Par exemple, si nous ne recevons pas de rĂ©ponse de votre point d'accĂšs, nous relançons le Webhook. Assurez-vous que votre point d'accĂšs peut gĂ©rer des notifications de Webhooks en double.
Gérer les échecs : En cas d'échec de votre point de terminaison, nous réessayerons le Webhook jusqu'à trois fois, avec un délai de 10 minutes entre chaque tentative. Si toutes les tentatives échouent, nous cessons d'essayer et marquons le Webhook comme ayant échoué. Vous pouvez consulter les Webhooks qui ont échoué dans votre tableau de bord.