Usage-based billing: When capped amounts aren't easy to predefine

Shopify Partner
14 0 4

Hello all

My app (under development) has two pricing components:

  • Recurring monthly subscription fee
  • Usage-based, per order fees

So far, I've implemented the billing API to handle the recurring fees, but now I've turned to figuring out usage fees, and hadn't noticed that the cappedAmount argument is required to set up a billing plan for these.

Our app's core function is to charge merchants for every order associated with our app. Since we don't know in advance how big or small a merchant's order volume would be, I'm unsure of what the best strategy is for implementing a predefined capped amount when they set up billing.

Firstly — I'm assuming there is no way to set an "uncapped" usage-based plan for a store? It goes without saying that the merit of capped billing is quite clear, but it would be great to offer the merchant an option when usage is unknown.

Secondly — What's the protocol for dealing with capped amounts when the potential usage isn't easy to predefine?

The best I can come up with right now is a UX flow that:

  • Informs the merchant that our app has usage-based charging
  • [Asks them to estimate / choose a monthly limit that would reflect their expected usage]
  • Implements a custom cappedAmount in the plan creation call
  • Notifies them when they hit the capped usage amount — and asks them to re-run a billing flow with a new capped amount

I see from the advice to merchants that their expected behaviour is:

To continue using an app after exceeding a capped amount, you need to agree to a new usage charge. This prevents you from being charged for any usage over and above the capped amount.

This seems a little cumbersome to me, as having to ping a merchant when they want to continue fulfilling their orders (through our app), and also implementing "spill-over" / unpaid fee functionality is a lot of extra engineering, and potentially annoying merchant UX (again, understand this is balanced by the safety of billing caps).

I couldn't find any examples in the billing documentation that focus on this use case specifically.

Does anyone have any experience doing this or the best practices / flows for implementing it?


Thanks in advance!



New Member
1 0 1

+1 for this. Find anything out?

Shopify Partner
1 0 0

+1 We're running into the same issue. Any updates or solutions you've found helpful?

New Member
1 0 0

+1 Also an issue for us