App submission Usage Manual Billing Broken

Hi everyone,

We’re in the process of submitting our Shopify app, and we’ve run into an issue where manual billing for usage-based subscriptions has suddenly stopped working.

This was working fine last week while we were preparing our submission, and it also worked in local Cloudflare dev mode. However, it has now stopped working, and we can’t figure out what changed.

What We’ve Checked So Far

  • Manual billing is properly set in the app submission form under the pricing section (Manage dialog).
  • We tried toggling between managed and manual billing, saving each time, and testing again“ but the app still behaves as if managed billing is enabled.
  • Despite these checks, the app seems stuck in managed pricing and won’t allow us to create a usage subscription.

When we attempt to create a subscription, we get the following GraphQL error:

Managed Pricing Apps cannot use the Billing API (to create charges).

We’ve seen this error before, but only when managed billing was actually enabled. Since we have manual billing enabled and saved, this shouldn’t be happening.

Possible Causes & Questions

  • Shopify Platform Update? Since this all worked last week, was there a recent platform update (possibly in January) that may have affected manual billing behavior?
  • Configuration Sync Issue? The dashboard correctly shows manual billing enabled, but the API doesn’t seem to recognize it. Is there a am override I don’t know about?
  • Anyone Else Experiencing This? If others are facing the same issue, it might indicate a larger problem with the Shopify platform.

Next Steps & Escalation

Since this issue is blocking our app submission, we’d appreciate any guidance on:

  • Fixing this on our end (e.g., any settings or workarounds)
  • Escalating the issue to Shopify Support if this is a platform-wide problem if there are any Shopify support folks listening?

Any insights or suggestions would be greatly appreciated!

Thanks!

Can you check in your apps distribution, in the partner dashboard, what option has been set?

Manual was set properly. What I determined was the dev store was essentially initialized with managed and didn’t allow it to be changed via the submission dashboard.

While I would consider that a platform/store bug there are probably some legitimate reasons for the behavior.

I decided to create a new dev store to see how it behaved, and I was able to determine that when the app submission is set to manual and the store created and app installed, it properly uses the billing api.

This appears to be a change in the platform behavior though, because I was able to successfully toggle between managed and manual pricing for existing storefronts before.

But it’s not a deal breaker for me, I just created a new store to test with the manual billing and I’m fine. So it’s resolved for me from that standpoint, but it’s definitely a change in platform behavior that I suspect others might confront as well.

Thanks!

So, stores that installed the app while managed billing was enabled won’t be able to switch to manual billing even after you opt out?

Gulam,
That appears to be the case, at least for my dev stores.

It’s entirely possible this is also specific to the app submission process and post submission or production behave differently. I can only report my specific experiences with dev stores & app submission.

Yeah there is a note about this on the Managed Pricing page about changing between it and implementing billing yourself Managed App Pricing

Hi @JordanFinners

Can you please provide some details on below queries?
1 If managed pricing is selected do we explicitly need to redirect merchant to billing page to purchase plan ?
2 If a free trial period is selected then as well do we need to charge when merchant is installing the app or give them access to the app?

Thanks

When onboarding the merchant onto your app, you should redirect them to the managed billing page as part of that for them to select a plan. Regardless of free trial or plan, except if you can use part of the app completely free

You should also check they are on an active subscription when using your app and redirect them if it expires etc

If you had used managed pricing and set a free trial, shopify will handle charging the merchant when that ends

1 Like

Thank you for the details.

Can anyone from the Shopify team or who has already implemented managed pricing confirm the flow when managed pricing is selected. When I click on install I am redirecting to this page

For this app I have free trial days so merchant needs to pay the app charges first to use the app. Is this expected or once free trial is completed then only merchant must be charged? Please let me know your thoughts.
And I noticed when app is uninstalled and then installed again merchant has to approve for charges. So cant we handle this like how free trial days are calculated even though multiple times app is installed and uninstalled.

One of the major query is difference in the dates shown in admin and email. Below is the email where it says first charge date is March 20 but actually free trial ends on February 18. Admin it says due on February 18 so please throw some light on this as well.

Thanks

So does Shopify force Managed Billing in order for your app to have pricing in the App Store? Manual Pricing cannot produce Plans that appear in the App Store?

No, that’s not true. You have the option to use managed billing or handle billing yourself. The managed billing option is fairly new, and if your app has more complex pricing, I recommend handling billing manually or using HeyMantle.

Yes - we are working on manual billing because we have a usage component that is not native in Shopify (e.g. number of offers). But the pricing we have exists in our app but our app is not embedded in Shopify, it’s a theme app extension. So not sure how our pricing is ever going to be displayed on the App Listing in the App Store.

To display pricing on app listing page, you can add it from Partner dashboard app distribution page.

I thought that pricing was only for Managed Pricing Apps.

Hey everyone,

I wanted to share some technical insights on setting up usage pricing during app submission, based on our experience with our OfferOpt opt-in AI purchase optimization engine (with full personalization). Since we rely on multiple data services for accuracy, we have fixed infrastructure costs that make usage-based billing essential.

What we found is that usage pricing only works if you configure your app with a free pricing plan that charges per usage. In our case, once any managed pricing was involved—even if later removed—the app was stuck in managed pricing mode. The takeaway here is that you have to choose early: either use usage (manual) pricing with a free plan and charge per usage, or go with managed pricing for a fixed fee. There doesn’t seem to be a way to mix the two. If you create an app submission, add a managed pricing entry, and save it, you’ll unfortunately lock your app into managed pricing mode permanently—at least that’s what happened to us. We even had to create a new app submission and correctly use only manual pricing to overcome an app submission that was initially set up as managed pricing.

Steps that worked for us:

  1. On the app submission screen, click the Manage button next to pricing.

  1. Click Add to create a new pricing plan.

  1. Set the Billing type to Free, then select “This plan has additional charges, such as usage fees or commissions.” This option is essential for usage pricing.

  1. In the Settings (upper right), ensure Manual Pricing is enabled. If you see a message about incompatibility with managed pricing, it means the app is still locked in managed pricing mode.

  1. Finally, update the pricing description on the submission form with clear usage pricing details (e.g., “$0.50 per user/month, with only carts and checkouts counting as usage”).

This setup results in an app store display that shows the usage costs while stating the initial cost is free. For this to work properly, and receive app submission approval, you’ll need a dashboard UI that lets stores approve the purchase & usage and opt out when they wish to discontinue usage charges.

Key Takeaway:
Decide at the beginning of the app submission process if you’re using usage pricing or managed pricing, and configure your submission accordingly while providing a UI for billing approval and cancellation. This approach prevents issues later and ensures your usage pricing works as expected.

Additionally, it’s useful to offer a test mode. When calling the usage billing APIs with a test parameter, real funds aren’t used, which allows both customers and the app submissions team to safely test your product. You can restrict test mode by capabilities or time period, but it generally helps new users and during the submission process.

Hope this helps clarify the process.

Cheers,
Ward

1 Like

So you can still use the Public Plans to let shop owners know what your pricing is in the App Store even though you use manual pricing for usage (my case)?

Hi Chris,

We could only use the free tier and include a description with usage pricing. The free description shows on the App Store, so you can reference usage pricing there.

With that free tier, you can set up multiple usage plans on your app dashboard—for example, we have a $99 cap, a $249 cap, and even a custom plan that adjusts the per-usage rate. Note that the detailed usage plans you offer in your dashboard won’t appear on the App Store.

We couldn’t use managed pricing to list multiple pre-configured plans, which I think is what you’re asking about—it broke our usage pricing. Any pricing tier other than free that shows on the App Store disables the billing APIs, and when we included those, our app threw errors when the usage/billing APIs were called.

You can see what we ended up with on our app:

We have just a single free tier to get started plus a usage tier that indicates the usage price varies by plan chosen. Managed pricing essentially pre-bills the full amount, whereas usage pricing accumulates over the billing period and can range from 0 to N.

Hope this helps clarify things!

Best,

Ward

1 Like

Yeah - that’s rough. Apps not pushing through managed billing being “punished” in no way shape or form helps shop owners. Shopify should allow all apps to have a pricing table and a simple note on whether or not the pricing is managed in the Shopify account or external to the Shopify account.

Shopify offers three forms of pricing:

  • Managed - you set your prices and they are displayed in the App Market and billed by Shopify to the Shop owner account
  • Manual - you bill through the API but cannot display your prices in the App Market and billed to the Shop owner account
  • Non-Shopify - you bill outside of the Shopify app account and no prices listed in the App Market

From the Shop user perspective, if you show a free tier and then have 3 other tiers, that feels like you are hiding pricing when you want to be transparent. That’s just a bad user experience for a Shop Owner.

The App Market should strive for clarity on what the apps do, how they help Shop Owners grow and run their shops, and what they cost.

That’s a big miss IMHO.