Ricevi notifiche di eventi in tempo reale per la tua integrazione Zonos.
I webhook offrono a Zonos un modo per notificare in modo proattivo i tuoi sistemi esterni ogni volta che si verificano determinati eventi. Quando si verifica l'evento sottoscritto, Zonos invierà una richiesta HTTP POST all'URL del webhook specificato. Il corpo della richiesta conterrà i dettagli dell'evento, consentendo al tuo sistema di gestire l'evento a livello di codice.
I webhook sono utili per integrare Zonos con altre piattaforme, attivare flussi di lavoro automatizzati e mantenere i dati sincronizzati tra i sistemi in tempo reale. Ad esempio, potresti utilizzare i webhook per:
Aggiornare il tuo sistema di gestione degli ordini quando viene creato un ordine in Zonos
Avvisare il fornitore di servizi logistici quando una spedizione viene annullata
Registrare i cambiamenti di stato degli ordini internazionali a fini di controllo
Tutti i tipi di webhook disponibili sono inclusi nell'enum WebhookType. I payload di esempio per ciascuno sono disponibili nella nostra guida Tipi di eventi.
Importante: Salva il valore di secret quando crei il webhook: viene restituito solo in questa occasione e ti servirà per verificare le firme dei webhook. Consulta Verifica delle firme dei webhook qui sotto.
Ogni richiesta webhook inviata da Zonos include un header zonos-signature che ti permette di confermare che la richiesta provenga effettivamente da Zonos e che il payload non sia stato alterato durante il transito.
timestamp — l'orario, in millisecondi Unix epoch, in cui la richiesta è stata firmata.
hmac — una firma HMAC-SHA256 del corpo grezzo della richiesta JSON, calcolata utilizzando il secret del tuo webhook come chiave e codificata in Base64.
Per verificare una richiesta:
Estrai i valori timestamp e hmac dall'header zonos-signature.
Calcola la tua firma HMAC-SHA256 sul corpo della richiesta grezzo e non elaborato, utilizzando il secret ricevuto al momento della creazione del webhook.
Confronta la firma calcolata con il valore hmac utilizzando un confronto a tempo costante e rifiuta la richiesta se non corrispondono.
Facoltativamente, rifiuta le richieste in cui timestamp risale a più di qualche minuto fa, per proteggerti dalla ripetizione (replay) di una richiesta intercettata. Zonos non applica autonomamente una finestra di consegna, quindi questo controllo spetta a te.
Webhook
Ascolta gli eventi con i webhook
Ricevi notifiche di eventi in tempo reale per la tua integrazione Zonos.
I webhook offrono a Zonos un modo per notificare in modo proattivo i tuoi sistemi esterni ogni volta che si verificano determinati eventi. Quando si verifica l'evento sottoscritto, Zonos invierà una richiesta HTTP POST all'URL del webhook specificato. Il corpo della richiesta conterrà i dettagli dell'evento, consentendo al tuo sistema di gestire l'evento a livello di codice.
I webhook sono utili per integrare Zonos con altre piattaforme, attivare flussi di lavoro automatizzati e mantenere i dati sincronizzati tra i sistemi in tempo reale. Ad esempio, potresti utilizzare i webhook per:
Tipi di webhook
Tutti i tipi di webhook disponibili sono inclusi nell'enum
WebhookType. I payload di esempio per ciascuno sono disponibili nella nostra guida Tipi di eventi.Creazione di webhook
Per creare un webhook tramite API:
mutation WebhookCreate($input: WebhookCreateInput!) {webhookCreate(input: $input) {idurltypestatussecretheaders {key}}}Modifica i dettagli del webhook
Per modificare un webhook esistente tramite API:
mutation WebhookUpdate($input: WebhookUpdateInput!) {webhookUpdate(input: $input) {idurltypestatus}}Verifica delle firme dei webhook
Ogni richiesta webhook inviata da Zonos include un header
zonos-signatureche ti permette di confermare che la richiesta provenga effettivamente da Zonos e che il payload non sia stato alterato durante il transito.Il valore dell'header ha il seguente formato:
timestamp— l'orario, in millisecondi Unix epoch, in cui la richiesta è stata firmata.hmac— una firma HMAC-SHA256 del corpo grezzo della richiesta JSON, calcolata utilizzando il secret del tuo webhook come chiave e codificata in Base64.Per verificare una richiesta:
timestampehmacdall'headerzonos-signature.hmacutilizzando un confronto a tempo costante e rifiuta la richiesta se non corrispondono.timestamprisale a più di qualche minuto fa, per proteggerti dalla ripetizione (replay) di una richiesta intercettata. Zonos non applica autonomamente una finestra di consegna, quindi questo controllo spetta a te.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);}Visualizza i log dei webhook
Per visualizzare i log dei webhook tramite API:
query WebhookLogs($first: Int$after: String$filter: WebhookLogsFilterInput) {webhookLogs(first: $first, after: $after, filter: $filter) {edges {node {idtypeurlcreatedAtresponseStatus}}}}WebhookCreateInput WebhookLogsFilterInput WebhookUpdateInput
webhookCreate webhookUpdate
Questa pagina è stata utile?