Rastreamento de remessas via Webhook: como funcionam os webhooks de rastreamento em comparação com o polling (payloads, novas tentativas e configuração)
Os webhooks de rastreamento de remessas enviam uma solicitação HTTP à sua aplicação quando um serviço de rastreamento tem uma atualização para informar. A sondagem funciona na direção oposta: sua aplicação solicita repetidamente as informações de rastreamento mais recentes. Para desenvolvedores que conectam dados de remessas a um sistema de gerenciamento de pedidos, loja ou serviço de notificação ao cliente, os webhooks geralmente são o melhor mecanismo primário de atualização quando disponíveis; a sondagem direcionada pode ajudar a recuperar atualizações perdidas e reconciliar registros.

Nenhum dos métodos faz com que uma transportadora escaneie um pacote mais cedo. Ambos dependem de quando a fonte de rastreamento recebe e disponibiliza novas informações. A diferença prática está em como sua aplicação toma conhecimento dessas informações, quanto tráfego de solicitações ela gera e o que acontece quando a entrega falha.
Webhooks de rastreamento vs. sondagem: a diferença operacional
Esses são padrões de integração, não bancos de dados de rastreamento concorrentes. Uma transportadora ou plataforma de rastreamento pode oferecer um ou ambos os padrões, com diferentes condições de acesso. Compare o comportamento da API específica que você planeja usar, em vez de presumir que todos os serviços de webhook oferecem as mesmas garantias.
| Ponto de decisão | Webhooks | Sondagem |
|---|---|---|
| Quem inicia a solicitação? | O serviço de rastreamento chama seu endpoint. | Sua aplicação chama a API de rastreamento. |
| Atraso da atualização | Depende da atualidade da fonte, da geração do evento, da entrega e do processamento. | Também depende de quando sua próxima solicitação agendada é executada. |
| Volume de solicitações | Determinado pelas atualizações emitidas, pelo agrupamento e pelas tentativas de entrega. | Determinado pelo volume de remessas, pela frequência de sondagem e pelo agrupamento. |
| Infraestrutura | Requer um receptor acessível e tratamento seguro de solicitações de entrada. | Requer um agendador, acesso de saída à API e tratamento de limites de taxa. |
| Recuperação de falhas | Depende das novas tentativas do provedor e do seu próprio processo de reconciliação. | Depende das solicitações subsequentes e de a API manter ou não o histórico necessário. |
Escolha primeiro os webhooks quando atualizações oportunas forem importantes e sua equipe puder operar um receptor confiável. Escolha primeiro a sondagem quando endpoints de entrada forem impraticáveis, o volume de remessas for moderado ou a fonte não fornecer webhooks adequados. Use um design híbrido quando atualizações perdidas puderem interromper as comunicações com clientes ou as operações e a API oferecer suporte à reconciliação.
Não presuma que os webhooks sejam mais baratos. Taxas de assinatura, registro de rastreamento, chamadas à API, entrega de eventos e infraestrutura podem ser cobrados de formas diferentes. Compare os termos comerciais reais e a carga de trabalho esperada, em vez de considerar menos solicitações como prova de uma conta menor.
O que acontece entre o escaneamento da transportadora e sua aplicação?
- Identifique a remessa. Associe o número de rastreamento, as informações da transportadora quando necessário e uma referência interna da remessa. Alguns serviços exigem registro antes do início do monitoramento.
- Configure a entrega de eventos. Forneça uma URL de callback HTTPS e selecione as assinaturas de eventos disponíveis.
- A fonte recebe as informações de rastreamento. Um escaneamento da transportadora ou uma alteração de status fica disponível para o serviço de rastreamento.
- O serviço envia um webhook. A solicitação pode conter um instantâneo completo do rastreamento, um único ponto de verificação ou apenas uma referência que exige uma consulta à API.
- Seu receptor valida e armazena os dados. Autentique a solicitação, verifique sua estrutura e registre ou enfileire o evento de forma durável.
- Um worker atualiza os sistemas de negócios. Normalize os status, atualize os registros de remessa e acione apenas as ações que ainda forem apropriadas.
Uma entrega de webhook não é o mesmo que uma entrega física. É uma mensagem sobre informações da remessa. Da mesma forma, uma resposta bem-sucedida do webhook não prova que um e-mail foi enviado ou que um registro de pedido foi atualizado; esses são resultados do processamento posterior que precisam de seu próprio monitoramento.
Como ler um payload de webhook de rastreamento
O JSON a seguir é um design ilustrativo de integração, não um payload do 17TRACK nem um esquema universal. Os nomes reais dos campos, códigos de status, formatos de timestamp e identificadores de eventos devem vir da documentação do provedor selecionado.
{
"event_id": "evt_example_001",
"event_type": "shipment.updated",
"created_at": "2025-04-08T10:16:00Z",
"shipment": {
"reference": "shipment_example_123",
"tracking_number": "EXAMPLE123456",
"carrier_code": "example_carrier",
"status": "in_transit",
"checkpoint": {
"occurred_at": "2025-04-08T10:10:00Z",
"description": "Departed processing facility"
}
}
}Separe três relógios no seu modelo de dados: quando o evento da remessa ocorreu, quando o provedor gerou a mensagem e quando sua aplicação a recebeu. Um ponto de verificação atrasado pode chegar depois de um mais recente. Um timestamp sem deslocamento também precisa de uma interpretação explícita; não trate silenciosamente todo timestamp local da transportadora como UTC.
Mantenha sua referência interna da remessa junto aos identificadores do provedor. Um número de rastreamento sozinho pode não ser suficiente como identificador global permanente, especialmente em diferentes contextos de transportadoras. Para pedidos divididos, mantenha registros no nível da remessa em vez de permitir que o status entregue de um pacote marque o pedido inteiro como concluído.
Preserve o status e a descrição originais junto ao seu status comercial normalizado. Sua aplicação pode mapear várias mensagens da transportadora para “em trânsito”, mas a equipe de suporte ainda pode precisar do ponto de verificação original para entender um atraso. Trate as datas estimadas de entrega como estimativas e diferencie um campo ausente de uma instrução explícita para limpar um valor existente.
Novas tentativas, confirmações e eventos duplicados
A entrega do webhook pode falhar devido a timeouts, interrupções de rede, erros de autenticação ou indisponibilidade do receptor. Um provedor pode tentar novamente, mas não existe um cronograma universal de novas tentativas, janela de retenção ou número máximo de tentativas. Confirme quais respostas acionam outra tentativa, como os redirecionamentos são tratados e se a reentrega manual está disponível.
Confirme após a aceitação durável
Mantenha o caminho da solicitação curto: valide a solicitação, persista o trabalho aceito e retorne a resposta de sucesso exigida pelo provedor. Envie e-mails e execute operações comerciais mais lentas de forma assíncrona. A especificação HTTP define 202 Accepted como aceitação para processamento, e não como processamento concluído, mas seu provedor pode exigir uma resposta de sucesso diferente. Siga o contrato de webhook dele.
Retornar sucesso antes de armazenar qualquer coisa pode fazer com que a atualização seja perdida se o processo falhar. Esperar por toda ação posterior pode causar um timeout e outra tentativa de entrega. Uma caixa de entrada ou fila durável fornece uma fronteira entre recebimento e processamento.
Torne o processamento idempotente
Idempotência significa que processar o mesmo evento novamente não repete seus efeitos comerciais. Um remetente pode tentar novamente depois que seu servidor aceitou um evento, mas antes que a confirmação fosse perdida. Portanto, a entrega duplicada deve ser um caso de teste rotineiro.
- Use um identificador de evento documentado como chave de deduplicação quando disponível, limitado ao provedor ou à conta correta.
- Se não existir um identificador, crie uma chave composta a partir de campos de evento estáveis e teste os riscos de colisão.
- Imponha a exclusividade atomicamente no armazenamento; uma sequência separada de “verificar e depois inserir” pode sofrer condições de corrida durante entregas simultâneas.
- Proteja também as ações posteriores. Um evento duplicado não deve enviar outra notificação de entrega nem repetir uma ação financeira.
- Defina a retenção de acordo com o comportamento de replay do provedor e seus requisitos de recuperação, em vez de excluir imediatamente os registros de deduplicação.
Não presuma chegada cronológica
Não substitua o estado atual da remessa simplesmente porque uma solicitação chegou por último. Compare o significado do evento, os timestamps e qualquer informação de sequência documentada. Preserve os pontos de verificação atrasados no histórico sem mover automaticamente o status exibido para trás. Ao mesmo tempo, permita correções documentadas: uma regra rígida segundo a qual remessas entregues nunca podem mudar pode ocultar exceções legítimas ou informações corrigidas.
Uma lista de verificação prática de configuração
1. Confirme o contrato do provedor
Antes da implementação, confirme os requisitos de registro, os eventos compatíveis, o formato do payload, a autenticação, as expectativas de resposta, os timeouts, o comportamento de novas tentativas e os limites da API. Verifique se uma notificação representa um instantâneo ou uma alteração incremental, se as entregas podem conter vários registros e se a assinatura envia um estado inicial.
Para uma integração com o 17TRACK, comece pela página oficial da Tracking API e pela documentação da API. Use a documentação específica do provedor para estabelecer os campos da solicitação e os requisitos de callback; o payload genérico acima não é um substituto. Confirme as condições de acesso e os limites operacionais da integração que pretende implantar.
2. Proteja o endpoint receptor
Use HTTPS e o mecanismo de autenticação documentado pelo provedor. Se ele usar uma assinatura HMAC, valide exatamente a entrada assinada especificada. Quando bytes brutos da solicitação forem assinados, analisar e serializar novamente o JSON antes da verificação pode alterar esses bytes e invalidar a assinatura. Use comparação em tempo constante para valores de assinatura derivados de segredos.
Se timestamps assinados ou identificadores de entrega estiverem disponíveis, aplique os controles de replay documentados. Uma assinatura válida autentica uma mensagem, mas não estabelece, por si só, que ela seja recente. Mantenha os segredos fora das URLs e dos logs da aplicação, ofereça suporte à rotação de segredos e restrinja os tamanhos das solicitações. A permissão por lista de IPs pode ser um controle adicional quando existirem intervalos de endereços mantidos, mas não substitui a autenticação da mensagem.
3. Separe o recebimento do processamento comercial
Armazene informações suficientes para rastrear e reproduzir com segurança um evento aceito. Os workers da fila devem normalizar a atualização, aplicar regras de transição de estado e registrar os resultados das ações. Coloque trabalhos que falham repetidamente em um fluxo de mensagens não entregues que possa ser revisado, em vez de tentar novamente indefinidamente. Limite o acesso e a retenção, pois os payloads de rastreamento podem conter informações relacionadas a clientes.
4. Teste os caminhos de falha antes do lançamento
- Envie o mesmo evento duas vezes, incluindo entregas simultâneas.
- Entregue um ponto de verificação mais antigo depois de um mais recente.
- Simule uma indisponibilidade da fila e uma falha do worker após o recebimento.
- Teste autenticação inválida, JSON malformado e solicitações muito grandes.
- Teste remessas desconhecidas, campos opcionais ausentes e campos adicionados.
- Verifique se um pacote entregue não conclui um pedido dividido.
- Reproduza um evento após a recuperação e confirme que as notificações continuam deduplicadas.
Seja tolerante a campos adicionais quando for seguro, mas não reinterprete silenciosamente valores de status desconhecidos. Preserve o valor bruto e encaminhe os casos não reconhecidos por um fallback definido ou por um processo de revisão.
Onde a sondagem ainda é útil
A sondagem é útil para a sincronização inicial, a recuperação após uma interrupção e a verificação de remessas cujas atualizações esperadas não chegaram. No entanto, o silêncio por si só não prova uma falha do webhook: um pacote pode realmente não ter novos escaneamentos. Faça a reconciliação com o estado ou histórico atual da API, em vez de presumir que toda remessa silenciosa precisa de um alerta.
Para o planejamento de escala, um modelo simplificado de sondagem é requests per hour ≈ active shipments × polls per shipment per hour, supondo uma remessa por solicitação. Endpoints em lote alteram esse cálculo. Como ilustração, 1.000 remessas verificadas quatro vezes por hora geram 4.000 solicitações por hora antes das novas tentativas; isso é uma operação aritmética, não uma cota ou estimativa de preço do provedor.
Agende as verificações de acordo com a atividade das remessas e o risco comercial, respeite os limites de taxa e adicione jitter para que os trabalhos não comecem todos ao mesmo tempo. Para falhas que permitem novas tentativas, use backoff limitado e respeite as orientações aplicáveis do servidor. Não tente repetidamente novamente erros permanentes de credenciais ou validação sem corrigi-los.
Um sistema híbrido prático usa webhooks para atualizações rotineiras e leituras direcionadas da API para possíveis lacunas. Monitore separadamente falhas de recebimento, idade da fila, falhas de processamento, taxas de duplicação e divergências de reconciliação. Quando os timestamps forem confiáveis, diferencie o atraso dos dados da fonte do atraso na entrega do webhook e do atraso no processamento interno.
FAQ
Os webhooks de rastreamento são em tempo real?
Eles podem reduzir o atraso causado pela espera do próximo ciclo de sondagem. Eles não garantem escaneamentos imediatos da transportadora nem atualizações instantâneas da fonte. A atualidade de ponta a ponta inclui o relatório da transportadora, o processamento do provedor, a entrega da solicitação e sua própria aplicação.
Posso interromper completamente a sondagem depois de ativar os webhooks?
Possivelmente, se os recursos de recuperação do provedor e seus requisitos comerciais tornarem isso aceitável. Para registros de remessa operacionalmente importantes, mantenha um método de reconciliação. Ele pode ser direcionado, em vez de uma sondagem contínua de todas as remessas.
O que acontece se meu endpoint de webhook ficar offline?
A recuperação depende da política documentada de novas tentativas do remetente. Não presuma que as tentativas continuarão indefinidamente. Depois de restaurar o endpoint, inspecione as entregas com falha, use as ferramentas de reentrega compatíveis e reconcilie as remessas afetadas pela API quando disponível.
Todo webhook deve acionar uma notificação ao cliente?
Não. Um evento pode ser duplicado, um ponto de verificação histórico ou uma atualização que não altere o status voltado ao cliente. Acione notificações a partir de transições comerciais deduplicadas, com regras para exceções e correções.
Uma resposta HTTP bem-sucedida significa que a atualização da remessa foi concluída?
Não necessariamente. Em um design assíncrono, isso significa que o receptor aceitou o evento de acordo com o contrato estabelecido. Acompanhe separadamente a conclusão do processamento e os resultados das notificações posteriores, para que uma solicitação aceita não oculte um fluxo de trabalho com falha.
Fontes
- RFC 9110: HTTP Semantics — semântica das respostas HTTP, incluindo aceitação para processamento e Retry-After.
- RFC 2104: HMAC—Keyed-Hashing for Message Authentication — a construção HMAC mencionada nas orientações de verificação de assinatura.
- GitHub Docs: Best practices for using webhooks — orientações gerais de engenharia sobre HTTPS, segredos, tratamento assíncrono e identificação de entregas; suas regras específicas de serviço não estabelecem o comportamento de provedores de remessas.
- 17TRACK Tracking API — ponto de entrada oficial para avaliar uma integração de rastreamento do 17TRACK.
- Documentação da API do 17TRACK — referência específica do provedor para os requisitos de implementação.


