Skip to content
HookDeploy

Stripe webhooks

Stripe sends webhooks for payments, subscriptions, invoices, and more. HookDeploy captures every event at a persistent URL so your team can inspect payloads, replay to localhost, and forward to multiple destinations in parallel.

Quick setup

  1. Create an endpoint in HookDeploy — your URL is https://hookdeploy.dev/h/{slug}
  2. In Stripe Dashboard → Developers → Webhooks → Add endpoint, paste the HookDeploy URL
  3. Select events (e.g. payment_intent.succeeded, checkout.session.completed)
  4. Send a test webhook and confirm it appears in your HookDeploy dashboard

For local development with the Stripe CLI:

stripe listen --forward-to https://hookdeploy.dev/h/YOUR_SLUG
stripe trigger payment_intent.succeeded

Forward to your server

Add a forward destination pointing to your webhook handler. HookDeploy captures the event and forwards it to your server asynchronously — Stripe gets 200 OK immediately.

On Starter and above, configure multiple destinations: your production server, a Slack alert URL, and an analytics pipeline can all receive the same Stripe event in parallel.

Transform Stripe payloads before forwarding

Stripe sends amounts in cents. Use HookDeploy’s transformation editor to automatically convert to dollars before your payload reaches your server:

// Before transformation
{ "amount": 4200, "currency": "usd" }

// After: cents_to_dollars formatter applied, field renamed
{ "amount_usd": "$42.00", "currency": "usd" }

How to set this up:

  1. Open your forward destination → Configure transform
  2. Load a recent Stripe webhook as sample data
  3. Click the amount field (or data.object.amount for nested Stripe objects)
  4. Rename to amount_usd
  5. Add formatter: cents_to_dollars
  6. Save the transform

Other useful Stripe transforms:

See the full Transformations reference for all formatters and recipes.