Backdate Stripe Billing IS Possible

It’s just a bit complicated.

If you ask Stripe if you can backdate the Subscriptions in Stripe Billing, they will tell you this isn’t possible. But with a few workarounds, you’ll be able to.

Please try this yourself in your Stripe test environment! Stripe might have changed since this was written

The Challenge

Let’s imagine it’s Dec 28, and a customer wants their subscription to have started on Dec 1. And to keep the math simple, let’s make the product a $ $10,000 annual subscription.

Renewing Subscription, Prorated (Not the Solution)

If you create a subscription for Dec 1 with a Prorated Invoice, you’ll get an Invoice with two periods. From Dec 1 to Dec 28, and then Dec 28 for one year. Even if you set the BIlling cycle to Dec 1st, Stripe’s Preview page will provide incorrect information. I wrote to Stripe and explained to them that this was a bug, and they said that this was a “Feature, not a Bug.” Obviously, silly me.

Stripe Backdated with Prorated 500x155 1



Renewing Subscription, Not Prorated (Not the Solution)

OK, so what if you set it to Not Prorated? Here’s the input

Stripe Backdated without Prorated Preview 500x312 1

And here’s the output

Stripe Backdated without Prorated Result 500x95 1

Even though the Start Date was Dec 1st and the Billing Cycle was Dec 1st, everything is set to Dec 28th. If you talk to Stripe Support, they will patiently explain to you that this is a feature, not a bug. Of course.


Non-Renewing Subscription, Not Prorated (The Solution!)

The trick is to create a Non-Renewing Subscription, that is Not Prorated, with the end date set to 1 Cycle. For an annual subscription, that’s one year, but you might have a different time length of subscription. Either way, when you click for the “Start and end date” just make sure you use the shortcut “1 Cycle”

Stripe Backdated 1 Cycle Subscription 500x373 1

Update: You now have to manually set the billing cycle to start on the same day as the Subscription Start date. 



The result will be a subscription that is set to cancel, but it has the right dates and the right amount!

Stripe Set to Cancel 500x81 1

You can then set it not cancel:

Stripe Set to Do Not Cancel 500x126 1

And the final result is a backdated Subscription with the correct amounts and the correct dates!

(It’s possible the first Invoice will not reflect the true start date, and will reflect the Dec 28th creation date, but the amounts, and the billing cycle, will be correct)

Please try this in your test environment to make sure this solution works for your situation. Hope this helps!


Want to Know More About Breadwinner Payments?

Breadwinner Payments connects Stripe Billing to Salesforce.