Subscription apps
A subscription is a business model that enables customers to pay a recurring price at scheduled intervals for goods or services. For example, customers can buy a product as a recurring subscription. Learn more about purchase option types.
Subscription apps enable developers and merchants to build subscription experiences directly into Shopify's checkout. This guide describes what a subscription is, subscription APIs, migration to subscription APIs, and limitations for subscription apps.
How do subscriptions work?
Anchor link to section titled "How do subscriptions work?"Subscriptions include policy configurations and subscription contracts.
Policy configurations
Anchor link to section titled "Policy configurations"You can create purchase options using the sellingPlanGroupCreate
mutation.
A subscription includes delivery, pricing, and billing policies. This enables you to build more flexible and extensible apps that support various ways to sell and buy products.
Delivery policy
Anchor link to section titled "Delivery policy"The deliveryPolicy
field defines when the order should be fulfilled, from the time that the order is created to the time that it leaves the merchant's possession. Merchants can specify the delivery interval (interval
) and the interval count (intervalCount
).
Pricing policies
Anchor link to section titled "Pricing policies"The pricingPolicies
field defines pricing changes on a given product variant, including any shipping costs, taxes, duties, or discounts. Pricing policies enable merchants to adjust prices on subscription orders by setting adjustmentType
and adjustmentValue
. Pricing policies work in conjunction with price lists.
Pricing policies include the following types:
fixed
pricing policy: A single pricing policy. For example, all billing cycles can have a flat 15% discount. An initial pricing policy is applied until a defined recurring policy kicks in.recurring
pricing policy: A follow-up pricing policy that applies if the initial pricing policy expires. For example, the first billing cycle has a 20% discount, and the subsequent recurring cycles have a 15% discount.
Billing policy
Anchor link to section titled "Billing policy"The billingPolicy
field defines the intervals of time between the placement of an order, its fulfillment, and payment collection. Merchants can specify the billing interval (interval
) and the interval count (intervalCount
).
Subscription contracts
Anchor link to section titled "Subscription contracts"A subscription contract is the agreement between a customer and a merchant over a specific term for recurring purchases over a set or undefined period of time. Learn more about subscription contracts.
Purchase option category
Anchor link to section titled "Purchase option category"The category
field represents the purchase option category that's used to filter orders by purchase option on the order page. The category
field supports the following approved categories:
SUBSCRIPTION
PRE_ORDER
TRY_BEFORE_YOU_BUY
If you want to offer a purchase option that isn't listed above, then set the category
field to OTHER
, and fill out our request form, where we'll review your request for a new purchase option.
Subscription APIs
Anchor link to section titled "Subscription APIs"Shopify provides the following APIs to help you build and manage subscriptions in your app:
Selling plan APIs: Create and manage various ways to sell and buy products.
Subscription contract APIs: Create and manage subscription agreements between a customer and merchant.
Customer payment method APIs: Store payment methods that can be used to pay for future orders without requiring the customer to manually go through checkout.
Migrating to use Subscription APIs
Anchor link to section titled "Migrating to use Subscription APIs"If you already have a subscription app and need to migrate to use Subscription APIs, then refer to the Subscription API migration guide.
If your existing subscription app uses Stripe to process subscription payments, then you can import pay-as-you-go contracts directly into Shopify without the need to migrate credit cards. For more information, refer to Migrating existing subscription contracts to Shopify.
Limitations
Anchor link to section titled "Limitations"The following are known limitations for all purchase options:
- Customers can't use local payment methods for purchase options.
- Purchase options can't be used through Shopify POS.
- Purchase options can't be used on draft orders.
- Purchase options don't support "Buy X get Y" discounts.
The following are known limitations for subscriptions:
- Customers can only use Shop Pay on some stores.
- To use subscriptions, merchants need to use the following payment gateways:
- Subscriptions might not support local delivery or local pickup options for some Plus merchants with custom checkouts.
- Scripts that discount subscription price or shipping rates apply to the first payment only.
- Gift cards used to pay for subscriptions only apply to the first payment.
- The Order Edits API doesn't support subscriptions.
- Apple Pay support for subscriptions is only available in the United States, Canada, Australia, and New Zealand for Visa and Mastercard.
- Subscription APIs don't support duties when subscription orders are created. Duties are available on the customer's first order that creates a subscription because the order goes through checkout. However, when subscription apps subsequently bill customers and create orders using the API, duties won't work.
Legacy subscription apps
Anchor link to section titled "Legacy subscription apps"If you have merchants that are dependent on features in your legacy subscription app that are currently unresolved limitations of the subscription APIs, then any existing installs can continue to use your app.
All new installs and apps should use the new Subscription APIs.
- Refer to the Shopify Partners Blog for more information about why we built this feature and how to get started.
- Learn how subscriptions work at Shopify, and get familiar with the developer tools and resources that you can use to build and manage subscriptions.