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 listenURL lifetime: only while the CLI process runs- ReplayHooks URL lifetime: persistent after claim
stripe listenhistory: 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
- Create an endpoint and copy the ingest URL.
- In Stripe Dashboard → Developers → Webhooks → Add endpoint, paste your ReplayHooks URL.
- Select the events you care about (
checkout.session.completed,invoice.paid, …). - Trigger a test event from the Dashboard or your app.
- Open the inspector — verify headers (
Stripe-Signature) and the JSON body. - 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
Events
POST/webhooks/stripe
just now
POST/…
PayloadHeadersQueryRaw
Stripe-Signature · checkout.session.completed
{
"id": "evt_test",
"type": "checkout.session.completed"
}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.