Desenvolvimento Web Nível: intermediário

Webhook

Webhook é uma forma de um sistema notificar outro automaticamente quando um evento acontece, via requisição HTTP. Em vez de o sistema consultar periodicamente se há novidades, o webhook avisa na hora em que o evento ocorre.

Webhook é um mecanismo de comunicação entre sistemas baseado em eventos. Quando algo acontece em um sistema A, ele envia automaticamente uma requisição HTTP para um sistema B informando o evento. Sem webhook, o sistema B teria que ficar perguntando ao sistema A a cada X minutos se houve alguma mudança, o que é ineficiente.

A analogia mais comum é a diferença entre ligar para o restaurante a cada 5 minutos perguntando se seu pedido ficou pronto versus receber uma mensagem quando o pedido estiver pronto. Webhook é a mensagem proativa.

Como webhooks são usados na prática

Gateways de pagamento como Stripe e PagSeguro usam webhooks para notificar quando um pagamento é aprovado ou recusado. Plataformas de e-commerce usam webhooks para avisar sistemas de logística quando um pedido é feito. O GitHub usa webhooks para disparar pipelines de CI/CD quando código é enviado ao repositório.

Como funciona na prática

  • Você registra uma URL do seu servidor como destino do webhook no sistema externo
  • Quando o evento ocorre no sistema externo (ex: pagamento aprovado), ele envia um POST para sua URL
  • Sua aplicação recebe a requisição, valida a autenticidade (geralmente via assinatura HMAC) e processa o evento
  • Você retorna um status 200 para confirmar o recebimento
  • Se sua aplicação não responder, o sistema externo geralmente tenta reenviar algumas vezes

Exemplo Prático

Uma loja usa Stripe como gateway de pagamento. Quando um cliente paga, o Stripe envia um webhook para a URL da loja com os dados da transação. A loja recebe, confirma o pagamento no banco de dados e dispara o e-mail de confirmação para o cliente.

Por que isso é importante?

Webhooks são a base das integrações em tempo real entre sistemas. Automações no Make, n8n e Zapier frequentemente começam com um webhook que dispara o fluxo quando algo acontece em um sistema externo.

Perguntas Frequentes (FAQ) sobre Webhook

Qual a diferença entre webhook e API?

Uma API é chamada ativamente pelo seu sistema quando precisa de dados. Um webhook é chamado pelo sistema externo proativamente quando um evento acontece. API é pull (você puxa os dados), webhook é push (o dado é empurrado para você).

Como testar um webhook em desenvolvimento local?

Ferramentas como ngrok criam um túnel que expõe seu servidor local para a internet com uma URL pública. Você registra essa URL no sistema externo e consegue receber webhooks reais durante o desenvolvimento sem precisar de um servidor na nuvem.