When are time-based annual subscriptions billed?

We are looking at offering both monthly and annual time-based billing subscriptions for our app. I thought that the billing cycle would be coordinated with the end of the Shopify billing cycle. I created a dev store and added our staging app using a monthly subscription plan.

The store’s Shopify billing cycle is March 11th - April 12th. Below is the email confirmation of the app subscription I received from the store. Based on the timeline it is not aligned with the Shopify billing cycle, and the store would not pay until the end of the time-based window, which is 30 days in this situation, and would not charge if canceled before the end of the time-based window.

If we allowed a annual time-based subscription, would this mean the store does not pay until the end of an entire year of using our app? Based on the message below it also implies that if they were to cancel anytime such as at 364 days in they would then not pay for that entire year.

Is this correct? Is the behavior different for annual subscriptions? If so, when is the annual subscription expected to be billed to the store?

Thanks!

1 Like

Hey @Dana_Boehm

Can you confirm whether you had a prior subscription on this staging store before creating the “Growth” plan? The reason I ask is that the April 25 date doesn’t match a straight 15-day trial from March 11, which would land on March 26. But April 25 is exactly 30 days later, which lines up with replacement behavior deferring the new subscription until the previous plan’s billing cycle completes. You can control this with the AppSubscriptionReplacementBehavior enum when creating subscriptions.

Regarding annual subscriptions, depending on the selected replacement behavior, they will typically charge upfront at the start of the billing period, not at the end. A merchant on an annual plan pays for the full year once the trial ends and the billing cycle begins. They can’t use the app for 364 days and cancel without paying. If they uninstall mid-year, no credit is issued, but they can reinstall and use the app through the remainder of their paid period.

I honestly didn’t remember if I replaced the subscription so I created a new dev store and subscribed to a plan and my email message appears to be doing the same calculation.

I have the dev team rev what we are passing for theAppSubscriptionReplacementBehavior value. Is there a default if this value is not provided?

Thanks!

Thanks for testing that @Dana_Boehm. I’m looking in to why that first charge date would be showing April 27th instead of March 28th.

Hey @Dana_Boehm, I have some clarity for you.

Turns out that the incorrect first charge date in the merchant notification is a known quirk with test charges specifically.

On production charges, the date displays correctly so your merchants will see the accurate billing date when they approve a real charge.

Thank you for continuing to look into this, much appreciated!

1 Like

You’re close, but there’s one key thing to clarify.

Shopify app subscriptions don’t align with the store’s billing cycle—they run independently from the moment the charge is approved. The timeline you’re seeing (March 11 → trial → April 25) is expected and based only on the app’s own billing logic.

For your main concern: the behavior you described only applies during the free trial. If the merchant cancels before the trial ends, they won’t be charged at all.

However, once the trial ends, charges are applied upfront—not at the end of the billing period.

So:

• Monthly plans are charged after the trial, then every 30 days

• Annual plans are charged in full immediately after the trial (not after a year)

That means a merchant can’t use the app for almost a full year and avoid paying—they’d already have been charged at the start of the billing cycle.

So overall, what you’re seeing is expected, but the assumption about delayed payment (especially for annual plans) isn’t how Shopify handles billing.

1 Like

What you are describing is exactly how I expect this to be handled: subscription to be applied following the end of the free trial on March 26th, and not at the end of the app’s billing cycle April 25th. The issue here is that the email received from testing this on a dev store is showing the first billing occurring at the start of the second billing cycle (April) with no previous charge occurring in March. Per Kyle above, this is a dev store issue that the date of first charge reflects the end of the billing cycle where in production it would behave as you’ve described and would say March 26th.

1 Like