Ontvang real-time eventmeldingen voor uw Zonos-integratie.
Webhooks laten Zonos uw externe systemen proactief informeren wanneer bepaalde events plaatsvinden. Bij het geabonneerde event stuurt Zonos een HTTP POST naar uw webhook-URL. De request body bevat eventdetails zodat uw systeem het programmatisch kan afhandelen.
Webhooks zijn nuttig om Zonos te integreren met andere platforms, workflows te triggeren en data real-time gesynchroniseerd te houden. Bijvoorbeeld:
Werk uw orderbeheersysteem bij wanneer een order in Zonos wordt aangemaakt
Informeer uw fulfillment provider wanneer een zending wordt geannuleerd
Log statuswijzigingen van internationale orders voor auditdoeleinden
Belangrijk: Bewaar de secret-waarde wanneer u de webhook aanmaakt — deze wordt alleen hier geretourneerd en u hebt hem nodig om webhookhandtekeningen te verifiëren. Zie Webhookhandtekeningen verifiëren hieronder.
Elk webhookverzoek dat Zonos verstuurt bevat een zonos-signature-header, zodat u kunt bevestigen dat het verzoek daadwerkelijk van Zonos afkomstig is en dat de payload onderweg niet is gewijzigd.
timestamp — het tijdstip, in Unix-epoch milliseconden, waarop het verzoek is ondertekend.
hmac — een HMAC-SHA256-handtekening van de ruwe JSON-request body, berekend met de secret van uw webhook als key en Base64-gecodeerd.
Om een verzoek te verifiëren:
Haal de waarden timestamp en hmac uit de zonos-signature-header.
Bereken uw eigen HMAC-SHA256-handtekening over de ruwe, ongeparste request body, met de secret die u ontving bij het aanmaken van de webhook.
Vergelijk uw berekende handtekening met de hmac-waarde met behulp van een constant-time vergelijking en wijs het verzoek af als ze niet overeenkomen.
Wijs desgewenst verzoeken af waarvan de timestamp ouder is dan een paar minuten, om replay van een onderschept verzoek te voorkomen. Zonos legt zelf geen bezorgvenster op, dus deze controle is aan u.
Opmerking: Als u aangepaste headers voor uw webhook hebt geconfigureerd, worden deze ook letterlijk meegestuurd bij elk verzoek, naast zonos-signature.
Webhooks
Luister naar events met webhooks
Ontvang real-time eventmeldingen voor uw Zonos-integratie.Webhooks laten Zonos uw externe systemen proactief informeren wanneer bepaalde events plaatsvinden. Bij het geabonneerde event stuurt Zonos een HTTP POST naar uw webhook-URL. De request body bevat eventdetails zodat uw systeem het programmatisch kan afhandelen.
Webhooks zijn nuttig om Zonos te integreren met andere platforms, workflows te triggeren en data real-time gesynchroniseerd te houden. Bijvoorbeeld:
Webhooktypes
Alle beschikbare webhooktypes staan in de
WebhookType-enum. Voorbeeldpayloads staan in onze Event Types-gids.Webhooks aanmaken
Om een webhook via de API aan te maken:
mutation WebhookCreate($input: WebhookCreateInput!) {webhookCreate(input: $input) {idurltypestatussecretheaders {key}}}Webhookdetails bewerken
Om een bestaande webhook via de API te bewerken:
mutation WebhookUpdate($input: WebhookUpdateInput!) {webhookUpdate(input: $input) {idurltypestatus}}Webhookhandtekeningen verifiëren
Elk webhookverzoek dat Zonos verstuurt bevat een
zonos-signature-header, zodat u kunt bevestigen dat het verzoek daadwerkelijk van Zonos afkomstig is en dat de payload onderweg niet is gewijzigd.De headerwaarde heeft de volgende indeling:
timestamp— het tijdstip, in Unix-epoch milliseconden, waarop het verzoek is ondertekend.hmac— een HMAC-SHA256-handtekening van de ruwe JSON-request body, berekend met de secret van uw webhook als key en Base64-gecodeerd.Om een verzoek te verifiëren:
timestampenhmacuit dezonos-signature-header.hmac-waarde met behulp van een constant-time vergelijking en wijs het verzoek af als ze niet overeenkomen.timestampouder is dan een paar minuten, om replay van een onderschept verzoek te voorkomen. Zonos legt zelf geen bezorgvenster op, dus deze controle is aan u.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);}Webhooklogs bekijken
Om webhooklogs via de API te bekijken:
query WebhookLogs($first: Int$after: String$filter: WebhookLogsFilterInput) {webhookLogs(first: $first, after: $after, filter: $filter) {edges {node {idtypeurlcreatedAtresponseStatus}}}}WebhookCreateInput WebhookLogsFilterInput WebhookUpdateInput
webhookCreate webhookUpdate
Was deze pagina nuttig?