Chargebee ships with a dunning engine out of the box. If you're already paying for Chargebee's billing platform, you might as well use it before you start shopping for another tool. The question is whether the built-in dunning gets you to a healthy recovery rate or whether you're leaving revenue on the table by not layering something focused on top.
This guide walks through the exact steps to configure Chargebee dunning with custom email templates, shows what the platform handles well, and explains the realistic recovery numbers you should expect before deciding whether to stick with it or move to a dedicated solution.
Where Chargebee dunning lives
Chargebee calls its dunning module "Smart Dunning." You'll find it under Settings, Configure Chargebee, Dunning for Non-3DS or Dunning for 3DS. The two flows are separate because Strong Customer Authentication changes how retries work, and Chargebee wants you to configure them independently.
Each dunning flow is a schedule of retry attempts plus an associated email template fired at each attempt. By default Chargebee gives you something like:
| Attempt | Days after failure | Email sent |
|---|---|---|
| 1 | 0 | Payment failed notification |
| 2 | 3 | Retry reminder |
| 3 | 5 | Second retry |
| 4 | 7 | Final attempt |
| End | 10 | Subscription canceled |
Those defaults are a starting point, not a finished setup. Most teams tune them.
Step-by-step: setting up custom templates
Here's the clean path from out-of-the-box Chargebee to a custom, branded dunning flow.
Step 1: Configure the retry schedule
Go to Settings, Configure Chargebee, Dunning. Pick the flow type (Non-3DS for most US and non-SCA customers, 3DS for European and SCA-gated cards).
Adjust the retry attempts. A reasonable schedule:
- Attempt 1: day 0
- Attempt 2: day 2
- Attempt 3: day 5
- Attempt 4: day 8
- End action: cancel or pause on day 10
Chargebee lets you set an End of Dunning action. Choose between Cancel Subscription, Unpaid Subscription, or Do Nothing. For most SaaS, Unpaid is safer than Cancel because it preserves the customer record.
Step 2: Enable email notifications per attempt
In the same Dunning screen, toggle on "Send email notification" for each retry attempt. This ties an email template to each step. By default Chargebee uses its system template, which is functional but generic.
Step 3: Customize templates in Email Notifications
Go to Settings, Email Notifications, Dunning. You'll see a list of system templates like:
- Payment Failed
- Dunning: Attempt Reminder
- Dunning: Final Notice
- Subscription Canceled due to Non Payment
Click into each and replace the default copy. Chargebee supports merge variables like {{customer.first_name}}, {{invoice.amount}}, {{subscription.plan_id}}, and critically, {{hosted_page.manage_payment_sources}} which generates a pre-authenticated link to the customer's payment update page.
That hosted page link is the single most important variable. Make sure every template has it as the primary CTA.
Step 4: Brand and test
Upload your logo, set your from address (verified through SPF and DKIM), and send test emails to yourself. Chargebee has a test mode that lets you simulate a failed charge against a test customer. Use it.
Step 5: Turn on email tracking
Under Email Notifications, Settings, enable open and click tracking. Without this you won't know if your dunning emails are landing in spam, being ignored, or working.
Step 6: Configure the 3DS flow separately
Repeat the whole process for the 3DS dunning flow. Your schedule can be the same, but the copy might need to acknowledge that the customer will see a bank authentication prompt when they update their card. This matters for EU and UK customers.
Copy-ready Chargebee template
Drop this into "Dunning: Attempt Reminder" as a starting point:
| Field | Content |
|---|---|
| Subject | Your {{site.name}} payment didn't go through |
| Body opener | Hi {{customer.first_name}}, |
We tried to charge {{invoice.amount_due}} for your {{subscription.plan_id}} subscription and the payment was declined. This is almost always an expired card or a temporary bank hold.
You can update your card here, it takes about 30 seconds:
{{hosted_page.manage_payment_sources}}
We'll retry the charge automatically in a couple of days. If you've already updated your card on another site, you're probably fine.
Thanks, The {{site.name}} team
What Chargebee dunning does well
Chargebee's built-in dunning is solid at:
- Integrating with the rest of your billing logic (tax, proration, revenue recognition)
- Handling 3DS and SCA flows without custom code
- Supporting multiple payment gateways in one sequence
- Giving you audit trails tied to invoice and subscription state
- Localizing templates for different currencies and regions
If you're already running Chargebee for billing, this is the shortest path to a working dunning flow. You're not paying extra, and the sequences live alongside the invoice state they're recovering against.
Where it falls short
Chargebee dunning is email only. There's no native SMS channel. That's the biggest limitation, because email-only recovery tops out around 50 to 60% while email plus SMS sequences push recovery into the 65 to 80% range.
The other gaps:
- No A/B testing on dunning templates without custom work
- Limited segmentation (same sequence for everyone unless you script around it)
- Template editor is functional but not modern
- Analytics are tied to Chargebee's broader dashboards, not focused on recovery ROI
Realistic recovery rates by setup
Here's what to expect from each approach:
| Setup | Expected recovery rate |
|---|---|
| Chargebee defaults, no customization | 35 to 45% |
| Chargebee with customized templates and good timing | 50 to 60% |
| Chargebee plus a focused dunning tool layered on top | 65 to 80% |
| Dedicated dunning with email plus SMS, no Chargebee layer | 65 to 80% |
The jump from customized Chargebee to a dedicated tool comes almost entirely from adding SMS. If your customer base is mobile-friendly (most B2C and most modern B2B are), SMS is where the extra 15 to 20 points of recovery come from.
When Chargebee built-in dunning is enough
Stick with Chargebee dunning if:
- You're email-only by choice (regulated industry, older customer base)
- Your recovery rate is already above 55% and you're happy with it
- You don't have engineering time to integrate another tool
- You use Chargebee's cancel flows and want everything in one place
When to layer a focused tool on top
Add a dedicated dunning tool if:
- You want SMS in the sequence (biggest lever)
- You want recovery ROI dashboards separate from billing analytics
- You want to iterate on copy and timing without touching billing config
- You're watching MRR leak and you know Chargebee's templates aren't moving the needle
Where Rekko fits for Chargebee users
Rekko is Stripe-native, so if you're running Chargebee on top of Stripe as your gateway, Rekko can sit alongside Chargebee and handle the dunning layer while Chargebee handles billing logic. You get SMS, pre-authenticated update links, and a recovery dashboard that actually tells you what each sequence is pulling in.
If you're running Chargebee on a different gateway, tools like Churnkey or Stunning might fit better for the multi-gateway case. For Stripe-backed Chargebee setups, Rekko is the simpler path.
Start your 14-day free trial, no credit card required. Or see the full Chargebee vs standalone dunning breakdown if you want the side-by-side.