How to resubscribe a merchant to a plan after they uninstalled and reinstalled the app?

I am using Shopify App Pricing. On app load, I check the active subscription using the Partner API (activeSubscription - Partner API).

I recently had my first case where a merchant uninstalled the app and reinstalled. When they uninstalled the app, the subscription was automatically cancelled. (My app uses monthy subscriptions)

I noticed after they reinstalled the app, the subscription didn’t automatically renew and is still set to cancel at the end of the current cycle. I also don’t see a pending plan.

On app load, I check the active subscription and cache some of that data in my database.

My app is mostly a background process, so the UI is usually only used for onboarding.

Is there any general, recommended way to handle this case? Technically, the merchant still has days left on the cancelled subscription so they should be able to use the app until then, therefore I’m not sure if I should just automatically redirect the merchant to the plans page if the app detects a cancelled subscription on the install redirect.

Should I just show a warning banner with a link to the plans page, asking them to resubscribe to a plan? I guess I will need to gate my background jobs by a subscription check as well, so the app will no longer function for them if they haven’t resubscribed by the end of the cycle. I can send email notifications also.

Anyway, it doesn’t seem there is a way to automatically resubscribe the merchant using Shopify App Pricing, and therefore it must require action from the merchant. Is this correct?

Hey @neutroware :waving_hand: thanks for reaching out.

Your understanding is correct. Reinstalling the app doesn’t restore auto-renewal on its own. While the Partner API activeSubscription query continues to return the subscription, the merchant should retain access to the app’s paid features through currentBillingCycle.endTime.

To resume renewal, the merchant needs to select and approve a plan again through Shopify’s hosted plan-selection page.

If they select the same plan at the same price before the current cycle ends, the change applies immediately with proration. The original billing cycle isn’t resumed; a new cycle starts when they select the plan. A higher-priced plan follows the same immediate-change behaviour, while a lower-priced plan starts at the next billing cycle.

For your flow, a banner linking to the plan-selection page is one way to prompt the merchant while their current access remains active. You can use activeSubscription to determine whether paid features should remain available.

I hope this helps clarify things for you!