How to Handle Refunds When Shutting Down Your Product
The billing side of a shutdown is where founders get surprised. You close the product, cancel your infrastructure, and two months later a chargeback shows up for a customer you forgot to refund. Here's how to avoid that.
Understand Your Chargeback Window First
Before you close anything, know your exposure. Credit card chargebacks can be filed up to 120 days after a transaction (sometimes longer with certain card networks). This means:
- Every payment you processed in the last 4 months is still "live" in terms of dispute risk
- You need to keep your payment processor account open until this window clears
- Closing Stripe or PayPal before the window closes doesn't make the risk go away — it makes it harder to resolve disputes
Do not close your merchant account until at least 150 days after your last charge.
Who Gets a Refund?
Your default position should be: anyone who paid for something they won't receive.
Clearly refundable:
- Monthly subscribers who paid for a period that extends beyond your shutdown date
- Annual subscribers with more than a month remaining
- Anyone who purchased in the final 30 days and received little or no value
Gray areas:
- Annual subscribers who used the product for most of the year
- Customers who bought a lifetime plan years ago
For gray area cases, decide a policy and apply it consistently. Many founders pro-rate annual refunds by the unused months. This is fair and defensible.
Proactive vs. Reactive Refunds
Proactive: You issue refunds before customers ask.
This is the right approach. It generates goodwill, prevents disputes, and keeps you from having to respond to dozens of individual requests. Calculate every active subscription, run the refunds in bulk, and email customers confirming the refund.
Reactive: You wait for customers to ask.
This creates more work for you, generates frustration, and some customers — especially those who don't check email — will file disputes instead of contacting you. Disputes are more expensive and more damaging than proactive refunds.
How to Run Bulk Refunds in Stripe
In Stripe, you can query all active subscriptions and charge them via the API:
stripe subscriptions list --status=active
Or use the Dashboard: Customers → Export → filter by active subscriptions.
For each customer with an active subscription that covers the post-shutdown period, calculate the prorated amount and issue a refund via Payments → payment → Refund.
Stripe also lets you cancel all subscriptions with a single API call:
stripe subscriptions cancel --cancel-at-period-end=false
This stops future charges immediately. Set cancel_at_period_end: false so it takes effect now, not at renewal.
Write the Refund Email
Your refund email should be short and direct:
We're shutting down Product on Date. We've issued a refund of $X to the card ending in XXXX. It should appear within 5–10 business days.
Thank you for supporting us.
Don't over-explain. Customers want to know they'll get their money back, not read a founder's journey.
Keep Records
After everything settles, archive:
- A spreadsheet of every refund issued (customer ID, amount, date)
- Confirmation emails sent
- Any dispute responses
If you ever get audited, questioned by a payment processor, or face legal action, this documentation is what protects you.
After the Chargeback Window Closes
Once you've confirmed no new disputes can be filed (typically 150+ days after the last transaction):
- Export all your Stripe/PayPal data as CSV
- Download all invoices
- Close the merchant account
- Cancel any billing-related integrations
You're done. The financial chapter is closed.
The Reputation Cost of Not Refunding
Founders sometimes try to avoid refunds to preserve a little runway. The math almost never works out. A handful of disputed charges will cost more in time, fees, and reputational damage than the refunds themselves. The community memory of "they didn't refund anyone" travels far.
Do the refunds. Do them proactively. Move on clean.
Handle downtime
with grace.
Create a beautiful status page in minutes — for shutdowns, pauses, or maintenance. Free forever.
Create your page →