Recovery sequences
Managing failed payments, reading sequences, understanding your dashboard, and troubleshooting.
Managing payments
Reading the payments list
The payments list at /recovery/payments shows every detected failed payment, newest first by default.
| Customer | Amount | Category | Status | Detected |
|---|---|---|---|---|
| AmberWorks | $3,229.20 | Soft | Active | May 22 |
| Sam Gomez | $99.00 | Expired | Active | May 20 |
| Alex Quinn | $99.00 | Soft | Recovered | May 20 |
| Felix Nakamura | $1,083.00 | Soft | Recovered | May 20 |
| Bluewave Studios | $495.00 | Soft | Active | May 20 |
| FieldFlow | $313.20 | Fraud | Active | May 19 |
Each row displays customer name and email, payment amount, decline category, current status, and failure detection time. Click any row to open the payment detail page.
Filtering and search
- Search. Filters by customer name, email, or plan name.
- Status tabs. All, Active, Recovered, Cancelled, Failed Unrecovered. Count reflects current filter set.
- Decline category. Filter to Soft, Expired, Network, or Fraud.
- Date range. Filter by failure detection time.
- Amount range. Dual-handle slider bounded by actual min and max.
- Sort. Newest first, oldest first, or by amount.
All filters are URL parameters. Filtered views are bookmarkable and shareable.
Rows per page
Use the selector above the table to show 10, 25, 50, 100, or all payments. Default is 25.
Understanding payment statuses
Active. Recovery sequence is running. At least one step is pending.
Recovered. The invoice was paid. Remaining steps cancelled automatically.
Cancelled.You cancelled the sequence manually, or the customer's subscription was cancelled.
Failed unrecovered. All steps ran without payment recovery. No further automatic action will be taken.
Reading a payment detail page
Click any payment from the list to open its detail page. You see the full recovery timeline from detection through the most recent step.
Each step shows its type (email or retry), scheduled time, execution time, and result. Email steps show the subject line and body preview. Retry steps show the Stripe response, whether the retry succeeded or what decline code was returned.
Open and click events are tracked per email step. You can see how many times the email was opened and when it was first opened.
Manual actions on a payment
Trigger the next step early. Click Trigger now on any pending step. This fires the step immediately instead of waiting for the scheduled time. This is common for high-value payments.
Rewrite a pending email. On any pending email step, edit the body field and click Save. The system sends your version instead of generating a new one with AI. Useful when a specific customer warrants a personal message.
Mark as recovered manually. Click Mark recovered. This closes the payment and cancels all remaining steps. Use this when a customer paid by wire transfer, a different card, or a credit applied directly in Stripe. Recova will not detect those automatically.
Cancel the sequence. Click Cancel sequence. This stops all future steps for this payment. Use this when a customer has churned or when you have resolved the situation outside Recova.
Resend the last email. Click Resend on any completed email step. This sends the same email again and records it as a new step in the timeline. Use this when a customer says they did not receive the email.
Add an internal note. The notes field on the detail page is for your reference only. It is not sent to the customer.
Bulk actions
Select multiple payments using the checkboxes. A bulk action bar appears at the bottom of the screen. Trigger, recover, or cancel all selected payments in one action.
Exporting to CSV
Click Export CSV in the payments list header. The export includes all recovered payments matching your current filter set: customer name, email, amount, recovery date, and which step triggered the recovery. The file downloads immediately.
Recovery sequences
How sequences are built by decline type
Each decline category gets a different sequence. Timing and step mix are chosen based on what works for that specific failure type.
Why no retries for expired cards and fraud? An expired card fails on every retry until the customer updates it. Fraud-flagged cards are blocked by the issuer. Retrying them can trigger additional flags. In both cases the only path to recovery is the customer taking action, which is what the emails are for.
Why does network get an early retry at 4 hours? Network errors are usually transient, a temporary processor issue or bank outage. Most clear within a few hours on their own. The early retry captures those recoveries before any email is needed.
Reading the sequence performance page
The Sequence page at /recovery/sequence shows aggregate performance across your full recovery history, organized by decline category.
For each step: total sent, open rate, click rate, and the most recent subject line used. Click any step card to expand and preview the full email body. Retry steps show success rate across all attempts.
| Metric | What it measures | Typical range |
|---|---|---|
| Open rate | Percentage of sent emails opened at least once | 30–55% |
| Click rate | Percentage where the update link was clicked | 8–20% |
| Retry success | Percentage of retries resulting in successful payment | 15–40% |
How recovery emails are written
Every recovery email is generated from scratch at send time. The AI receives the customer's first name, plan name, payment amount, subscription tenure, decline category, sequence position, your brand voice, and your merchant context if set.
After generation, a second AI model audits the email for hollow phrases, hedging language, and anything that reads like a billing system generated it. If it finds problems it rewrites. If both models fail, a hardcoded fallback template sends instead. Delivery is never blocked by the AI layer.
Understanding your dashboard
Stat cards
All six cards are filterable by 7 days, 30 days, 90 days, or all time using the range buttons in the dashboard header. Labels update to reflect the selected range.
| Card | What it shows |
|---|---|
| Recovered revenue | Total amount recovered in the selected date range. Money that would have been lost without Recova. |
| At-risk revenue | Total amount across all currently active payments. What is still in play. |
| Recovery rate | Percentage of closed payments that were successfully recovered. Calculated from all closed payments, not just the current range. |
| Avg days to recovery | Average days between failure and recovery across all recovered payments in the selected range. |
| Emails sent | Total recovery emails sent in the selected range. |
| Active payments | Number of payments currently in an active recovery sequence. |
Date range filter
Use the 7d, 30d, 90d, and All buttons in the dashboard header. Default is 30 days. Changing the range updates all stat cards, the revenue chart, and the win-back attribution card.
ROI widget
Recovered revenue in the selected period minus your monthly subscription cost, expressed as a return multiple. If you recovered $2,000 this month the widget shows 10x. If you recovered $199 exactly it shows 1x. You broke even.
Recovery rate benchmark
Your rate is shown alongside Stripe's 56% baseline. That is the rate Stripe reports for payments recovered through their Smart Retries alone, before any additional dunning tool. Any rate above 56% represents value Recova is adding beyond what Stripe does on its own.
Webhook health indicator
A colored dot in the dashboard header shows the status of your Stripe webhook connection.
- Green. A webhook arrived recently. Working normally.
- Yellow. No webhook in several hours. May be a problem, or no events have occurred in your Stripe account recently.
- Red. No webhook in an unusually long time. Check that your Stripe connection is active in Settings.
Troubleshooting
A payment is not being detected
- Is the Stripe account connected?Go to Settings → Stripe Connection and confirm the account is active.
- Has Stripe's Smart Retries finished?Recova only receives the webhook after Stripe's retries have completed. If Stripe is still retrying, the payment will not appear yet.
- Is the payment on the connected account? If you have multiple Stripe accounts, confirm the payment is on the one connected to Recova.
- Check the webhook health indicator. A yellow or red dot may indicate webhooks are not reaching Recova.
If none of the above resolves it, email support@recovamrr.com with the Stripe invoice ID.
Emails are not sending
- Is the customer's address suppressed? If the customer previously unsubscribed, hard bounced, or marked an email as spam, their address is suppressed and Recova will not send to it.
- Has the step reached its scheduled time? Check the timeline on the payment detail page. The step may not be due yet.
Recovery rate seems low
- How much data do you have? Recovery rate is not meaningful with fewer than 20–30 closed payments. Give it a full billing cycle before drawing conclusions.
- What is your decline mix? Fraud-flagged failures have lower recovery rates by nature. Check your decline breakdown on the dashboard.
- Are your emails being opened? Low open rates on the sequence page may indicate a deliverability issue. Check your sender domain settings.
- Have you set your brand voice? Default AI output without brand voice configured tends to be more generic.
A customer says they did not receive an email
- Check the payment detail page timeline. Confirm the email step shows as executed, not pending.
- Check whether the address is suppressed.
- Ask the customer to check their spam folder.
- Use the Resend button on the completed email step to send it again.
Contact support
Email support@recovamrr.com. Include your account email and the Stripe invoice ID or payment ID for any issue related to a specific payment.