Billing for your app
Shopify’s GraphQL Admin API enables app developers to process charges through Shopify's merchant invoicing system. Shopify's merchant invoicing system simplifies and streamlines billing for store apps.
As an app developer, you choose your billing model and set your prices. Shopify collects the funds and makes sure you get paid.
Advantages of using Shopify's Billing API:
- 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.
How billing works with the GraphQL Admin API
Creating and issuing charges to users is a multiple-step process:
- A merchant starts an action that includes a charge, such as app installation, service plan upgrade, or individual purchase.
- The app creates a charge for the merchant, which might be an app subscription or a one-time purchase.
- Shopify verifies the charge and returns a
confirmationUrlwhere the merchant is redirected to accept or decline the charge.
- When the merchant accepts the charge, they are redirected to the
returnUrlspecified 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
The Billing API supports three types of transactions between app developers and merchants:
AppPurchaseOneTime: Used for items or services that are billed only once. Each purchase needs to be approved by the merchant.
AppSubscription: Used for items or services that are billed on a recurring basis. The subscription needs to be approved only once by the merchant, and any recurring charges are billed automatically. Usage records are billed with app subscriptions.
AppCredit: 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
You can use the
webhookSubscriptionCreate mutation to register webhooks for specific shop events. For billing, the following webhook topics are available:
- APP_PURCHASE_ONE_TIME_UPDATE: Triggered when the
- APP_SUBSCRIPTIONS_UPDATE: Triggered when the
Best practices for app billing
As you develop your business model, consider the following:
- 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.