Billing for your app
The Billing API enables you to process charges through Shopify's merchant invoicing system, and provides the following benefits:
- Charges appear directly on the merchant's Shopify invoice, so merchants don't have to enter their credit card information to pay for apps.
- Apps that use Shopify's Billing API have higher free-to-paid conversion rates because charges originate directly from Shopify.
- You automatically receive a revenue share from Shopify. Your share of the revenue is defined in the Shopify Partner revenue share agreement.
- Shopify handles all chargebacks.
As a Partner, you choose your billing model and set your prices. Shopify collects the funds and makes sure you get paid.
The billing process
Anchor link to section titled "The billing process"- A merchant starts an action that includes a charge, such as an app installation, a service plan upgrade, or an individual purchase.
- The app creates a charge for the merchant, using the
appPurchaseOneTimeCreate
or theappSubscriptionCreate
mutation. - Shopify verifies the charge and returns a
confirmationUrl
, redirecting the merchant to a page where the merchant approves or declines the charges for an app subscription. If the merchant accepts the charge, then the merchant is redirected to a
returnUrl
that is specified by your app when it issued the charge.If the charge is declined, then Shopify redirects the merchant to Shopify admin, and provides a notification message about the app charge being declined.

Types of transactions
Anchor link to section titled "Types of transactions"You can use the following Billing API objects to make transactions between Partners and merchants:
- The
AppPurchaseOneTime
object is used for items or services that are billed once. Each purchase needs to be approved by the merchant. - The
AppSubscription
object is used for items or services that are billed on a recurring basis. The subscription needs to be approved once by the merchant, and any recurring charges are billed automatically. Usage records are billed with app subscriptions. - The
AppCredit
object is used to handle purchase adjustments. App credits are redeemed on future app purchases. Shopify deducts the purchase adjustment from your Partner account's future payouts.
Webhooks for billing
Anchor link to section titled "Webhooks for billing"You can use the webhookSubscriptionCreate
mutation to register webhooks for specific shop events. For billing, the following webhook topics are available:
- The
APP_PURCHASES_ONE_TIME_UPDATE
webhook topic is triggered when thestatus
of anAppPurchaseOneTime
object is changed. - The
APP_SUBSCRIPTIONS_UPDATE
webhook topic is triggered when thestatus
of anAppSubscription
object is changed.
Best practices for app billing
Anchor link to section titled "Best practices for app billing"Consider the following best practices when developing your business model:
- Simple and intuitive pricing is easier for merchants to understand.
- Limiting the number of plans makes it easier for merchants to identify which plan works best for them.
- Offering free trials encourages merchants to try your app before they pay for it.