What Stripe events should a founder monitor?
Stripe has hundreds of webhook events. About a dozen matter to a founder, and only a few should interrupt your day. Here is the shortlist, ranked by urgency.
The ChargeBell Team
Updated October 1, 2026. 9 min read.

The Stripe events to monitor as a founder fit in three tiers. Act now covers disputes, failed payments, and failed payouts. Read today covers new subscribers, cancellations, refunds, and large payments. Digest covers every successful charge, which belongs in a daily summary instead of a ping per payment. Stripe has hundreds of webhook events, but about a dozen matter to a founder.
Short answer
Watch charge.dispute.created, payment_intent.payment_failed, and payout.failed, which ChargeBell supports. Watch invoice.payment_failed in Stripe or another tool, because ChargeBell does not map it. Send new subscribers, cancellations, and refunds to channels you read the same day, and put routine payments in the digest.
Three tiers of Stripe events to monitor
A common mistake is treating every Stripe event as equally important. A dispute with a response deadline and a $15 fee is not the same as a routine $29 renewal. Before you turn on any alert, ask whether the event needs an interruption or can wait for a scheduled read.
Tier 1 is money leaving your account or a deadline running, and you want to know within the hour. Tier 2 is context you should read the same day, in a channel that finance, support, and founders can all see. Tier 3 confirms things are working and is useful only as a total.
- Tier 1, act now. Disputes, failed payments, failed invoices, and failed payouts. Money or a deadline is at stake.
- Tier 2, read today. New subscribers, cancellations, refunds, large payments, and plan changes.
- Tier 3, digest. Every successful payment, paid invoices, and trial ending reminders.
Tier 1 Stripe events that should interrupt you
For these events, a fast response changes the outcome. Miss one for a day and you can lose money or a deadline. Send them to a channel you watch.
Disputes: charge.dispute.created
A dispute has a response deadline, so send charge.dispute.created to someone who will open Stripe quickly. In the US, Stripe's dispute fee is $15 and is not returned if you win. A separate fee can apply when you counter the dispute. The deadline to submit evidence depends on the card network and the case. See the Stripe dispute alerts guide.
ChargeBellAPP
馃毃 A $149.00 charge was disputed
acme@example.com 路 "Product not received"
Disputes have hard deadlines. Respond in Stripe as soon as you can. 路 View evidence in Stripe
Failed payments: payment_intent.payment_failed and invoice.payment_failed
For subscriptions, watch Stripe's `invoice.payment_failed`. It can fire with no failed PaymentIntent, for example when an invoice has no payment method. ChargeBell alerts on payment_intent.payment_failed, which covers failed subscription attempts and one-off payments. Send that alert to an owner, and use Stripe Workflows or another tool for invoice-only failures. See the failed payment alerts guide and the Stripe decline codes cheat sheet.
Failed payouts: payout.failed
A payout can show as paid and later change to failed, usually because your bank returned it. payout.failed deserves its own alert because money you expected is not coming until you fix your bank details in Stripe.
ChargeBellAPP
馃挵 A $8,240.55 payout failed
Your bank rejected the transfer
Stripe pauses future payouts until this is fixed 路 View payout in Stripe
Tier 2 Stripe events to read the same day
These do not need to wake you up, but you should see them the same day in a shared channel. They show who is joining, who is leaving, and where money moved.
- customer.subscription.created. A new subscription, which may be trialing or incomplete. MRR appears when it can be calculated, so check whether the payment succeeded.
- customer.subscription.deleted. A subscription ended. Watch the trend more than each one.
- charge.refunded. Money going back to a customer. Support usually needs this more than founders. See Stripe refund alerts in Slack.
- Large payments. A payment over a threshold you set, $1,000 by default.
- customer.subscription.updated. ChargeBell alerts on supported price changes, with the MRR change when the price data allows. Quantity changes on the same price need separate monitoring.
These events belong in a shared channel because different people act on them. Support handles a refund. A founder follows up on a cancellation. The whole team can see a new subscriber. To set this up, read which Stripe alerts go to finance, support, and founders.
ChargeBellAPP
馃帀 New subscriber: $41.58/mo
acme@company.com 路 Annual plan
MRR +$41.58 路 View in Stripe
Tier 3 Stripe events for a daily digest
Every successful payment, payment_intent.succeeded and charge.succeeded, is a Tier 3 event, and so is invoice.paid. These events matter as a total. Ten payments a day make a nice ping, but a thousand make a channel nobody reads. Put them in a daily digest with yesterday's revenue, payment count, new subscribers, and refunds in one message.
customer.subscription.trial_will_end fires three days before a trial ends. That is a chance to collect a payment method, but most founders handle it with product emails instead of a Slack ping. Turn it on only if trial conversion drives your business.
Turning on everything
If you turn on every event, the payment pings bury the channel and people mute it. Then a dispute arrives in a channel nobody reads. Stripe's webhook docs recommend listening only to the events your integration needs. Start with the events you act on and add more when you notice a gap.
The founder's shortlist of Stripe events
Use this table when you set up alerts. Stripe's own options are the Dashboard, account emails, and the Stripe app for Slack through Stripe Workflows. A custom webhook or an automation tool can cover events ChargeBell does not map. For response steps, see the dispute, failed payment, and subscription guides.
| Stripe event | Priority | ChargeBell today | Stripe native / DIY |
|---|---|---|---|
| charge.dispute.created | Act now | Dispute created | Dashboard / Workflows / webhook |
| invoice.payment_failed | Act now | No direct alert | Stripe Billing / Workflows / webhook |
| payment_intent.payment_failed | Act now | Payment failed | Dashboard / Workflows / webhook |
| payout.failed | Act now | Payout failed | Dashboard / Workflows / webhook |
| customer.subscription.created | Same day | New subscriber | Dashboard / Workflows / webhook |
| customer.subscription.deleted | Same day | Subscription canceled | Dashboard / Workflows / webhook |
| charge.refunded | Same day | Refund sent | Dashboard / Workflows / webhook |
| payout.paid | Same day | Payout paid, check the bank | Dashboard / Workflows / webhook |
| payment_intent.succeeded | Digest | Payment received or daily digest | Dashboard / Workflows / webhook |
| customer.subscription.trial_will_end | Same day | Trial ending, off by default | Dashboard / Workflows / webhook |
How to avoid too many Stripe alerts
Two things make Stripe alerts noisy. Stripe delivers webhooks at least once, so the same event can arrive more than once. One checkout can also fire several events, such as a payment, a new subscription, and an invoice. Without deduplication, one customer action turns into three or four messages.
These rules keep the channel readable:
- Turn on only the events you act on. If you never respond to trial reminders in real time, leave them off.
- Set a minimum payment amount so small charges go to the digest.
- Route by tier and team. Send critical alerts to a channel you watch, wins to #wins, and refunds to support.
- Use quiet hours so routine alerts wait until morning while disputes and failures still post.
- Deduplicate on the Stripe event ID and post one message per checkout.
For more, read how to avoid noisy Stripe notifications.
Stripe's own alerts vs a Stripe Slack integration
Stripe offers account emails and the Stripe app for Slack, which uses Stripe Workflows to post events to channels you choose. Emails are simpler to set up. Workflows need you to set up triggers, conditions, and message templates. ChargeBell adds routing, quiet hours, and digests for the events it supports.
You can also build your own webhook handler. It needs an HTTPS endpoint, signature checks, duplicate handling, and API calls to look up customer details. That is real engineering time. ChargeBell's Stripe Slack integration does the routing, urgency levels, and noise control without code. To compare the options, read how to monitor Stripe without checking the dashboard.
How the tiers map to ChargeBell alert types
ChargeBell maps a fixed set of Stripe events to alert types and builds some alerts from payment history. It does not map invoice.payment_failed. Payment failed and dispute created alerts are critical, so they skip quiet hours and can add an @channel mention. Other alert types follow their own routing and timing.
- payment_intent.payment_failed becomes the payment failed alert, which is critical. A payment recovered alert follows when a later charge succeeds after a recent failure.
- charge.dispute.created becomes the dispute created alert, which is critical.
- payout.failed becomes payout failed, and payout.paid becomes payout paid. Check your bank before you count the money as deposited.
- customer.subscription.created becomes new subscriber, and customer.subscription.deleted becomes subscription canceled. Both show MRR when it can be calculated.
- refund.created and charge.refunded become refund sent, and payment_intent.succeeded becomes payment received. Fee and net appear when the data and your display setting allow.
Every alert above is on by default except invoice paid, trial ending, and first-time customer. Those are off because they often repeat other alerts. ChargeBell sends one alert per event. When several could fire, it picks the most specific one in this order: payment recovered, large payment, first-time customer, then payment received. A payment that failed and then succeeded is labeled "recovered" instead of posting twice. For subscriptions, see Stripe subscription alerts in Slack.
Key takeaways
- About a dozen Stripe events matter to a founder, and only a few should interrupt your day.
- Act now on disputes, failed payments, failed invoices, and failed payouts. Watch invoice failures in a separate tool.
- Read new subscribers, cancellations, refunds, and large payments the same day, in channels routed by team.
- Put successful payments in a daily digest instead of one ping per payment.
- Turning on every event leads to a muted channel and missed disputes. Start with the events you act on.
- ChargeBell maps the events in the table. Use Stripe Workflows or another tool for invoice failures and other gaps.
Set up the alert
Frequently asked questions
What are the most important Stripe events to monitor?
Start with charge.dispute.created, payment_intent.payment_failed, invoice.payment_failed, and payout.failed. Then add new subscribers, cancellations, refunds, and large payments for the people who act on them. ChargeBell covers the dispute, PaymentIntent failure, and payout failure. Watch invoice.payment_failed in Stripe or another tool.
Which Stripe event should always interrupt a founder?
charge.dispute.created. Stripe withdraws the disputed amount and, in the US, charges a $15 fee that it does not return if you win. The evidence deadline depends on the card network, so check the respond-by date in Stripe. It is the event that most justifies an @channel alert.
How do I avoid too many Stripe notifications?
Turn on only the events you act on, set a minimum payment amount, route alerts by team, use quiet hours, and deduplicate on the Stripe event ID. Stripe delivers webhooks at least once, so the same event can arrive twice.
Should I get an alert for every successful Stripe payment?
Not as separate alerts. payment_intent.succeeded is useful as a total but floods a channel one message at a time. Put successful payments in a daily digest, and keep real-time alerts for large or failed payments.
Does Stripe send alerts to Slack?
Yes. Stripe publishes a Stripe app for Slack. You connect it through Stripe Workflows and add a Slack message step for the events you need. ChargeBell is another option with a fixed list of alerts, routing, quiet hours, and digests.
Which Stripe events does ChargeBell alert on?
ChargeBell alerts on payment_intent.payment_failed, charge.dispute.created, payout.failed, payout.paid, selected subscription events, refund.created, charge.refunded, and payment_intent.succeeded. It builds some alerts, such as first-time customer, from payment history. It does not alert on invoice.payment_failed. Fee, net, and MRR depend on the data and your settings.


