Creating In-App Purchase Products

In-App Purchase lets you sell a variety of virtual items directly within your free or paid app. This chapter describes the In-App Purchase product types and shows you how to configure them in iTunes Connect.

About In-App Purchase Products

Read Table 1-1 to know how to choose among the different product types to offer your virtual content or service to customers.

For more information about development considerations for each product type, see Designing Your App’s Products in In-App Purchase Programming Guide.

Table 1-1  In-App Purchase product types

Product type



Products that are used one time, after which they become depleted and need to be purchased again, are usually implemented as consumables. For example, fish food in a fishing app could be implemented as a consumable product.


Non-consumable products are purchased once by users and do not expire or decrease with use. For example, new race tracks for a game could be implemented as non-consumable products.

Apple can host your non-consumable products for you. See Hosting Non-Consumable Products with Apple.

Auto-Renewable Subscription

Auto-renewable subscriptions allow users to purchase dynamic content, such as magazine subscriptions, for a set duration of time. Subscriptions renew automatically unless the user opts out of the renewal. If the content you want offer doesn’t fit what’s outlined in the App Review Guidelines, consider offering the content through a non-renewing subscription.

Auto-renewable subscriptions can include an incentive to customers who share their contact information with you.

Free Subscription

Free subscriptions allow users to download dynamic content, such as magazine subscriptions, for a set duration of time. Free subscriptions are a way for developers to put free content in Magazines and Newspapers in the App Store. After a user signs up for a free subscription, the subscription content will be available on all devices associated with the user’s Apple ID. Note that free subscriptions do not expire and can be offered only in Magazines and Newspapers apps.

Free subscriptions don’t offer a marketing opt-in incentive as do auto-renewable subscriptions, but users are prompted to share their information.

Free Subscriptions are not available for Mac apps.

Non-Renewing Subscription

Non-renewing subscriptions allow the sale of items with a limited duration. They are used for products that offer time-based access to static content.

  • If you use non-renewing subscriptions, your app is responsible for delivering the subscription to all devices associated with the user’s Apple ID.

  • Because a non-renewing subscription requires a user to renew each time the subscription ends, your app must contain code that recognizes when the subscription is due to expire and prompt the user to purchase a new subscription.

Configuring a Product

Each developer account can create up to a total of 10,000 In-App Purchase products across all the apps in the account. Every product you want to offer in your store must be configured in iTunes Connect. Because In-App Purchase products are associated with a single app, you create them from the In-App Purchase section under Features in iTunes Connect.

To create an In-App Purchase product
  1. As an iTunes Connect user with an Admin or App Manager role, sign in to iTunes Connect.

  2. On the iTunes Connect homepage, click My Apps.

  3. Select the app you want to enable In-App Purchase for.

    If you don't see the app you are looking for on the My Apps page, you can search for the app using a variety of criteria. In the Search box, choose the criteria you want to use to search for an app. The view starts filtering the list of apps as soon as you start typing:

    • Name. Enter the name or a portion of the name.

    • Apple ID. Enter the Apple ID of the app. This value must match exactly to return an app.

    • SKU. Enter the SKU of the app.

    If no apps are listed, then the criteria you type match no apps.

  4. After selecting the app, click on Features.

  5. Under In-App Purchases, click the plus sign.

  6. In the section for the type of In-App Purchase you want to create, click Select.

    The In-App Purchase product type cannot be changed once your In-App Purchase has been created.

  7. In the Reference Name field, enter an internal name for the product.

  8. For auto-renewable subscriptions, click Add Duration.

    For information on designing subscription durations, see Designing Auto-Renewable Subscription Duration Families.

  9. In the Product ID field, enter an alphanumeric identifier for the product.

    In iTunes Connect, you identify the In-App Purchase product using a string called a product identifier. For example, When your app uses Store Kit to communicate with the App Store, it uses product identifiers to retrieve the configuration data you provided for the products. Later, when a user wants to purchase a product, your app identifies the product to be purchased using its product identifier.

    Note that product identifiers are unique to the app. For example, you need separate identifiers for products available from the Mac version of an app and for products available from the iOS version of an app.

  10. Specify whether the product is cleared for sale.

    • Select Yes if you want the product to be available as soon as it is approved by Apple.

    • Select No if you want to control when the product becomes available.

    You can come back to this item at any time to release the product for sale.

  11. Choose a price tier.

    The price tier determines both the customer price and your proceeds (which is the net price after taxes, where applicable, have been taken out). The Price Tier menu doesn’t appear for free subscriptions.

  12. Configure the product display text for at least one language, as described in Displaying Products in More Than One Language.

  13. In the Review Notes section, enter information that can help Apple review the product.

  14. Upload a screenshot of the product as it appears on the device.

    This screenshot is used for Apple’s review only and is not displayed on the App Store.

    Screenshots must be at least 312 x 390 pixels and at least 72 dpi.

  15. Click Save.

    Your In-App Purchase product appears on the app’s In-App Purchases page. If the product is Ready to Submit, the product’s configuration is complete and ready for you to test the product with your app.

Designing Auto-Renewable Subscription Duration Families

You can think of subscription durations as individual products, each with its own time length, price, and marketing incentives. You define durations in a single family to allow users to choose among the durations when they renew their subscription. Start a new auto-renewable subscription and define durations in a different family to make distinct subscription products.

This example of a Manage App Subscriptions page on a user’s device shows six different durations configured for the subscription. Users can see when a subscription renews (and for how much) and can turn off auto-renewal. If you configure more than one duration for a subscription, users can select among the different durations for the renewal.


All six subscription durations were created within the same family in the In-App Purchase product in iTunes Connect. Subscriptions created in different duration families appear as separate products and are not offered to customers as alternatives for subscription renewal.

When their subscription renewal date approaches, customers are notified if the price of an auto-renewable subscription has increased. After their subscriptions expire, they are opted-out of the subscription and must manually renew their subscription at the increased price.

If the price of an auto-renewable subscription decreases during the subscription period, customers are not notified and the subscription automatically renews at the lower price.

Duration Properties lists the options you have to design different duration and price combinations to offer your customers.

What Users See After Purchasing an Auto-Renewable Subscription

After users purchase an auto-renewable subscription, they see a Confirm Your Subscription dialog. The confirmation includes the subscription’s display name and its duration:


After confirming the purchase, users sign in to their App Store account, if they aren’t already signed in. If the product is configured with an opt-in incentive, the personal data sharing dialog appears, asking users to choose to share their information with you. The prompt includes the opt-in incentive duration. Users can select Don't Allow in this dialog and still purchase the subscription.


After users purchase the subscription, they receive a subscription confirmation email with information regarding the subscription they have purchased. The display name that you choose for your In-App Purchase product (as appropriate for this user’s territory) appears in the confirmation email as the “Name of Subscription.”

Hosting Non-Consumable Products with Apple

Apple can host up to 5 GB per app of your non-consumable products for you. Apple provides a reliable and familiar experience for users and handles distributing products to their devices and restoring products if needed.

When you host content with Apple, Apple stores your app’s content using the same infrastructure that supports other large-scale operations, such as the App Store. Additionally, Apple automatically downloads Apple-hosted content in the background even if your app isn’t running.

You can choose to have Apple host In-App Purchase products when you first create the products in iTunes Connect. You can also convert content that you are currently hosting on your own servers to be hosted by Apple.

To host content with Apple, you submit the content to Apple for review. You create a product in Xcode using an In-App Purchase Content template, include your content, and upload it to iTunes Connect using the Archive process. Alternatively, you can create a .pkg file from Xcode for each product and upload them all at once using Application Loader. See Using Application Loader more information about submitting In-App Purchase metadata and content to iTunes Connect.

To enable content hosting
  1. Create a new non-consumable product, as described in To create an In-App Purchase product.

    Alternatively, open the In-App Purchase page for an existing non-consumable product.

  2. In the In-App Purchase Details section, Hosting Content with Apple area, select Yes.

  3. Click Save.

If you accidentally enable Hosting Content with Apple, you can undo this selection by deleting the In-App Purchase product and re-configuring it. Note that you can’t use the same product ID when you re-create the product.


Verifying an Auto-Renewable Subscription Receipt

To increase the security of the transaction between your app and Apple’s servers when validating an auto-renewable subscription, you can include a string of 32 randomly generated alphanumeric characters in the transaction receipt. Generate this parameter, known as the shared secret, in iTunes Connect.

For information about incorporating the shared secret into your app’s receipt handling, see Receipt Validation Programming Guide.

There is only one shared secret per organization; make sure that when you generate a new shared secret, all apps submitted for your organization use the new value to verify auto-renewable subscriptions.

To generate a shared secret
  1. Open the App.

  2. Click Features.

  3. From In-App Purchases, click View Shared Secret.

  4. Click Done.

You can access the In-App Purchase Shared Secret page from inside the In-App Purchases page for an app or from the Ellipsis (…) menu in the upper left corner of the My Apps page. This link is visible if you have at least one auto-renewable subscription set up for any app.


Providing Access to Privacy Policies for Subscriptions

If your app collects user or device-related data, iTunes Connect asks for a URL linking to a privacy policy that applies to your app. Privacy policy URLs are required for apps that offer auto-renewable or free subscriptions or as required by law. Supply a privacy policy in each language in which your app displays on the App Store.