How to Set Up Dunning Management in Stripe (Step-by-Step)
Stripe's Built-In Dunning Features
Stripe offers several built-in features for handling failed payments. Before adding any third-party tools, you should configure these baseline settings. They're free, take minutes to set up, and provide a foundation for more advanced recovery strategies.
Here's what Stripe offers natively:
- Smart Retries — Machine learning-based retry timing that analyzes network-wide data to find optimal retry windows
- Failed payment emails — Basic email notifications sent to customers when payments fail
- Card expiration reminders — Automated emails before a card expires
- Subscription status management — Configurable behavior for what happens after multiple failed attempts (cancel, pause, or mark past due)
- Customer portal — A hosted page where customers can update their payment method
Step 1: Enable Smart Retries
Stripe's Smart Retries feature uses machine learning to determine the optimal time to retry a failed payment. It analyzes data across Stripe's entire network (millions of transactions) to predict when a specific retry is most likely to succeed.
To enable Smart Retries:
- Go to your Stripe Dashboard
- Navigate to Settings > Billing > Subscriptions and emails
- Under "Manage failed payments", select "Use Smart Retries"
- Configure the retry window (Stripe will retry for up to the number of days you specify)
- Set the maximum number of retry attempts
Recommended settings:
- Retry window: 14-21 days (gives enough time for paydays to cycle)
- Maximum retries: 4-6 attempts within the window
Step 2: Configure Failed Payment Emails
Stripe can send basic email notifications when payments fail. These are simple but better than nothing.
To configure:
- In Settings > Billing > Subscriptions and emails
- Under "Email customers", enable the following:
- Email when a payment fails (first failure)
- Email before a subscription is cancelled
- Email when a card is about to expire
- Review the email templates (Stripe provides basic customization of subject lines and branding)
Limitations of Stripe's Built-In Emails
While free and easy to set up, Stripe's native emails have significant limitations:
- Limited customization — you can change colors and logo but not the core messaging
- No multi-step sequences — Stripe sends one email per event, not an escalating series
- Emails come from Stripe, not your domain — reducing trust and brand recognition
- No personalization beyond basic merge fields
- No A/B testing capabilities
- No analytics beyond basic delivery metrics
For serious recovery, you need a dedicated dunning solution that sends emails from your own domain with fully customized messaging. This is where tools like dedicated dunning software come in.
Step 3: Set Up Subscription Behavior on Failure
Configure what happens when all retries are exhausted:
- In Settings > Billing > Subscriptions and emails
- Under "If all retries for a payment fail", choose one of:
- Cancel the subscription — Clean but final. Customer loses access.
- Mark the subscription as unpaid — Keeps the subscription object active but in an unpaid state. Useful if you want to continue recovery efforts beyond the retry window.
- Leave the subscription past_due — Similar to unpaid, but the next invoice will still be generated.
Recommended: Use "Mark as unpaid" if you have a dedicated recovery tool running, as it gives you more time to recover. Use "Cancel" if you're relying solely on Stripe's built-in features and want a clean cutoff.
Step 4: Enable the Customer Portal
Stripe's Customer Portal provides a hosted page where customers can update their payment method without you building anything:
- Go to Settings > Billing > Customer portal
- Enable the portal and configure which features are available (payment method update, plan switching, cancellation)
- Customize the branding (logo, colors, terms link)
- Copy the portal URL — include this in all dunning communications
The Customer Portal link is what you'll include in every dunning email as the primary CTA. Make it prominent and easy to find.
Step 5: Add Rezoki for Advanced Recovery
Stripe's built-in features provide a baseline, but for maximum recovery rates, you need a dedicated recovery layer. Here's how to connect Rezoki to supercharge your dunning:
Setting Up the Webhook
- Sign up at rezoki.com and create your workspace
- In your Rezoki dashboard, go to Settings and copy your unique webhook URL
- In Stripe Dashboard, go to Developers > Webhooks
- Click "Add endpoint"
- Paste your Rezoki webhook URL
- Select these events to listen for:
invoice.payment_failedinvoice.payment_succeededcustomer.subscription.deletedcustomer.subscription.updated
- Click "Add endpoint" to save
That's it. Rezoki is now connected and will automatically detect failed payments.
Configuring Your Recovery Sequence
Once connected, configure your recovery sequence in Rezoki:
- SMTP settings — Add your own email server so dunning emails come from your domain (zero email costs)
- Email sequence — Customize the timing, subject lines, and content of each email step
- Voice calls — Enable AI voice calls, choose a voice profile, and set when calls should be triggered
- Grace period — Set how long to attempt recovery before marking the job as lost
Step 6: Test Your Setup
Before going live, test the entire flow:
- In Stripe, use test mode to create a subscription with a test card
- Use Stripe's test card number for declined payments:
4000 0000 0000 0341 - Verify that Rezoki receives the webhook and creates a recovery job
- Check that your dunning email sequence fires on schedule
- Verify the recovery job closes when you process a successful payment
The Combined Stack: Stripe + Rezoki
Here's how the full stack works together:
| Layer | Tool | Function |
|---|---|---|
| Payment retries | Stripe Smart Retries | ML-optimized retry timing |
| Email dunning | Rezoki | Multi-step sequences from your domain |
| Voice outreach | Rezoki | AI-powered phone calls to non-responsive customers |
| Payment update | Stripe Customer Portal | Hosted payment update page |
| Tracking & analytics | Rezoki | Full recovery ledger with job-level detail |
This layered approach typically recovers 3-5x more revenue than Stripe's built-in features alone. Stripe handles the payment infrastructure, Rezoki handles the recovery intelligence and customer outreach.
Rezoki Team
The Rezoki team writes about revenue recovery, dunning management, and reducing churn for SaaS companies. We build AI-powered tools that help subscription businesses recover failed payments automatically.