How to Choose the Right Pricing Model for Your App

Pricing model

As the Shopify merchant base continues to grow, so too does the number of installed apps. But how do merchants decide which apps are worth their price? What are merchants’ expectations of an app’s pricing model?

Pricing is one of the most important factors in deciding whether to install an app. This doesn’t just mean the dollar amount that the merchant pays—it also includes the frequency at which they are billed and the triggers that relate to charges.

Below is some of the feedback we’ve heard from merchants:

  • "I’m less likely to pay for apps if the charge doesn’t originate from Shopify. How do I know I can trust that app developer with my credit card info?"
  • "I only want to pay for an app if it’s actually helping me. If I don’t make a lot of sales, charging me a commission is better than a monthly fee."
  • "Pricing is ambiguous and not clear—my monthly charges for the app vary too much."

Avoiding these confusions and frustrations are key to making your app successful. In this article, we’ll provide tips and advice on how to structure your app pricing in a way that makes sense to merchants, and to your app’s bottom line.

Matching billing models to merchant usage

Before deciding how much you want to charge for your app, you need to determine which billing model makes sense for the services you offer. For apps made for Shopify, charges are set up and processed through the Billing API, which currently has the following resources that align with the five most common app billing models. These five billing models are as follows.

1. One-time charges

One-time charges, also known as application charges, are used in instances when a merchant only needs to be charged once for the app. This resource is best suited for apps that don’t have any ongoing costs, and where functionality doesn’t significantly change over time.

Example business model

Let’s take the example of a hypothetical app I made called “Order Follow-up” that sends an order confirmation email to every customer that ordered a product.

Since I am selling email templates, I have done a cost analysis and I’m going to charge $25 per template. To charge merchants for each template, I POST to Shopify a $25 one-time charge as soon as a merchant clicks on “purchase” from within my app.

Shopify handles the invoicing and merchant payment, and I will receive my 80 percent revenue share once the merchant pays their invoice.

2. 30-day subscriptions

The recurring app charge resource (REST) or app subscription mutation (GraphQL) is widely used for paid apps on the Shopify App Store, and is best suited for apps that provide continuous service to merchants.

Merchants who purchase this kind of app are billed every 30 days. The merchant’s billing cycle is independent from their Shopify subscription billing cycle, but the app charge is rolled up and invoiced at the same time as their subscription. This helps merchants keep track of all Shopify-related expenses.

This resource has the most functionality of any of the Billing APIs, as you can set any number of trial days before a merchant is charged, and can set capped amounts for usage charges (more on this to follow).

Example business model

Most apps using this pricing model offer three pricing tiers. Let’s continue with my earlier example of email templates, but imagine I have pivoted my business model so that the templates are now free. Instead, the number of emails sent on behalf of the merchant determines the pricing.

My app now has three distinct pricing tiers. It’s important that I’m transparent with the functionality of each tier, so merchants know what they’re paying for. For example:

  • First tier: often marketed as “free”, is meant for prospective customers to experiment with the app and determine if it’s right for them
  • Second tier: marketed towards small to medium sized businesses who make a few hundred orders every month (the majority of Shopify merchants)
  • Third tier: marketed towards larger Shopify merchants who generate thousands of orders a day (mostly advanced and Shopify Plus merchants)

In this example, a “free trial” isn’t necessary because a free tier is offered:

Pricing model: pricing chart

Within my app, I have a billing page where merchants can pick a plan and I redirect them to the appropriate confirmation_url so they can approve the charge.

I have also developed my own internal admin that pulls all customer information, including billing data, from my database. I can see a merchant’s current plan, their next billing date, their history of upgrades and downgrades, and a history of installs and uninstalls. Not only is this important for my business, but it is valuable information for my support team.


3. Annual subscriptions

Available within the GraphQL Billing API, you can use the appSubscriptionCreate mutation to create a charge while specifying interval: ANNUAL, and Shopify will bill merchants for an app once every year.

While charging every 30 days gives merchants the flexibility to upgrade and downgrade their plans based on factors such as changing usage volumes, seasonality, and growth over time, annual subscriptions provide a better option for apps that are useful or required year-round. It can be much easier for merchants to subscribe for the same service all year, and only be charged on an annual basis. 

When trying to determine if annual subscriptions is the correct billing model for your app, it’s also important for you to determine if the services provided by the app will remain very consistent throughout the year. In addition, if you create an annual version that mirrors the service of one of your existing monthly plans, it’s fairly common in the industry to provide a small discount for merchants locking in to a full year of using that product tier. 


Offering annual subscriptions is a great way to build relationships with merchants who are ready to commit to a longer term app plan, and helps you receive cash flow early on as merchants prepay for the year. 

Example business model

You learn that instead of seasonal sales, many of the users of your email app run lifestyle brands and send consistent bi-weekly emails throughout the year. Since their usage of your app is consistent and predictable, creating an annual plan not only makes sense for them, but also provides more upfront revenue and usage predictability for your own app business. 

You might also like: Shopify’s Billing API in GraphQL: What App Developers Need to Know.

4. Usage-based charges

Pricing model: usage-based charges

Usage-based charges can be added to a 30-day subscription for any additional fees outside of the subscription price. After creating a subscription with a capped amount, app developers can POST usage-based charges up to the capped amount without a merchant having to approve each individual charge. These usage-based charges are added to the merchant’s invoice whenever their subscription is due. Shopify is seeing a growing trend of app developers using the usage-based charges model because of its flexibility.

If you are using usage-based charges, make it very clear to merchants when and why they are being charged. Consider adding visual indicators, such as a progress bar or other reporting tools, within your app to educate merchants on the amount they have been charged.


Example business model

Continuing with the example email app, imagine I’ve noticed that some merchants are looking for additional functionality. However, I don’t want to update the app for all users to include these functions, since there is additional support debt associated with this, and not all users may need the increased functionality.

Instead, what I can do is charge additional fees depending on the number of add-ons requested by the merchant. For example, with an additional $5/month, they can add:

  • The ability to create and add discounts to the order follow-up emails
  • A reporting dashboard that shows the number of emails sent and the revenue generated
  • The ability to sync sales with their accounting software

If the merchant selects any one of these add-ons, I POST a $5 usage charge to the original recurring charge ID every 30 days. If the merchant no longer wants the add-on, I simply don't POST the usage charge.

In order for me to create usage charges, I need all of my new and existing merchants to agree to the new charges. To make it simple for all parties, the next time merchants open my app, they will be required to accept new charges. If the merchant hasn’t opened the app, I will continue to support my old billing model until they do.

5. Application credits

Application credits provide merchants with credits (not refunds) for future app purchases. They can be used to reimburse merchants for errors in billing, offer discounts on subscriptions, or as general goodwill gestures. Remember that the app has to be installed on the store and you must have equal or greater pending payouts to offer the merchant a credit.

Example business model

Let’s say that a bug has been discovered in my hypothetical app, meaning that it didn’t work as promised in the previous month.

To apologize for this issue and keep merchants happy with my app, I can use the Application Credit API to credit the merchant their monthly charge. The customer receives a credit for 100 percent of the charge; I lose 80 percent, and Shopify remits 20 percent.


Use the best billing resource to get the best results

The five resources that make up the Shopify Billing APIs allow app developers to efficiently and effectively charge merchants for apps. One-time charges, 30-day subscriptions, annual subscriptions, usage charges, and application credits can be used to cover the various business models used by Shopify app developers.

When you decide on your app’s pricing model, plan for how you can use these resources to make billing simple and worry-free for your users. The merchant experience is critical in attracting and encouraging merchants to pay for your app.

Have you recently changed your billing structure and app pricing model? Let us know in the comments below!

Grow your business with the Shopify Partner Program

Learn more