Blog

How to recover failed subscription payments on Shopify

Some of your subscribers will leave this month without ever deciding to. Their card expired, was replaced after a fraud scare, or was a few dollars short on renewal day. The charge fails, nobody follows up, and a customer who was happy with your product quietly becomes an ex-customer.

This is involuntary churn, and it's bigger than most merchants expect. Recurly, which runs subscription billing for thousands of businesses, puts it at more than half of all churn in its data. The good news is that it's also the easiest churn to win back, because the customer never wanted to leave. You just need a plan for what happens after a renewal fails.

Why renewal payments fail

Card payments are declined by the customer's bank, not by you or Shopify, and the reasons fall into a few groups:

  • Not enough money right now. Insufficient funds is one of the most common decline reasons. It's usually temporary, and the same charge often goes through a few days later.
  • The card changed. It expired, or the bank reissued it after it was lost or compromised. Retrying the old card won't help. The customer has to give you the new one.
  • The bank was suspicious. Fraud checks sometimes flag a legitimate renewal. The customer may need to approve it with their bank.
  • No reason given. Banks label many declines as generic, so you often won't know which of the above it was.

Since many failures are temporary and the rest need the customer, recovery has two halves: retrying the charge, and telling the customer. You need both.

Retry on a schedule, not all at once

Retrying the same card an hour later rarely helps. Nothing has changed yet. Spacing attempts a few days apart gives a paycheck time to land and the customer time to sort things out. A schedule many stores start with is about four attempts over a week or two: one a day after the failure, then every two or three days.

Don't overdo it. Card networks limit how many times a single charge can be retried, and banks can read a long string of attempts as suspicious, which hurts your approval rates on other payments. Stripe, for example, recommends no more than eight retries for a charge. Four or five well-spaced attempts recover most of what can be recovered.

Tell the customer quickly and plainly

Retries fix the temporary failures. The expired and replaced cards only come back if the customer acts, and they can't act on a problem they don't know about. Tell them after the first failure, not after the last:

  • An email with a direct link to update their card. Shopify can send customers a secure link to update the payment method on their subscription. That's the single most useful message in the whole process.
  • A notice on their subscription page. If they log in to check on their order, they should see what happened and when the next try is, with a button to update their card right there.

Keep the tone matter-of-fact. "Your payment for your order didn't go through. We'll try again on March 3. If your card has changed, you can update it here." No alarm, no blame. Most of these customers will be glad you told them.

Treat out of stock as a different problem

Not every failed renewal is about payment. If an item on the order is out of stock, the renewal can't be filled however good the card is. That's your problem to solve, not the customer's, so it needs different handling:

  • Retry less often and over a longer period, to give you time to restock.
  • Don't ask the customer to update their card. It isn't the card.
  • If it keeps happening on one product, let customers swap to something in stock, and stop offering out-of-stock items in swaps and adds so the problem doesn't start.

Decide what happens when the retries run out

Eventually you have to stop trying. What you do then decides whether the customer can come back easily:

  • Pause the subscription. Billing stops, but the subscription, its items and its price are still there. When the customer updates their card, they resume rather than start again. For declined cards this is usually the best choice.
  • Skip this cycle. Nothing is charged this time, and the next order bills as normal. It fits out-of-stock failures, where the next cycle may well be fine.
  • Cancel the subscription. Final, and the customer has to subscribe all over again. If you choose this, give the retries more time first: a card that fails a few times in one week is usually one expired card, not a customer who wanted to leave.

When a retry does succeed, decide whether the subscription keeps its original billing day or moves to the day it recovered. Keeping the original day keeps the customer's routine. Moving it avoids a second charge landing a few days after the recovered one.

Prevent the failures you can

Some failures can be avoided before renewal day:

  • Send an upcoming order reminder a few days before each renewal. Customers who know a charge is coming can make sure the money's there, or skip if they don't need the order, which beats a decline.
  • Make changes easy. A customer who can move their next order date themselves will push it past payday rather than let it fail.
  • Keep changes on hold during a retry. Swapping items or changing the address while a payment is being retried can change the amount and the tax, and muddy what the retry is for. Let the payment settle first.

Measure your recovery rate

The number to watch is simple: of the renewals that failed, how many were eventually paid? Track it separately for declined cards and out of stock, since they have different causes and fixes. If card recovery is low, look at your messages first: are customers getting the update link, and does it work on a phone? If out-of-stock failures are high, the fix is in inventory, not billing.

Recovering failed payments keeps the subscribers who wanted to stay. For the ones who are actively trying to leave, see how to reduce subscription cancellations with a cancel flow.

The short version

  1. Expect failed renewals. Most aren't customers trying to leave.
  2. Retry four or five times, a few days apart. Not more.
  3. Tell the customer after the first failure, with a link to update their card.
  4. Handle out of stock separately. It isn't the customer's problem.
  5. At the end, pause rather than cancel for declined cards.
  6. Send a reminder before each renewal, so fewer fail at all.
  7. Track the recovery rate for cards and stock separately.
Using Vanix? Billing recovery has separate schedules for declined cards and out-of-stock renewals, and you choose what happens when each runs out: pause, skip, cancel, or flag for review. Each card retry can send Shopify's payment method update email, and a webhook can pass every attempt to your email platform or helpdesk. Customers see the retry and an Update payment method button on their subscription page.

Sources