Documentation

In-App Purchasing

Client API

SDK API

In-App Purchasing

Introduction to Unity In-App Purchasing

Understand your options for implementing Unity In-App Purchases in your game.
Read time 1 minuteLast updated 16 hours ago

Unity In-App Purchasing (IAP) provides a unified API for implementing and managing in-app purchases across multiple stores. Rather than integrating with each store's built-in SDK separately, you use a single set of IAP APIs and Unity handles the store-specific communication. Unity IAP supports built-in platform stores (Apple App Store and Google Play Store), Direct to Consumer (D2C) payment providers for off-platform transactions, and Webshop, a no-code hosted web storefront you build and manage in the Unity Dashboard. You can also implement a fully custom store by extending the IAP module system. Each store type handles the purchasing flow, payment processing, and entitlement management differently, so choosing the right store type for your application depends on your target platforms, business model, and technical requirements.

Choose a store type

The following table compares the store types available in Unity IAP to help you decide which integration fits your needs:

Direct to Consumer (D2C) payment provider (Stripe or Coda)

Apple App Store

Google Play Store

Webshop

Custom store

Supported platformsCross-platform (web-based checkout)iOS, macOS, tvOSAndroidCross-platform (browser-based storefront)Depends on implementation
When to useSelling products outside of Apple and Google stores, for example on web or in select regions where external payments are permittedPublishing on Apple platforms using Apple's standard purchasing flowPublishing on Android using Google's standard purchasing flowSelling directly to players through a branded web storefront, outside of app storesIntegrating a store not natively supported by Unity IAP
Checkout experienceExternal web checkout with a deep link back to the appNative OS purchase sheetNative OS purchase sheetBranded web storefront with a deep link back to the game after purchaseCustom
Who handles payment processingStripe (Managed Payments, as merchant of record) or Coda (CodaPay, as merchant of record)AppleGoogleStripe or Coda (via your configured D2C payment provider)Developer
Product catalog setupRemote Catalog (required); IAP Catalog and Codeless IAP are not supportedIAP Catalog, code (
CatalogProvider
), or Apple App Store Connect
IAP Catalog, code (
CatalogProvider
), or Google Play Console
IAP catalog from your Unity project, configured in the Unity DashboardProgrammatic
Unity Authentication requiredYesNoNoYesNo
Purchase fulfillmentSDK, backend API (webhook), or Cloud Code moduleSDK (
ConfirmPurchase
)
SDK (
ConfirmPurchase
)
Backend API (webhook) or Cloud Code module (via configured D2C payment provider)Custom
Receipt validationUnity IAP order service; JWT-signed webhook eventsAutomatic (StoreKit 2); remote via
OrderInfo.Apple.jwsRepresentation
Remote server-side via receipt
Payload
Unity IAP order service and JWT-signed webhook events (via configured D2C payment provider)Custom
Restore purchasesAutomatic on first
FetchPurchases()
call after reinstall
Manual - Restore Purchases button required by Apple policyAutomatic on first
FetchPurchases()
call after reinstall
Automatic on first
FetchPurchases()
call after reinstall
Custom
Subscriptions supportedNoYesYesNoDepends on implementation
Important
Apple and Google now permit external web links and third-party payments in select regions. Eligibility, fees, and technical requirements vary by platform and geographical market. You are responsible for complying with each platform's requirements for your target regions.

Next steps

After you choose a store type, refer to the relevant documentation to set up your integration: