Webhooks

Como Testar Webhooks sem Servidor

Receba, inspecione e responda webhooks de qualquer serviço (Stripe, Mercado Pago, GitHub) sem expor localhost ou contratar infraestrutura.

O problema com testes de webhook

Webhooks são requisições HTTP que serviços externos enviam para o seu servidor quando algo acontece — um pagamento aprovado, um push no GitHub, uma assinatura cancelada. O problema é que testar isso em desenvolvimento exige que seu servidor esteja acessível pela internet.

Ferramentas como ngrok resolvem isso expondo seu localhost, mas têm limitações: precisam de instalação, têm rate limits e exigem manter um processo rodando. O httpdrop oferece uma abordagem diferente: um endpoint permanente que captura webhooks e os exibe em tempo real.

Criando um receptor de webhook

Crie um endpoint no httpdrop e use a URL gerada como destino do webhook no serviço externo. Nenhuma instalação, nenhuma configuração de rede:

# URL do seu receptor de webhook
https://httpdrop.com/mock/SEU_ENDPOINT_ID

# Configure essa URL no painel do serviço externo:
# - Stripe: Dashboard → Developers → Webhooks → Add endpoint
# - Mercado Pago: Sua aplicação → Notificações IPN
# - GitHub: Settings → Webhooks → Add webhook

Inspecionando o payload recebido

Cada webhook recebido aparece no painel de Requests em tempo real. Você vê headers, body completo, timestamp e IP de origem:

// Exemplo de webhook do Stripe (payment_intent.succeeded)
{
  "id": "evt_3O...",
  "type": "payment_intent.succeeded",
  "data": {
    "object": {
      "id": "pi_3O...",
      "amount": 2990,
      "currency": "brl",
      "status": "succeeded",
      "metadata": { "order_id": "12345" }
    }
  }
}
🔒
Validando assinaturas: Para webhooks com HMAC-SHA256 (Stripe, GitHub), use a aba Rules para configurar a resposta correta. A validação da assinatura deve ser feita na sua aplicação real — o mock apenas captura e exibe o payload.

Simulando respostas para o webhook sender

Serviços como Stripe esperam receber HTTP 200 em até 30 segundos, caso contrário tentam reenvio. Configure uma Mock Rule para responder corretamente:

// Mock Rule para responder webhooks Stripe
{
  "method": "POST",
  "path": "/",
  "status": 200,
  "body": { "received": true }
}

Replay de webhooks

Precisa testar sua aplicação com o mesmo payload várias vezes? Use o botão Replay no histórico de requests para reenviar um webhook capturado para qualquer URL — sem precisar acionar o serviço externo novamente.

🚀
Próximo passo: Veja como implementar arquitetura de webhooks resiliente com filas de retry e validação de assinatura no seu backend.
Pronto para implementar? Consulte a documentação técnica completa com referência de API, exemplos de código e parâmetros detalhados.
Ver documentação →