Event types & meaning
For every monitored Stripe event, Churnbell sends a notification with details and a short explanation. Below is an overview of all known event types. Unknown types are delivered too, with a generic classification.
| Event | What it means |
|---|---|
🔔 Subscription cancelledcustomer.subscription.deleted | This subscription has ended – the customer no longer has an active subscription and will not be billed again. Recurring revenue (MRR) is lost here. |
⏳ Cancellation scheduledcustomer.subscription.updated | The customer cancelled effective at the end of the current period. The subscription stays active until the date shown but will not renew – there is still time to win them back. |
⚠️ Payment failedinvoice.payment_failed | A (usually recurring) payment failed. Stripe automatically retries over the next days (dunning). If it keeps failing, the subscription may eventually be cancelled – an early nudge to the customer pays off. |
💰 Payment receivedinvoice.paid | An invoice was paid successfully – the money is credited to your Stripe balance (the payout to your bank account follows per your Stripe payout schedule). |
🎉 New subscriptioncustomer.subscription.created | A customer started a new subscription – new recurring revenue. If it starts with a trial, billing only begins after the trial ends. |
🚨 Dispute openedcharge.dispute.created | A customer disputed a payment with their bank (chargeback). The amount is held provisionally. IMPORTANT: submit evidence before the deadline shown, otherwise the dispute is lost (amount + fee). |
🎉 Cancellation revokedcustomer.subscription.updated | Good news: the customer revoked their scheduled cancellation – the subscription will keep renewing as normal. |
ℹ️ Subscription updatedcustomer.subscription.updated | Something on a subscription changed (e.g. plan, quantity, payment method or status). |
⏰ Trial ending sooncustomer.subscription.trial_will_end | This customer's free trial is about to end (Stripe signals this ~3 days ahead). After that, regular billing starts – or the customer churns. A good moment for a nudge. |
💰 Payment succeededpayment_intent.succeeded | A payment was completed successfully. This is the technical confirmation behind a payment – for subscriptions/invoices you usually also see a paid invoice. |
⚠️ Payment failedpayment_intent.payment_failed | A payment attempt failed (e.g. card declined, insufficient funds). For one-off payments the customer needs to try again. |
💰 Charge succeededcharge.succeeded | A payment method (e.g. card) was charged successfully. For subscriptions/invoices a paid invoice usually appears alongside – this is then just the technical charge. |
⚠️ Charge failedcharge.failed | Charging a payment method failed (e.g. declined or insufficient funds). |
↩️ Refund issuedcharge.refunded | A payment was refunded to the customer (fully or partially). The amount is debited back from your Stripe balance. |
⚠️ Dispute updatedcharge.dispute.updated | There is an update on an ongoing payment dispute (chargeback) – e.g. more evidence was requested or the status changed. Check the deadline and submit any missing evidence in time. |
🚩 Dispute closedcharge.dispute.closed | A payment dispute (chargeback) was decided. "won" = in your favor (amount stays), "lost" = amount and dispute fee go back to the customer. |
🚨 Early fraud warningradar.early_fraud_warning.created | The cardholder's bank flagged a payment as potentially fraudulent – often a precursor to a chargeback. Refunding early can prevent a costly dispute. |
🏦 Balance updatedbalance.available | Your Stripe balance changed. "Available" is ready to be paid out to your bank account; "Pending" is still held by Stripe until payments settle. (No customer context – this concerns your own account.) |
🏦 Payout initiatedpayout.created | Stripe initiated a payout to your bank account. "Arrival" is the expected credit date. This concerns your own account, not a customer. |
🏦 Payout paidpayout.paid | Stripe is paying out your balance to your bank account. "Arrival" is the expected credit date. This concerns your own account, not a customer. |
🏦 Payout reconciledpayout.reconciliation_completed | Stripe finished reconciling this payout – all underlying transactions have been matched to it. Informational only, no action needed. |
⚠️ Payout failedpayout.failed | A payout to your bank account failed (e.g. wrong or blocked bank details). Please check your bank details in the Stripe dashboard, otherwise the money stays in your Stripe balance. |
🧾 Upcoming invoiceinvoice.upcoming | A preview of the next invoice – it has NOT been charged or billed yet. Stripe sends this heads-up typically a few days before the next charge (handy to pre-warn customers or review amounts). |
🧾 Invoice finalizedinvoice.finalized | An invoice was finalized and is now fixed – Stripe will attempt to collect it shortly after. Usually just informational. |
💰 Checkout completedcheckout.session.completed | A customer successfully completed a Stripe Checkout page (one-off purchase or subscription start). For "subscription" mode a new subscription is also created. |
👤 New customercustomer.created | A new customer was created in your Stripe account. This does not mean a payment happened yet – often the first step before a purchase or subscription. |
ℹ️ Customer updatedcustomer.updated | Customer details changed (e.g. email, default payment method or address). |
ℹ️ Customer portal openedbilling_portal.session.created | A customer opened their Stripe customer portal (e.g. to update payment details or to cancel). Nothing has changed on the subscription itself yet – routine activity, suppressed by "skip routine events". |
👤 Customer deletedcustomer.deleted | A customer was deleted in Stripe. Any existing subscriptions are ended as well. |
Less noise: bundling & routine events
Stripe often reports a single occurrence several times under different names. For rules with the noise filter enabled (“skip routine updates”, the default), Churnbell bundles them – you get one notification per occurrence, while every individual event stays visible in the history:
- Failed payment –
invoice.payment_failed,payment_intent.payment_failedandcharge.failedfor the same customer become one notification (the invoice wins). - Payment received –
invoice.paid,payment_intent.succeededandcharge.succeededbecome one notification; when a subscription starts, Churnbell sends a single “🎉 New subscription” or “💰 Checkout completed” instead. - Dunning – when Stripe retries a failed invoice, Churnbell only notifies you about the first failure and the final attempt (“⚠️ Final payment attempt failed”). The retries in between only show up in the history.
- Routine events never trigger an alert, e.g.
invoice.created/updated/sent/upcoming,invoice.payment_succeeded(duplicate ofinvoice.paid),subscription_schedule.*,payment_intent.created,balance.available,payout.created,refund.*(duplicate ofcharge.refunded), catalog maintenance (price.*,product.*,plan.*,tax_rate.*),customer.created,payment_method.*andcheckout.session.expired.
If you want the unfiltered stream, turn off the noise filter on that rule. A rule for one specific type (e.g. only charge.failed) is never bundled in favour of an event you have not subscribed to.
Other event families
All remaining Stripe events are classified by their family: every subtype (e.g. person.updated) gets a readable title and a short explanation – the exact type is always included in the notification.
| Family | Classification |
|---|---|
payment_method.* | Payment method – a saved payment method was created, updated or removed. |
setup_intent.* | Payment method setup – a payment method was set up for future payments. |
refund.* | Refund – a refund-related event. |
invoiceitem.* | Invoice item – a single line item on an invoice changed. |
credit_note.* | Credit note – a credit note for an invoice was created or changed. |
customer.tax_id.* | Customer tax ID – a tax ID was added, verified or removed. |
customer.discount.* | Customer discount – a discount/coupon on a customer changed. |
customer.source.* · source.* | Payment source – a (legacy) customer payment source changed. |
review.* | Payment review – Stripe Radar flagged a payment for manual review or released it. |
price.* · product.* · plan.* | Catalog – a price, product or subscription plan in your catalog changed. |
coupon.* · promotion_code.* | Coupon & promotion code – a coupon or promotion code was created or changed. |
subscription_schedule.* | Subscription schedule – scheduled subscription changes (phases) were created or adjusted. |
quote.* | Quote – a Stripe quote was created, accepted or changed. |
tax_rate.* | Tax rate – a tax rate was created or changed. |
account.* | Stripe account – a change to your Stripe account itself (e.g. settings or verification status). No customer context. |
person.* | Account person – a person registered on your account (owner/representative), usually part of identity verification (KYC). No customer context. |
capability.* | Account capability – a capability of your account was enabled or disabled (e.g. a payment method). |
mandate.* | Payment mandate – e.g. a SEPA direct debit authorization was granted or revoked. |
topup.* | Balance top-up – a top-up of your Stripe balance. |
transfer.* | Transfer (Connect) – a transfer to a connected account (Stripe Connect). |
payment_link.* | Payment link – a payment link was created or changed. |
billing_portal.configuration.* | Customer portal – your Stripe customer portal configuration changed. |
reporting.* | Report – a report from your Stripe account was created or is ready. |
identity.* | Identity verification – an event about an identity verification (Stripe Identity). |
file.* | File – a file was created in your Stripe account (e.g. a report or evidence document). |
Subtypes of the areas explained individually above (such as invoice.marked_uncollectible) are classified the same way – e.g. as "Invoice", "Card charge" or "Subscription". Entirely unknown types arrive as "Stripe event" with a pointer to your Stripe dashboard.
💡 You control which of these events reach you via Rules & patterns.