Shopify billing reinstall cases

if my app is installed on a merchant on 1st jan which has time based recurring subscription and if the merchant uninstalls on jab15th and installs back on jan 20th how can i re activate the subscription.

Hi @VIVEK_KUMAR_BAJPAI - when an app is uninstalled, Shopify automatically cancels the subscription but the merchant can still use the app for the remainder of their paid billing period (no refund is issued for the unused time).

To reactivate billing after reinstall, you’ll need to create a new subscription using the appSubscriptionCreate mutation. The cancelled subscription doesn’t automatically resume.

The key here is the replacementBehavior argument - if you want to honor the remaining paid time from their original subscription, use APPLY_ON_NEXT_BILLING_CYCLE so the new subscription starts only after the cancelled one’s period ends.

Hi @Donal-Shopify , we tried the same approach by creating a subscription where the start date was “createdAt”: “2026-01-19T11:58:09Z” and then uninstalled the app which cancelled the earlier subscription and after that we created a new subscription using the APPLY_ON_NEXT_BILLING_CYCLE field but the newly created subscription has an end date “currentPeriodEnd”: “2026-02-18T12:01:22Z”, and not “2026-02-19T11:58:09Z”, ideally if the new subscription was honouring the remaining days of first subscription the end date should have been the end date of first subscription and not the second one, can you explain this ?

Hey @VIVEK_KUMAR_BAJPAI - need to correct my earlier response, my bad. Short answer is you can’t reactivate a cancelled subscription. When the app is uninstalled, the subscription is cancelled automatically, and there’s no way to “resume” it. You have to create a new one.

The issue with my APPLY_ON_NEXT_BILLING_CYCLE suggestion is that it only defers against an active subscription. Once cancelled (which happens on uninstall), there’s nothing to defer to - so the new subscription just starts its own fresh 30-day cycle from approval.

To handle this fairly for the merchant, you’d need to:

  1. Calculate how many days remained on the original subscription (e.g., original createdAt + 30 days = original period end, then work out days remaining from reinstall date)

  2. Pass that as trialDays in your appSubscriptionCreate call

One catch is that currentPeriodEnd returns null once a subscription is cancelled, so you can’t query it after the fact. You’d need to either calculate from createdAt + billing interval, or store the value proactively while the subscription is still active.

Using your example, if they subscribed Jan 1, uninstalled Jan 15, reinstalled Jan 20 - the original period would end Jan 31. That’s 11 days remaining, so you’d create the new subscription with trialDays: 11.

Apologies for the confusion in my first response - this edge case has come up before and the replacementBehavior options don’t help in uninstall/reinstall scenarios.