CheckoutAlarmWatch my app free

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.

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.

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.

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

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

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

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

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

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

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

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.

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.

Buy once yourself

Make one real purchase of your cheapest plan and check that it unlocks.

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.

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 free

Docs checked on Oct 20, 2026.