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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

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

Access it asks for

What Nora reads

What Nora writes

When it goes wrong

Who this is for

Worth it if

Not worth it if

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

Start a 2-week free trial · Browse all automations