Stripe alert

Send a Stripe invoice paid alert to Slack

The invoice.paid event fires when an invoice clears — online or marked paid by hand. Here's how to turn it into a clean Slack alert for subscriptions and B2B invoicing.

Updated July 6, 20266 min read

A Stripe invoice paid alert in Slack is a plain-English message posted the moment an invoice clears. ChargeBell listens for Stripe's invoice.paid event and turns it into a message — with the amount, the customer, the invoice number, and why it was billed — in the channel your team already watches. It's the cleanest signal that a subscription renewal or a B2B invoice actually got paid.

What the invoice.paid event means

Straight from Stripe's own events reference, invoice.paid "occurs whenever an invoice payment attempt succeeds or an invoice is marked as paid out-of-band." That second half is the important part. It fires both when a card or bank payment goes through automatically, and when you (or a teammate) reconcile a payment by hand — for example after a wire, ACH transfer, or check clears and you mark the invoice paid inside Stripe.

This is what separates it from invoice.payment_succeeded, which Stripe describes as firing "whenever an invoice payment attempt succeeds." That event does not fire for out-of-band payments. Stripe notes that successful online payments trigger both events with identical invoice data, so you only need to listen to one — but invoice.paid is the strict superset. It catches everything payment_succeeded does, plus manually-marked payments, which makes it the right "is this invoice really paid?" event.

Why a Stripe invoice paid alert in Slack matters

For subscriptions, Stripe auto-generates a renewal invoice each cycle, holds it in draft, then finalizes and attempts payment. When it clears, the invoice status flips to paid and invoice.paid fires. That makes it a per-cycle heartbeat for recurring revenue — the confirmation a renewal went through, not just that a charge was attempted.

  • Subscription renewals — a per-cycle confirmation that recurring revenue actually landed, in a channel the whole team sees.
  • B2B invoicing — catches invoices paid by wire, ACH, or check and reconciled by hand, which invoice.payment_succeeded silently misses.
  • Agencies and services — know the moment a client invoice clears without refreshing the Stripe dashboard. See Stripe alerts for agencies for the full playbook.

ChargeBell's invoice paid alert is OFF by default

Unlike most alert types, invoice_paid ships turned off. A single sale can emit several success events at once — new subscriber, payment received, and invoice paid — so leaving it on can duplicate other wins. Turn it on deliberately when subscription renewals or B2B invoices are the signal you care about.

What a good invoice paid alert includes

Raw webhook JSON isn't useful in Slack. A good alert answers "which invoice, from whom, and how much?" at a glance. ChargeBell reads the fields that matter from the invoice object and writes them in plain English.

#billing
🧾
ChargeBellApp

🧾 Invoice paid — $2,400.00 USD

Invoice #INV-0042 · Acme Corp (billing@acme.com)

Reason: subscription renewal · View invoice →

#billing
🧾
ChargeBellApp

🧾 Invoice paid — €890.00 EUR

Invoice #INV-1180 · Globex Ltd

Paid out-of-band (marked paid manually) · Pro (monthly)

Fields ChargeBell can include

  • Amount paid and currency
  • Customer name or email, when Stripe provides it
  • The human-facing invoice number
  • The billing reason — a subscription renewal, a new subscription, or a manual invoice

invoice.paid vs invoice.payment_succeeded

Behaviorinvoice.paidinvoice.payment_succeeded
Fires on an online payment success
Fires when marked paid out-of-band (wire/ACH/check)
Carries the full invoice payload
Complete coverage for B2B invoices
For successful online payments both events carry identical data — you only need one. invoice.paid also covers manually-marked payments.

How to set up a Stripe invoice paid alert in Slack

  1. 1

    Connect Stripe

    One-click, read-only OAuth. ChargeBell can see invoice events and can never move money or change anything in Stripe.

  2. 2

    Connect Slack and pick a channel

    Add the app and choose where invoice payments should post — a channel like #billing or #revenue.

  3. 3

    Turn on the Invoice paid alert

    In Alerts settings, toggle Invoice paid on — it's off by default. Optionally route it to its own channel.

  4. 4

    Send a test alert

    Confirm the message looks right before your next renewal or invoice clears.

Getting a lot of invoices? Route high-volume successes to the daily digest instead of a per-event ping, and reserve invoice.paid alerts for the renewals or B2B invoices you actually want to see land. More on this in how to monitor Stripe subscriptions in Slack.

Get a Slack ping when invoices clear

Connect Stripe and Slack, turn on the Invoice paid alert, and send a test. Free plan, no card needed.

Start freeFree plan · no card needed

Frequently asked questions

Which Stripe event fires when an invoice is paid?

invoice.paid. Stripe fires it whenever an invoice payment attempt succeeds or an invoice is marked as paid out-of-band. ChargeBell listens for it and posts a plain-English Slack alert with the amount, customer, and invoice number.

How is invoice.paid different from invoice.payment_succeeded?

For successful online payments they carry identical data, so you only need one. The difference is out-of-band payments: invoice.paid also fires when you mark an invoice paid by hand (after a wire, ACH, or check), while invoice.payment_succeeded does not. That makes invoice.paid the safer choice for B2B invoicing.

Is ChargeBell's invoice paid alert on by default?

No. The invoice_paid alert ships off. Because one sale can emit several success events, it's off by default to avoid duplicate wins. Turn it on in Alerts settings when subscription renewals or B2B invoices are the signal you want.

Does ChargeBell need write access to Stripe?

No. ChargeBell connects with official read-only OAuth. It can see invoice events to build alerts, but it can never move money, mark invoices paid, or change anything in your Stripe account.

How do I avoid noise if I get a lot of invoices?

Route high-volume successes to the daily digest instead of a per-event alert, and reserve invoice paid pings for the renewals or B2B invoices you care about. ChargeBell also dedupes on the Stripe event id, so you get one alert per event.