Offer introductory pricing 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 pricing in App Store Connect, as described in App Store 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 pricing if the user is eligible to receive them.
You can make introductory pricing 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.
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
SKProducts class. Products that have an available discount defined in App Store Connect always include an
2. Use the properties in the
introductory object to display the discounted price for the subscription. Based on the type of the introductory price (represented by
SKProduct), display UI that describes the offer accordingly.
The three types of introductory prices are:
Pay as you go. (
SKProduct) New subscribers pay an introductory price each billing period for a specific duration (for example, $1.99 per month for 3 months).
Discount .Payment Mode .pay As You Go
Pay up front. (
SKProduct) New subscribers pay a one-time introductory price for a specific duration (for example, $1.99 for 2 months).
Discount .Payment Mode .pay Up Front
Free trial. (
SKProduct) 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.
Discount .Payment Mode .free Trial
When the introductory period is over, the subscription renews at the regular price.
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.