Abre em uma nova aba
Título decorativo para rastreamento de webhooks

Webhook de rastreamento: explicação para desenvolvedores e varejistas online

Um webhook de rastreamento é uma mensagem HTTP push automatizada que transmite o status da remessa para outro sistema em tempo real, assim que o status muda. Em vez de consultar constantemente uma interface, o serviço de encomendas ou a plataforma de envio envia o novo status diretamente para um URL fornecido pelo destinatário. Isso economiza carga do servidor, reduz significativamente a latência em comparação com a consulta contínua (polling) e forma a base técnica para painéis de rastreamento, notificações ao cliente e processos alfandegários automatizados. As seções a seguir explicam a tecnologia subjacente, as medidas de segurança necessárias e fornecem um exemplo de código concreto.


Em resumo:

  • Os webhooks de rastreamento relatam mudanças de status em tempo real e reduzem a carga do servidor por meio de notificações push, em comparação com a consulta periódica.
  • A verificação da assinatura é realizada utilizando o corpo da requisição não modificado com HMAC-SHA256 para garantir autenticidade e integridade.
  • Os eventos de webhook recebidos são imediatamente colocados em uma fila para evitar timeouts e atrasos no processamento.
  • O sistema deve armazenar em cache os IDs de eventos e processá-los de forma idempotente para evitar, de maneira confiável, entregas duplicadas.
  • A Paket International simplifica a integração de webhooks por meio de uma interface central que reúne os eventos de envio em um painel de controle.

Pacote Internacional
Gerencie envios internacionais com mais facilidade.
A Paket International combina eventos de envio, serviços alfandegários e rastreamento de remessas em um painel transparente.

Descubra o Pacote Internacional

Conteúdo

O que é um webhook de rastreamento? Definição e eventos de rastreamento típicos.

Um webhook funciona de forma inversa a uma API tradicional. Com uma API normal, seu sistema consulta ativamente em busca de atualizações. Um webhook inverte isso: o remetente notifica você assim que algo acontece, e é por isso que esse padrão é frequentemente chamado de API reversa. Em vez de verificar com o serviço de entrega a cada minuto se há alguma novidade, seu sistema registra um endereço de recebimento uma única vez, e o remetente só fornece atualizações quando necessário.

No contexto de remessas, praticamente toda mudança de status aciona um evento separado. Os eventos de rastreamento típicos incluem:

  • A etiqueta de envio foi criada.
  • A encomenda foi recolhida pelo serviço de entregas.
  • A remessa foi escaneada em um centro de triagem.
  • A encomenda já saiu para entrega.
  • A entrega foi realizada com sucesso.

A vantagem é óbvia: atualizações em tempo real sem consultas repetidas, redução da carga de processamento em ambos os lados e uma base natural para automação. A desvantagem só se torna aparente durante a operação: seu sistema precisa estar acessível o tempo todo, absorver interrupções e lidar com mensagens duplicadas ou atrasadas. É exatamente isso que as seções a seguir abordam.

Como é estruturada a mensagem de um webhook de rastreamento?

Tecnicamente, um webhook de rastreamento é simplesmente uma requisição HTTP POST para um URL definido por você. A carga útil recebida quase sempre segue um padrão de quatro partes: um ID de evento único, um tipo de evento, um registro de data e hora e um objeto de dados contendo as informações reais da remessa. Esse formato de envelope é tão difundido na prática que se tornou sinônimo de... Padrão de facto para payloads de webhook chapéu estabelecido.

Criando uma carga útil de webhook de rastreamento

Além do corpo da mensagem, os cabeçalhos HTTP contêm informações adicionais importantes. Content‑Type: application/json Isso inclui um cabeçalho de assinatura (geralmente) X‑Signature Óder X‑Hub‑Signature‑256) e um ID de entrega, que permite distinguir tentativas de entrega individuais.

Um ponto que muitas vezes é negligenciado na prática: a assinatura deve estar acima da corpo bruto, não alterado O hash precisa ser calculado antes que qualquer biblioteca JSON o analise. Mesmo uma mudança na formatação, como espaços diferentes, leva a um hash diferente e, portanto, à rejeição incorreta da mensagem.

Como proteger um receptor de webhook?

Um destinatário só está pronto para produção quando responde de forma confiável a três perguntas: A mensagem realmente vem do remetente declarado? Ela já foi processada? O que acontece se o processamento falhar? Quem ignorar essas três perguntas, mais cedo ou mais tarde, receberá confirmações de pedidos duplicadas ou terá problemas com a declaração alfandegária.

A verificação da assinatura usando HMAC-SHA256 no corpo bruto da mensagem é o primeiro passo. O segredo compartilhado entre o remetente e o destinatário gera um hash, que o destinatário recalcula e compara. O tipo de comparação é crucial: uma comparação normal de strings com === É comprovadamente inseguro porque termina imediatamente a cada caractere incorreto, revelando assim uma diferença de tempo que os atacantes podem explorar. No Node.js, isso é tratado por... crypto.timingSafeEqual Essa tarefa é constante ao longo do tempo; em Python, o correspondente compare_digest-Função.

  • Verifique sempre a assinatura usando o texto bruto não alterado, nunca o objeto já analisado.
  • Verifique o carimbo de data/hora na carga útil em relação a uma janela de tempo de aproximadamente cinco minutos para evitar ataques de repetição com mensagens antigas, mas assinadas validamente.
  • Armazene em cache os IDs de eventos processados ​​anteriormente para evitar o processamento duplicado de entregas repetidas.
  • Para impor tecnicamente a idempotência, por exemplo, por meio de uma inserção atômica em um banco de dados com uma restrição UNIQUE ou um SET NX no Redis
  • Eventos que, após várias tentativas, falharem, devem ser movidos para uma fila de mensagens não entregues, em vez de serem descartados silenciosamente.

Essa combinação de carimbos de data/hora assinados e armazenamento em cache de IDs para proteção contra ataques de repetição também é comumente utilizada. Guias de segurança para webhooks empfohlen.

Importante para gerenciar expectativas: Quase todos os remetentes de webhooks operam com base no princípio "pelo menos uma vez", o que significa que entregam pelo menos uma vez. Na prática, isso significa que entregas duplicadas são a norma, não um erro. Um sistema que não processa de forma idempotente, mais cedo ou mais tarde, produzirá notificações de remessa duplicadas ou status alfandegários incorretos.

Dica profissional: Não exclua os IDs de eventos em cache imediatamente após o processamento, mas somente após o término do período de novas tentativas do remetente. Muitos provedores repetem as entregas com falha ao longo de várias horas ou dias, e um ID excluído prematuramente abre justamente a brecha que a verificação de idempotência deveria eliminar.

Como processar eventos de webhook sem correr o risco de timeouts?

O maior risco operacional com webhooks não é a segurança, mas sim o tempo de resposta. Os serviços de encomendas e as plataformas de envio impõem limites de tempo rigorosos: alguns provedores esperam uma resposta 2xx em poucos segundos, enquanto outros permitem até 30 segundos, como o GitHub descreve em suas próprias recomendações. Se esse prazo for excedido, o remetente considera a entrega como falha e a reenvia, inundando seu banco de dados com ainda mais duplicatas.

A solução é uma separação rigorosa entre recebimento e processamento:

  1. Verifique instantaneamente dados brutos e assinaturas sem lógica de negócios complexa.
  2. Escreva o evento em uma fila, por exemplo, usando BullMQ, Amazon SQS ou pg-boss.
  3. Imediatamente com 200 OK responder antes que o processamento propriamente dito comece.
  4. Um processo em segundo plano separado recupera a tarefa da fila e executa a lógica propriamente dita.
  5. O ID da tarefa na fila corresponde ao ID do evento, portanto a própria fila também é desduplicada.

Qualquer pessoa que processe webhooks de forma bloqueante dentro da própria requisição, mais cedo ou mais tarde, entrará em conflito com o tempo limite do remetente. Os eventos devem ser enfileirados imediatamente; o processamento em si é executado de forma assíncrona em segundo plano.

O TTL de idempotência, ou seja, o tempo que um ID de evento permanece no cache, deve ser baseado na janela de repetição real do remetente, e não em um número arbitrário. Para o planejamento de capacidade, vale a pena considerar a profundidade da fila: se ela crescer continuamente, o processo processa os eventos mais lentamente do que eles chegam, e mecanismos de contrapressão devem ser implementados antes que a memória estoure. Um alerta para a fila de mensagens não entregues (DLQ) deve ser implementado desde o início, pois uma DLQ crescente geralmente é o primeiro sinal de alerta de um problema mais sério.

Como seria um exemplo de código para receber um webhook?

Um manipulador limpo sempre segue a mesma ordem: primeiro verifica, depois armazena e, por fim, processa. O fluxo a seguir é baseado em padrões comuns do Node.js e pode ser adaptado para qualquer linguagem que suporte HMAC e operações atômicas em bancos de dados.

  1. Leia o corpo da solicitação em seu formato bruto não modificado, sem analisá-lo previamente.
  2. Extraia a assinatura enviada do cabeçalho.
  3. Utilizando o segredo compartilhado, calcule a assinatura HMAC-SHA256 esperada a partir do texto bruto.
  4. Compare ambas as assinaturas usando uma função de tempo constante, nunca usando um operador de igualdade simples.
  5. Analise o corpo da mensagem como JSON somente após a verificação bem-sucedida.
  6. Escreva o ID do evento atomicamente no banco de dados, por exemplo, usando uma restrição UNIQUE que rejeita automaticamente duplicatas.
  7. Coloque o evento na fila de processamento.
  8. Imediatamente com 200 OK responder.

A razão para a ordem na etapa 5 é simples: qualquer pessoa que analise JSON antes de verificar a assinatura está processando dados potencialmente manipulados, mesmo que o processamento em si pareça inofensivo. Valide primeiro, depois interprete.

Quando ocorrem erros, a semântica HTTP correta é crucial. 4xx-Os sinais de status indicam ao remetente "esta mensagem é fundamentalmente falha, não a repita", por exemplo, no caso de uma assinatura incorreta. 5xx-Status significa "algo deu errado da minha parte, tente novamente mais tarde", por exemplo, no caso de uma falha no banco de dados.

Dica profissional: Registre cada assinatura rejeitada com um carimbo de data/hora e o endereço IP de origem. Um aumento repentino nas verificações de assinatura com falha geralmente é o primeiro sinal de uma chave secreta mal configurada após uma rotação, e não de um ataque.

Qual a finalidade específica dos webhooks de rastreamento no setor de transporte?

Nas operações diárias de uma loja online, os webhooks de rastreamento assumem tarefas que antes exigiam rastreamento manual. Assim que um serviço de entrega reporta uma nova leitura de código de barras, o webhook atualiza automaticamente a página pública de rastreamento, envia uma notificação aos clientes ou inicia uma etapa interna de processamento, como a aprovação de uma fatura após a entrega.

  • As páginas de rastreamento exibem o status atual sem a demora causada pela verificação manual.
  • Notificações ao cliente são enviadas automaticamente por e-mail ou SMS para cada alteração de status relevante.
  • Sistemas internos como loja, ERP ou CRM recebem o novo status por meio de uma carga útil simplificada, sem que ninguém precise inserir dados manualmente.
  • As consultas ao WISMO (“Onde está meu pedido?”) estão diminuindo significativamente porque os clientes podem verificar o status por conta própria.
  • As alterações de status relevantes para a alfândega podem ser encaminhadas automaticamente para os sistemas aduaneiros, sem processos em papel.

Importante: O próprio webhook geralmente fornece apenas informações essenciais, como o número de rastreamento e o status atual. Para informações mais detalhadas, alguns serviços de encomendas também utilizam uma API de rastreamento separada, que é consultada conforme necessário. Aqueles que gerenciam sua loja via WooCommerce ou se conecta a um sistema comparável, esses eventos geralmente são inseridos diretamente no sistema de gerenciamento de pedidos existente.

Como detectar falhas em webhooks antes que os clientes as percebam?

Um sistema de webhook sem monitoramento opera às cegas. Os principais indicadores de desempenho (KPIs) mais importantes são a Taxa de Sucesso de Entrega (DSR), ou seja, a porcentagem de entregas processadas com sucesso, a Taxa de Retentativa, a Profundidade da Qualidade da Entrega (DLQ) e a latência de processamento entre o recebimento e a conclusão.

  • Uma taxa de sucesso de entrega abaixo do nível normal indica um problema com a verificação de assinatura ou com a acessibilidade.
  • Uma profundidade crescente na DLQ indica que os eventos acabam falhando, e não apenas sendo atrasados.
  • Um alerta acionado após aproximadamente cinco falhas consecutivas em um ponto final impede que uma falha passe despercebida por horas.
  • O aumento da latência de processamento costuma ser o primeiro sinal de uma fila sobrecarregada.

A rigidez do limite de alerta depende do tipo de evento: para eventos relacionados a pagamentos, um alerta é justificado mesmo após uma única tentativa falha, enquanto para eventos puramente analíticos, uma tolerância maior é suficiente. Antes da entrada em produção, casos de teste para entregas repetidas, payloads formatados incorretamente e processamento artificialmente lento devem ser incluídos em todas as listas de verificação.

Dica profissional: Simule uma interrupção completa do seu próprio endpoint por cinco minutos e observe o comportamento da fila de reenvio do remetente. Isso permitirá que você verifique, antes da entrada em produção, se a sua fila de mensagens não entregues (DLQ) e os alertas estão funcionando corretamente.

Checklist: Como ativar um endpoint de webhook em dez etapas

  1. Defina os eventos relevantes que seu sistema realmente precisa.
  2. Mantenha a carga útil o mais minimalista possível; não se inscreva em campos desnecessários.
  3. Forçar o uso de HTTPS e gerar uma chave secreta para verificação da assinatura.
  4. Disponibilize o corpo da requisição em formato bruto, sem necessidade de análise prévia.
  5. Verificar assinatura HMAC por comparação da constante de tempo.
  6. Escreva o ID do evento atomicamente no banco de dados para evitar duplicatas.
  7. Coloque o evento em uma fila de processamento.
  8. Dentro do prazo estabelecido pelo remetente, com 200 OK responder.
  9. Configure uma fila de mensagens não entregues e alertas para eventos com falha.
  10. Documente suas próprias expectativas em relação a eventos, campos e comportamento de repetição.
Grupo de passos Alvo Ferramenta típica
Segurança garantir a autenticidade da mensagem HMAC-SHA256, HTTPS
processamento Evite timeouts BullMQ, SQS, pg-boss
Betrieb Detectar falhas precocemente Fila de mensagens não entregues, alertas

Como uma plataforma de envio utiliza webhooks na prática

Quem desenvolve seus próprios webhooks de rastreamento logo percebe o trabalho operacional envolvido na verificação de assinaturas, filas e lógica de status alfandegário antes que a primeira atualização de status chegue ao cliente de forma confiável. A Paket International assume exatamente essa parte da cadeia de envio e automatiza as atualizações de status, os acionadores alfandegários e o rastreamento centralizado de remessas, para que os varejistas online não precisem criar seu próprio receptor de webhook para cada serviço de encomendas individual.

A plataforma conecta serviços de encomendas como DHL, UPS, FedEx, DPD e DB Schenker por meio de uma interface comum e consolida seus eventos de envio em um local central. Painel de acompanhamentoAs integrações de API e plugins, por exemplo, para WooCommerce ou sistemas de loja similares, permitem que esses eventos sejam inseridos diretamente nos processos existentes, em vez de conectar cada provedor individualmente. Isso não só reduz o esforço de desenvolvimento, como também diminui os custos. mar Segundo a Paket International, os custos de envio são significativamente reduzidos porque o desembaraço aduaneiro e a criação de documentos são automatizados em vez de serem processados ​​manualmente. Qualquer pessoa que confie o envio internacional, incluindo o desembaraço aduaneiro, a uma empresa como a Paket International, poderá usufruir de uma experiência de compra otimizada. Plataforma de envio Quem desejar entregar pode encontrar informações em [link para a documentação]. taxas de envio atuais O ponto de partida ideal para o seu próprio volume de remessas.

Perguntas frequentes

O que é um webhook, explicado de forma simples?

Um webhook é uma mensagem automatizada que um sistema envia para outro assim que ocorre um evento específico, como uma alteração no status de uma remessa. Ao contrário de uma consulta tradicional, o destinatário não precisa verificar constantemente, mas é notificado assim que houver alguma novidade.

Como faço para programar um webhook?

Para receber o evento, você configura um endpoint HTTPS que lê o corpo da requisição bruta, verifica a assinatura que a acompanha com uma comparação de constante de tempo e só então processa o evento como JSON. Em seguida, você grava atomicamente o ID do evento em um banco de dados, coloca a tarefa em uma fila e responde imediatamente. 200 OK, para que o remetente não repita a entrega.

O que diferencia um webhook de uma consulta de API clássica?

Com uma API tradicional, seu sistema solicita ativamente novos dados, geralmente em intervalos fixos, mesmo que nada tenha mudado. Um webhook inverte isso: o remetente envia uma solicitação somente quando um evento de fato ocorre, reduzindo assim a carga e a latência do servidor.

Como você pode se proteger contra entregas duplicadas de webhooks?

Entregas duplicadas são normais para a maioria dos remetentes de webhooks, já que muitos provedores operam com o princípio de "entregar pelo menos uma vez". Uma inserção atômica no banco de dados com uma restrição UNIQUE no ID do evento ou um SET NX No Redis, isso impede que um evento já processado seja executado novamente.

A Paket International oferece integração própria com webhooks?

A Paket International consolida eventos de envio de vários serviços de encomendas em um painel de rastreamento central e disponibiliza essas informações para sistemas de lojas virtuais por meio de APIs e integrações de plugins. Detalhes sobre as opções de integração técnica e os termos e condições atuais podem ser encontrados diretamente no [nome do site/plataforma]. Página da plataforma.

Empfehlungen

Solicitar análise de exportação

Entre em contato conosco agora!

+49 (0) 341 -249 691 84

Os dados do formulário publicado não podem ser lidos.

Entre em contato conosco agora!

+49 (0) 341 -249 691 84