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" }
}
}
}
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.