Software

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.

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

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.

Conhecer as integrações API e sistemas →

Fontes e documentos relacionados

Estes documentos servem de referência para os métodos e regras abordados neste artigo.

B10 Digital Agency

O que é um webhook? A diferença entre API e webhooks