How it works
Dunning starts when Shopify can’t process a recurring billing attempt for a subscription or membership cycle. Checkout charges and one-off charges aren’t retried this way. Retries run once a day, after Time between retries has passed since the last attempt. Collection stops after Maximum retries failed attempts, counting the first and any failed Retry now. Canceling the charge cancels its collection too.Set up dunning
1
Open Risk settings
Go to Risk. The settings are under Payment collection.
2
Set the retries
Enter the Maximum retries and the Time between retries, and select Days or Hours for the interval.
3
Save
Select Save in the save bar. The new schedule applies to dunning that starts from now on.
With Maximum retries set to
7 and Time between retries set to 1 day, collection makes 7 attempts, counting the first:
- The first attempt fails.
- Retries run once a day, after Time between retries has passed since the last attempt.
- After the 7th failure, scheduled collection stops.
The failed charge email is turned on or off for the whole store under Emails. It can’t be changed per dunning record.
Retry a payment by hand
Select Retry now under Payment collection on the charge to take payment right away instead of waiting for the next scheduled retry. A failure counts toward Maximum retries. You can still do this after scheduled collection has stopped. See Retry a failed payment.Automate with Shopify Flow
Charge failed fires on every failed billing attempt, once for each charge on the payment. Payment collection failed fires on each failed attempt for a charge in collection, including Retry now. Stopping collection doesn’t send its own trigger. On these triggers,customer.outstandingBalance is the unpaid total in cents, and paymentCollector.failedPaymentCount is how many attempts have already failed. See Available triggers.
Use Payment collection failed to notify your team, pause or cancel the subscription, or take another action while attempts are running. To act only once failed attempts reach your Maximum retries, add a condition that compares paymentCollector.failedPaymentCount with that number.
Pair it with the Create payment attempt action to retry billing from inside a workflow, for example after a delay or once another system signals that the customer has updated their card. See Available actions and Create a workflow.