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
- Create an endpoint in HookDeploy — your URL is
https://hookdeploy.dev/h/{slug} - In Stripe Dashboard → Developers → Webhooks → Add endpoint, paste the HookDeploy URL
- Select events (e.g.
payment_intent.succeeded,checkout.session.completed) - 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:
- Open your forward destination → Configure transform
- Load a recent Stripe webhook as sample data
- Click the
amountfield (ordata.object.amountfor nested Stripe objects) - Rename to
amount_usd - Add formatter: cents_to_dollars
- Save the transform
Other useful Stripe transforms:
- Mask
customer.emailbefore forwarding to analytics (show 3 chars) - unix_to_iso on
createdtimestamps for human-readable dates - Allowlist mode to forward only
type,data.object.id, anddata.object.amountto third-party tools
See the full Transformations reference for all formatters and recipes.