Offering Introductory Prices in Your App

Offer an introductory price to eligible users for auto-renewable subscriptions.


Apps with auto-renewable subscriptions can offer a discounted introductory price (including a free trial) to eligible users:

  • You set up introductory prices in iTunes Connect, as described in iTunes Connect Developer Help.

  • Determine if the user is eligible to receive an introductory price.

  • When the app queries the App Store for a list of available products, display the introductory price if the user is eligible to receive them.

You can make introductory prices available to customers who haven't previously received an introductory price for the given product, or for any products in the same subscription group.

Determine User Eligibility

To determine if a user is eligible for an introductory price, check the receipt:

1. Validate the receipt as described in Validating Receipts With the App Store.

2. In the receipt, check the values of the Subscription Trial Period and the Subscription Introductory Price Period for all in-app purchase transactions. If either of these fields are true for a given subscription, the user is not eligible for an introductory price on that subscription product or any other products within the same subscription group.

You typically check the user's eligibility from your server. It's best to determine eligibility early—for example, on the first launch of the app, if possible.

Figure 1

User Eligibility for Introductory Price

Diagram showing that introductory prices are available to new subscribers, and to lapsed subscribers who are receiving an introductory price offer for the first time.

Based on the receipt, you will find that new and returning customers are eligible for introductory price or free trial discounts as follows:

  • New subscribers are always eligible.

  • Lapsed subscribers who renew are eligible if they haven't previously received an introductory price for the given product (or any product within the same subscription group).

Display the Introductory Price

Once you determine the user is eligible for an introductory price, query the App Store for available products, and present the introductory price to the user:

1. Retrieve localized information from the App Store about a specified list of subscription products using the SKProductsRequest class. Products that have an available discount defined in iTunes Connect always include an introductoryPrice object.

2. Use the properties in the introductoryPrice object to display the discounted price for the subscription. Based on the type of the introductory price (represented by SKProductDiscount.PaymentMode), display UI that describes the offer accordingly.

The three types of introductory prices are:

  • Pay as you go. (payAsYouGo) New subscribers pay an introductory price each billing period for a specific duration (for example, $1.99 per month for 3 months).

  • Pay up front. (payUpFront) New subscribers pay a one-time introductory price for a specific duration (for example, $1.99 for 2 months).

  • Free trial. (freeTrial) New subscribers access content for free for a specified duration. Their subscription begins immediately but they won’t be billed until the free trial period is over.

When the introductory period is over, the subscription renews at the regular price.

Figure 2

Introductory Price Types

Diagram shows subscription timelines for the three introductory price types:  pay as you go, pay up front, and free trial.

For design guidance, see Human Interface Guidelines > In-App Purchase.

Test Introductory Prices

Verify that the subscription and introductory prices a user sees in your app match the prices the same user sees in the App Store:

1. Configure test accounts, as described in Create a sandbox tester account. Create a variety of accounts that are eligible or ineligible for discounts.

2. Initiate in-app purchases from within the app for each test user.

3. Verify that the user experience and pricing information dynamically represent the accurate price of your subscription.

See Also

Offering Introductory Prices

class SKProductDiscount

A class that contains the details of a discount for a subscription product.