Core Methods
This section covers the core methods available in expo-iap for managing in-app purchases.
Note: expo-iap aligns with the OpenIAP API surface. For canonical cross-SDK API docs, see:
API Categories
Unified APIs
Cross‑platform methods that work on both iOS and Android:
initConnection()— Initialize the store connectionendConnection()— End the store connection and cleanupfetchProducts()— Fetch product and subscription metadatarequestPurchase()— Start a purchase for products or subscriptionsfinishTransaction()— Complete a transaction after validationgetAvailablePurchases()— Restore non‑consumables and subscriptionsdeepLinkToSubscriptions()— Open native subscription management UIgetStorefront()— Get current storefront country codehasActiveSubscriptions()— Check if user has active subscriptionsverifyPurchaseWithProvider()— Verify purchase with external provider (e.g., IAPKit)
Listeners
Event listeners for purchase updates and errors:
purchaseUpdatedListener— Listen for successful purchasespurchaseErrorListener— Listen for purchase errorspromotedProductListener— Listen for promoted products (iOS)
iOS Specific
StoreKit and App Store specific capabilities:
Alternative Billing (iOS 16.0+):
canPresentExternalPurchaseNoticeIOS()— Check if notice sheet is available (iOS 18.2+)presentExternalPurchaseNoticeSheetIOS()— Present external purchase notice (iOS 18.2+)presentExternalPurchaseLinkIOS()— Open external purchase link (iOS 16.0+)
Transaction Management:
clearTransactionIOS()— Clear pending transactionsgetPromotedProductIOS()— Get promoted productgetPendingTransactionsIOS()— Get pending transactionssubscriptionStatusIOS()— Get subscription statuscurrentEntitlementIOS()— Get current entitlementshowManageSubscriptionsIOS()— Show subscription managementbeginRefundRequestIOS()— Request refund- And more...
Android Specific
Google Play Billing specific capabilities:
Alternative Billing:
checkAlternativeBillingAvailabilityAndroid()— Check if alternative billing is availableshowAlternativeBillingDialogAndroid()— Show required information dialogcreateAlternativeBillingTokenAndroid()— Generate reporting token
Purchase Management:
acknowledgePurchaseAndroid()— Acknowledge non-consumable purchasesconsumePurchaseAndroid()— Consume consumable purchases
Removed APIs
requestProducts()— Removed in v3.0.0. UsefetchProducts({ skus, type })instead.
