Receive webhooks locally
Forward provider callbacks to a local HTTP endpoint.
Give providers a stable public hostname that reaches your local HTTP app during development.
Open a webhook tunnel
Deploy a gateway once if you have not already:
tt deploy
Start the app on a fixed port, then open a named tunnel:
tt http 3000 --slug stripe-hooks
If the project is already in turbotunnel.json, name it instead:
tt http api
Register the public URL with the provider:
https://stripe-hooks-turbotunnel.vercel.app/api/webhooks/stripe
Keep callbacks reliable
Use these constraints when you wire the provider:
- Save a
slugordomaininturbotunnel.jsonso the callback URL stays stable across sessions - Finish handlers within 30s; the gateway times out after that
- Keep request and response bodies at or under 4 MiB
- Treat handlers as idempotent: a
504does not prove the local app never received the request - Expect HTTP
502while the app is down; the tunnel starts without waiting for it