For developers · Checked 30 September 2026

Migrating to StoreKit 2: what is deprecated and what replaces it

Short answer: Apple’s documentation now marks the original API for In-App Purchase as deprecated; SKPaymentQueue, SKProductsRequest and SKReceiptRefreshRequest are deprecated from iOS 18 and macOS 15, and App Store receipts and the verifyReceipt endpoint are deprecated too. The replacement is StoreKit 2, available from iOS 15, with JWS-signed transactions. The new iOS 27 subscription Bundles and Suites also require StoreKit 2.

What replaces what

Replacements as named on Apple’s deprecated symbol pages and in the App Store Receipts documentation, read 30 September 2026.

Original APIStatusStoreKit 2 and server replacement
SKProductsRequestDeprecated iOS 18, macOS 15Product.products(for:)
SKPaymentQueueDeprecated iOS 18, macOS 15product.purchase() and Transaction.updates
SKReceiptRefreshRequestDeprecated iOS 18, macOS 15Transaction.all and AppTransaction.shared
App Store receiptDeprecatedJWS-signed Transaction and AppTransaction
verifyReceipt endpointDeprecatedApp Store Server API
Server Notifications V1DeprecatedApp Store Server Notifications V2

Why migrate now

Beyond the deprecations, some features exist only in StoreKit 2: the ready-made StoreKit views for building a store, the refund request sheet, subscription renewal status and auto-renew preference, offer eligibility, controlling billing issue messages, and the manage subscriptions sheet. The new iOS 27 subscription options depend on it too: subscription Bundles and Suites require StoreKit 2, and subscriptions created before September 14, 2026 in apps without StoreKit 2 start opted out of multiseat purchases. See Bundles, Suites and multiseat.

When you still need the original API

StoreKit 2 needs iOS 15, iPadOS 15, macOS 12, tvOS 15, watchOS 8 or visionOS 1. Apple says to keep the original API for app versions whose minimum is iOS 14, macOS 11 or earlier. Both APIs can run in the same app on iOS 15 and later, and purchases made through either are visible to both, so you can migrate one flow at a time. Apple lists a few features that may still need the original API, such as promoted In-App Purchases in apps running iOS 11 through 16.3.

Migrating step by step

1. Products. Replace SKProductsRequest with Product.products(for:). 2. Purchases. Call purchase() on the product and handle the result, instead of adding a payment to the queue. 3. Updates. Start a listener on Transaction.updates at launch to catch renewals, purchases made elsewhere and approvals of pending ones, and call finish() once you deliver. 4. Entitlements. Use Transaction.currentEntitlements instead of parsing the receipt. 5. Server. Stop calling verifyReceipt; verify JWS transactions and query the App Store Server API, and move notifications to App Store Server Notifications V2.

Test before you ship

Use a StoreKit configuration file in Xcode for local testing and the sandbox environment for end-to-end tests with your server. Check the paths that break most often in a migration: restoring purchases on a new device, a renewal arriving while the app is closed, an interrupted or pending purchase, and a refund. New products still go through review, see how to submit an In-App Purchase for review.

Where Censuus fits

A working store lets you earn; being found brings the buyers. Censuus ranks apps by the visits they draw, and adding your app is free on the List my app form. Placement comes from traffic and sponsorship: apps climb on the visits they draw, and a sponsor can pay to rise higher.

Frequently asked questions

Is StoreKit 1 deprecated?

Yes. Apple’s documentation marks the original API for In-App Purchase as deprecated, with SKPaymentQueue and SKProductsRequest deprecated from iOS 18 and macOS 15. Apple has not published a removal date.

What replaces verifyReceipt?

The App Store Server API for server-side checks, and JWS-signed transactions you can verify yourself. Apple marks receipts and the verifyReceipt endpoint as deprecated.

What is the minimum iOS version for StoreKit 2?

iOS 15, iPadOS 15, macOS 12, tvOS 15, watchOS 8 and visionOS 1.

Can I use StoreKit 1 and StoreKit 2 in the same app?

Yes, on iOS 15 and later. Purchases made with either API are available to both, so you can migrate gradually.

Do the new iOS 27 subscription features need StoreKit 2?

Yes. Apple requires StoreKit 2 for subscription Bundles and Suites, and subscriptions created before September 14, 2026 in apps without StoreKit 2 start opted out of multiseat purchases.

Guides for app developers

Put your app in the ranking

Censuus ranks apps by the visits they draw and by sponsorship, no bots. Listing is free; sponsorship raises placement.