Test Stripe webhooks locally

Stripe's CLI (stripe listen) forwards events to localhost while it runs. ReplayHooks keeps a durable URL and lets you replay any past delivery after you fix your handler.

stripe listen vs ReplayHooks

  • stripe listen URL lifetime: only while the CLI process runs
  • ReplayHooks URL lifetime: persistent after claim
  • stripe listen history: terminal scrollback
  • ReplayHooks history: searchable inspector list
  • Replay after fix: Stripe Dashboard/CLI re-trigger vs one-click exact payload replay
  • Team share: screenshots vs shared workspace + share links

Steps with ReplayHooks

  1. Create an endpoint and copy the ingest URL.
  2. In Stripe Dashboard → Developers → Webhooks → Add endpoint, paste your ReplayHooks URL.
  3. Select the events you care about (checkout.session.completed, invoice.paid, …).
  4. Trigger a test event from the Dashboard or your app.
  5. Open the inspector — verify headers (Stripe-Signature) and the JSON body.
  6. Point replay at http://localhost:3000/api/webhooks/stripe (enable allow private targets on the endpoint for loopback).
curl -X POST https://hook.replayhooks.com/x/<your-token> \
  -H 'Content-Type: application/json' \
  -H 'Stripe-Signature: t=…,v1=…' \
  -d '{"id":"evt_test","type":"checkout.session.completed"}'
◈ inspector · stripe
Stripe event in ReplayHooks inspector

Tip

Keep stripe listen for signature secrets during active coding. Use ReplayHooks when you need history, sharing, or replaying yesterday's failure without asking Stripe to send it again.

Test Stripe webhooks locally · ReplayHooks