Trial days not working when upgrading from a free plan

Hey,

Running into a frustrating billing issue and wondering if anyone else has hit this.

We have a free plan and a few paid plans on our app, some of which include trial days. The problem shows up when a merchant starts on the free plan and then tries to upgrade to a paid plan that has a trial period.

The moment merchant selects a free plan the trial days become zero because there cant be any trial on a free plan, after this when a user moves to a plan that offers trial, thats not reflecting at all and merchants are getting charged for it the same day/moment they upgrade the plan. This is a real problem for us because our features are gated by plan. Merchants who want to try premium features before committing can’t actually do that, they’re getting charged right away.

Is there a workaround for it?

Hey @Shreya_Pillai - thanks for laying this out so clearly, that helps a lot.

One thing that’ll shape the answer quite a bit: app billing recently split into two setups, and trials behave differently in each Can you please confirm which of the two billing systems you’re using?

  1. Shopify App Pricing (formerly Managed Pricing) - you define your free and paid plans in the Partner Dashboard, and Shopify hosts the plan-selection page and handles the upgrade for you.
  2. Billing API (now the legacy path) - you build the plan selection yourself and call appSubscriptionCreate in your own code.

I also have a couple other questions to get some more context:

  • For the paid plan the merchant upgrades into, where are the trial days set - on the plan in the Partner Dashboard, or passed as trialDays in your own create call?
  • Had that merchant already run a trial on your app in roughly the last 180 days? Trial days are tracked per store over a rolling 180-day window, so an earlier trial can quietly shorten a later one (Trial proration).

Looking forward to hearing back from you!

Hey @Wes-Dev-Shopify, thanks for the response and sorry for not including these details upfront!

To answer your questions:

  1. Billing system: We’re using Shopify App Pricing (formerly Managed Pricing) - plans are defined in the Partner Dashboard and Shopify handles the plan selection page.

  2. Where trial days are set: Trial days are configured directly on the paid plans in the Partner Dashboard.

  3. Prior trial usage: The merchant has not used any trial days previously. This is their very first session on the app - they landed on the dashboard, selected the free plan immediately, and are now trying to upgrade to a paid plan. So there’s no 180-day window concern here.

Let me know if you need any additional details! And thanks for your help with thi

Hey @Shreya_Pillai - no problem at all and thanks for confirming that info.

What you’re describing sounds very similar to a bug on our end that was resolved in late May. On the newer Shopify App Pricing path, a merchant sitting on an active free plan was being treated as if they were already past their trial, so when they upgraded to a paid plan the configured trial days were skipped and the charge landed the same day. Your setup (trial days set on the paid plan in the Partner Dashboard, first-time install with no prior trial) is exactly the case that should grant the trial.

If your testing likely happened around or before then, could you retest the free to paid upgrade on a fresh development store? You should now see the paid plan’s trial applied before any charge hits.

If it still reproduces after that, let me know how the paid plan is priced (a flat recurring monthly or yearly plan vs a usage-based one) and I can continue to dig in for you.

Hope this helps!

Thanks for getting back to me @Wes-Dev-Shopify, this has come up recently on 18th June, and its replicable on live and is affecting our merchants.

Our pricing plan is simple flat recurring monthly, here is screenshot.

If you need more details please let me know

Hey @Wes-Dev-Shopify I have shared details in the DM.

Thanks for all your help :smiley:

Hey @Shreya_Pillai - thanks for sharing those extra details via DM, just closing the loop on our conversation here for public reference.

I checked into the examples you sent over, and it turns out the trial days are being granted on the paid subscriptions as expected. What this surfaced however, is a display issue in the hosted Shopify App Pricing flow that is causing the confusion.

When a merchant is on a free plan and then upgrades to a paid plan with a trial, the approval/summary screen fails to show the trial days remaining and instead shows the amount due immediately, which isn’t a reflection of the actual billing behaviour.

We’re aware of this issue and working on addressing it. I don’t have a timeline I can share for the fix yet, but the key thing is that the underlying subscription should still carry the configured trial.

You can validate this with the following Admin API query where trialDays will show the associated trial days for the active subscription:

    currentAppInstallation {
      activeSubscriptions {
        id
        name
        status
        createdAt
        trialDays
        currentPeriodEnd
      }
    }
  }

I’ll follow up in this thread when this display issue is addressed. If you see a case where the subscription shows 0 trial days or a merchant is charged before the trial end date, please let us know and we can take a look.

Hope this helps!

we’ve the same problem. can’t get to the “build for shopify” status because of that

Hey @Shrimpman - thanks for adding your report here.

We’ve confirmed that the current issue affects what’s shown on the approval or summary screen. The underlying subscription should still receive the configured trial days, and the merchant shouldn’t be charged before the trial ends.

Since this appears to be affecting your Built for Shopify review, it’s best you create an authenticated Partner Support ticket through the Shopify Help Centre: https://help.shopify.com/en/support so we can look at the specifics of your scenario. Please include your app ID, the affected shop, the review feedback, and a link to this thread so we can review the account-specific details.

If the active subscription shows trialDays: 0, or a merchant was charged before the trial end date, please include that example in the ticket as well.

Hope this helps!