GraphQL Billing API appUsageRecordCreate flow issues

Topic summary

Issue: An app using Shopify’s Billing API created an AppSubscription with both a recurring charge ($9 every 30 days) and a capped usage charge ($50). After merchant acceptance, the app used the returned subscriptionLineItemId to create usage records and showed a Polaris modal to confirm each charge.

Review feedback: The app was repeatedly rejected because, after clicking “Buy” in the app’s modal, reviewers required a redirect to Shopify’s billing modal. Their rationale: merchants must see and confirm the additional fees to be billed in the cycle.

Key terms:

  • AppSubscription: Recurring billing agreement.
  • Usage charge (capped): Pay-as-you-go fees up to a set cap.
  • subscriptionLineItemId: Identifier used to associate usage records with the subscription.
  • Polaris modal: In-app UI component; not a Shopify billing confirmation screen.

Outcome: The developer resolved review rejections by restructuring the offering into multiple price plans (e.g., basic/advanced/pro), which passed review. This workaround met review expectations, though it wasn’t ideal for the original usage-based model.

Status: Partly resolved. Specific guidance on implementing the required billing modal flow for appUsageRecordCreate remains unclear in the thread.

Summarized with AI on February 14. AI used: gpt-5.

My app goes through the standard OAuth and billing flow during installation and creates an AppSubscription, including a recurring billing ($9 every 30 days) and a usage billing charge ($50 capped). If the user accepts, I use the returned subscriptionLineItemId later in the app to create a usage record. In a Polaris modal I ask the user for confirmation before I charge.

From my point of view, I implemented everything correct following this tutorial: https://shopify.dev/tutorials/implement-your-app-business-model-with-billing-api#implement-the-appsubscription-resource

Unfortunately, my app submission has always been rejected because I have to redirect to a billing modal after clicking “Buy” in the modal. What billing modal? I have no idea what the review team means. (Review team: “I’ve gone ahead and discussed this to my colleagues and they mentioned that the app should still redirect to the billing modal after clicking the pop-up, this is needed to ensure that the merchant who’ll pay for additional fees be informed about what’s going to be billed after the billing cycle.”)

Please can anyone help me find out what I have to change so that my app works correctly and the review team accepts it?

Hi Markus,

How are you?

How did you resolve this situation? I am currently having the same issue with the app review. Any input is highly appreciated.

Thanks,

GJ

I changed my implementation to offer different price plans (basic, advanced, pro, …). For my use case, it was far away from perfect, but I passed the review process.