Subscription Behavior After Re-installation & Trial → Paid Transition

Hey there!

I’m looking for guidance on two billing scenarios.

1. Re-installation While Time Remains on a Paid Monthly Plan

Scenario:

  1. A merchant subscribes to an monthly plan.
  2. They uninstall the app without canceling the subscription from within the app (so no app_subscriptions/update is triggered).
  3. Shopify cancels the subscription silently.
  4. The app receives the app/uninstalled webhook, but not app_subscriptions/update.
  5. A few days later, the merchant reinstalls the app. They still had, for example, 10 days left in the previously paid period.

Questions:

  • Are we required to request a new subscription approval immediately on reinstall, even if the merchant had time remaining?
  • If yes, should we create a new appSubscriptionCreate as usual?
  • What happens to the remaining paid days? Does the new subscription start after those days end, or is that time lost?
  • If the merchant declines the new subscription approval, are we allowed to continue offering paid features until their original currentPeriodEnd?
  • Is there an official recommendation for handling reinstalls for paid users while remaining compliant with Shopify’s billing policies?

2. Trial Expiration and Webhook Behavior

During testing:

  • When a merchant starts a 7-day trial, the subscription status is ACTIVE, and currentPeriodEnd reflects the trial end date.
  • When the trial ends, Shopify charges the merchant.

Questions:

  • Is there any webhook triggered when the trial transitions into a paid billing cycle?
  • If not, what’s the best way to detect when the trial ends and the paid period begins, especially to update currentPeriodEnd?

Any clarification or links to relevant documentation would be greatly appreciated.

Thanks in advance!
Chris
Developer, Movo Labs

1 Like

Hey @MovoLabs,

I recently answered a very similar question here: App subscription behaviour + upgrade/downgrade after app reinstall I’d recommend reading that over as well as there’s some other useful context discussed!

To answer your questions though, for your reinstall scenario:

You’re not required to request immediate approval if there’s time remaining in the previously paid period since the merchant has already paid for that time. The best practice is still to redirect them to your billing page on reinstall so they can select a plan to ensure billing continues after their original period expires.

The remaining paid time isn’t lost. You can control when the new subscription starts using AppSubscriptionReplacementBehavior. You have options like APPLY_ON_NEXT_BILLING_CYCLE to defer the new plan until the current period ends, or APPLY_IMMEDIATELY for immediate changes with proration.

You can and should continue offering paid features until the original currentPeriodEnd expires since they’ve already paid for that period.

For your trial questions:

Yes - subscribe to the APP_SUBSCRIPTIONS_UPDATE webhook topic. This is the method recommended in our time-based subscription documentation for monitoring subscription status changes.

Hope that helps!