Serious dunning for serious businesses.

Stunning stops SaaS app churn by preventing failed payments, and that's just the start.

Our customers have recovered $162,241,986 in recurring revenue since 2012 with Stunning. We've been preventing failed payments on Stripe longer than anyone else.

You've recently signed up for Stripe to power subscriptions for your SaaS app. It's got the best API you've ever seen for payments, and getting started was a breeze. It's given you a ton of flexibility, because you can build payments into your app in whatever way you'd like, customizing it in just about any way that you can think up.

The problem is: You've been writing your app for weeks, or even months. You've added the code to accept payments, and you've got paying customers. But you just got a sinking feeling. What happens when you have trouble charging those customers because their charges are declined? When they cancel their card but forget to update their billing information, or have a failed payment for some other reason, how do you make sure that you keep getting paid?

Your business is built on recurring revenue. Make sure that it keeps recurring.

You've worked hard to get customers, and you want to make sure that they stay customers. You don't want to lose them due to failed payments and billing issues, but you just want to get back to writing code for your app. You know that you need dunning in your app (code that sends notifications over time when billing issues arise and allows customers to update their billing information), but the thought of figuring out what webhooks to listen for, how to respond to them, and making sure it's all tested and stable is just not something that you want to deal with or worry about.

Your dreams = reality. No code required.

What if you didn't have to worry about lost revenue due to expired cards and failed payments, and you didn't have to write a single line of code to make that a reality? Stunning makes that possible.

Let us worry about failed payments for you.

We've been dealing with failed payments on Stripe for years, and we know that our methods are highly effective. Stunning was built from the ground up to deal with failed payments, and it's our core feature. Our failed payment handling isn't just another feature that we added to make our app look more attractive. We're serious about failed payments.

So how does it work?

You connect Stunning securely to your Stripe account, using Stripe Connect.

Stunning monitors your Stripe account for important events.

When a customer triggers an event that you've set up notifications for, Stunning sends them on your behalf, and optionally notifies you as well.

"Ok, that sounds pretty cool, but I need to know that I can trust you."

You can! Stunning is:

Built by people who actually understand churn

We've been running successful web apps since 2006, and have thousands of customers of our own, spread out between multiple apps. We are serious about minimizing churn.

Reliable and tested

We send thousands of emails each week on behalf of our customers, and Stunning's back-end was built with nearly a decade of experience of running web apps at scale. We've been helping customers with failed payments on Stripe longer than anyone else out there.

Under your control

You are in complete control of the contents of the emails that we send out, and you can receive a copy of every email that we send on your behalf.

Updated on a regular basis

It's in our best interest to keep Stunning working as awesomely as possible, because we use it on our own apps! Stunning uses Stunning.


We use Stripe Connect to securely connect to your Stripe account, meaning that with a couple of clicks you're connected, and you have full control over our access to your account.

Built with our customers in mind

We are constantly talking to our customers to see what they need, and adding features that benefit everyone.

But you don't have to take our word for it!

Here's what some of our customers have to say about Stunning.

We use Stunning to send detailed receipts, emails about credit card status, and our favorite, personalized welcome emails. I love being able to send customized emails automatically based on actions that my customers have taken. This has cut our manual workload in half! I would recommend Stunning not only because the product is great, but also because the company building it is focused on our success. They are responsive, they are smart, and they offer a great product!
Blakely Graham
"Aside from the great benefits that Stunning provides from a CRM and retention perspective, their customer service is extraordinary. We have some unique payment models and the Stunning team went far above and beyond to help us with proper implementation and setup. The great communication and service, as much as the great product, will keep us on board as customers for a long, long time."
Gavin Thomas
Customer churn is one of the key metrics that we watch very closely here at FullContact. Stunning allowed us to focus on building our product while quickly implementing, without any code, a solution that allows us to send receipts, cancellation, and dunning emails to our customers.
Travis Todd

Stunning handles a lot more than just dunning.
Using Stunning is like strapping a jetpack onto your Stripe account.
Here's what else you get.

Smart Retries

Some failed payments can be collected successfully if you just retry them at the right time. With Smart Retries, Stunning goes beyond Stripe's built-in retries. It intelligently retries your failed payments at times that have the best chance of recovering revenue, based on your customer base and what's best for your particular app.

Pre-Dunning Emails

Shortly before credit cards expire, Stunning attempts to automatically update the billing information for them. If it's unsuccessful, it sends a series of emails to your customers on your behalf, so that they can update their billing information before a payment fails. This keeps your cash-flow on track, because you end up with less failed payments.

Dunning Emails

When a card is unable to be charged for any reason, Stunning emails your customer and lets them know what the issue is so that they can fix it and keep their subscription active. Not using Stripe's subscriptions? Stunning can still send dunning emails for you.

Dunning SMSes

Having multiple ways to contact your customers when payments fail is essential. Stunning lets you also send SMSes to your customers when payments fail, with links that let them directly update their billing information. Don't have cell numbers for your customers? We can even help you collect them.

In-App Notification Bar

When a card is about to expire, or a customer has a failed payment, Stunning can let them know inside of your app. In-app notifications are even more effective than emails, because your customer is already engaged with your app when they see the notification.

Payment Update Pages

Stunning provides secure payment update pages that you can link to in your dunning emails, so that your users can easily update their payment info. You can also use our payment pages on your own domain, or you can link to your own!

Customizable Receipts

Easily send your customers fully customizable plain-text or HTML receipts each time they are charged. Use your own templates, for consistent branding.

Billing History

Easily let your customers see a list of all of their successful charges and print/download them in PDF format.


Conditions allow you to have specific emails sent only to customers who meet certain criteria. Combined with the ability to have multiple templates, this allows you a ton of flexibility that lets you send the right emails to the right customers at the right times.

Welcome Emails

Have a custom email sent when a customer starts their subscription to your app.

Cancellation Emails

Stunning sends different emails to your customers depending on whether their account was cancelled manually, or automatically due to billing issues.

Trial Expiration Emails

These emails are sent to your customers before their trial period is over. You can use these to remind them that they are about to be charged, or to make sure that they get the full use of their trial.

Subscription Update Emails

These emails are sent to your customers as confirmation when their plan is changed.

Refund Emails

Have a confirmation email sent to your customers when you refund charges.

Upcoming Charge Emails

Have a reminder email sent to your customers a week before they are charged.

Events Dashboard

Within your Stunning account, you can see when we send emails, who we send them to, and even when they update their payment information. We can even send you straight to Stripe for more details.

Push Notifications

With the free Stunning iPhone app, get a history of all recent events in your account, and receive push notifications when you get paid, when a payment fails, when a new customer signs up, and more!

Start your free 15 day trial now and give your app revenue recovering superpowers.

Our free trial is fully functional, and you can cancel at any time if you need to.

$ 500 /month
Up to 5000 paying customers
Founder's cell phone number
All features
Stripe Integration Help
Money-Back Guarantee
Recover My Revenue
$ 200 /month
Up to 2500 paying customers
All features
Stripe Integration Help
Money-Back Guarantee
Recover My Revenue
$ 100 /month
Up to 1500 paying customers
All features
Stripe Integration Help
Money-Back Guarantee
Recover My Revenue
$ 50 /month
Between 250 and 750 paying customers
All features
Stripe Integration Help
Money-Back Guarantee
Recover My Revenue
Starting at
$ 0 /month
Less than 250 paying customers
All features
Stripe Integration Help
Money-Back Guarantee
Ask Us How

Need More (or less?)

Have more than 5000 customers?

We can handle them.
Contact us about our enterprise-level plans, and we'll be glad to help.

Free Alerts Plan

We also have a completely free iPhone Alerts plan that lets you get push notifications of events in your Stripe account, such as new charges or billing issues.

Free From Stunning


Metadater keeps your Stripe customer metadata up to date. It prompts your customers to add/update their Stripe metadata while they're using your app.