In-App Purchase

Offer users additional content and services through purchases they make within your app.

Overview

In-App Purchase allows you to offer for purchase products that are used within your app, and collect payment for the additional features and content. The StoreKit framework connects to the App Store on your app’s behalf to securely process payments from users, prompting them to authorize payment. The framework then notifies your app, which delivers the purchased products to users.

To make products available for In-App Purchase, you first configure them in App Store Connect (see Workflow for configuring in-app purchases). Users can purchase a product either within your app, or directly from the App Store if you choose to promote the product.

Topics

First Steps

class SKPaymentQueue

A queue of payment transactions to be processed by the App Store.

protocol SKPaymentTransactionObserver

A set of methods that process transactions, unlock purchased functionality, and continue promoted in-app purchases.

Retrieving Product Information

class SKProductsRequest

An object that can retrieve localized information from the App Store about a specified list of products.

class SKProduct

Information about a product you previously registered in App Store Connect.

class SKProductsResponse

An App Store response to a request for information about a list of products.

class SKProductSubscriptionPeriod

An object containing the subscription period duration information.

Requesting Payment

class SKPayment

A request to the App Store to process payment for additional functionality offered by your app.

class SKMutablePayment

A mutable request to the App Store to process payment for additional functionality offered by your app.

class SKPaymentQueue

A queue of payment transactions to be processed by the App Store.

Delivering Products

class SKDownload

Downloadable content associated with a product.

Restoring Purchased Products

class SKReceiptRefreshRequest

A request to refresh the receipt, which represents the user's transactions with your app.

class SKRequest

An abstract class that represents a request to the App Store.

class SKPaymentTransaction

An object in the payment queue.

func SKTerminateForInvalidReceipt()

Terminates an app if the license to use the app has expired.

Promoting In-App Purchases

class SKProductStorePromotionController

A product promotion controller for customizing the order and visibility of in-app purchases per device.

Testing Promoted In-App Purchases

Test your in-app purchases before making your app available in the App Store.

Offering Introductory Pricing

Offering Introductory Pricing in Your App

Offer introductory pricing to eligible users for auto-renewable subscriptions.

class SKProductDiscount

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