Managing Monthly and Yearly Plans Under a Single Handle – Manual Billing Clarification

I’ve developed a Shopify app using manual billing. In my app, I’ve defined the following plans:

  • starter_monthly
  • starter_yearly
  • unlimited_monthly
  • unlimited_yearly
  • (plus one free plan)

Everything works as expected in development.

However, when I go to submit the app and add public plans, I’m prompted to provide a plan handle — with a note saying: “Used in code.”

My goal is to show monthly and yearly pricing on the same pricing card (e.g., both Starter Monthly and Starter Yearly together).

But since Shopify only allows one plan handle per public plan, I’m unsure how to structure this. Ideally, I want to use a single handle like starter and support both monthly and yearly options under it.

My questions:

  1. Is the plan handle the same as the plan name I use in my app’s billing logic?
  2. How do I manage both monthly and yearly billing under one plan handle like starter?
  3. Is there any relationship between the public plan handle and the plans I define programmatically using Shopify’s Billing API?

I’m using manual billing, and would really appreciate guidance or best practices for handling this during app submission.

Thanks in advance!

1 Like

Hey @Abdullah_Al_Asif,

Since you are using manual billing, you just need to provide a unique handle there.

With manual billing, merchants won’t select a plan on a Shopify hosted page so your billing logic can be separate from your listing settings and set up in the best way that works for you. What you set for the plans in your listing is solely for display purposes in the app store when not using managed billing.

Hey @Abdullah_Al_Asif, Are you still experiencing issues with this, or can I mark this as solved?

Thank you for your response. This issue has been resolved.