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.

How we check provider claims

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 eventChargeBell alertChannelOwner and backup
payout.paid / payout.failedPayout paid / failed#financeFinance, checks the bank
charge.dispute.createdDispute created#financeFinance, mentions support in a reply
charge.dispute.funds_withdrawnNoneSeparate toolFinance watches Stripe
refund.created / refund.failedRefund sent / none for failed#supportSupport, with finance checking Stripe for failures
invoice.payment_failedNoneSeparate toolSupport watches Stripe invoices
payment_intent.payment_failedPayment failed#supportSupport, checks retries in Stripe
customer.subscription.createdNew subscriber#winsFounders
customer.subscription.deletedSubscription canceled#foundersFounders
Large payment over your thresholdLarge payment#winsFounders or sales
Stripe has no customer.subscription.canceled event. Events marked None need Stripe or another integration. Each ChargeBell alert type goes to one channel.

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.

# finance

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.

# support

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.

# wins

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. 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. 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. 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. 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. 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.

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.

Primary sources