O que é um webhook? A diferença entre API e webhooks
Um webhook envia automaticamente uma notificação HTTP a outro sistema quando ocorre um evento, como um pagamento concluído ou uma nova encomenda.
O que contém este artigo?
Um webhook envia automaticamente uma notificação HTTP a outro sistema quando ocorre um evento, como um pagamento concluído ou uma nova encomenda.
Este modelo pode ser mais rápido e eficiente do que consultar repetidamente a API à procura de alterações.
Como funciona um webhook?
O destinatário fornece um URL de callback. A origem envia-lhe os dados quando ocorre o evento.
Diferença face à consulta periódica da API
Na consulta periódica, o cliente pergunta regularmente se houve alterações. Com webhooks, a origem notifica o cliente quando ocorre uma alteração.
Webhook Payload
A carga útil pode incluir tipo de evento, ID de recurso, timestamp e dados associados. É também comum enviar o ID e obter os detalhes pela API.
Verificação de assinatura
Como o endpoint webhook está acessível pela Internet, verifique que os pedidos vêm do prestador esperado. Assinaturas HMAC são um método comum.
Mecanismo de novas tentativas
Se o destinatário estiver temporariamente indisponível, a origem pode reenviar o webhook. Documente o número de tentativas e a estratégia de backoff.
Eventos duplicados
O mesmo webhook pode vir mais de uma vez. O processamento duplicado deve ser evitado usando a ID do evento ou a chave de negócio.
Utilizar filas
O endpoint pode validar a carga e colocá-la em fila, em vez de executar trabalho pesado durante o pedido. Isto permite confirmar rapidamente a receção.
Monitoramento do Webhook
- Número de acontecimentos falhados
- Número de novas tentativas
- Latência de processamento
- Evento duplicado
- Falha na verificação da assinatura
- Tarefas pendentes na fila
Lista de verificação das integrações em produção
Em produção, integre no modelo operacional os seguintes elementos: o funcionamento dos webhooks, as diferenças face à consulta periódica e as cargas úteis. Defina origem, destino, responsável pelos dados, autenticação, tabela de mapeamento e responsável pelas falhas de cada integração. Um endpoint funcional não significa sucesso se atualizar o produto, cliente ou encomenda errados.
Considere os tempos limite, limites de frequência, falhas temporárias de rede, pedidos duplicados e respostas inesperadas como cenários normais em produção. Repita apenas falhas temporárias e use idempotência quando repetir uma operação possa ter efeitos financeiros ou operacionais. Passar tarefas demoradas para uma fila separa o pedido do utilizador do desempenho do serviço externo e permite reprocessar falhas de forma controlada.
Monitorize os resultados de negócio, não apenas os códigos HTTP. Uma API pode devolver HTTP 200 sem que qualquer encomenda chegue ao ERP. Mostre número de pedidos, taxa de erro, latência P95, novas tentativas, tarefas em fila e última sincronização bem-sucedida juntamente com os volumes de encomendas, stocks ou clientes transferidos. Os ID de correlação e registos estruturados ajudam a seguir uma operação entre serviços durante um incidente.
- Autenticação e gestão de segredos
- Mapeamento de dados e validação de esquemas
- Política de tempos limite e novas tentativas
- Idempotência e controlo de duplicados
- Gestão dos limites de frequência dos pedidos
- Registos estruturados e ID de correlação
- Reconciliação de dados de negócio
- Alerta e painel
Contrato de API, modo de falha e consistência de dados
Não conceba apenas o fluxo de pedido-resposta bem-sucedido. Estabeleça um contrato API claro para o funcionamento dos webhooks, as diferenças face à consulta periódica e as cargas úteis, com campos obrigatórios, tipos, valores enum, autenticação, tempos limite, códigos de erro e alterações incompatíveis. Defina antecipadamente que respostas exigem nova tentativa, paragem ou intervenção humana para tornar o comportamento mais previsível.
Além da indisponibilidade total de um serviço, preveja respostas lentas, dados parciais, eventos duplicados ou fora de ordem, limites de frequência e falhas temporárias de autenticação. As novas tentativas podem usar backoff exponencial e, quando adequado, jitter. A idempotência ou chaves de negócio únicas reduzem duplicados ao reprocessar encomendas, pagamentos, stocks ou clientes.
Uma resposta API bem-sucedida não basta para confirmar a coerência dos dados. Reconcilie origem e destino por número de registos, valor total, última sincronização ou ID de negócio para detetar divergências. Registos estruturados, ID de correlação e acompanhamento central de erros ajudam a localizar mais depressa o serviço que falhou. A ligação torna-se assim um componente operacional auditável e sustentável.
- Validação dos esquemas de pedido e resposta
- Matriz de tempos limite e novas tentativas
- Idempotência ou chaves de negócio únicas
- Limites de frequência e gestão de capacidade
- ID de correlação e registos estruturados
- Verificações de reconciliação entre origem e destino
- Política de versões e alterações incompatíveis
A abordagem de integração da B10 Digital Agency
A B10 Digital Agency trata a integração como arquitetura de sistemas, não apenas uma ligação API: contratos de dados, segurança, novas tentativas, filas, observabilidade, reconciliação e operação são concebidos em conjunto.
- Integrações API e Sistemas
- Software à medida e aplicações móveis
- Inteligência de marketplaces e monitorização de comércio eletrónico
- Desenvolvimento Web e Infraestrutura Segura
Perguntas frequentes
O Webhook é em tempo real?
A entrega é geralmente próxima do evento, mas atrasos de rede e novas tentativas podem impedir uma garantia absoluta de tempo real.
Precisa de uma API para o Webhook?
Nem sempre. Em muitas arquiteturas, usa-se uma API com webhooks para obter detalhes após o evento.
Como fazer Webhook seguro?
Use TLS, verificação de assinatura, controlo de timestamp e autorização adequada.
O Webhook pode vir duas vezes?
Sim. O sistema destinatário deve, por isso, processar de forma idempotente.
Artigos relacionados
- Desenvolvimento API-first: desacoplar o backend e tornar as aplicações multicanal
- CMS headless, GraphQL e Schema: boas práticas para SEO e estrutura de conteúdos
- A web em tempo real: WebSockets, Server-Sent Events e Streams API
Combine seus sistemas com fluxo de dados confiável
Conheça as integrações API e sistemas da B10 Digital Agency para planear a arquitetura de ERP, CRM, marketplaces, software à medida e serviços de terceiros.
Fontes e documentos relacionados
Estes documentos servem de referência para os métodos e regras abordados neste artigo.
