Contents

Advanced Commerce API

Support In-App Purchases through the App Store for exceptionally large catalogs of custom one-time purchases, subscriptions, and subscriptions with optional add-ons.

Overview

Use this framework to offer an exceptionally large catalog of one-time purchases, subscriptions, and subscriptions with optional add-ons while using the App Store commerce system. Apps that use this API host and manage their own catalog of In-App Purchases, or SKUs. The App Store commerce system handles the end-to-end payment processing, global distribution, tax support, and customer service.

You can use the Advanced Commerce API and the StoreKit In-App Purchase API in the same app. Both APIs use the App Store commerce system, including the same signed JWS transactions and JWS renewal info. For products that you offer using the In-App Purchase API, you set up product identifiers in App Store Connect. For products that you offer using the Advanced Commerce API, you host and manage your own catalog of SKUs and add product details dynamically at runtime. For complete setup information, see Setting up your project for Advanced Commerce API.

Advanced Commerce API features are available through requests you make using StoreKit in your app and endpoint requests from your server. To authorize these requests, you generate JSON Web Tokens (JWTs). The App Store Server Library provides a client that makes it easier to create JWTs to authorize calls. For more information about the library, see Simplifying your implementation by using the App Store Server Library. For more information about authorizing calls, see Authorizing API requests from your server.

Your server must support the Transport Layer Security (TLS) protocol 1.2 or later to call the Advanced Commerce API.

Topics

Essentials

API authorization and rate limits

Generic product IDs and SKUs

Tax codes and pricing

In-app API requests

One-time charge creation in the app

Subscription creation in the app

Subscription modification in the app

Subscription reactivation in the app

Subscription price change from the server

Subscription cancellation from the server

Subscription revocation from the server

Refund request from the server

Subscription metadata changes from the server

Migration from the server

Objects and types

Signed transaction information

Error handling