Recevez des notifications d'événements en temps réel pour votre intégration Zonos.
Les webhooks permettent à Zonos de notifier proactivement vos systèmes externes lorsque certains événements se produisent. Lorsque l'événement souscrit se produit, Zonos envoie une requête HTTP POST à l'URL webhook que vous spécifiez. Le corps de la requête contiendra les détails de l'événement, permettant à votre système de le traiter par programmation.
Les webhooks sont utiles pour intégrer Zonos avec d'autres plateformes, déclencher des flux de travail automatisés et maintenir la synchronisation des données entre systèmes en temps réel. Par exemple, vous pourriez utiliser les webhooks pour :
Mettre à jour votre système de gestion des commandes lorsqu'une commande est créée dans Zonos
Notifier votre prestataire de fulfillment lorsqu'un envoi est annulé
Enregistrer les changements de statut des commandes internationales à des fins d'audit
Tous les types de webhooks disponibles sont inclus dans l'énumération WebhookType. Des exemples de payload pour chacun se trouvent dans notre guide Types d'événements.
Important : Enregistrez la valeur du secret lors de la création du webhook — elle n'est retournée qu'à ce moment-là, et vous en aurez besoin pour vérifier les signatures des webhooks. Consultez Vérifier les signatures des webhooks ci-dessous.
Chaque requête webhook envoyée par Zonos inclut un en-tête zonos-signature qui vous permet de confirmer que la requête provient bien de Zonos et que la charge utile n'a pas été altérée pendant le transit.
timestamp — l'heure, en millisecondes depuis l'epoch Unix, à laquelle la requête a été signée.
hmac — une signature HMAC-SHA256 du corps brut de la requête JSON, calculée à l'aide du secret de votre webhook comme clé et encodée en Base64.
Pour vérifier une requête :
Extrayez les valeurs timestamp et hmac de l'en-tête zonos-signature.
Calculez votre propre signature HMAC-SHA256 sur le corps brut, non analysé, de la requête, à l'aide du secret que vous avez reçu lors de la création du webhook.
Comparez votre signature calculée à la valeur hmac à l'aide d'une comparaison en temps constant, et rejetez la requête si elles ne correspondent pas.
Vous pouvez éventuellement rejeter les requêtes dont le timestamp date de plus de quelques minutes, afin de vous protéger contre la relecture (replay) d'une requête interceptée. Zonos n'impose pas lui-même de fenêtre de livraison ; cette vérification vous incombe donc.
Remarque : Si vous avez configuré des en-têtes personnalisés sur votre webhook, ceux-ci sont également inclus tels quels dans chaque requête, en plus de zonos-signature.
Webhooks
Écouter les événements avec les webhooks
Recevez des notifications d'événements en temps réel pour votre intégration Zonos.
Les webhooks permettent à Zonos de notifier proactivement vos systèmes externes lorsque certains événements se produisent. Lorsque l'événement souscrit se produit, Zonos envoie une requête HTTP POST à l'URL webhook que vous spécifiez. Le corps de la requête contiendra les détails de l'événement, permettant à votre système de le traiter par programmation.
Les webhooks sont utiles pour intégrer Zonos avec d'autres plateformes, déclencher des flux de travail automatisés et maintenir la synchronisation des données entre systèmes en temps réel. Par exemple, vous pourriez utiliser les webhooks pour :
Types de webhooks
Tous les types de webhooks disponibles sont inclus dans l'énumération
WebhookType. Des exemples de payload pour chacun se trouvent dans notre guide Types d'événements.Créer des webhooks
Pour créer un webhook via l'API :
mutation WebhookCreate($input: WebhookCreateInput!) {webhookCreate(input: $input) {idurltypestatussecretheaders {key}}}Modifier les détails d'un webhook
Pour modifier un webhook existant via l'API :
mutation WebhookUpdate($input: WebhookUpdateInput!) {webhookUpdate(input: $input) {idurltypestatus}}Vérifier les signatures des webhooks
Chaque requête webhook envoyée par Zonos inclut un en-tête
zonos-signaturequi vous permet de confirmer que la requête provient bien de Zonos et que la charge utile n'a pas été altérée pendant le transit.La valeur de l'en-tête a le format suivant :
timestamp— l'heure, en millisecondes depuis l'epoch Unix, à laquelle la requête a été signée.hmac— une signature HMAC-SHA256 du corps brut de la requête JSON, calculée à l'aide du secret de votre webhook comme clé et encodée en Base64.Pour vérifier une requête :
timestampethmacde l'en-têtezonos-signature.hmacà l'aide d'une comparaison en temps constant, et rejetez la requête si elles ne correspondent pas.timestampdate de plus de quelques minutes, afin de vous protéger contre la relecture (replay) d'une requête interceptée. Zonos n'impose pas lui-même de fenêtre de livraison ; cette vérification vous incombe donc.const crypto = require("crypto");function verifyZonosWebhook(rawBody, signatureHeader, secret) {const [timestampPart, hmacPart] = signatureHeader.split(",");const receivedHmac = hmacPart.split("=")[1];const expectedHmac = crypto.createHmac("sha256", secret).update(rawBody).digest("base64");const receivedBuffer = Buffer.from(receivedHmac);const expectedBuffer = Buffer.from(expectedHmac);if (receivedBuffer.length !== expectedBuffer.length) {return false;}return crypto.timingSafeEqual(receivedBuffer, expectedBuffer);}Consulter les journaux de webhooks
Pour consulter les journaux de webhooks via l'API :
query WebhookLogs($first: Int$after: String$filter: WebhookLogsFilterInput) {webhookLogs(first: $first, after: $after, filter: $filter) {edges {node {idtypeurlcreatedAtresponseStatus}}}}WebhookCreateInput WebhookLogsFilterInput WebhookUpdateInput
webhookCreate webhookUpdate
Cette page a-t-elle été utile?