How to implement per‑merchant promocodes when using Shopify App Pricing?

I’m using Shopify App Pricing for my public app and querying the merchant’s current plan with the App Pricing GraphQL API:

query ($appId: ID!, $shopId: ID!) {
  activeSubscription(appId: $appId, shopId: $shopId) {
    billingPeriod
    cancelAtEndOfCycle
    trialEndsAt
    currentBillingCycle {
      startTime
      endTime
    }
    items {
      handle
    }
  }
}

What I’d like to do is:

  • Show a button in my app UI like “Get 50% off for life”.
  • Validate a promocode or eligibility on my backend (e.g. campaign, partner deal).
  • Then, programmatically apply a 50% discount only for that specific merchant, based on the promocode, without exposing a discounted plan/offer to all merchants.

With the legacy Billing API, it looks like this is possible via appSubscriptionCreate with discount. But with Shopify App Pricing, plans and discounts appear to be configured globally in the Partner Dashboard and I don’t see any mutation equivalent to apply per‑merchant/promocode‑based discounts.

Questions:

  1. Is there any supported way, when using Shopify App Pricing, to:

    • implement promocodes that apply discounts per merchant, or
    • move a merchant onto a discounted plan/offer via GraphQL or another API, based on a promocode validated on our backend?
  2. If not, is the recommended approach for promocode‑style, per‑merchant discounts still to use the legacy Billing API instead of Shopify App Pricing? Are there any best practices or official guidance for this scenario?

Any clarification or official stance on promocodes/per‑merchant discounts under Shopify App Pricing would be really helpful.

You should try using the discount creation function in the Shopify Pricing App, as shown in the attached image below.
Step 1: In the Partner dashboard, select the shop for which you want to create a discount.
Step 2: Click the button to create a discount.
Step 3: Select the app, then choose the discount value and duration.

I explored that, but the issue is merchants need to be in a active subscription. But I want to give them the discount upfront so that they can decide whether to go with the subscription or not with that discounted price.

That’s right.
I’m facing the same issue. We can only create a discount for a merchant once they have installed the app and selected a plan, and the discount applies only to the plan they’ve chosen. It’s not possible to offer a discount on a different plan for them to try out.