Supported on: iOS SDK
1.0.61+Configuration
Set the billing provider when configuring the SDK:BillingProvider Options
Module Access
Access the billing module through theAppDNA.billing property:
Get Products
Fetch product information from the App Store:ProductInfo
Purchase a Product
Initiate a purchase:options parameter accepts a PurchaseOptions value for configuring promotional offers or other purchase modifiers.
TransactionInfo
Server-side receipt verification is performed automatically by the SDK. You do not need to send receipts to your own server for validation.
Restore Purchases
Restore previously purchased products (e.g., after a device change or reinstall):String product identifiers that were restored.
Entitlements
Retrieve the current user’s entitlements:Entitlement
Check Active Subscription
Quickly check if the user has any active subscription:Listen for Entitlement Changes
Register a callback to be notified when entitlements change (e.g., subscription renewal, expiration, or new purchase):AppDNABillingDelegate
All 4 methods on this delegate fire from the active billing bridge (StoreKit2Bridge, RevenueCatBridge, or AdaptyBridge). Register via AppDNA.billingDelegate = yourHandler.
onPurchaseCompletedandonPurchaseFailedfire for every purchase regardless of entry point — paywall-driven OR directAppDNA.billing.purchase(...)calls.onRestoreCompletedfires after every successful restore.onEntitlementsChangedfires whenever entitlements change (also broadcast viaNotificationCenter).
AppDNAPaywallDelegate: when a purchase comes from a paywall, both AppDNAPaywallDelegate.onPaywallPurchaseCompleted AND AppDNABillingDelegate.onPurchaseCompleted fire. Each represents a different layer (paywall lifecycle vs platform billing). Pick one as your source of truth for your analytics — they will not double-count if you only listen on one.
For more granular control, implement the AppDNABillingDelegate protocol:
Example Implementation
Auto-Tracked Events
The SDK automatically tracks the following billing-related events:These events include the product identifier and relevant metadata. They are tracked regardless of whether you implement
AppDNABillingDelegate.
