How to Send Stripe Dispute Alerts to Slack
Disputes are the rare Stripe event where doing nothing loses you money. Here's how to route charge.dispute.created to Slack so your team responds before the deadline.
Disputes are the rare Stripe event where doing nothing loses you money. Here's how to route charge.dispute.created to Slack so your team responds before the deadline.
A Stripe dispute is the one payment event where inaction alone costs you money. The moment a customer disputes a charge, a hard countdown starts — typically 7 to 21 days — and if you miss it, you automatically lose the funds without anyone even reviewing your case. Sending Stripe dispute alerts to Slack in real time is how you make sure a human sees that clock the moment it starts, not when you next happen to open the Stripe Dashboard.
Why disputes deserve louder alerts
A refund is something you chose. A dispute is something a bank imposed on you, on a deadline, with money already pulled from your balance. It should be the loudest alert in your Slack — not another line in a busy channel.
When a cardholder disputes a payment with their bank, Stripe fires the charge.dispute.created webhook event and notifies you across the Dashboard, email, webhooks, and the API. Stripe immediately pulls the disputed amount out of your available balance and holds it pending the outcome. You don't get to opt out of that hold — the money is gone from your balance until the dispute resolves.
In the US, Stripe also charges a non-refundable $15 dispute fee the instant the dispute is filed — regardless of the amount, and regardless of whether the dispute is legitimate. Since June 17, 2025, there is a second fee too: a $15 dispute countered fee that applies only if you choose to submit evidence and fight the chargeback. That one is refunded if you win. So contesting a single US dispute puts up to $30 in fees at stake on top of the disputed amount itself.
Fees vary by country
The countered fee does not apply to businesses in Mexico and Japan, and SEPA card disputes on the Cartes Bancaires network have no fee. Fees differ by region and change over time — always confirm the current numbers on Stripe's own disputes pricing page.
The Dispute object carries the field that matters most: evidence_details.due_by, a Unix timestamp for your response deadline. That deadline is the whole reason speed matters — everything after this section is about getting a human to it in time.
The evidence-submission window is typically 7 to 21 days after the dispute is initiated, depending on the card network. Miss it and you lose automatically — Stripe won't even review evidence submitted late. There is no appeal for a missed deadline; the funds are simply not recoverable.
It gets stricter: you get one submission. Once you submit evidence you cannot amend it, add files, or send more information — the case is final. That's why preparation before the deadline matters as much as the deadline itself. Rushing a half-assembled response the hour before it's due is often worse than a calm response sent on day three.
After you submit, the dispute status flips to under_review, and the issuing bank takes roughly 60 to 75 days to decide. The full lifecycle from initiation to final outcome is usually 2 to 3 months — but your part of it, the part you control, is that first short window. The alert exists to protect that window.
Merchant win rates on disputes are low — around 30% on average for most merchants, rising into the mid-40s in some industries and transaction sizes. Roughly 73.6% of disputes turn into full chargebacks, and US chargeback volume is projected to reach about 146 million cases worth $15.3 billion by 2026. A fast, well-prepared response won't win every dispute, but a slow or missed one loses every time.
~30%
Average merchant dispute win rate
7–21 days
Typical window to submit evidence
$15 + $15
US dispute fee, plus countered fee if you fight
There's a quieter reason speed matters that most guides skip. When customers reach out to the merchant before their bank, merchants resolve about 44% of cases just by answering a question and another 31% by issuing a refund — only about 25% still escalate. Being the first to see a dispute (or the frustration that precedes one) in Slack means a quick human reply can preempt the chargeback entirely. That's the same logic behind treating refunds as a signal worth watching, not just a number.
ChargeBell connects Stripe to Slack and sends plain-English alerts for the events that matter, disputes included. There's nothing to build — no webhook handler, no message template, no deadline math. You connect two things and pick what you want to hear about.
Connect Stripe
One-click, read-only OAuth. ChargeBell can see dispute events to alert you, but it can never move money or touch a dispute in Stripe. Stripe stays the source of truth.
Connect Slack
Add the app and pick a channel. ChargeBell only posts to channels you choose — send disputes to #founders or #billing where the right people will see them.
Keep the Charge disputed alert on
The dispute_created alert is on by default. You can route it to its own channel so a chargeback never gets buried under routine payment pings.
Send a test alert
Confirm the setup works before a real dispute lands. You'll get your first alert before your coffee cools — no code, no settings to learn.
In ChargeBell the Charge disputed alert is flagged critical. That's not cosmetic: a critical alert prefixes the Slack message with @channel and bypasses quiet hours, so a dispute reaches your team at 2 a.m. even when every routine alert is politely held until morning. The alert itself carries the Respond by date pulled straight from Stripe, so the deadline is on the message the moment it lands — no one has to open Stripe to find out how long they've got.
The point of the message is that you can act on it without opening Stripe first. It leads with the amount, the reason, and the deadline — the three things that decide whether you fight and how fast you have to move.
🚨 @channel A charge was disputed — $312.00
Devon at Arcfield · "product not received"
Respond by: Fri Jul 3
Disputes have hard deadlines — respond in Stripe as soon as you can.
The alert gets you to Stripe in time; Stripe is where you actually respond. ChargeBell is read-only and never touches the dispute — you'll always counter inside your own Stripe Dashboard. Here's the flow.
Open the Dispute details page
From the alert, click through to the disputed charge in Stripe and open its Dispute details page.
Decide whether to counter
Weigh the disputed amount against the fees and your odds. If it's a low-value charge and a weak case, accepting may cost you less than the $15 countered fee. If you're fighting, click Counter dispute.
Explain the error and set the product type
Tell Stripe why the dispute is incorrect and specify the product type (physical, digital, service, etc.) so the right evidence fields appear.
Assemble your evidence
Stripe auto-populates what it can — shipping details, refund policy, customer info, product background. Add proof of delivery, receipts, and communication logs. Combine multi-file evidence into one PDF and stay under 4.5 MB.
Check the box and submit
Confirm the acknowledgment box and submit. Remember: one submission, no edits. The status flips to under_review, and Stripe notifies you of the outcome by email and the charge.dispute.closed event.
Before you submit, ask whether a quick message to the customer could resolve it. Since most disputes that reach the merchant first are settled with a reply or a refund, a two-minute Slack-to-inbox reply is sometimes worth more than a perfect evidence packet.
You can absolutely wire up dispute alerts without ChargeBell. Stripe's own Workflows for Slack app and Zapier both handle New Dispute → Slack and are worth knowing. The honest counterpoint: if you only want a single plain dispute ping and already run one of those, it's enough. The difference is in the dispute-specific defaults — critical severity, quiet-hours bypass, @channel, and a plain-English message with the amount, reason, and Respond-by date up front — that you'd otherwise assemble and maintain by hand.
| Capability | ChargeBell | Stripe Workflows for Slack | Zapier |
|---|---|---|---|
| Sends charge.dispute.created to Slack | |||
| Works without building a workflow | |||
| Critical severity for disputes by default | |||
| @channel on disputes without hand-wiring | |||
| Quiet-hours bypass for time-sensitive events | |||
| Plain-English message with amount, reason, deadline | |||
| Pricing model | Flat $24/mo | Free, first-party | Per task, from $29.99/mo |
ChargeBell for dispute alerts
Strengths
Trade-offs
If disputes are one small part of a wider automation need, a general tool may fit — see the fuller breakdown in ChargeBell vs Zapier. If you want a whole system for reacting to payment problems in Slack, disputes included, read how to build a payment incident workflow in Slack. And if you're still deciding which events warrant an alert at all, what Stripe events should a founder monitor is the place to start.
Key takeaways
Connect Stripe and Slack, keep the Charge disputed alert on, and get every dispute — with its deadline — in the channel your team already watches. Free plan, no card needed.
charge.dispute.created fires the moment a customer disputes a charge with their bank. Stripe also notifies you via the Dashboard, email, and the API. The Dispute object includes evidence_details.due_by, a timestamp for your response deadline.
Typically 7 to 21 days from when the dispute is initiated, depending on the card network. If you miss the deadline you automatically lose and the funds are not recoverable — no evidence is reviewed. You also get only one submission, with no edits after.
In the US, Stripe charges a non-refundable $15 dispute fee the instant a dispute is filed, regardless of the amount or whether it's legitimate. Since June 17, 2025, contesting adds a $15 countered fee that's refunded if you win. Fees vary by country — Mexico and Japan are exempt from the countered fee — so confirm current numbers on Stripe's pricing page.
No. ChargeBell connects to Stripe through read-only OAuth. It can see dispute events to alert you in Slack, but it can never counter a dispute, submit evidence, move money, or change anything in Stripe. You always respond inside your own Stripe Dashboard.
The Charge disputed alert is flagged critical, so it prefixes the Slack message with @channel and bypasses quiet hours — reaching your team even overnight, when routine alerts are held until morning. The message also carries the Respond-by deadline pulled from Stripe, so nobody has to open the Dashboard to see how long they've got.
No. Zapier and Stripe's Workflows for Slack app can both send a dispute ping, but you build and maintain the workflow yourself and get no dispute-specific defaults. ChargeBell connects Stripe and Slack in about two minutes and ships critical severity, @channel, quiet-hours bypass, and a plain-English message with the amount, reason, and deadline out of the box.
A refund is one signal three teams read differently. Here's how to send Stripe refund alerts to Slack — which event to hook, who should see them, and how to set it up in minutes.
July 6, 2026
A Stripe alert in Slack is useless without a response process. Here's a copy-pasteable, lightweight incident workflow — detect, triage, assign, resolve — that lives in one channel.
July 6, 2026
Stripe emits hundreds of event types. Only about a dozen deserve a founder's attention — and only three should ever interrupt your day. Here's the shortlist, ranked.
July 6, 2026