00 / guide
Bolt + Stripe + Supabase: set up payments and check the webhook
Bolt can add Stripe payments to your app and wire up the webhook for you. Here is what it needs, what it builds, and what to check yourself before real customers pay.
01 / what CheckoutAlarm checks
a
What it would catch here
Once you are live, it emails you when Stripe events to your Bolt webhook stay undelivered, when the endpoint is disabled, or when sales stop for 48 hours compared with your past 14 days.
b
What it won't catch
It doesn't log in to your app or go through checkout. It doesn't see your edge function logs. If the webhook answers 200 but doesn't unlock the plan, it won't know.
c
Plans
Free: 1 site, checked once a day. Pro: $19 a month, up to 3 sites checked hourly. You prove you own the site first. For Stripe we only take a restricted key with read access to Events, Webhook Endpoints and Charges. Full secret keys are refused. Compare plans
02 / before you start
1
Use Supabase or Bolt Database
Bolt's Stripe integration needs Supabase or Bolt Database, with auth and edge functions. It doesn't work with Firebase. Bolt: Stripe integration
2
Start with a test key
Paste a Stripe test secret key, which starts with sk_test_. Test keys only see test data. Bolt: Stripe integration Stripe: API keys
03 / what Bolt builds
1
Products and functions
Bolt can import your Stripe products. It creates edge functions for checkout, the webhook and subscription management. Click Apply changes to deploy them. Bolt: Stripe integration
2
The webhook
Bolt's help center says Bolt registers the webhook endpoint and checks signatures for you, so you don't make it in the Stripe dashboard. Bolt: webhooks You can still see it there, with every delivery, in the endpoint's Event deliveries tab. Stripe: event deliveries
04 / test it
1
Pay with test cards
Use 4242 4242 4242 4242 for a good payment, 4000 0000 0000 0002 for a decline and 4000 0025 0000 3155 for a card that asks to authenticate. Bolt: testing
2
Check both sides
In Stripe, the event should say Delivered. Stripe: event deliveries In your app, the user should now have the paid plan. If not, read the webhook function's Invocations and Logs in Supabase. Supabase: function logs
3
Errors on the delivery
Match the status code to Stripe's table. Stripe: fix HTTP status codes A 401 from a Supabase function has its own fix: Edge Function returns 401.
05 / going live
a
Live keys and a live endpoint
Live mode has its own keys and objects. If you use webhooks, Stripe says to update each endpoint's URL and copy the new signing secret when you switch. Stripe: switch to live mode After switching, open Workbench in live mode and confirm a live endpoint exists. See works in test, not live.
b
Buy once yourself
Make one real purchase of your cheapest plan and check that it unlocks.
06 / questions
- Do I have to make the webhook endpoint in Stripe myself with Bolt?
- Bolt's help center says Bolt handles webhook endpoint registration and signature checks, so you don't set up endpoints by hand in the Stripe dashboard.
- Does Bolt's Stripe integration work with Firebase?
- No. Bolt's help center says it needs Supabase or Bolt Database, with auth and edge functions.
- Which test cards can I use?
- Bolt lists 4242 4242 4242 4242 for success, 4000 0000 0000 0002 for a decline, and 4000 0025 0000 3155 for a card that asks for authentication.
07 / where CheckoutAlarm fits
CheckoutAlarm emails you when your Bolt app's Stripe events stay undelivered, its endpoint is disabled, or sales stop. It reads Stripe with a read-only key and doesn't touch your Bolt project.
CheckoutAlarm is new. It only checks sites you prove you own. How to verify
Watch my app free08 / sources
- Bolt help center: Stripe integration (requirements, webhooks, test cards)
- Stripe: API keys
- Stripe: switch to live mode
- Stripe: view event deliveries
- Stripe: fix HTTP status codes
- Supabase: Edge Function logging
Docs checked on Oct 20, 2026.