Which Stripe alerts go to finance, support, and founders
Disputes go to finance, failed payments and refunds go to support, and cancellations go to founders. Here is a Stripe alert routing map with a Slack channel and an owner for each event.
The ChargeBell Team
Updated October 1, 2026. 9 min read.

Stripe alert routing means sending each Stripe event to the Slack channel of the team that acts on it. Once more than one person cares about Stripe, one #stripe channel for everything stops working. Disputes get buried and nobody feels responsible. Finance should own payouts and disputes, support should own failed payments and refunds, and founders should see new subscribers, MRR, and cancellations. This playbook gives you the event, channel, and owner for each alert.
Short answer
Send disputes and payout status to #finance. Send failed PaymentIntents and refunds to #support. Send cancellations to #founders, and new subscriptions and large payments to #wins. Give each alert one channel and one named owner. Watch invoice failures and failed refunds in Stripe, because ChargeBell does not alert on them.
The Stripe alert routing map
For each Stripe event, the table shows whether ChargeBell alerts on it, the Slack channel, and the team that acts. ChargeBell sends each alert type to one channel. If finance and support both need an alert, use a shared channel or have the owner mention the other team in a thread reply.
| Stripe event | ChargeBell alert | Channel | Owner and backup |
|---|---|---|---|
| payout.paid / payout.failed | Payout paid / failed | #finance | Finance, checks the bank |
| charge.dispute.created | Dispute created | #finance | Finance, mentions support in a reply |
| charge.dispute.funds_withdrawn | None | Separate tool | Finance watches Stripe |
| refund.created / refund.failed | Refund sent / none for failed | #support | Support, with finance checking Stripe for failures |
| invoice.payment_failed | None | Separate tool | Support watches Stripe invoices |
| payment_intent.payment_failed | Payment failed | #support | Support, checks retries in Stripe |
| customer.subscription.created | New subscriber | #wins | Founders |
| customer.subscription.deleted | Subscription canceled | #founders | Founders |
| Large payment over your threshold | Large payment | #wins | Founders or sales |
Why finance owns Stripe disputes
A dispute has a deadline and a cost. In the US, Stripe's dispute fee is $15 and is not returned when you win. A separate $15 fee for countering a dispute is returned if you win. Deadlines depend on the card network and the case, so use the respond-by date shown on the dispute in Stripe.
So charge.dispute.created needs a named owner in finance who gathers evidence and responds in Stripe. Support adds order and customer details in a thread reply. ChargeBell posts the alert to one channel and does not copy it to a second team. See how to send Stripe dispute alerts to Slack.
ChargeBellAPP
馃毃 A $420.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
Why refunds and failed payments go to support
Support talks to the customer after a refund, and finance reconciles the amount. Send ChargeBell's refund sent alert, from refund.created or charge.refunded, to #support. Mention finance in the thread or use a shared channel. ChargeBell does not alert on refund.failed, so check refund status in Stripe or another tool. See how to send Stripe refund alerts to Slack.
ChargeBell's critical failed payment alert comes from payment_intent.payment_failed. Send it to #support, and have the owner check the decline code and retry status in Stripe before contacting the customer. The Stripe decline codes cheat sheet explains each code. Watch invoice.payment_failed separately, because an invoice can fail without a failed PaymentIntent. If founders need to see it, mention them in the thread. See the failed payment alerts guide.
ChargeBellAPP
鈿狅笍 A $49.00 payment didn't go through
jane@example.com 路 card declined
Check Stripe to see if it will be retried.
What founders should see: wins, MRR, and churn
Founders can follow new subscriptions, plan changes, and cancellations without seeing every refund. customer.subscription.created signals a new subscription, but a trialing or incomplete one is not revenue yet. Send it to #wins and check its status before you count the MRR. customer.subscription.deleted means a subscription ended. Send it to #founders so someone can follow up. Large payments over your threshold can go to #wins too. For the full list, read what Stripe events a founder should monitor.
ChargeBellAPP
馃帀 New subscriber: $299.00/mo
techstart@example.com 路 Pro plan
MRR +$299.00 路 View in Stripe
A sample Slack channel setup
Four channels cover most teams. Each has one purpose, so people can mute what is not theirs.
- #finance. Payout status and disputes. Match paid payouts against the bank, and watch funds withdrawn events in Stripe.
- #support. Failed payments, refunds, and recovered payments. Support already works this queue.
- #founders. Cancellations, MRR changes, and the daily and weekly digests.
- #wins. New subscribers and large payments, for the whole team to see.
Start narrow
Send each alert to the smallest group that needs it, then widen it if someone is missing it. Narrowing a rule after it has spammed three teams is harder. Match the channel to the cost of missing the alert. A dispute with a deadline and a $15 fee needs a different channel from a new signup.
How to set up Stripe alert routing in ChargeBell
In ChargeBell, each alert type has its own Slack channel setting, and alerts without one go to a default channel. The map above is a channel choice next to each alert type, not nine workflows to maintain. Connect Stripe with read-only OAuth, connect Slack, then set the channels. The Stripe Slack integration page lists every alert type.
- 1
Send disputes to #finance
Set the dispute alert's channel to #finance. Dispute alerts are critical, so they skip quiet hours and can add an @channel mention. The owner sees them at 2am, while the evidence deadline is running.
- 2
Send failed payments and refunds to #support
Set the payment failed and refund sent alerts to #support. Failed payment alerts are critical and skip quiet hours. The payment recovered alert goes to the same channel, so support sees when the issue is resolved.
- 3
Send cancellations to #founders
Set the subscription canceled alert to #founders. It shows the lost MRR when it can be calculated, so a founder can decide whether to reach out.
- 4
Send new subscribers and large payments to #wins
Set the new subscriber alert, which shows the MRR change, and the large payment alert to #wins. Set the large payment threshold so only real wins appear there.
- 5
Name owners and set quiet hours
Name an owner for each channel, such as @finance-lead or @support-oncall. Turn on quiet hours so routine alerts do not post overnight. Held alerts arrive in one 'while you were away' message, and critical alerts for failed payments and disputes still post right away.
ChargeBell shows the event details it has. Fee, net, and MRR depend on the event, the data Stripe returns, and your settings. The owner should still open Stripe for the full record and final status. Stripe Workflows and automation tools can also route by channel once you set them up. See ChargeBell vs Zapier and how to get Stripe payment notifications in Slack.
Avoid sending every alert to everyone
Routing exists so someone owns each alert. One channel for everything looks simple, but when ten people see a dispute, each one assumes someone else has it. The alert scrolls past, the evidence deadline closes, and you lose the payment and the $15 fee. Routing puts each alert in front of the person who owns it.
A routed channel can still drown in volume. Use quiet hours for non-critical alerts, digests for low-priority ones, and minimum amounts so #wins shows real wins. Read how to avoid noisy Stripe notifications for tuning. If you manage several clients, Stripe alerts for agencies shows routing per client.
One channel means no owner
If a dispute, a cancellation, and a $9 refund land in the same channel, the dispute with a deadline competes with the $9 refund for attention. Route by team so the urgent alert reaches someone who has to act.
Key takeaways
- Finance owns disputes and payouts. A $15 fee and an evidence deadline mean disputes cannot sit unread.
- Support owns failed payments and refunds. You choose to refund, but a chargeback is the customer's bank acting.
- Founders follow wins, MRR, and churn. Send customer.subscription.created to #wins and customer.subscription.deleted to #founders.
- Failed PaymentIntents need an owner in support. Mention founders in the thread and watch invoice failures in a separate tool.
- Give every alert one named owner and the smallest audience. When everyone sees everything, nobody acts.
Set up the alert
Frequently asked questions
Who should own Stripe chargebacks, finance or support?
Finance should own chargebacks. In the US, Stripe charges a $15 dispute fee, and you get one chance to submit evidence before a deadline set by the card network. Support joins the thread because they have the customer details the evidence needs.
How is routing a refund different from routing a dispute?
You decide to issue a refund, so refund alerts go to support, with finance in the thread. A dispute comes from the customer's bank. Stripe withdraws the disputed amount when the dispute opens, and a deadline starts. Disputes go to finance because money and evidence are at stake.
Which Stripe events should founders get alerts for?
Founders should see new subscriptions, plan changes, ended subscriptions, and failed payments. A new subscription can still be trialing or incomplete, so check its status before counting revenue. Stripe sends customer.subscription.deleted when a subscription ends. There is no customer.subscription.canceled event.
Can ChargeBell send different Stripe alerts to different channels?
Yes. Each alert type has its own Slack channel setting, and alerts without one go to a default channel. The finance, support, founders, and wins map is one channel choice per alert type.
Why not send every Stripe alert to one channel?
When everyone sees everything, each person assumes someone else owns it. A dispute can scroll past until its deadline closes. Separate channels with one named owner per alert make sure someone acts.
Does ChargeBell need write access to Stripe to route alerts?
No. ChargeBell connects through Stripe's read-only OAuth. It reads events to send and route alerts. It cannot move money, issue refunds, respond to disputes, or change anything in your Stripe account.


