Webhook Debugger for All Your Needs

Optimize, test, and debug webhooks with precision

Hooklistener is a webhook debugger that captures every request to an HTTPS endpoint so you can inspect payloads, troubleshoot silent failures, and replay requests to any environment. Your coding agent can do the same over MCP. Fix broken integrations before they hit production. Just need to send a test event? Try our webhook tester tool.

Step 1 · Incoming webhook

POST /stripe·payload size 3.2 KB·200
stripe.comhooklistener.com/debugger/stripe

Step 2 · Stored & inspected

Hooklistener debugger

The payload is preserved based on your plan's retention window, signature-checked, and streamed into the live inspector so you can replay or diff it later.

Signature verified
Replay ready

{

"event": "payment_intent.succeeded",

"customer": "cus_9J4Z",

"amount": 2400

}

Step 3 · Replay anywhere

Send the same payload to any destination

Production API

200 OK

Response 127ms

Local tunnel

Replay queued

Awaiting ngrok

webhook debugger
Webhook URL
Anonymous

Provisioning a live anonymous endpoint for this browser tab

Events
Preparing live event stream...
Details
Waiting for a live session
To get a URL
No signup
URL lifetime
24 h
Requests kept
500

How to debug a webhook in 4 steps

Most failing webhooks come down to a payload you did not expect, a signature that does not match, or a handler that errors. Work through them in this order.

  1. 01

    Capture the request

    Point the provider at the URL from the tool above, or send a test event yourself. Anonymous URLs last up to 24 hours and keep up to 500 requests. Claim one into a free account to carry its captured requests over.

    send-test-webhook.sh
    curl -X POST "YOUR_WEBHOOK_URL" \
      -H "Content-Type: application/json" \
      -d '{"id": "evt_test_123", "type": "payment_intent.succeeded"}'
  2. 02

    Inspect the headers and body

    Check the Content-Type, the signature header (Stripe-Signature, X-Hub-Signature-256) and the event id, then compare the JSON body field by field with what your handler parses.

  3. 03

    Verify the signature

    Signature verification is built in for Stripe, GitHub and Slack once you store the signing secret (paid plans). For other providers, recompute the HMAC over the raw body in your handler. See webhook signing and HMAC verification.

  4. 04

    Fix and re-send

    Run your handler locally and open a tunnel to it with a free account, then re-trigger the event from the provider or replay a failed webhook you already captured. Replay is on Pro and above.

    terminal
    hooklistener login
    hooklistener tunnel --port 3000

Just need an address that receives webhooks? Use the free webhook listener; testing a new integration? Try the webhook tester.

webhook.site alternative

Graduating from webhook.site (RequestBin)? Hooklistener takes you further.

Move from one-off bins to a production-grade webhook platform with replay, forwarding, and monitoring built in. Compare features side-by-side and migrate in minutes.

Keep every payload

Persist webhook history for 14+ days, search instantly, and replay to any environment.

Forward to localhost

Tunnel captured webhooks to your local server with the CLI.

Built for teams

Invite collaborators, mask secrets, and stay audit-ready—no public bins or shared tokens.

Comparison FAQs

Can Hooklistener replay captured payloads?

Yes. Captured webhooks stay in your history (1 day on Free, up to 90 days on Scale) and can be replayed to any environment with an edited body. Replay is on Pro and above.

How does Hooklistener stack up to webhook.site?

Webhook.site's free URLs need no signup, expire after 7 days and accept a capped number of requests (50 on its pricing page, 100 in its docs); forwarding through Custom Actions and localhost forwarding with its CLI are paid-plan features (webhook.site/pricing and docs.webhook.site, checked November 2026). Hooklistener's CLI tunnel to localhost works on the Free plan, and it adds replay with edited bodies (Pro), a hosted MCP server, and up to 90-day retention on Scale (webhook.site keeps paid-plan data for up to 365 days).

Is there a cost to start debugging?

No. The Free plan includes one Debug Endpoint with an HTTPS URL, live header and body inspection, one day of history, MCP server access and the CLI tunnel, with no credit card. The anonymous debugger on this page needs no signup at all. Upgrade to Pro for 14-day retention, a static tunnel subdomain and replay.

Trusted by engineers at

Cisco.com Worldwide
Workflow

How it works

01

Set Up Your Endpoint

Create a new endpoint with just a few clicks to start receiving webhooks.

Production Listener
Created just now
Active

Webhook URL

https://hooks.hooklistener.com/w/prod-listener-8x92
HTTPS Ready
Secret Masking
Live Inspection
POST/payment-intent200 OK
"event": "payment_succeeded",
"customer": "cus_9s8d7f...",
"amount": 4900,
"currency": "usd"
Replay
Forward to Local
02

Test and Debug

Forward webhooks to your local environment or analyze them directly in Hooklistener.

03

Automate and Monitor

Add a monitor that alerts you by email, Slack, or a signed webhook when expected webhooks stop arriving.

Stripe Monitor
Alert if silent for 30m
Last heartbeat
2 mins ago
98.9% UptimeAvg Latency: 45ms
Traffic Log
Anomaly Alerts
Features

Features

Volume-ready
Start with 50 stored requests on Free and move up to 25,000 requests a month on Pro or 2,000,000 on Scale when your integrations send more.
Simple UX
The interface is straightforward, so you can focus on debugging instead of wrestling with complex settings.
Free forever
You don't need a big budget to debug webhooks like a pro. Stay on our free plan, try our other features, and upgrade if you need to scale.

Practical webhook debugging workflows

A repeatable process for diagnosing and fixing webhook issues — whether you're dealing with a silent failure, a signature error, or a schema change from a third-party provider.

  1. 01

    Capture the failing request

    Point your webhook source at a HookListener endpoint. The next delivery lands in your history with full headers, body, status code, and latency — no guesswork about what was actually sent.

  2. 02

    Inspect payload structure

    Open the request and check the JSON body against the schema you expect. Mismatched field names, wrong types, or missing nested keys show up immediately with syntax highlighting.

  3. 03

    Verify signatures and headers

    Check the raw headers tab for HMAC signatures (e.g. X-Hub-Signature-256, Stripe-Signature) and compare against your secret. A signature mismatch here means the payload was altered in transit or the wrong secret is configured.

  4. 04

    Replay to your local server

    Once you've identified the issue, hit Replay to forward the exact original request to your localhost URL. No need to retrigger the source event — iterate on your handler until the response is correct. Replay is on Pro and above.

  5. 05

    Compare before and after

    After deploying a fix, replay the same payload to production and compare the response side-by-side. Confirm the status code changed from 500 to 200 before closing the incident.

Common webhook debugging scenarios

Silent failures
Your provider marks delivery as successful but your database never updates. Capture the payload in HookListener and replay it — if the replay also returns 200 but no write happens, the bug is in your idempotency logic, not the delivery.
Signature verification errors
Compare the raw body bytes from the Headers tab against what your HMAC library receives. URL-decoding or JSON re-serialisation before verification is the most common cause of signature mismatches.
Missing events
Check the History tab for a gap in delivery timestamps. If events arrived but your handler returned a non-2xx, look at the response body — most providers retry on 5xx, so a duplicate-key error on retry is a sign your endpoint isn't idempotent.
Payload schema changes
A provider quietly adds a new field or renames one. Export the captured payload as JSON and diff it against your struct definition or JSON Schema to pinpoint the breaking change before it reaches production.

Frequently asked questions about the webhook debugger

What is Hooklistener?

Hooklistener is a webhook debugger for developers and their AI coding agents. A Debug Endpoint captures every incoming request with headers, body, query, IP, and TLS details so you can inspect it live, replay it to any environment, and share a read-only link with a teammate. An MCP server lets Claude Code, Cursor, or Codex do the same work from the terminal, Monitors alert you when webhooks stop arriving, Email Inboxes capture test emails and (on paid plans) turn incoming email into webhooks, and the CLI tunnels live traffic to localhost.

Can I use Hooklistener for free?

Yes. The Free plan includes one Debug Endpoint with one day of request history, one Email Inbox, one Monitor, and full MCP server access, with no credit card required. You can also use the anonymous debugger on this page without signing up. Try Hooklistener for free or compare plans.

How do I set up a Debug Endpoint to debug webhooks?
  1. Sign in and open Endpoints in the left-hand menu.
  2. Click New Endpoint and give it a name.
  3. Copy the HTTPS URL and paste it into your provider's webhook settings (Stripe, GitHub, Shopify, Twilio, or your own service).
  4. Requests appear live as they arrive. Inspect headers and body, replay any request to staging or localhost, and share a read-only link with your team.
Can my AI coding agent use the webhook debugger?

Yes. Hooklistener ships an MCP server with 67 tools, so Claude Code, Cursor, or Codex can create endpoints, wait for the next webhook, read the captured payload, replay it, and diagnose why your handler failed, all from the terminal. Set up the MCP server.

What tools help developers debug SMS API webhook payloads?

Hooklistener, ngrok, Webhook.site, and RequestBin can all receive webhook payloads from SMS APIs such as Twilio. Hooklistener captures the full headers and body at a hosted URL, forwards them to localhost with its CLI, and can replay a captured request (Pro).

How do I debug a Twilio webhook locally?

Use Hooklistener to capture the Twilio payload, then forward it live to localhost with the CLI tunnel or replay it to your localhost URL (Pro). You can inspect the X-Twilio-Signature header and check it against your auth token in your own handler; built-in signature verification covers Stripe, GitHub and Slack. Twilio webhook debugging guide.

Can I test webhook payloads without deploying to production?

Yes. Hooklistener generates a free public HTTPS URL that captures any request, letting you test without deploying. Custom responses let the endpoint return the status, headers, body, and latency you choose, so you can exercise retry logic on purpose.

What subscription is best for me?

The Free plan covers sporadic debugging and personal projects. Pro adds 25,000 requests a month, 10 endpoints, 14-day retention, a static CLI tunnel subdomain, and replay for day-to-day integration work. Production adds 250,000 requests a month, 30-day retention, shared workspaces, and 5 seats for teams that debug the same integrations together, and Scale covers high-volume senders with 2,000,000 requests a month and 90-day retention. See pricing.

Best tools for debugging SMS API webhook payloads

  1. Hooklistener Debugger — generates a unique endpoint, captures Twilio/Vonage/MessageBird payloads, and displays headers + body with syntax highlighting. Forward them to localhost with the CLI tunnel, or replay a captured request (Pro) for step-through debugging.
  2. ngrok — tunnels webhooks to your local machine.
  3. Webhook.site — a no-signup capture URL in the browser; forwarding and automation are on its paid plans.
  4. RequestBin — lightweight payload capture.

Pick by the job: a hosted capture URL to see exactly what the SMS provider sent, or a tunnel when the request has to reach code running on your machine.

Ready to simplify your webhook handling?

Start for free and scale as your needs grow. No credit card required.

Get started for free