9.0.4 • Published 9 months ago

@revenuecat/purchases-capacitor v9.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

License Release

RevenueCat is a powerful, reliable, and free to use in-app purchase server with cross-platform support. Our open-source framework provides a backend and a wrapper around StoreKit and Google Play Billing to make implementing in-app purchases and subscriptions easy.

Whether you are building a new app or already have millions of customers, you can use RevenueCat to:

  • Fetch products, make purchases, and check subscription status with our native SDKs.
  • Host and configure products remotely from our dashboard.
  • Analyze the most important metrics for your app business in one place.
  • See customer transaction histories, chart lifetime value, and grant promotional subscriptions.
  • Get notified of real-time events through webhooks.
  • Send enriched purchase events to analytics and attribution tools with our easy integrations.

Sign up to get started for free.

@revenuecat/purchases-capacitor

@revenuecat/purchases-capacitor is the client for the RevenueCat subscription and purchase tracking system. It is an open source framework that provides a wrapper around StoreKit, Google Play Billing and the RevenueCat backend to make implementing in-app purchases in Capacitor easy.

RevenueCat SDK Features

RevenueCat
Server-side receipt validation
➡️Webhooks - enhanced server-to-server communication with events for purchases, renewals, cancellations, and more
🎯Subscription status tracking - know whether a user is subscribed whether they're on iOS, Android or web
📊Analytics - automatic calculation of metrics like conversion, mrr, and churn
📝Online documentation up to date
🔀Integrations - over a dozen integrations to easily send purchase data where you need it
💯Well maintained - frequent releases
📮Great support - Help Center

Getting Started

For more detailed information, you can view our complete documentation at docs.revenuecat.com.

Please follow the Quickstart Guide for more information on how to install the SDK.

npm install @revenuecat/purchases-capacitor
npx cap sync

Contributing

Contributions are always welcome! To learn how you can contribute, please see the Contributing Guide.

Acknowledgment

This plugin is based on CapGo's Capacitor plugin. The plugin was transferred to RevenueCat to become an officially supported plugin.

API

configure(...)

configure(configuration: PurchasesConfiguration) => Promise<void>

Sets up Purchases with your API key and an app user id.

ParamTypeDescription
configurationPurchasesConfigurationRevenueCat configuration object including the API key and other optional parameters. See {@link PurchasesConfiguration}

setMockWebResults(...)

setMockWebResults(options: { shouldMockWebResults: boolean; }) => Promise<void>

Sets whether the SDK should return mocked results in the web version. This won't affect the iOS and Android versions of the implementation. Default is false

ParamTypeDescription
options{ shouldMockWebResults: boolean; }Set shouldMockWebResults to true if you want the plugin methods to return mocked values

setSimulatesAskToBuyInSandbox(...)

setSimulatesAskToBuyInSandbox(options: { simulatesAskToBuyInSandbox: boolean; }) => Promise<void>

iOS only.

ParamTypeDescription
options{ simulatesAskToBuyInSandbox: boolean; }Set this property to true only when testing the ask-to-buy / SCA purchases flow. More information: http://errors.rev.cat/ask-to-buy

addCustomerInfoUpdateListener(...)

addCustomerInfoUpdateListener(customerInfoUpdateListener: CustomerInfoUpdateListener) => Promise<PurchasesCallbackId>

Sets a function to be called on updated customer info

ParamTypeDescription
customerInfoUpdateListenerCustomerInfoUpdateListenerCustomerInfo update listener

Returns: Promise<string>


removeCustomerInfoUpdateListener(...)

removeCustomerInfoUpdateListener(options: { listenerToRemove: PurchasesCallbackId; }) => Promise<{ wasRemoved: boolean; }>

Removes a given CustomerInfoUpdateListener

ParamTypeDescription
options{ listenerToRemove: string; }Include listenerToRemove, which is a CustomerInfoUpdateListener reference of the listener to remove

Returns: Promise<{ wasRemoved: boolean; }>


getOfferings()

getOfferings() => Promise<PurchasesOfferings>

Gets the map of entitlements -> offerings -> products

Returns: Promise<PurchasesOfferings>


getCurrentOfferingForPlacement(...)

getCurrentOfferingForPlacement(options: { placementIdentifier: string; }) => Promise<PurchasesOffering | null>

Retrieves a current offering for a placement identifier, use this to access offerings defined by targeting placements configured in the RevenueCat dashboard.

ParamType
options{ placementIdentifier: string; }

Returns: Promise<PurchasesOffering | null>


syncAttributesAndOfferingsIfNeeded()

syncAttributesAndOfferingsIfNeeded() => Promise<PurchasesOfferings>

Syncs subscriber attributes and then fetches the configured offerings for this user. This method is intended to be called when using Targeting Rules with Custom Attributes. Any subscriber attributes should be set before calling this method to ensure the returned offerings are applied with the latest subscriber attributes.

Returns: Promise<PurchasesOfferings>


getProducts(...)

getProducts(options: GetProductOptions) => Promise<{ products: PurchasesStoreProduct[]; }>

Fetch the product info

ParamType
optionsGetProductOptions

Returns: Promise<{ products: PurchasesStoreProduct[]; }>


purchaseStoreProduct(...)

purchaseStoreProduct(options: PurchaseStoreProductOptions) => Promise<MakePurchaseResult>

Make a purchase

ParamType
optionsPurchaseStoreProductOptions

Returns: Promise<MakePurchaseResult>


purchaseDiscountedProduct(...)

purchaseDiscountedProduct(options: PurchaseDiscountedProductOptions) => Promise<MakePurchaseResult>

iOS only. Purchase a product applying a given discount.

ParamType
optionsPurchaseDiscountedProductOptions

Returns: Promise<MakePurchaseResult>


purchasePackage(...)

purchasePackage(options: PurchasePackageOptions) => Promise<MakePurchaseResult>

Make a purchase

ParamType
optionsPurchasePackageOptions

Returns: Promise<MakePurchaseResult>


purchaseSubscriptionOption(...)

purchaseSubscriptionOption(options: PurchaseSubscriptionOptionOptions) => Promise<MakePurchaseResult>

Google only. Make a purchase of a subscriptionOption

ParamType
optionsPurchaseSubscriptionOptionOptions

Returns: Promise<MakePurchaseResult>


purchaseDiscountedPackage(...)

purchaseDiscountedPackage(options: PurchaseDiscountedPackageOptions) => Promise<MakePurchaseResult>

iOS only. Purchase a package applying a given discount.

ParamType
optionsPurchaseDiscountedPackageOptions

Returns: Promise<MakePurchaseResult>


restorePurchases()

restorePurchases() => Promise<{ customerInfo: CustomerInfo; }>

Restores a user's previous purchases and links their appUserIDs to any user's also using those purchases.

Returns: Promise<{ customerInfo: CustomerInfo; }>


recordPurchase(...)

recordPurchase(options: { productID: string; }) => Promise<{ transaction: PurchasesStoreTransaction; }>

Use this method only if you already have your own IAP implementation using StoreKit 2 and want to use RevenueCat's backend. If you are using StoreKit 1 for your implementation, you do not need this method.

You only need to use this method with new purchases. Subscription updates are observed automatically.

ParamTypeDescription
options{ productID: string; }The productID that was purchased that needs to be synced with RevenueCat's backend.

Returns: Promise<{ transaction: PurchasesStoreTransaction; }>


getAppUserID()

getAppUserID() => Promise<{ appUserID: string; }>

Get the appUserID

Returns: Promise<{ appUserID: string; }>


logIn(...)

logIn(options: { appUserID: string; }) => Promise<LogInResult>

This function will log in the current user with an appUserID. Typically, this would be used after a log in to identify a user without calling configure.

ParamTypeDescription
options{ appUserID: string; }The appUserID that should be linked to the current user

Returns: Promise<LogInResult>


logOut()

logOut() => Promise<{ customerInfo: CustomerInfo; }>

Logs out the Purchases client clearing the saved appUserID. This will generate a random user id and save it in the cache.

Returns: Promise<{ customerInfo: CustomerInfo; }>


setLogLevel(...)

setLogLevel(options: { level: LOG_LEVEL; }) => Promise<void>

Used to set the log level. Useful for debugging issues with the lovely team @RevenueCat. The default is {LOG_LEVEL.INFO} in release builds and {LOG_LEVEL.DEBUG} in debug builds.

ParamTypeDescription
options{ level: LOG_LEVEL; }Log level to use to display logs.

setLogHandler(...)

setLogHandler(logHandler: LogHandler) => Promise<void>

Set a custom log handler for redirecting logs to your own logging system. By default, this sends info, warning, and error messages. If you wish to receive Debug level messages, see setLogLevel.

ParamTypeDescription
logHandlerLogHandlerIt will get called for each log event. Use this function to redirect the log to your own logging system

getCustomerInfo()

getCustomerInfo() => Promise<{ customerInfo: CustomerInfo; }>

Gets current customer info

Returns: Promise<{ customerInfo: CustomerInfo; }>


syncPurchases()

syncPurchases() => Promise<void>

This method will send all the purchases to the RevenueCat backend. Call this when using your own implementation for subscriptions anytime a sync is needed, like after a successful purchase.


syncObserverModeAmazonPurchase(...)

syncObserverModeAmazonPurchase(options: SyncObserverModeAmazonPurchaseOptions) => Promise<void>
ParamType
optionsSyncAmazonPurchaseOptions

syncAmazonPurchase(...)

syncAmazonPurchase(options: SyncAmazonPurchaseOptions) => Promise<void>

This method will send a purchase to the RevenueCat backend. This function should only be called if you are in Amazon observer mode or performing a client side migration of your current users to RevenueCat.

The receipt IDs are cached if successfully posted, so they are not posted more than once.

ParamType
optionsSyncAmazonPurchaseOptions

enableAdServicesAttributionTokenCollection()

enableAdServicesAttributionTokenCollection() => Promise<void>

Enable automatic collection of Apple Search Ad attribution on iOS. Disabled by default. Supported in iOS 14.3+ only


isAnonymous()

isAnonymous() => Promise<{ isAnonymous: boolean; }>

Returns: Promise<{ isAnonymous: boolean; }>


checkTrialOrIntroductoryPriceEligibility(...)

checkTrialOrIntroductoryPriceEligibility(options: { productIdentifiers: string[]; }) => Promise<{ [productId: string]: IntroEligibility; }>

iOS only. Computes whether a user is eligible for the introductory pricing period of a given product. You should use this method to determine whether you show the user the normal product price or the introductory price. This also applies to trials (trials are considered a type of introductory pricing).

ParamTypeDescription
options{ productIdentifiers: string[]; }Array of product identifiers for which you want to compute eligibility

Returns: Promise<{ productId: string: IntroEligibility; }>


getPromotionalOffer(...)

getPromotionalOffer(options: GetPromotionalOfferOptions) => Promise<PurchasesPromotionalOffer | undefined>

iOS only. Use this function to retrieve the PurchasesPromotionalOffer for a given PurchasesPackage.

ParamType
optionsGetPromotionalOfferOptions

Returns: Promise<PurchasesPromotionalOffer>


invalidateCustomerInfoCache()

invalidateCustomerInfoCache() => Promise<void>

Invalidates the cache for customer information.

Most apps will not need to use this method; invalidating the cache can leave your app in an invalid state. Refer to https://docs.revenuecat.com/docs/customer-info#section-get-user-information for more information on using the cache properly.

This is useful for cases where customer information might have been updated outside the app, like if a promotional subscription is granted through the RevenueCat dashboard.


presentCodeRedemptionSheet()

presentCodeRedemptionSheet() => Promise<void>

iOS 14.0+ only. Presents a code redemption sheet, useful for redeeming offer codes Refer to https://docs.revenuecat.com/docs/ios-subscription-offers#offer-codes for more information on how to configure and use offer codes


setAttributes(...)

setAttributes(attributes: { [key: string]: string | null; }) => Promise<void>

Subscriber attributes are useful for storing additional, structured information on a user. Since attributes are writable using a public key they should not be used for managing secure or sensitive information such as subscription status, coins, etc.

Key names starting with "$" are reserved names used by RevenueCat. For a full list of key restrictions refer to our guide: https://docs.revenuecat.com/docs/subscriber-attributes

ParamTypeDescription
attributes{ key: string: string | null; }Map of attributes by key. Set the value as an empty string to delete an attribute.

setEmail(...)

setEmail(options: { email: string | null; }) => Promise<void>

Subscriber attribute associated with the email address for the user

ParamTypeDescription
options{ email: string | null; }Empty String or null will delete the subscriber attribute.

setPhoneNumber(...)

setPhoneNumber(options: { phoneNumber: string | null; }) => Promise<void>

Subscriber attribute associated with the phone number for the user

ParamTypeDescription
options{ phoneNumber: string | null; }Empty String or null will delete the subscriber attribute.

setDisplayName(...)

setDisplayName(options: { displayName: string | null; }) => Promise<void>

Subscriber attribute associated with the display name for the user

ParamTypeDescription
options{ displayName: string | null; }Empty String or null will delete the subscriber attribute.

setPushToken(...)

setPushToken(options: { pushToken: string | null; }) => Promise<void>

Subscriber attribute associated with the push token for the user

ParamTypeDescription
options{ pushToken: string | null; }null will delete the subscriber attribute.

setProxyURL(...)

setProxyURL(options: { url: string; }) => Promise<void>

Set this property to your proxy URL before configuring Purchases only if you've received a proxy key value from your RevenueCat contact.

ParamType
options{ url: string; }

collectDeviceIdentifiers()

collectDeviceIdentifiers() => Promise<void>

Automatically collect subscriber attributes associated with the device identifiers. $idfa, $idfv, $ip on iOS $gpsAdId, $androidId, $ip on Android


setAdjustID(...)

setAdjustID(options: { adjustID: string | null; }) => Promise<void>

Subscriber attribute associated with the Adjust ID for the user Required for the RevenueCat Adjust integration

ParamTypeDescription
options{ adjustID: string | null; }Adjust ID to use in Adjust integration. Empty String or null will delete the subscriber attribute.

setAppsflyerID(...)

setAppsflyerID(options: { appsflyerID: string | null; }) => Promise<void>

Subscriber attribute associated with the AppsFlyer ID for the user Required for the RevenueCat AppsFlyer integration

ParamTypeDescription
options{ appsflyerID: string | null; }Appsflyer ID to use in Appsflyer integration. Empty String or null will delete the subscriber attribute.

setFBAnonymousID(...)

setFBAnonymousID(options: { fbAnonymousID: string | null; }) => Promise<void>

Subscriber attribute associated with the Facebook SDK Anonymous ID for the user Recommended for the RevenueCat Facebook integration

ParamTypeDescription
options{ fbAnonymousID: string | null; }Facebook Anonymous ID to use in Mparticle integration. Empty String or null will delete the subscriber attribute.

setMparticleID(...)

setMparticleID(options: { mparticleID: string | null; }) => Promise<void>

Subscriber attribute associated with the mParticle ID for the user Recommended for the RevenueCat mParticle integration

ParamTypeDescription
options{ mparticleID: string | null; }Mparticle ID to use in Mparticle integration. Empty String or null will delete the subscriber attribute.

setCleverTapID(...)

setCleverTapID(options: { cleverTapID: string | null; }) => Promise<void>

Subscriber attribute associated with the CleverTap ID for the user Required for the RevenueCat CleverTap integration

ParamTypeDescription
options{ cleverTapID: string | null; }CleverTap user ID to use in CleverTap integration. Empty String or null will delete the subscriber attribute.

setMixpanelDistinctID(...)

setMixpanelDistinctID(options: { mixpanelDistinctID: string | null; }) => Promise<void>

Subscriber attribute associated with the Mixpanel Distinct ID for the user Required for the RevenueCat Mixpanel integration

ParamTypeDescription
options{ mixpanelDistinctID: string | null; }Mixpanel Distinct ID to use in Mixpanel integration. Empty String or null will delete the subscriber attribute.

setFirebaseAppInstanceID(...)

setFirebaseAppInstanceID(options: { firebaseAppInstanceID: string | null; }) => Promise<void>

Subscriber attribute associated with the Firebase App Instance ID for the user Required for the RevenueCat Firebase integration

ParamTypeDescription
options{ firebaseAppInstanceID: string | null; }Firebase App Instance ID to use in Firebase integration. Empty String or null will delete the subscriber attribute.

setOnesignalID(...)

setOnesignalID(options: { onesignalID: string | null; }) => Promise<void>

Subscriber attribute associated with the OneSignal Player ID for the user Required for the RevenueCat OneSignal integration. Deprecated for OneSignal versions above v9.0.

ParamTypeDescription
options{ onesignalID: string | null; }OneSignal Player ID to use in OneSignal integration. Empty String or null will delete the subscriber attribute.

setOnesignalUserID(...)

setOnesignalUserID(options: { onesignalUserID: string | null; }) => Promise<void>

Subscriber attribute associated with the OneSignal User ID for the user Required for the RevenueCat OneSignal integration with versions v11.0 and above.

ParamTypeDescription
options{ onesignalUserID: string | null; }OneSignal UserId to use in OneSignal integration. Empty String or null will delete the subscriber attribute.

setAirshipChannelID(...)

setAirshipChannelID(options: { airshipChannelID: string | null; }) => Promise<void>

Subscriber attribute associated with the Airship Channel ID for the user Required for the RevenueCat Airship integration

ParamTypeDescription
options{ airshipChannelID: string | null; }Airship Channel ID to use in Airship integration. Empty String or null will delete the subscriber attribute.

setMediaSource(...)

setMediaSource(options: { mediaSource: string | null; }) => Promise<void>

Subscriber attribute associated with the install media source for the user

ParamTypeDescription
options{ mediaSource: string | null; }Empty String or null will delete the subscriber attribute.

setCampaign(...)

setCampaign(options: { campaign: string | null; }) => Promise<void>

Subscriber attribute associated with the install campaign for the user

ParamTypeDescription
options{ campaign: string | null; }Empty String or null will delete the subscriber attribute.

setAdGroup(...)

setAdGroup(options: { adGroup: string | null; }) => Promise<void>

Subscriber attribute associated with the install ad group for the user

ParamTypeDescription
options{ adGroup: string | null; }Empty String or null will delete the subscriber attribute.

setAd(...)

setAd(options: { ad: string | null; }) => Promise<void>

Subscriber attribute associated with the install ad for the user

ParamTypeDescription
options{ ad: string | null; }Empty String or null will delete the subscriber attribute.

setKeyword(...)

setKeyword(options: { keyword: string | null; }) => Promise<void>

Subscriber attribute associated with the install keyword for the user

ParamTypeDescription
options{ keyword: string | null; }Empty String or null will delete the subscriber attribute.

setCreative(...)

setCreative(options: { creative: string | null; }) => Promise<void>

Subscriber attribute associated with the install ad creative for the user

ParamTypeDescription
options{ creative: string | null; }Empty String or null will delete the subscriber attribute.

canMakePayments(...)

canMakePayments(options?: { features?: BILLING_FEATURE[] | undefined; } | undefined) => Promise<{ canMakePayments: boolean; }>

Check if billing is supported for the current user (meaning IN-APP purchases are supported) and optionally, whether a list of specified feature types are supported.

Note: Billing features are only relevant to Google Play Android users. For other stores and platforms, billing features won't be checked.

ParamTypeDescription
options{ features?: BILLING_FEATURE[]; }An array of feature types to check for support. Feature types must be one of BILLING_FEATURE. By default, is an empty list and no specific feature support will be checked.

Returns: Promise<{ canMakePayments: boolean; }>


beginRefundRequestForActiveEntitlement()

beginRefundRequestForActiveEntitlement() => Promise<{ refundRequestStatus: REFUND_REQUEST_STATUS; }>

iOS 15+ only. Presents a refund request sheet in the current window scene for the latest transaction associated with the active entitlement.

If the request was unsuccessful, no active entitlements could be found for the user, or multiple active entitlements were found for the user, the promise will return an error. If called in an unsupported platform (Android or iOS < 15), an UnsupportedPlatformException will be thrown.

Important: This method should only be used if your user can only have a single active entitlement at a given time. If a user could have more than one entitlement at a time, use beginRefundRequestForEntitlement instead.

Returns: Promise<{ refundRequestStatus: REFUND_REQUEST_STATUS; }>


beginRefundRequestForEntitlement(...)

beginRefundRequestForEntitlement(options: { entitlementInfo: PurchasesEntitlementInfo; }) => Promise<{ refundRequestStatus: REFUND_REQUEST_STATUS; }>

iOS 15+ only. Presents a refund request sheet in the current window scene for the latest transaction associated with the entitlement.

If the request was unsuccessful, the promise will return an error. If called in an unsupported platform (Android or iOS < 15), an UnsupportedPlatformException will be thrown.

ParamTypeDescription
options{ entitlementInfo: PurchasesEntitlementInfo; }The entitlement to begin a refund request for.

Returns: Promise<{ refundRequestStatus: REFUND_REQUEST_STATUS; }>


beginRefundRequestForProduct(...)

beginRefundRequestForProduct(options: { storeProduct: PurchasesStoreProduct; }) => Promise<{ refundRequestStatus: REFUND_REQUEST_STATUS; }>

iOS 15+ only. Presents a refund request sheet in the current window scene for the latest transaction associated with the product.

If the request was unsuccessful, the promise will return an error. If called in an unsupported platform (Android or iOS < 15), an UnsupportedPlatformException will be thrown.

ParamTypeDescription
options{ storeProduct: PurchasesStoreProduct; }The StoreProduct to begin a refund request for.

Returns: Promise<{ refundRequestStatus: REFUND_REQUEST_STATUS; }>


showInAppMessages(...)

showInAppMessages(options?: { messageTypes?: IN_APP_MESSAGE_TYPE[] | undefined; } | undefined) => Promise<void>

Shows in-app messages available from the App Store or Google Play. You need to disable messages from showing automatically using PurchasesConfiguration.shouldShowInAppMessagesAutomatically.

Note: In iOS, this requires version 16+. In older versions the promise will be resolved successfully immediately.

ParamTypeDescription
options{ messageTypes?: IN_APP_MESSAGE_TYPE[]; }An array of message types that the stores can display inside your app. Values must be one of IN_APP_MESSAGE_TYPE. By default, is undefined and all message types will be shown.

isConfigured()

isConfigured() => Promise<{ isConfigured: boolean; }>

Check if configure has finished and Purchases has been configured.

Returns: Promise<{ isConfigured: boolean; }>


Interfaces

PurchasesConfiguration

Holds parameters to initialize the SDK.

PropTypeDescription
apiKeystringRevenueCat API Key. Needs to be a string
appUserIDstring | nullA unique id for identifying the user
purchasesAreCompletedByPurchasesAreCompletedBySet this to MY_APP and provide a STOREKIT_VERSION if you have your own IAP implementation and want to only use RevenueCat's backend. Defaults to PURCHASES_ARE_COMPLETED_BY_TYPE.REVENUECAT. If you are on Android and setting this to MY_APP, will have to acknowledge the purchases yourself. If your app is only on Android, you may specify any StoreKit version, as it is ignored by the Android SDK.
userDefaultsSuiteNamestringAn optional string. iOS-only, will be ignored for Android. Set this if you would like the RevenueCat SDK to store its preferences in a different NSUserDefaults suite, otherwise it will use standardUserDefaults. Default is null, which will make the SDK use standardUserDefaults.
storeKitVersionSTOREKIT_VERSIONiOS-only, will be ignored for Android. By selecting the DEFAULT value, RevenueCat will automatically select the most appropriate StoreKit version for the app's runtime environment. - Warning: Make sure you have an In-App Purchase Key configured in your app. Please see https://rev.cat/in-app-purchase-key-configuration for more info. - Note: StoreKit 2 is only available on iOS 16+. StoreKit 1 will be used for previous iOS versions regardless of this setting.
useAmazonbooleanAn optional boolean. Android only. Required to configure the plugin to be used in the Amazon Appstore.
shouldShowInAppMessagesAutomaticallybooleanWhether we should show store in-app messages automatically. Both Google Play and the App Store provide in-app messages for some situations like billing issues. By default, those messages will be shown automatically. This allows to disable that behavior, so you can display those messages at your convenience. For more information, check: https://rev.cat/storekit-message and https://rev.cat/googleplayinappmessaging
entitlementVerificationModeENTITLEMENT_VERIFICATION_MODEVerification strictness levels for EntitlementInfo. See https://rev.cat/trusted-entitlements for more info.
pendingTransactionsForPrepaidPlansEnabledbooleanEnable this setting if you want to allow pending purchases for prepaid subscriptions (only supported in Google Play). Note that entitlements are not granted until payment is done. Disabled by default.

CustomerInfo

Type containing all information regarding the customer

PropTypeDescription
entitlementsPurchasesEntitlementInfosEntitlements attached to this customer info
activeSubscriptionsstring[]Set of active subscription skus
allPurchasedProductIdentifiersstring[]Set of purchased skus, active and inactive
latestExpirationDatestring | nullThe latest expiration date of all purchased skus
firstSeenstringThe date this user was first seen in RevenueCat.
originalAppUserIdstringThe original App User Id recorded for this user.
requestDatestringDate when this info was requested
allExpirationDates{ key: string: string | null; }Map of skus to expiration dates
allPurchaseDates{ key: string: string | null; }Map of skus to purchase dates
originalApplicationVersionstring | nullReturns the version number for the version of the application when the user bought the app. Use this for grandfathering users when migrating to subscriptions. This corresponds to the value of CFBundleVersion (in iOS) in the Info.plist file when the purchase was originally made. This is always null in Android
originalPurchaseDatestring | nullReturns the purchase date for the version of the application when the user bought the app. Use this for grandfathering users when migrating to subscriptions.
managementURLstring | nullURL to manage the active subscription of the user. If this user has an active iOS subscription, this will point to the App Store, if the user has an active Play Store subscription it will point there. If there are no active subscriptions it will be null. If there are multiple for different platforms, it will point to the device store.
nonSubscriptionTransactionsPurchasesStoreTransaction[]List of all non subscription transactions. Use this to fetch the history of non-subscription purchases

PurchasesEntitlementInfos

Contains all the entitlements associated to the user.

PropTypeDescription
all{ key: string: PurchasesEntitlementInfo; }Map of all EntitlementInfo (PurchasesEntitlementInfo) objects (active and inactive) keyed by entitlement identifier.
active{ key: string: PurchasesEntitlementInfo; }Map of active EntitlementInfo (PurchasesEntitlementInfo) objects keyed by entitlement identifier.
verificationVERIFICATION_RESULTIf entitlement verification was enabled, the result of that verification. If not, VerificationResult.NOT_REQUESTED

PurchasesEntitlementInfo

The EntitlementInfo object gives you access to all of the information about the status of a user entitlement.

PropTypeDescription
identifierstringThe entitlement identifier configured in the RevenueCat dashboard
isActivebooleanTrue if the user has access to this entitlement
willRenewbooleanTrue if the underlying subscription is set to renew at the end of the billing period (expirationDate).
9.0.4

9 months ago

9.0.3

10 months ago

9.0.2

10 months ago

9.0.1

10 months ago

7.7.1

1 year ago

7.7.0

1 year ago

7.6.1

1 year ago

7.6.0

1 year ago

8.0.0

12 months ago

8.0.0-beta.4

1 year ago

9.0.0

11 months ago

8.0.0-beta.3

1 year ago

7.5.10

1 year ago

8.0.0-beta.2

1 year ago

7.5.9

1 year ago

8.0.0-beta.1

1 year ago

7.5.8

1 year ago

7.5.7

1 year ago

7.5.6

1 year ago

7.5.5

1 year ago

6.1.2

1 year ago

7.5.4

1 year ago

7.5.3

1 year ago

7.5.2

1 year ago

7.5.1

1 year ago

6.1.1

1 year ago

7.5.0

1 year ago

7.4.0

2 years ago

7.3.2

2 years ago

7.3.1

2 years ago

7.3.0

2 years ago

7.2.0

2 years ago

7.1.1

2 years ago

7.1.0

2 years ago

7.0.0

2 years ago

6.1.0

2 years ago

6.0.0

2 years ago

6.0.0-beta.2

2 years ago

6.0.0-beta.1

2 years ago