Renewal day went through, mostly
The renewal charges ran overnight. The subscription app shows a list of failures: expired cards, insufficient funds, a bank asking for authentication, and a handful with no reason at all. The app will retry on its own schedule, and it has sent its standard 'update your card' email.
Packing starts on Thursday. Nobody is quite sure whether a subscriber whose payment is being retried should get a box. Last month the team packed them all, some payments never recovered, and those boxes went out unpaid. The month before, they held them all, and a dozen people whose payments succeeded on Friday wrote in asking where their box was.
The retry schedule ignores your packing calendar
Subscription apps have sensible default retry schedules, but they are designed for software subscriptions where nothing physical is at stake. A box has a hard deadline: the day you pack, and the day the courier collects.
- Retries are spread over days that do not line up with your packing date.
- The 'update your card' email is generic and does not mention the box contents or the deadline.
- The packing list is exported once, so later recoveries are missed.
- Nobody owns the decision for subscribers whose payment is still pending on packing eve.
The result is that each month the decision is made again, under pressure, by whoever is packing.
What getting it wrong costs
Packing unpaid boxes loses the product cost and the postage. Holding boxes that later get paid means a second dispatch run, extra labels and a separate courier collection, plus support messages from people who paid and waited. Contacting people clumsily about money is its own risk, especially long-standing subscribers whose card simply expired.
There is also the stock side. You bought stock for the number of subscribers you expected, and a failed renewal leaves a box you have to decide about.
The failed renewal flow we build
- Failed renewals are pulled from your subscription app and payment provider, such as Stripe, with the reason code.
- Retries are scheduled to line up with your packing calendar, where your payment provider allows it, so there is a final attempt before the packing list is frozen.
- Subscribers get a message written for your box: what this month's box is, the date by which updating their card keeps it, and a direct link to do so.
- Card updates trigger an immediate charge attempt, and a success moves the subscriber straight into the packing list.
- On packing eve, you see three lists: paid, still failing, and recovered since the last export, each with the subscriber's tenure and history.
- Your rules decide what happens to each group, and anything outside the rules comes to you.
| Status on packing eve | Typical rule | Who can override |
|---|---|---|
| Paid | Pack as normal | Nobody needs to |
| Recovered after the first export | Added to the packing list automatically | Packing lead |
| Still failing, long-standing subscriber | Pack and hold dispatch until payment, or pack anyway | Owner |
| Still failing, first or second box | Hold the box | Owner |
| Bank asked for authentication | Resend the authentication link | Owner |
The rules in the table are examples. What you do with unpaid boxes is your business decision, and the flow simply applies it consistently.
Packing eve with a clear list
Instead of a list of failures and a debate, you get three lists and a short queue of exceptions. The packing team works from a list that updates as payments recover. Boxes held for payment go to a separate shelf with the subscriber's name, and they are released automatically for the next courier collection when the payment lands.
Subscribers who update their card get their box in the main dispatch, and those who do not are paused cleanly rather than left half-active.
Signs failed renewals are hurting you
- You have packed and posted boxes that were never paid for.
- Subscribers who paid late have waited for a second dispatch run.
- The 'update your card' email is the generic one from your app.
- Nobody knows who decides about pending payments on packing eve.
- Your packing list is exported once and never refreshed.