Recovery Logic

How GetPaidHQ dunning campaigns progress after failed subscription charges.

Dunning is rule-based. A failed subscription charge opens a campaign. The campaign runs retry attempts according to the selected configuration and records the result of each attempt.

Campaign flow

  1. A subscription charge fails.
  2. GetPaidHQ creates or updates a dunning campaign for the subscription.
  3. Immediate retries may run first.
  4. Progressive retries run on the configured schedule.
  5. Customer communications and payment-update tokens can be recorded against the campaign.
  6. A successful retry marks the campaign recovered.
  7. Exhausted retries follow the configured escalation policy.

Manual intervention

Manual intervention exists for support-driven recovery. A support operator can pause recovery while speaking to a customer, resume it when ready, cancel it when the account should no longer be recovered, or trigger a retry after a payment method is fixed.

State control

Campaign state should be explicit. Avoid treating "no retry is currently scheduled" as a recovery state.

Valid campaign states include active, paused, and cancelled.

API details are in Dunning API.

What is not implied

The current implementation does not include machine-learning recovery scoring, automatic channel optimization, or published benchmark recovery-rate claims.