A time-based subscription is a pricing model that charges a consistent, recurring amount for a service. Shopify offers billing intervals for every 30 days and every 365 days. Merchants must approve the pricing plan. After accepting the charges, the merchant is redirected to a URL that you provide. ## Requirements - Your app can make [authenticated requests](/docs/api/admin-graphql#authentication) to the GraphQL Admin API. ## Step 1: Create the subscription 1. [Refer to an example](/docs/api/admin-graphql/latest/mutations/appSubscriptionCreate#examples-Create_a_subscription_for_an_app_on_a_recurring_pricing_plan_only_) of creating an app subscription. 1. Make a request to the `appSubscriptionCreate` mutation with the following information: - [`name`](/docs/api/admin-graphql/latest/mutations/appSubscriptionCreate#argument-name) - [`returnURL`](/docs/api/admin-graphql/latest/mutations/appSubscriptionCreate#argument-returnurl) 1. Use the [`appRecurringPricingDetails`](/docs/api/admin-graphql/latest/input-objects/AppPlanInput#field-appplaninput-apprecurringpricingdetails) field on the line item's plan to provide the following information: - [`currencyCode`](/docs/apps/launch/billing#supported-currencies) - `price` - `interval` > Note: > The `interval` field accepts `ANNUAL` or `EVERY_30_DAYS`. If not provided, then the default of `EVERY_30_DAYS` is applied. ## Step 2: Monitor subscription updates To receive a notification when a subscription status changes, such as when a charge is successful, subscribe to the GraphQL Admin API's [`APP_SUBSCRIPTIONS_UPDATE`](/docs/api/admin-graphql/latest/enums/webhooksubscriptiontopic#value-appsubscriptionsupdate) webhook topic. ## Next steps

Discounts

Learn about offering subscription discounts.

Prorated and deferred charges

Learn how Shopify handles prorating and deferring app subscription charges.