pipehero
Docs menu
S

Receive Stripe webhooks on localhost

To build a Stripe integration you need real events — checkout.session.completed, invoice.paid, customer.subscription.updated — hitting your local handler. Pipehero gives you a public URL, an inspector and one-click replay, plus a signature badge so you know each event is genuine.

1Install Pipehero and start a tunnel

Install the CLI, log in, then expose your local port. You get a stable public URL like myapp.t.pipehero.app.
curl -fsSL pipehero.app/install | sh
pipehero login
pipehero start myapp --port 3000

2Add the endpoint in Stripe

In the Stripe Dashboard go to Developers → Webhooks → Add endpoint, and set the endpoint URL to your Pipehero URL with your webhook path. Pick the events you care about (e.g. checkout.session.completed).
https://myapp.t.pipehero.app/webhooks/stripe

3Copy the signing secret

Stripe shows a signing secret that starts with whsec_ for the endpoint. You'll add it to Pipehero to verify signatures.

4Inspect & replay

Every request shows up live in the dashboard (and the local panel at localhost:4140) with headers and body. Hit Replay to re-send it to your localhost — no need to re-trigger the event at the provider. Requests that arrive while your CLI is offline are captured and can be replayed later.

5Verify the signature

Stripe signs the raw body as `{timestamp}.{body}` and sends it in the `Stripe-Signature` header. Add your `whsec_…` secret under Signature verification (Stripe is built-in) and every captured event gets a ✓ valid / ✗ invalid badge — no code needed.

FAQ

Do I still need the Stripe CLI?

No, but you can keep it for `stripe trigger` to fire test events. Pipehero is the tunnel + inspector and also verifies the Stripe signature.

My handler returns 400 'invalid signature' — why?

Verify against the raw request body (not a parsed object) and use the exact whsec_ for this endpoint. Pipehero's badge tells you whether the signature itself is valid independent of your code.

Related

Start debugging webhooks in a minute

Free plan, no credit card. Expose localhost, inspect and replay every webhook.

Get started free