← All articles

September 24, 2026 · Ahmed · More by Ahmed

Shopify App Pricing Killed Your Billing Webhooks

Managed Pricing is now Shopify App Pricing, and it doesn't send Billing API webhooks for subscription changes. Here's what app teams need to change.

Shopify App Pricing Killed Your Billing Webhooks — ASSOSIATIX Journal

If your app was on Managed Pricing, it's now running on something Shopify calls Shopify App Pricing — same underlying system, but substantially expanded, and with one change that will quietly break an integration if nobody catches it: it doesn't send Billing API webhooks for subscription changes anymore.

What actually changed

Shopify App Pricing is now the default billing solution configured in the Partner Dashboard during app submission, and the older Billing API is officially marked legacy — it still works, but Shopify is steering all apps toward the new system. Alongside the rename, Shopify App Pricing added genuine usage-based billing through the App Events API: an app sends events, Shopify aggregates them against meters defined in the Partner Dashboard, and bills using fixed, graduated, or volume pricing structures, with negative reporting available to auto-correct charges after the fact.

Billing data itself is now split across three separate APIs, each with its own credentials. The Active Subscription API returns a merchant's live contract state — plan, billing cycle, status. The Historical Events API gives a full timeline of installs, charges, cancellations, and other billing events. Both live behind Partner API credentials. The App Events API, used only for reporting usage against meters, authenticates separately through Dev Dashboard client credentials.

The breaking part: no more subscription webhooks

This is the change that matters most for existing integrations. Shopify App Pricing does not send Billing API webhooks when a merchant's subscription changes. If your app currently listens for those webhooks to update its own record of a merchant's plan, that code path goes silent — not with an error, just with nothing arriving.

The replacement is two-part: read the redirect URL parameters that come back after a merchant approves a plan change, and separately poll the Partner API for subscription changes that happen outside a redirect — a downgrade that takes effect at the end of a billing cycle, for example, or a cancellation initiated from the Shopify admin rather than your app. An app that only handles the redirect case will miss those out-of-band changes and can end up with stale billing state that nothing corrects.

Private plans just got less constrained

Separately, as of September 21, 2026, Shopify removed the previous limits on private plans entirely for apps using Shopify App Pricing. Private plans — pricing scoped to specific merchants you select — were previously capped at 15 plans with a maximum of 20 target stores each. Both caps are gone; there's no limit on the number of private plans or the number of stores targeted by each one. That was a real constraint under the old system for any app doing custom per-merchant pricing, and it's worth revisiting plan design now that it's off the table.

What to actually do

If your app touches billing at all, audit it for these three things: any code still relying on a subscription-change webhook, any place that only checks the redirect parameters and never polls, and any manual pricing that could now take advantage of unlimited private plans instead of working around the old 15-plan ceiling. None of this requires a rewrite, but each one is the kind of gap that stays invisible until a merchant's billing state quietly drifts from what your app thinks it is.

Sources

Apps & Product Engineering

ASSOSIATIX works on this every day. See our Custom Shopify App Development service

$./start-project.sh

READY TO BUILD
WHAT'S NEXT?

Tell us where you are and where you want to go. We'll help you choose the right path—storefront, system, product, or a focused growth sprint.