00 / guide
Stripe webhook endpoint disabled: turn it back on and recover events
The endpoint that tells your app "this customer paid" shows Disabled. While it is off, Stripe sends nothing to it, and it won't resend later. Turn it back on, then catch up.
Free tool: what the downtime cost and what Stripe will still retry
01 / what CheckoutAlarm checks
a
What it would catch here
This is the clearest case for it. With a read-only key, CheckoutAlarm lists your webhook endpoints and emails you if any one is disabled. That happens on the first check that sees it: once a day on Free, every hour on Pro. You get another email when it's fixed.
b
What it won't catch
It won't turn the endpoint back on or resend events. The key is read-only on purpose. It also won't know which events you meant to listen for.
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 / what disabled means
1
Stripe stops sending
Each endpoint has a status of enabled or disabled. Stripe: webhook endpoint object You can disable one on purpose, and Stripe says it "won't attempt to resend any events generated while the destination is disabled." Stripe: disable an event destination
2
Pending retries stop too
If the endpoint is disabled when a retry is due, Stripe stops future retries for that event. If you turn it back on before the retry is due, retries go on. Stripe: automatic retries
03 / turn it back on
1
In the dashboard
In Workbench, open Webhooks and click the endpoint. Enable it from its menu. Stripe: event destinations
2
Or with the API
The update endpoint call takes disabled: true turns it off, false turns it on. Stripe: update a webhook endpoint
3
Fix the reason first
If someone turned it off because it kept failing, fix the failure, or it will just fail again. See our guides on 400, 500 and timeouts and 401 errors.
04 / catch up on missed events
1
List what didn't arrive
Stripe's docs show how to list events from the last 30 days with delivery_success=false and process them yourself. Stripe: process undelivered events
2
Skip what you already did
Mark each event as processed when you handle it. Stripe says to skip events you already handled. Stripe: process undelivered events Our missed webhooks guide covers resending too.
3
Subscriptions: check invoices
In live mode, if your endpoint doesn't answer invoice.created properly, Stripe can hold invoice finalization for up to 72 hours. Stripe: subscription webhooks
05 / questions
- What happens to events while my endpoint is disabled?
- Stripe's docs say it won't try to resend events created while the destination was disabled. Retries already due also stop if the endpoint is disabled when the retry comes up.
- How do I turn it back on?
- Open the endpoint in Workbench and enable it, or call the update webhook endpoint API with disabled set to false. Then process the events you missed.
- Does Stripe disable endpoints by itself?
- We couldn't find this in Stripe's official docs, so we won't claim it. Stripe's billing docs do say it emails you when a webhook is failing in live mode. Act on that email.
06 / where CheckoutAlarm fits
CheckoutAlarm emails you when any of your Stripe webhook endpoints is disabled, on the first check that sees it. It only reads. You turn the endpoint back on yourself.
CheckoutAlarm is new. It only checks sites you prove you own. How to verify
Watch my app free07 / sources
- Stripe: event destinations (disable a destination)
- Stripe: webhook endpoint object (status)
- Stripe: update a webhook endpoint (disabled)
- Stripe: automatic retries
- Stripe: process undelivered events
- Stripe: subscription webhooks (failed webhook email, invoice delays)
Docs checked on Oct 20, 2026.