Skip to content

Dunning ​

Dunning is what happens between a failed renewal payment and either recovery or the end of the subscription. Stripe, PayPal and Mollie retry failed renewals on their own schedules. LicenseDock tracks the failure, tells the customer, keeps their access while the gateway retries, and ends the subscription if the payment is still missing after the grace period.

Settings ​

Components → LicenseDock → Settings → Automation → Subscription Dunning

SettingDefaultRangeNotes
Dunning grace period14 days1–90Days after the first failed payment before the subscription is ended and the license expires

The grace period is counted from the first failure in the current dunning cycle, so later retries don't restart it.

WARNING

The settings page says a value of 0 means "never auto-cancel". In 1.9.3 a saved 0 is stored as 14, so the backstop always runs.

The grace period is enforced by the LicenseDock - Reminders & Expiration scheduled task. See The Reminders & Expiration Task.

What Happens ​

StepSubscriptionLicenseCustomer emailEvent log
Renewal payment failspast_dueStays activePayment Failed, first failure onlyDunning Failed
Gateway retries and fails againpast_dueactiveNoneDunning Failed
Gateway retry succeedsactive, dates move forwardactive, expiry extendedRenewal ReceiptRenewed, Renewal payment recovered
Grace period runs outexpiredexpiredSubscription Cancelled (Payment Failed)Expired

The admin gets Subscription Expired when the grace period runs out.

Failures are recognised from these gateway events:

GatewayEvents
Stripeinvoice.payment_failed
PayPalBILLING.SUBSCRIPTION.PAYMENT.FAILED, BILLING.SUBSCRIPTION.SUSPENDED
MollieA failed recurring payment

A failure notice that arrives after the customer has already paid (a delayed webhook) is ignored, so a customer who just recovered isn't flipped back to past due or emailed again.

During Dunning ​

AreaBehaviour
LicenseStays active. The API keeps validating, activating and serving downloads
Portal – SubscriptionsThe card shows "Last payment failed." and a Renew Now button, and tells the customer to update their payment details with the gateway
Portal – DownloadsProducts whose only subscription is past due are hidden from the Downloads page until it recovers or ends
Plan changesNot available until the subscription is active again
Admin – SubscriptionsShows the attempt count and days since the first failure, for example "Attempt 2 · 5d"

Recovery ​

RouteResult
The gateway's next retry succeeds (for example after the customer updates their card with Stripe, PayPal or Mollie)Subscription back to active, counter cleared
Customer clicks Renew NowCheckout for the same plan. The subscription is extended, the old gateway subscription is cancelled, and auto-renewal starts again on the new payment
A retry succeeds after the grace period endedSubscription and license come back to active, so no payment is taken without access

Cancelling During Dunning ​

A customer can click Cancel Auto-Renewal on a past-due subscription to stop further retries. The subscription stays past_due until the grace period runs out, then expires. Because the customer chose to cancel, they get the neutral Subscription Expired email.

Suspension ​

Dunning never suspends a license. The suspended status is used when a chargeback or dispute is opened on the order, and when you set a subscription to Suspended yourself. See License Statuses.

Emails ​

EmailRecipientWhen
Payment FailedCustomerFirst failed renewal in a dunning cycle. Links to the Subscriptions page
Subscription Cancelled (Payment Failed)CustomerGrace period ran out
Subscription ExpiredCustomerGrace period ran out after the customer had cancelled auto-renewal
Subscription ExpiredAdminGrace period ran out

Edit the wording in Components → LicenseDock → Email Templates. See Email Templates.

Joomla Extensions by Contona