Failed Payment Recovery Campaign
Automatically retry failed subscription payments and notify customers before an expired card becomes a cancellation
Stripe integration that detects failed payments, retries with exponential backoff, and sends customer notifications with payment method update link. Reduce churn from payment failures.
Nora monitors Stripe for failed subscription payments. When a payment fails, Nora logs the event, identifies the customer, and schedules a retry based on the failure reason. Before the next attempt, Nora drafts and sends an email to the customer containing a direct link to their Stripe customer portal to update their payment method. If the customer updates their details, Nora processes the pending invoice. If attempts exhaust, Nora pauses the subscription.
The finance manager stops manually checking Stripe for overdue invoices and sending individual follow-up emails. They read a daily summary of recovered revenue and paused accounts in their chat channel. They still decide whether to extend grace periods for specific high-value clients or cancel accounts permanently after the retry window closes.
Runs real-time as payments fail, retries on schedule using Stripe, run by your Finance Manager.
How it works
- Detect failed payment events — Nora listens for Stripe webhook events indicating an invoice payment failed. It reads the invoice record to extract the customer ID, subscription details, and the specific decline code returned by the payment processor.
- Schedule retry attempts — Based on the decline reason, Nora schedules a series of payment retries. A temporary hold might trigger a retry in three days, while insufficient funds prompts a five-day delay. Nora registers these future attempts in its internal schedule.
- Send customer notification — Nora emails the customer notifying them of the failed charge. The message includes a secure, temporary link to the Stripe customer portal, directing them to update their default payment method for the active subscription.
- Execute scheduled retries — When a scheduled retry date arrives, Nora instructs Stripe to attempt the charge again using the current default payment method on file. It reads the resulting status from the Stripe API to determine the next action.
- Handle maximum failures — If a payment fails after the final scheduled retry attempt, Nora updates the Stripe subscription status from active to paused. It stops attempting charges and flags the account for the finance manager to review.
- Report recovery status — Nora sends a daily summary to the designated channel. This report lists invoices successfully recovered through retries, customers who updated their cards, and any subscriptions newly paused due to exhausted attempts.
What this replaces
A finance operator runs a daily filter in the Stripe dashboard for past-due invoices. They open each customer record, identify the contact email, and write a manual follow-up message asking for a new card. Later in the week, they manually trigger a retry attempt on the invoice.
- Filter Stripe invoices for past-due status
- Copy customer email addresses into a new message
- Send payment reminder emails with portal links
- Manually click retry on failed invoices days later
- Change subscription status to paused after repeated failures
Rough estimate rather than a measured figure: about 45 minutes a day, assuming 15 failed payments requiring 3 minutes each to review, email, and manually retry.
What it needs to run
Accounts and plans
- Stripe account with active subscriptions
- Email provider or SMTP credentials for sending notices
Access it asks for
- Stripe Secret Key (sk_live_...) for API access
- Read access to Stripe invoices, subscriptions, and customers
- Write access to update subscriptions and trigger invoice payments
What Nora reads
- Stripe invoice status and decline codes
- Customer email addresses
- Subscription states
What Nora writes
- Triggering invoice payment retries
- Updating subscription status to paused
- Sending outgoing emails to customers
When it goes wrong
- The payment fails due to a hard decline like a reported stolen card Nora skips the retry schedule entirely, as subsequent attempts will fail. It immediately emails the customer asking for a new payment method and notifies the admin.
- The customer replies to the automated payment failure email with a question Nora routes the reply to the designated support channel. It does not attempt to answer billing disputes and waits for a human to advise on the next step.
- A retry attempt hits Stripe's rate limit of 100 requests per second Nora catches the HTTP 429 error, backs off, and re-attempts the API call one minute later. It continues this pattern until the request succeeds.
- The customer updates their card but the new card also declines Nora logs the new decline code. If the retry window is still open, it schedules another attempt. Otherwise, it pauses the subscription and reports the failure.
- Stripe returns an ambiguous error code not matching standard decline reasons Nora defaults to a conservative three-day retry schedule. It flags the invoice ID and error code in the daily admin report for manual investigation.
Who this is for
Worth it if
- Finance managers at SaaS companies processing hundreds of monthly subscription renewals.
- Operations leads managing membership dues where expired cards are the primary cause of churn.
- Founders handling billing manually who want a consistent follow-up process for overdue invoices.
Not worth it if
- Businesses selling high-ticket enterprise software where billing issues require a phone call from an account executive.
- Companies with very low transaction volumes where manual review of every failed payment is preferred.
- Merchants who do not use Stripe for recurring subscriptions or invoicing.
A worked example
A boutique fitness app with 800 subscribers uses Stripe. They tell Nora to retry failed charges on day 3, 5, and 7, and to pause the account if the final attempt fails.
Daily Recovery Report: Oct 12 Recovered: 4 invoices ($120.00 total). - Inv_892 (Sarah Jenkins) - Customer updated card. - Inv_895 (Mike Ross) - Day 3 retry succeeded. Paused Subscriptions: 1 - Sub_441 (Alex Chen) - Reached 3 failed attempts. Account paused. Last decline reason: insufficient_funds. Pending Retries: 12 invoices scheduled for retry tomorrow.
Frequently asked questions
Can I change the retry schedule or email copy?
Yes. You tell Nora in your chat channel what you want changed. If you want to switch from a three-day wait to a two-day wait, or rewrite the email to sound more apologetic, you just type that request to Nora. It updates the instructions for all future failed payments.
Will this accidentally cancel a customer's subscription?
No. Nora is instructed to update the subscription status to paused, not canceled, when all retry attempts fail. This stops further charges and restricts access, but keeps the customer record intact so you can manually reinstate them if they pay later.
How does Nora know the customer updated their card?
Nora reads the Stripe customer record before executing any scheduled retry. If a new default payment method was added since the initial failure, Nora attempts the charge against the new card. If the invoice was already paid manually, Nora cancels the scheduled retry.
What if a client promises to pay next week?
You can tell Nora to suspend the retry schedule for a specific customer. By sending a message like 'Pause payment recovery for customer ID cus_892 until next Friday,' Nora removes them from the active retry queue and waits for your signal.
Connects to
Related automations
- Auto-Reconcile Bank Transactions Daily — Close your books in hours instead of days with automatic bank reconciliation.
- Automated Mileage Reimbursement Processing — Process mileage expenses in minutes instead of managing spreadsheets.
- Auto-Categorize Expenses by Pattern Learning — Stop manually categorizing every receipt—Nora learns your patterns.
- Automatic 1099 Contractor Tracking — Never miss a 1099 filing deadline with automated tracking.
- Invoice & Charge Sync to Accounting — Automatically log Stripe invoices and charges to your accounting system (Odoo, QuickBooks) in real-time
- Subscription Renewal & Expiry Alerts — Alert high-value customers before their subscription renews, and notify you of upcoming expirations to follow up
- Monthly Revenue & MRR Report — Get a snapshot of MRR, churn, expansion revenue, and cohort health every month, with trends and forecasts
- Dunning & Account Recovery — Intelligently retry failed charges, downgrade accounts, and handle disputes automatically, minimizing churn