Receba notificações de eventos em tempo real para a sua integração Zonos.
Os webhooks permitem à Zonos notificar proativamente os seus sistemas externos sempre que determinados eventos ocorrem. Quando ocorre o evento subscrito, a Zonos envia um pedido HTTP POST para o URL do webhook que especificar. O corpo do pedido contém os detalhes do evento, permitindo que o seu sistema processe o evento de forma programática.
Os webhooks são úteis para integrar a Zonos com outras plataformas, acionar fluxos de trabalho automatizados e manter os dados sincronizados entre sistemas em tempo real. Por exemplo, pode utilizar webhooks para:
Atualizar o seu sistema de gestão de encomendas quando é criada uma encomenda na Zonos
Notificar o seu prestador de serviços de logística quando um envio é cancelado
Registar alterações de estado de encomendas internacionais para fins de auditoria
Todos os tipos de webhook disponíveis estão incluídos no enum WebhookType. Pode encontrar exemplos de payloads para cada um no nosso guia Tipos de eventos.
Importante: Guarde o valor de secret ao criar o webhook — só é devolvido neste momento e vai precisar dele para verificar as assinaturas dos webhooks. Consulte Verificar assinaturas de webhook abaixo.
Todos os pedidos de webhook enviados pela Zonos incluem um cabeçalho zonos-signature, para que possa confirmar que o pedido foi realmente enviado pela Zonos e que o payload não foi alterado durante o trânsito.
timestamp — o momento, em milissegundos desde a época Unix, em que o pedido foi assinado.
hmac — uma assinatura HMAC-SHA256 do corpo JSON em bruto do pedido, calculada com o segredo do seu webhook como chave e codificada em Base64.
Para verificar um pedido:
Extraia os valores de timestamp e hmac do cabeçalho zonos-signature.
Calcule a sua própria assinatura HMAC-SHA256 sobre o corpo do pedido em bruto, sem processamento, utilizando o segredo que recebeu ao criar o webhook.
Compare a assinatura calculada com o valor de hmac através de uma comparação em tempo constante e rejeite o pedido se não coincidirem.
Opcionalmente, rejeite pedidos cujo timestamp tenha mais de alguns minutos, para se proteger contra a reutilização (replay) de um pedido intercetado. A Zonos não impõe uma janela de entrega, pelo que esta verificação fica ao seu critério.
Nota: Se configurou cabeçalhos personalizados no seu webhook, estes também são incluídos tal como estão em todos os pedidos, juntamente com zonos-signature.
Webhooks
Escutar eventos com webhooks
Receba notificações de eventos em tempo real para a sua integração Zonos.
Os webhooks permitem à Zonos notificar proativamente os seus sistemas externos sempre que determinados eventos ocorrem. Quando ocorre o evento subscrito, a Zonos envia um pedido HTTP POST para o URL do webhook que especificar. O corpo do pedido contém os detalhes do evento, permitindo que o seu sistema processe o evento de forma programática.
Os webhooks são úteis para integrar a Zonos com outras plataformas, acionar fluxos de trabalho automatizados e manter os dados sincronizados entre sistemas em tempo real. Por exemplo, pode utilizar webhooks para:
Tipos de webhook
Todos os tipos de webhook disponíveis estão incluídos no enum
WebhookType. Pode encontrar exemplos de payloads para cada um no nosso guia Tipos de eventos.Criar webhooks
Para criar um webhook através da API:
mutation WebhookCreate($input: WebhookCreateInput!) {webhookCreate(input: $input) {idurltypestatussecretheaders {key}}}Editar os detalhes do webhook
Para editar um webhook existente através da API:
mutation WebhookUpdate($input: WebhookUpdateInput!) {webhookUpdate(input: $input) {idurltypestatus}}Verificar assinaturas de webhook
Todos os pedidos de webhook enviados pela Zonos incluem um cabeçalho
zonos-signature, para que possa confirmar que o pedido foi realmente enviado pela Zonos e que o payload não foi alterado durante o trânsito.O valor do cabeçalho tem o seguinte formato:
timestamp— o momento, em milissegundos desde a época Unix, em que o pedido foi assinado.hmac— uma assinatura HMAC-SHA256 do corpo JSON em bruto do pedido, calculada com o segredo do seu webhook como chave e codificada em Base64.Para verificar um pedido:
timestampehmacdo cabeçalhozonos-signature.hmacatravés de uma comparação em tempo constante e rejeite o pedido se não coincidirem.timestamptenha mais de alguns minutos, para se proteger contra a reutilização (replay) de um pedido intercetado. A Zonos não impõe uma janela de entrega, pelo que esta verificação fica ao seu critério.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);}Ver os registos de webhook
Para ver os registos de webhook através da API:
query WebhookLogs($first: Int$after: String$filter: WebhookLogsFilterInput) {webhookLogs(first: $first, after: $after, filter: $filter) {edges {node {idtypeurlcreatedAtresponseStatus}}}}WebhookCreateInput WebhookLogsFilterInput WebhookUpdateInput
webhookCreate webhookUpdate
Esta página foi útil?