Stripe alert

Send a Stripe refund alert to Slack

The charge.refunded event fires whenever a charge is refunded — including partial refunds. Here's how to turn it into a clean Slack alert with the amount, reason, and customer.

Updated July 6, 20266 min read

A Stripe refund alert in Slack is a message posted the moment you refund a customer. ChargeBell listens for Stripe's charge.refunded event and turns it into a plain-English refund_sent alert — ↩️ with the amount, the reason, and who got refunded — in the channel your finance or support team already watches. No Dashboard checks, no email threads.

What charge.refunded means

charge.refunded is the Stripe event that fires whenever a charge is refunded. Stripe's docs are explicit: it fires including partial refunds. That's the nuance most notification setups get wrong — a single charge can trigger charge.refunded more than once, because you can issue several partial refunds against it as long as the total refunded never exceeds the original amount. That's why a good alert shows the amount of *this* refund, not the whole charge.

ChargeBell keys its refund alert off charge.refunded specifically and maps it to the refund_sent alert type. It's easy to confuse with related events, so here's the distinction: refund.created fires when a refund is created, refund.updated tracks status changes on a refund, and charge.refund.updated covers updates on selected payment methods. For the "a refund just went out" signal, charge.refunded is the one you want.

Partial refunds fire it too

Because charge.refunded fires on partial refunds, ChargeBell shows the amount of the individual refund (amount_refunded), not the full charge amount. A $300 charge refunded $120 shows $120.

Why a Stripe refund alert in Slack is worth it

A refund is money leaving the business, so more than one team usually cares. Finance needs visibility for reconciliation; support and ops often need to close the loop with the customer. A real-time Slack ping replaces manual Dashboard checks and "did we refund that?" email threads by surfacing the amount, reason, and customer to the right channel instantly.

  • Reconciliation — finance sees money out the moment it happens, not at month-end.
  • Customer follow-up — support knows a refund landed and can close the ticket.
  • Risk signal — a fraudulent or duplicate reason is a flag worth a second look.
  • Shared awareness — no one has to open Stripe to know a refund went through.

What a good refund alert includes

Raw webhook JSON isn't useful in Slack. A good refund alert answers "how much, to whom, and why?" at a glance. ChargeBell pulls the refund amount, the humanized reason, and the customer name or email straight from the payload — plus a button to open the charge in Stripe.

#finance
↩️
ChargeBellApp

↩️ Refund sent — $49.00

to Lena at Fernworks

Reason: requested by customer

#support
↩️
ChargeBellApp

↩️ Refund sent — $120.00

to marcus@acmecorp.io

Reason: duplicate · partial refund of a $300.00 charge

Fields ChargeBell can include

  • Refund amount (this refund, so partial refunds read correctly) and currency
  • The refund reason — requested by customer, duplicate, fraudulent, or expired uncaptured charge
  • Customer name or email, when Stripe provides it
  • A "View in Stripe" button to jump to the charge

Route refunds to finance or support

The refund reason is the hook for where the alert should go. A fraudulent or duplicate refund is a signal for finance or risk; a requested_by_customer refund is usually a support matter. With ChargeBell's per-alert channel routing, you can send refund_sent to #finance, #support, or both — instead of being stuck with a single-channel automation. Not sure where each alert belongs? See which Stripe alerts go to finance, support, and founders.

One detail worth knowing

A refund returns funds to the original payment method — you can't redirect it elsewhere — and Stripe's original processing fees aren't returned to you. The customer typically sees the credit in about 5–10 business days, depending on their bank.

How to set up a Stripe refund alert in Slack

  1. 1

    Connect Stripe

    One-click, read-only OAuth. ChargeBell can see the refund event but can never move money or issue refunds itself.

  2. 2

    Enable the Refund sent alert

    It's on by default — the ↩️ refund_sent alert maps directly to Stripe's charge.refunded event.

  3. 3

    Route it to finance or support

    Pick the Slack channel each refund should post to. Send fraud and duplicates to #finance, customer requests to #support.

  4. 4

    Send a test alert

    Confirm the amount, reason, and customer look right before the next real refund goes out.

Want the full walkthrough with screenshots? See how to send Stripe refund alerts to Slack for the complete setup and routing options.

Get a Slack ping for every Stripe refund

Connect Stripe and Slack, route refunds to finance or support, and send a test alert. Free plan, no card needed.

Start freeFree plan · no card needed

Frequently asked questions

Which Stripe event fires on a refund?

charge.refunded. It fires whenever a charge is refunded, including partial refunds — so a single charge can trigger it more than once. ChargeBell listens for it and posts a plain-English refund alert to Slack.

Does the alert show partial refunds correctly?

Yes. ChargeBell shows the amount of the individual refund (Stripe's amount_refunded), not the whole charge, so a $120 partial refund of a $300 charge reads as $120 — not $300.

Can I route refunds to finance and support separately?

Yes. With per-alert channel routing you can send the refund_sent alert to #finance, #support, or both. The refund reason (fraudulent, duplicate, requested by customer) helps you decide which channel each one belongs in.

What's the difference between charge.refunded and refund.updated?

charge.refunded fires when a charge is refunded. refund.updated tracks later status changes on the refund itself (for example, a failed refund). ChargeBell's refund_sent alert is keyed off charge.refunded — the "a refund just went out" signal.

Does ChargeBell need write access to Stripe?

No. ChargeBell connects with official read-only OAuth. It can see the refund event to build the alert, but it can never move money or issue, edit, or cancel refunds in your Stripe account.