Create a subscription

Using Google Play Billing, you can offer in-app products that charge users for content or services on a recurring basis, known as subscriptions. Subscriptions can include items like a collection of apps, games, or other content for a recurring fee within your app on Google Play.

You can offer multiple subscriptions within the same app. Subscriptions must be priced within accepted prices ranges, and the price of a subscription can't be changed. Subscriptions can't be unpublished.

Important: Google Play Developer Program Policies and transaction fees apply to in-app products, including both managed products and subscriptions.


If you're in a supported location for merchant registration, you can use Google Play Billing.

If you’re in a supported location and want to start using Google Play Billing features in your apps, set up a payments profile and review the Google Play Billing API documentation.

After you create a subscription, it’s available for users running the latest version of the Google Play Store.

Subscription & free trial time periods

  • Weekly: Weekly subscriptions can't be charged using direct carrier billing.
  • 1 month
  • 3 months
  • 6 months
  • Seasonal: Seasonal subscriptions need a start and end date and can be prorated.
  • Annual

Add a subscription to your app

Adding a subscription is similar to adding a managed product, except the price is set for a period of time.

Before creating a subscription, make sure to plan your product IDs carefully. Product IDs need to be unique for your app, and they can’t be changed or reused after they’ve been created.

  • Product IDs need to start with a lowercase letter or a number and must be composed of only lowercase letters (a-z), numbers (0-9), underscores (_), and periods (.)
  • Note: The product ID android.test is unavailable for use, along with all product IDs that start with android.test.

To add a subscription:

  1. Sign in to your Play Console.
  2. Click All applications All applications.
  3. Select an app.
  4. On the left menu, click Store presence In-app products.
  5. Select the Subscriptions tab > Create subscription.
  6. Enter your product details.
    • Title: A short name of the item (up to 55 characters, but we recommend limiting titles to 25 characters to display properly in all contexts), like "Sleeping potion."
    • Description: A long description of the item (up to 80 characters), like "Instantly puts creatures to sleep."
    • Price: Enter a price in your local currency.
  7. Next to “Status,” choose Active or Inactive.
    • To be available for purchase, a product needs to be active, and its app needs to be published.
    • If you’re using a test account, active items are available in unpublished apps. To learn more, go to our Android developers site.
  8. Click Save.

Subscription pricing options

Introductory prices

With introductory pricing, you can specify an initial price that applies to a set number of days, weeks, months, or billing periods. For example, you can offer a subscription for $1 per month for the first three months. Or, you can offer an introductory price of $1 for 10 days, followed by a regular monthly price.

At the end of the introductory period, users are charged the full subscription price.


  • The minimum introductory period is 3 days, and the maximum introductory period is 12 months.
  • Introductory prices must be within the accepted price range and less than the subscription's full price.
  • You can't set up introductory prices for seasonal subscriptions.
  • If you're offering a free trial and introductory price, your users are charged the introductory price at the end of the trial.
  • A user can only receive an introductory price to a specific subscription product (SKU) one time.
  • If the introductory period is a different length of time than the subscription period, the introductory price must cost less per day than the original price. For example, if a subscription costs $15 per month (or $0.50 per day), a week-long introductory price must cost less than $3.50. For these calculations, a month is always considered to be 30 days. 

Add an introductory price

  1. Sign in to your Play Console.
  2. Click All applications All applications.
  3. Select an app.
  4. On the left menu, click Store presence > In-app products.
  5. Select the Subscriptions tab.
  6. Next to "Introductory price," enter your introductory price (in the default currency) and the number of applicable days, weeks, months, or recurring billing periods.
    • If you select billing periods, the introductory price recurs for the number of billing periods you enter. If you select days, weeks, or months, the user is only charged the introductory price once during the specified time period. 
    • We use the price you enter as the base for calculating market-specific prices. To manually update local prices, select Edit Price.
    • For more information on how to manage market-specific prices for subscriptions, go to in-app product configuration options.
  7. Save your changes.

Free trials

By setting up a free trial, you can let your users try out a subscription before buying it. Free trials run for a period of time that you set, and then they automatically convert to a full subscription using the subscription’s time period and price. You can set up a free trial for any type of subscription, including seasonal subscriptions.
Note: As of January 10, 2018, users can only receive one free trial across all available subscriptions in your app.


  • You can create one free trial per subscription product.
  • Each subscription SKU needs a trial period.
  • Free trials are always $0.
  • Trial periods must be 3 days or longer.
    • You can change a trial period at any time, but only new subscription purchases will use the updated trial period.
  • Users can only get a free trial if they haven’t previously purchased the subscription it applies to.

Add a free trial

  1. Sign in to your Play Console.
  2. Click All applications All applications.
  3. Select an app.
  4. On the left menu, click Store presence > In-app products.
  5. Select the Subscriptions tab.
  6. Click Subscription Settings.
  7. Check the checkbox next to “Subscription-level free trial.”

How users start a free trial

To start a free trial, a user completes the standard process for purchasing a subscription on Google Play. They aren’t charged at first because the initial period is included with the free trial, and they’re notified by email that the subscription includes a free trial period. Google Play records a transaction of $0.00, and the subscription is marked as purchased for the trial period or until its canceled.

The day after the trial period ends, a user’s payment method is charged for the full subscription amount, which recurs using the subscription’s set time period.

Note: If a user cancels a subscription at any time during the trial period, the subscription remains active until the end of the trial, and they won’t be charged.

Seasonal subscriptions

When you add a seasonal subscription, you can prorate the price of the first billing period for users who sign up after your original start date. When the subscription recurs, the user will pay the full price of the subscription.


Here's one way you could set up discounted pricing for a seasonal subscription starting on October 1:

  • $180 for users who sign up on or after October 1
  • $150 for users who sign up on or after November 1
  • $130 for users who sign up on or after December 1

Prorated pricing policies

  • You can update prorated prices an unlimited number of times, but existing subscribers remain on the original price schedule.
  • Prorated pricing can only be set between the start and end date of your subscription.

Manage changes to subscriptions

Upgrades or downgrades

With in-app subscriptions, you can add the ability for users to upgrade or downgrade their existing subscription to another plan your app offers. For example, users can change from a monthly to an annual subscription or from a basic to a premium subscription.

Users won't receive a refund for their old plan. To account for unused time remaining on an existing subscription, the first charge of their new subscription plan will be delayed.

Grace periods & account holds for declined payments

Grace periods allow your subscribers to update their payment method if a recurring payment is declined. This can be useful if your subscribers have an expired credit card, subscribed using a prepaid card, or canceled a card without updating their payment information.

Declined payments & grace periods

At the start of a grace period, your subscribers receive an email notifying them of a declined payment. They'll have time to update their payment method without interrupting their subscription. Once your subscribers update their payment method to a valid form of payment, their next subscription billing date stays the same.

For new subscription products created after April 28, 2015, the following grace periods are set by default:

  • Weekly subscriptions: 3 days
  • Other subscription periods: 7 days

Change a grace period

You can change the grace period (3 days or 7 days) for individual subscriptions or turn off grace periods.

  1. Sign in to your Play Console.
  2. Select your app.
  3. On the left menu, click Store presenceIn-app products.
  4. Select the Subscriptions tab.
  5. Select a subscription.
  6. Change your grace period settings.

End of grace period

If your subscribers' payment method is still declined by the end of the grace period, their subscription is canceled and they lose access to their subscription content.

Restrict access to content

If a subscriber's recurring payment is declined, you can place the user's subscription on hold and restrict access to your content for 30 days while we try payment again. If activated, the account hold feature applies to all subscriptions within your app.

To restrict access to subscription content:

  1. Sign in to your Play Console.
  2. Select your app.
  3. On the left menu, click Store presence > In-app products.
  4. Select the Subscriptions tab.
  5. Expand the "Subscription settings" section.
  6. Next to "Activate account hold," check the checkbox. 

User experience

When a user cancels a subscription, they don't receive a refund. Instead, they have access to their purchased subscription until the end of the prepaid subscription period.

Restore a subscription in the app

To help users who cancel a subscription and want to subscribe again, you can add the ability for users to resubscribe in your app without having to wait until the end of their existing subscription period. When a user resubscribes before the end of their existing subscription period, they see a $0.00 charge.

Restore a subscription from the Play Store app

If you enable users to restore a subscription, users can restore access to a canceled subscription that hasn't expired yet from the Play Store app. When a user restores access, they'll confirm the next payment date and you will receive a notification. 

Tip: This feature works best if you've set up real-time developer notifications.

To enable users to restore a subscription:

  1. Sign in to your Play Console.
  2. Select your app.
  3. On the left menu, click Store presence > In-app products.
  4. Select the Subscriptions tab.
  5. Expand the "Subscription settings" section.
  6. Next to "Allow users to restore subscriptions," check the box.

Developer responsibilities

  • You (as the content or access provider) may implement a more flexible refund policy with your users directly. It is your responsibility to notify your users of any changes to your refund policies and ensure that the policies comply with applicable law.
  • In some cases, the user may contact you directly to request cancellation of a subscription. In this and similar cases, you can use the server-side API to directly cancel the user's subscription from your servers.
  • You must support a subscription as long as it has at least one active user. If a developer doesn't support subscriptions with active users, the developer account will be suspended, and the user's subscription will be refunded using the developer's account.

Was this article helpful?
How can we improve it?