Stripe integration
Stripe failed payment recovery
Stripe Billing already retries failed invoices and can email customers. Revnio sits on top of it: it reads every failed payment from your Stripe account, picks a retry time based on the decline reason and the customer, and keeps reaching the customer until the card is fixed.
What Stripe does on its own
When a subscription renewal fails, Stripe Billing can retry the invoice on a schedule (Smart Retries, or a fixed schedule you set) and can send customers an email about the failed payment or an expiring card. After the last retry, Stripe cancels the subscription, marks it unpaid or leaves it past due, depending on your settings.
That covers the basics, but it leaves gaps that cost recurring revenue:
- Customer messages are email only, with limited control over copy, branding and the number of follow-ups.
- Retry timing is the same for an annual customer worth thousands and a brand-new monthly signup.
- A lost or stolen card is retried like an insufficient-funds decline, even though only a new card will fix it.
- There is no fallback to WhatsApp (or, soon, SMS) when the email goes unread.
What Revnio adds
Revnio listens to invoice and charge events from your Stripe account in real time. When an invoice payment fails, it records the failure with its decline code and starts a recovery sequence for that customer.
- Decline-aware retries: temporary declines such as insufficient funds or processing errors are retried sooner; lost and stolen cards are never retried automatically (card networks can charge for those retries), expired cards are retried later, and in both cases the customer is asked for a new card, because only a new card will fix them.
- Customer-aware timing: annual plans, high-MRR subscriptions and high-lifetime-value customers are retried sooner, and retries land on weekdays during business hours.
- Saved-card fallback: if the invoice has no payment method attached, Revnio retries with the customer’s saved card.
- Branded recovery emails with a secure link where the customer can update their card in the Stripe billing portal or pay the open invoice.
- WhatsApp (Pro plan) follow-ups when the email link has not been clicked. SMS is coming soon.
- Card-expiry alerts 30, 14 and 7 days before a saved card expires, so fewer renewals fail in the first place.
- A recovered-revenue dashboard that shows what came back and through which channel.
How the connection works
You connect Stripe by creating a restricted API key in your Stripe dashboard and pasting it into Revnio. A restricted key only grants the permissions you tick, so Revnio never gets your full secret key. Revnio checks the key’s permissions, stores it encrypted, and creates a webhook endpoint in your Stripe account so payment events arrive immediately. It then imports your customers, subscriptions and invoices.
The key needs read access to Customers, PaymentMethods, Charges and PaymentIntents, and write access to Invoices (to retry them), Subscriptions (to pause on request), Checkout Sessions, Coupons, the Customer portal and Webhook Endpoints. Both live and test-mode keys work.
Set up Stripe in Revnio
- In Stripe, go to Developers → API keys and create a restricted key with the permissions listed in Revnio.
- Paste the key into Revnio under Settings → Integrations → Stripe.
- Revnio verifies the permissions, creates its webhook endpoint in your account and starts the initial sync.
- Review the default retry and email schedule, then turn on automations.
Frequently asked questions
Should I turn off Stripe Smart Retries when I use Revnio?
Most teams let Revnio own the retry schedule so the two don’t retry the same invoice back to back. Keep Stripe’s final action (cancel, mark unpaid or leave past due) set to what you want after recovery ends.
Does Revnio use Stripe Connect or OAuth?
No. You connect with a restricted API key that only has the permissions Revnio needs. You can revoke it from your Stripe dashboard at any time.
Does Revnio store card numbers?
No. Card details stay in Stripe. Customers update their card in Stripe’s billing portal or checkout; Revnio only stores the card brand, last four digits and expiry date that Stripe returns.
Will Revnio import failed payments from before I connected?
The initial sync imports your customers, subscriptions and invoices from Stripe. New failures are picked up in real time through the webhook endpoint Revnio creates.
Does it work with Stripe test mode?
Yes. Paste a test-mode restricted key to try the full flow with Stripe’s test cards before going live.
Start recovering failed Stripe payments
Connect Stripe in a few minutes and let Revnio handle retries and follow-ups. 14-day free trial.
Related
- Chargebee integrationCollects failed Chargebee invoices and chases customers across email and WhatsApp.
- Paddle integrationWorks alongside Paddle’s own retries to get past-due customers to update their payment method.
- Dunning emails that get cards updatedA branded sequence that starts the moment a payment fails, with a one-click fix.
- SMS dunning for failed paymentsComing soon: a text with a short link when the recovery email goes unclicked.
- WhatsApp payment reminders for failed paymentsA final nudge from your verified WhatsApp Business number.
- Card decline codes explainedWhat each decline means and how to recover it.
- Failed payment calculatorEstimate how much revenue failed payments cost you.
- Dunning email templatesCopy-ready emails for failed payments.