App Review Billing Behavior Differs from Test Store – Need Guidance

Hi team,

We have a 30-day free trial and paid plans using the Shopify Billing API.

In production, we use:

SHOPIFY_BILLING_TEST=false

and:

billing.check({
  plans: planNames,
  isTest: false,
});

We also tested the same flow with SHOPIFY_BILLING_TEST=true, and it works correctly in our local, development, and production environments.

However, an issue occurred during App Review that we have not been able to reproduce in our own environments. The reviewer was testing the app on a test store and selected a paid plan.

Could you please clarify whether the billing/subscription behavior in the App Review environment is different from a normal test store, particularly how the reviewer’s selected plan is returned by billing.check({ isTest: false })?

We would also like to know what the recommended approach is when an issue occurs only during App Review and cannot be reproduced by the app developer. Is there any specific information, logging, or debugging data we should provide to Shopify to help investigate the issue?

We found the issue ourselves.

During App Review, the reviewer’s store created a test subscription:

status: ACTIVE
test: true

But our billing check was using:

isTest: false

So the active test subscription was not detected. We reproduced the same issue by creating a test subscription and checking it with isTest: false.

We fixed this by removing the isTest filter from the billing check:

billing.check({
  plans: planNames,
});

We still use isTest when creating subscriptions:

billing.request({
  plan,
  isTest: billingIsTestCharge(),
});

After the fix, we confirmed that both test and live subscriptions are detected correctly.