← Back to Subscriptions

Subscriptions

Dunning Must Be Automated, Sequenced, and Empathetic

When a renewal payment fails, a structured dunning sequence of retry attempts and timed messages is the best way to recover revenue without driving churn.

Rule

Failed renewals must trigger a defined dunning sequence, not ad hoc retries.

Why

Unstructured retries charge failed cards repeatedly and create angry users. No retries at all lose recoverable revenue.

Must

  • Retry failed renewals at defined intervals (e.g. days 1, 3, 7, 14).
  • Send payment-update email after first failure.
  • Move subscription to past_due immediately on first renewal failure.
  • Cancel after the retry window expires if no payment succeeds.

Should

  • Allow users to update payment method directly from the dunning email.
  • Offer a one-click resume after cancellation for a grace period.

Anti-patterns

  • Retrying the same card more than once per day.
  • Cancelling immediately without any retry attempts.
  • Dunning email arriving days after the original failure.

Test Cases

  • First failure triggers email within minutes and starts retry schedule.
  • Payment update mid-dunning clears past_due and resumes billing.

Telemetry

  • dunning_sequence_started
  • dunning_email_sent
  • dunning_recovered
  • dunning_expired_to_cancelled