DunningCheck

Stripe recovery link checker: fixing broken hosted invoice flows

A surprising amount of lost recovery comes down to one broken URL: the link in the dunning email no longer lets the customer pay. This page covers how to spot it and the more durable link to use instead.

Symptoms

  • The recovery link 404s, shows 'invoice no longer available', or loads a paid/void invoice.
  • The link works for new failures but not for retries older than the link's validity window.
  • Customers say 'the link didn't work' but it looks fine when you click your own.

Common causes

  • Templates hardcode or cache a hosted invoice URL that expires or becomes void after status changes.
  • Links point at a specific invoice instead of the customer portal's update-payment-method action.
  • Finalised/void invoice states aren't accounted for in the recovery copy.

Step-by-step fix

  1. Open the exact link from a real failed-payment email (not a fresh one you generate).
  2. Confirm it still allows adding a payment method and retrying the charge.
  3. Prefer a customer-portal update-payment link over a single hosted invoice URL for durability.
  4. Re-test after the retry window to confirm the link survives status changes.
  5. Add this link check to your monthly recovery monitor.

Sample output

Link check: hosted invoice URL returns 'no longer available' for retries > 30 days. Recommend portal update-payment link. Severity: critical.

FAQ

What can I see before subscribing?

You can explore the full sample report and every guide for free. A subscription adds recurring monthly monitoring on your own Stripe account, saved run history, change alerts, and exports.

Hosted invoice link or customer portal link?

The customer portal update-payment-method action is generally more durable than a single hosted invoice URL, because it survives invoice status changes across the retry window.

Last updated 2026-06-16. Common hosted-invoice link expiry and void-state failures.

Subscribe for monthly monitoring. Your first audit is generated today.

Your first audit shows exactly where recovery is leaking today. Monthly monitoring then catches the next break before it costs you another month of MRR.

Start monthly monitoring
Stripe recovery link checker: fixing broken hosted invoice flows — DunningCheck