Smart retries & dunning

Recover failed subscription payments automatically · Retry schedules, dunning emails and card-expiry checks

1. What smart retries do

A declined card is not a lost customer. Most failed renewal charges are temporary — a payday that hasn't landed yet, a card that was reissued, a bank being cautious. Smart retries recover that revenue by charging the card again at the moment each failure type is most likely to succeed, and by emailing the customer a card-update link when only they can fix it.

The reason a charge failed decides when it will succeed, so each decline reason gets its own retry rhythm. Sublyra applies the schedule the moment Shopify reports a failed billing attempt — what you set on this page is live, not a draft.

Plan availability: smart retries are included on the Starter plan and above (Starter is $29/mo with a 30-day free trial). On Launch Free, smart retries are also available as a $9.99/mo add-on. See sublyra.com/pricing.
Where it lives: Sublyra admin → Retention → Payment recovery. The page heading is Smart retries.

2. The life of a failed payment

1 Shopify runs the scheduled renewal charge and it fails. The billing-attempt webhook tells Sublyra immediately, along with the decline reason.

2 The order is marked Failed, the retry schedule for that decline reason is applied, and the next retry date is set. If "Email customer after each failure" is on, the day-0 dunning email goes out with a card-update link.

3 On each scheduled date the job runner submits a new billing attempt. Every further failure advances the schedule and the email sequence (day 3, day 7).

4 A successful retry marks the order Recovered and the subscription continues untouched.

5 If the schedule runs out, the final-notice email is sent, the order is written off as Uncollectible, and — if you enabled it — the subscription is cancelled to keep your active count honest.

Reading the page

Orders also appear on the Orders page with Paid / Recovered / Failed / Uncollectible filter tabs and the decline reason on each failed row — exportable to CSV for your accountant.

3. Set the retry schedule

Go to Retention → Payment recovery and scroll to Retry schedule by decline reason. Each card is one decline reason, with a note explaining the logic behind its default rhythm.

1 Find the card for the reason you want to change.

2 In Days between attempts, enter the wait before each retry as days separated by commas — for example 3, 5, 7 retries 3 days after the failure, then 5 days later, then 7 days after that.

3 Leave the field empty to never auto-retry that reason. Each entry must be 1–60 days, up to 6 entries per reason.

4 Click Save retry schedule. The new rhythm applies to the next failure; orders already mid-schedule keep the dates they were given.

The five decline reasons and their defaults

Decline reasonDefault scheduleWhy
Insufficient funds3, 5, 7 daysWait for the next payday. Retrying tomorrow just fails again.
Card expired1, 3, 5 daysRetrying cannot work — only the customer can fix it. The first attempt is really a nudge email.
Generic decline1, 3, 5 daysOften transient. A short first retry clears many of these.
Do not honor2, 4, 6 daysAn issuer-side block. Hammering it risks a hard flag on the card.
Fraud suspectedEmpty — never retriedNever retried automatically, whatever the schedule says.
Not sure where to start? Click Reset to recommended at the top of the page to restore the defaults above — the values we see work across stores.

4. Limits: attempts, cancellation, notifications

Below the schedules, the Limits section controls how the whole sequence ends.

SettingWhat it doesRange / default
Maximum attemptsTotal charges tried, including the original charge. Too few writes off recoverable revenue; too many risks an issuer flag.2–8, default 4
Cancel when retries exhaustedWhen the schedule runs out, cancel the subscription instead of leaving it active-but-unpaying. Leaving it on keeps your active subscriber count honest.On by default
Email customer after each failureSends the dunning email sequence (next section). The card-update link in these emails recovers more revenue than the retries do.On by default

5. Dunning email templates

Still on Retention → Payment recovery, scroll to Email templates. Every email in the recovery sequence is editable: subject and HTML body per step, with a live preview that renders your copy against sample data as you type.

The sequence

StepWhen it sendsDefault
Day 0 — Payment failedImmediately when a charge fails.On
Day 3 — ReminderAfter the second failed attempt, if the customer hasn't updated their card.On
Day 7 — ReminderAfter later failed attempts, before the final notice.On
Day 14 — Final noticeWhen retries are exhausted, before the subscription is cancelled or written off.On
Pre-dunning — Card expiring soonBefore the next billing date, when the card on file expires first. See the next section.Off

Editing a step

1 Tick or untick the checkbox on a step to turn it on or off. An off step is simply skipped in the sequence.

2 Edit the Subject and Body (HTML). HTML is allowed in the body, so you can add your own styling and buttons. The preview on the right updates as you type.

3 Leave a subject or body empty to keep the default for that field — a blank field can never produce an email with no content.

4 Click Save email templates. Reset templates to defaults restores all five steps.

Variables you can use

Placeholders in double curly braces are replaced when the email is sent. Unknown tokens are left untouched, so a typo shows up in the preview instead of vanishing.

VariableReplaced with
{{customer_name}}Customer's first name
{{shop_name}}Your shop name
{{amount}}Amount due, e.g. $24.00
{{retry_date}}Next retry date
{{update_card_link}}Card update URL
{{attempt_number}}Current attempt number
{{max_attempts}}Maximum attempts
{{next_billing_date}}Next billing date (pre-dunning)
{{card_last4}}Card last 4 digits (pre-dunning)
{{card_expiry}}Card expiry, e.g. 04/2026 (pre-dunning)
Keep the card-update link in every step. {{update_card_link}} takes the customer straight to updating their payment method — it is the single highest-converting element in the sequence.

6. Card-expiry checks (pre-dunning)

The best failed payment is the one that never happens. Pre-dunning watches the card on file for each active subscription and emails the customer before a renewal hits an expired card.

1 Go to Retention → Payment recovery → Email templates.

2 Turn on the Pre-dunning — Card expiring soon step and edit its copy if you like. It is off by default.

3 Save. A daily scheduled job then checks active contracts whose next billing date falls within 45 days, reads the card's expiry fresh from Shopify, and queues the email whenever the card expires before that billing date.

The email tells the customer which card (last 4 digits) expires when, shows their next billing date, and links them to update it — using the {{card_last4}}, {{card_expiry}} and {{next_billing_date}} variables.

Details worth knowing:
  • Cards are valid through the end of their expiry month, so the check compares against the last day of that month.
  • At most one alert per contract per 30 days — a customer is never nagged twice about the same card.
  • PayPal and Shop Pay instruments have no card expiry to read, so those contracts are skipped quietly.
  • The check reads payment methods from Shopify and needs the read_customer_payment_methods permission, which is requested at install time.

7. SMS reminders

If email isn't enough, Sublyra can also text payment-failure reminders on day 3 and day 7, alongside the retry emails. SMS rides on your own Twilio account — Sublyra writes the messages, Twilio delivers and bills them.

1 Go to Settings → SMS notifications.

2 Paste your Twilio Account SID, auth token and from-number, then tick Enable SMS notifications — the master switch.

3 Under Which SMS go out, tick Payment-failure reminders (dunning) and save. Use Send a test message to confirm everything works.

Texts only reach customers whose phone number is on their Shopify record. Everyone else simply gets email — incomplete records degrade quietly, not loudly. Email notifications keep working with or without Twilio.

8. FAQ

Do retries run even if I never open the Sublyra admin?

Yes. Retry schedules are applied by the billing-attempt webhook the moment a charge fails, and retries themselves are submitted by a scheduled job runner — no dashboard visits required. The settings on this page are live configuration, not a preview.

What happens if the customer updates their card mid-schedule?

The next scheduled retry uses the new payment method. And because every dunning email carries the update-card link, many orders recover on the very next attempt.

Can I retry a written-off order manually?

Written-off (uncollectible) orders are the end of the automatic sequence. The practical route is to contact the customer — or, if the subscription was cancelled on exhaustion, win them back with the win-back campaign.

Will my customers get an email for every single retry?

No. The sequence is four steps — day 0, day 3, day 7 and a final notice — mapped onto your attempts, and each step can be turned off individually. If you untick "Email customer after each failure", no dunning emails are sent at all (not recommended — the emails recover more than the retries do).

Which plan do I need for smart retries?

Starter ($29/mo) and above include smart retries, the dunning email sequence and card-expiry checks. On Launch Free you can add them for $9.99/mo. Every paid plan starts with a 30-day free trial.

Related guides