The webhook testing problem
Webhooks are HTTP requests that external services send to your server when events happen — a payment succeeds, a GitHub push, a subscription cancels. Testing this in development requires your server to be reachable from the internet.
Tools like ngrok solve this by exposing localhost, but have limitations: they require installation, have rate limits and need a running process. httpdrop offers a different approach: a permanent endpoint that captures webhooks and displays them in real time.
Creating a webhook receiver
# Your webhook receiver URL
https://httpdrop.com/mock/YOUR_ENDPOINT_ID
# Configure this URL in the external service dashboard:
# - Stripe: Dashboard → Developers → Webhooks → Add endpoint
# - GitHub: Settings → Webhooks → Add webhook
# - PayPal: My Apps → Notifications → Add webhook
Inspecting received payloads
Each webhook appears in the Requests panel in real time — headers, full body, timestamp and source IP.
// Stripe webhook example (payment_intent.succeeded)
{
"id": "evt_3O...",
"type": "payment_intent.succeeded",
"data": { "object": { "amount": 2990, "currency": "usd", "status": "succeeded" } }
}
Next step: Learn how to build resilient webhook architecture with retry queues and signature validation in your backend.