CheckoutAlarmWatch my app free

What did that broken webhook cost?

When a Stripe webhook fails, people still pay. Your app just never hears about it. Put in your numbers to see what was at risk, and what Stripe will still retry.

Your normal day. Check Stripe, Payments.

From the first failed webhook to the fix.

100 if access or delivery only happens when your webhook runs.

$218 paid by about 7.5 customers who may not have got what they paid for

  • > In live mode Stripe keeps retrying for up to 3 days. Fix the endpoint now and the waiting events should go through on the next retries. Check Event deliveries to be sure.
If you heard about it fromWindowAt risk
You found out after36 hours$218
A daily check (about 1 day)24 hours$145
An hourly check (about 1 hour)1 hour$6.04

An estimate from your numbers, not a measurement. Real sales come in unevenly.

No webhook errors, but no sales either? Check if the quiet spell is likely to be luck.

At your 14-day pace you'd expect about 5.7 sales in 2 days. The chance of zero by luck alone is about 0.3%.

That's unlikely to be luck. Check that checkout loads, that your price IDs are live, and that Stripe shows no failed webhook deliveries.

This treats sales as random arrivals at a steady average rate (a Poisson model). Weekends, launches and seasons break that, so treat it as a rough guide.

Fix the endpoint first

Find the failing status in Event deliveries and fix it, or replays fail too. The error decoder explains each status.

Recover what Stripe won't retry

Stripe retries live events for up to three days. Stripe: automatic retries For anything older, list undelivered events and process them yourself. Stripe: process undelivered events Stripe: manual retries Our missed webhooks guide walks through it.

Make it right with customers

Find payments from the outage that never unlocked anything. Customer paid but didn't get access

How long does Stripe retry a failed webhook?
In live mode, up to three days with exponential backoff. In a sandbox, three times over a few hours. If the endpoint is disabled or deleted when a retry is due, that event isn't retried.
My webhook was broken for more than 3 days. What now?
List events with delivery_success=false (the API returns the last 30 days) and process them yourself, skipping any you've already handled. You can resend single events from the Dashboard for 15 days, or with the Stripe CLI for 30 days.
Did those customers get charged?
Yes. A broken webhook doesn't stop Stripe from taking the payment. It stops your app from hearing about it, so the customer may have paid and got nothing.
How is the quiet-spell chance worked out?
We take your last 14 days of sales as an average rate and ask how likely zero sales in your quiet window would be by luck (a Poisson model). Real sales aren't that steady, so treat it as a rough guide.

The table above is the whole pitch: the sooner you hear, the less is at risk. CheckoutAlarm emails you when Stripe events are still undelivered after about 15 minutes, when an endpoint is disabled, and when sales stop for 48 hours while your last 14 days say at least 3 should have come in.

Free: 1 site, checked once a day. Pro: $19 a month for up to 3 sites, checked hourly. We only check sites you prove you own, and for Stripe we only take a read-only restricted key. Compare plans

Watch my app free

Free for one app. Checked every day. No card needed.