Cannot Add Billing Scopes to App TOML

My app is published and I am trying to add billing via the api and the scopes keep getting removed on deploy.

│ Version couldn’t be created. │
│ │
│ app-access │
│ │
│ Validation errors │
│ • scopes: read_billing, write_billing │

Not sure why a published app cannot set up the billing. I have the manual billing set.

Any thoughts? I am through my third help ticket on this and it has yet to be resolved.

Hey Chris,

Are only billing scopes being removed? eg: if you add a different scope, is that also being removed during deploy? Just trying to narrow down how to investigate.

Yep - just the billing scopes. Everything else is fine. The new version gets rejected and the scopes removed. When I deploy without the scopes, it deploys just fine. My app has pricing selected as manual but when I run a graphql POST I am getting an error that managed pricing apps cannot use the billing api. So somewhere, the setting for manual pricing is not “set” for the app. But not sure where.

Are you sure you need these scopes? Mutations like appPurchaseOneTimeCreate and appSubscriptionCreate don’t seem to require any scopes.

I’m also not seeing read_billing or write_billing listed as available scopes: Shopify API access scopes

Okay - so that is the rub. Shopify Support sent me a note saying those scopes are not needed. And I was taken aback because scopes are needed for pretty much all of the APIs. What I cannot figure out is why I cannot create the subscription. My guess is that they have the app flagged as Managed Pricing because that’s the error I am getting. But I cannot find anywhere to change that (and it’s set as manual as far as I can tell).

I did learn a few things this past year. Hidden scopes. I am remotely building template suffixes for our product so shop owners can control what products do and do not use the solution. Also a specific template is for clearance and clearance template triggers workflows in my app. I thought read/write_themes would do it. But there is one you need special permission to use and it’s not in your toml.

Those little things like that can create confusion. I wish the API Access screen on the app would indicate the pricing available to the app along with all of the scopes, those declared and not declared in the toml.