Static
Readonly
BILLING_Static
Readonly
ENTITLEMENT_Enum of entitlement verification modes.
Static
Readonly
INTRO_Enum of different possible states for intro price eligibility status.
Static
Readonly
IN_List of valid in app message types.
Static
Readonly
LOG_List of valid log levels.
Static
Readonly
PACKAGE_Enumeration of all possible Package types.
Static
Readonly
PRODUCT_Supported product categories.
Static
Readonly
PRORATION_Replace SKU's ProrationMode.
Static
Readonly
PURCHASES_Enum of PurchasesAreCompletedByType.
Static
Readonly
PURCHASES_Enum of all error codes the SDK produces.
Static
Readonly
PURCHASE_Supported SKU types.
@deprecated, use PRODUCT_CATEGORY
Static
Readonly
REFUND_Enum with possible return states for beginning refund request.
Static
Readonly
STOREKIT_Enum of StoreKit version.
Static
Readonly
VERIFICATION_The result of the verification process.
Static
addSets a function to be called on updated customer info
CustomerInfo update listener
Static
addSets a function to be called on purchases initiated on the Apple App Store. This is only used in iOS.
Called when a user initiates a promotional in-app purchase from the App Store. If your app is able to handle a purchase at the current time, run the deferredPurchase function. If the app is not in a state to make a purchase: cache the deferredPurchase, then call the deferredPurchase when the app is ready to make the promotional purchase. If the purchase should never be made, you don't need to ever call the deferredPurchase and the app will not proceed with promotional purchases.
Static
beginiOS 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 REFUND_REQUEST_STATUS: The status of the refund request. Keep in mind the status could be REFUND_REQUEST_STATUS.USER_CANCELLED
Static
beginiOS 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.
The entitlement to begin a refund request for.
Returns REFUND_REQUEST_STATUS: The status of the refund request. Keep in mind the status could be REFUND_REQUEST_STATUS.USER_CANCELLED
Static
beginiOS 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.
The StoreProduct to begin a refund request for.
Returns a REFUND_REQUEST_STATUS: The status of the refund request. Keep in mind the status could be REFUND_REQUEST_STATUS.USER_CANCELLED
Static
canCheck 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.
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.
promise with boolean response. True if billing is supported, false otherwise.
Static
checkiOS only. Computes whether or not a user is eligible for the introductory pricing period of a given product. You should use this method to determine whether or not 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).
Array of product identifiers for which you want to compute eligibility
A map of IntroEligility per productId. The promise will be rejected if configure has not been called yet or if there's in an error checking eligibility.
Subscription groups are automatically collected for determining eligibility. If RevenueCat can't
definitively compute the eligibility, most likely because of missing group information, it will return
INTRO_ELIGIBILITY_STATUS_UNKNOWN
. The best course of action on unknown status is to display the non-intro
pricing, to not create a misleading situation. To avoid this, make sure you are testing with the latest version of
iOS so that the subscription group can be collected by the SDK. Android always returns INTRO_ELIGIBILITY_STATUS_UNKNOWN.
Static
collectAutomatically collect subscriber attributes associated with the device identifiers. $idfa, $idfv, $ip on iOS $gpsAdId, $androidId, $ip on Android
The promise will be rejected if configure has not been called yet or if there's an error setting collecting the device identifiers.
Static
configureSets up Purchases with your API key and an app user id.
If you use purchasesAreCompletedBy=PurchasesAreCompletedByMyApp, you must also provide a value for storeKitVersion.
Static
enableStatic
getStatic
getRetrieves a current offering for a placement identifier, use this to access offerings defined by targeting placements configured in the RevenueCat dashboard.
The placement identifier to fetch a current offeringn for
Promise of an optional offering. The promise will be rejected if configure has not been called yet.
Static
getGets current customer info
A promise of a customer info object. Rejections return an error code, and an userInfo object with more information. The promise will be rejected if configure has not been called yet or if there's an issue getting the customer information.
Static
getGets the map of entitlements -> offerings -> products
Promise of entitlements structure. The promise will be rejected if configure has not been called yet.
Static
getFetch the product info
Array of product identifiers
Optional type of products to fetch, can be SUBSCRIPTION or NON_SUBSCRIPTION. SUBSCRIPTION by default
A promise containing an array of products. The promise will be rejected if the products are not properly configured in RevenueCat or if there is another error retrieving them. Rejections return an error code, and a userInfo object with more information. The promise will also be rejected if configure has not been called yet.
Static
getiOS only. Use this function to retrieve the PurchasesPromotionalOffer
for a given PurchasesPackage
.
The PurchasesStoreProduct
the user intends to purchase.
The PurchasesStoreProductDiscount
to apply to the product.
Returns when the PurchasesPaymentDiscount
is returned.
Null is returned for Android and incompatible iOS versions. The promise will be rejected if configure has not been
called yet or if there's an error getting the payment discount.
Static
invalidateInvalidates 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 of the app, like if a promotional subscription is granted through the RevenueCat dashboard.
The promise will be rejected if configure has not been called yet or there's an error invalidating the customer info cache.
Static
isStatic
isStatic
logThis function will logIn the current user with an appUserID. Typically this would be used after a log in to identify a user without calling configure.
The appUserID that should be linked to the currently user
A promise of an object that contains the customerInfo after logging in, as well as a boolean indicating whether the user has just been created for the first time in the RevenueCat backend. The promise will be rejected if configure has not been called yet or if there's an issue logging in.
Static
logLogs out the Purchases client clearing the saved appUserID. This will generate a random user id and save it in the cache.
A promise of a customer info object. Rejections return an error code, and a userInfo object with more information. The promise will be rejected if configure has not been called yet or if there's an issue logging out.
Static
presentiOS 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
The promise will be rejected if configure has not been called yet or there's an error presenting the code redemption sheet.
Static
purchaseiOS only. Purchase a package applying a given discount.
The Package you wish to purchase. You can get the Packages by calling getOfferings
Discount to apply to this package. Retrieve this discount using getPromotionalOffer.
A promise of an object containing a customer info object and a product identifier. Rejections return an error code, a boolean indicating if the user cancelled the purchase, and an object with more information. The promise will be also be rejected if configure has not been called yet.
Static
purchaseiOS only. Purchase a product applying a given discount.
The product you want to purchase
Discount to apply to this package. Retrieve this discount using getPromotionalOffer.
A promise of an object containing a customer info object and a product identifier. Rejections return an error code, a boolean indicating if the user cancelled the purchase, and an object with more information. The promise will be rejected if configure has not been called yet.
Static
purchaseMake a purchase
The Package you wish to purchase. You can get the Packages by calling getOfferings
Optional
upgradeInfo: null | UpgradeInfoDEPRECATED. Use googleProductChangeInfo.
Optional
googleProductChangeInfo: null | GoogleProductChangeInfoAndroid only. Optional GoogleProductChangeInfo you wish to upgrade from containing the oldProductIdentifier and the optional prorationMode.
Optional
googleIsPersonalizedPrice: null | booleanAndroid and Google only. Optional boolean indicates personalized pricing on products available for purchase in the EU. For compliance with EU regulations. User will see "This price has been customize for you" in the purchase dialog when true. See https://developer.android.com/google/play/billing/integrate#personalized-price for more info.
A promise of an object containing a customer info object and a product identifier. Rejections return an error code, a boolean indicating if the user cancelled the purchase, and an object with more information. The promise will be also be rejected if configure has not been called yet.
Static
purchaseMake a purchase
The product identifier of the product you want to purchase
Optional
upgradeInfo: null | UpgradeInfoAndroid only. Optional UpgradeInfo you wish to upgrade from containing the oldSKU and the optional prorationMode.
Optional type of product, can be inapp or subs. Subs by default @deprecated, use purchaseStoreProduct instead
Static
purchaseMake a purchase
The product you want to purchase
Optional
googleProductChangeInfo: null | GoogleProductChangeInfoAndroid only. Optional GoogleProductChangeInfo you wish to upgrade from containing the oldProductIdentifier and the optional prorationMode.
Optional
googleIsPersonalizedPrice: null | booleanAndroid and Google only. Optional boolean indicates personalized pricing on products available for purchase in the EU. For compliance with EU regulations. User will see "This price has been customize for you" in the purchase dialog when true. See https://developer.android.com/google/play/billing/integrate#personalized-price for more info.
A promise of an object containing a customer info object and a product identifier. Rejections return an error code, a boolean indicating if the user cancelled the purchase, and an object with more information. The promise will also be rejected if configure has not been called yet.
Static
purchaseGoogle only. Make a purchase of a subscriptionOption
The SubscriptionOption you wish to purchase. You can get the SubscriptionOption from StoreProducts by calling getOfferings
Optional
googleProductChangeInfo: GoogleProductChangeInfoAndroid only. Optional GoogleProductChangeInfo you wish to upgrade from containing the oldProductIdentifier and the optional prorationMode.
Optional
googleIsPersonalizedPrice: booleanAndroid and Google only. Optional boolean indicates personalized pricing on products available for purchase in the EU. For compliance with EU regulations. User will see "This price has been customize for you" in the purchase dialog when true. See https://developer.android.com/google/play/billing/integrate#personalized-price for more info.
A promise of an object containing a customer info object and a product identifier. Rejections return an error code, a boolean indicating if the user cancelled the purchase, and an object with more information. The promise will be also be rejected if configure has not been called yet.
Static
recordiOS only. Always returns an error on iOS < 15.
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.
Important: This should only be used if you have set PurchasesAreCompletedBy to MY_APP during SDK configuration.
Product ID that was just purchased
If there was a transacton found and handled for the provided product ID.
You need to finish the transaction yourself after calling this method.
Static
removeRemoves a given CustomerInfoUpdateListener
CustomerInfoUpdateListener reference of the listener to remove
True if listener was removed, false otherwise
Static
removeRemoves a given ShouldPurchasePromoProductListener
ShouldPurchasePromoProductListener reference of the listener to remove
True if listener was removed, false otherwise
Static
restoreRestores a user's previous purchases and links their appUserIDs to any user's also using those purchases.
A promise of a customer info object. Rejections return an error code, and an userInfo object with more information. The promise will be also be rejected if configure has not been called yet.
Static
setSubscriber attribute associated with the install ad for the user
Empty String or null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting the ad subscriber attribute.
Static
setSubscriber attribute associated with the install ad group for the user
Empty String or null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting ad group.
Static
setSubscriber attribute associated with the Adjust Id for the user Required for the RevenueCat Adjust integration
Adjust ID to use in Adjust integration. Empty String or null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting Adjust ID.
Static
setSubscriber attribute associated with the Airship Channel Id for the user Required for the RevenueCat Airship integration
Airship Channel ID to use in Airship integration. Empty String or null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting the Airship Channel ID.
Static
set@deprecated, configure behavior through the RevenueCat dashboard (app.revenuecat.com) instead. If an user tries to purchase a product that is active on the current app store account, we will treat it as a restore and alias the new ID with the previous id. If you have configured the Legacy restore behavior in the RevenueCat dashboard and are currently setting this to true, keep this setting active.
Set this to true if you are passing in an appUserID but it is anonymous, this is true by default if you didn't pass an appUserID
The promise will be rejected if configure has not been called yet.
Static
setSubscriber attribute associated with the AppsFlyer Id for the user Required for the RevenueCat AppsFlyer integration
Appsflyer ID to use in Appsflyer integration. Empty String or null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting the Appsflyer ID.
Static
setSubscriber 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
Map of attributes by key. Set the value as an empty string to delete an attribute.
The promise will be rejected if configure has not been called yet or there's an error setting the subscriber attributes.
Static
setSubscriber attribute associated with the install campaign for the user
Empty String or null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting the campaign.
Static
setSubscriber attribute associated with the CleverTap Id for the user Required for the RevenueCat CleverTap integration
CleverTap user ID to use in CleverTap integration. Empty String or null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting the CleverTap ID.
Static
setSubscriber attribute associated with the install ad creative for the user
Empty String or null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting the creative subscriber attribute.
Static
setStatic
setSubscriber attribute associated with the display name for the user
Empty String or null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting the display name.
Static
setSubscriber attribute associated with the email address for the user
Empty String or null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting the email.
Static
setFBAnonymousIDSubscriber attribute associated with the Facebook SDK Anonymous Id for the user Recommended for the RevenueCat Facebook integration
Facebook Anonymous ID to use in Mparticle integration. Empty String or null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting the Facebook Anonymous ID.
Static
setSubscriber attribute associated with the Firebase App Instance ID for the user Required for the RevenueCat Firebase integration
Firebase App Instance ID to use in Firebase integration. Empty String or null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting the Firebase App Instance ID.
Static
setSubscriber attribute associated with the install keyword for the user
Empty String or null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting the keyword.
Static
setSet 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].
It will get called for each log event. Use this function to redirect the log to your own logging system
Static
setUsed 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.
Static
setSubscriber attribute associated with the install media source for the user
Empty String or null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting the media source.
Static
setSubscriber attribute associated with the Mixpanel Distinct Id for the user Required for the RevenueCat Mixpanel integration
Mixpanel Distinct ID to use in Mixpanel integration. Empty String or null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting the Mixpanel Distinct ID.
Static
setSubscriber attribute associated with the mParticle Id for the user Recommended for the RevenueCat mParticle integration
Mparticle ID to use in Mparticle integration. Empty String or null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting the Mparticle ID.
Static
setSubscriber attribute associated with the OneSignal Player Id for the user Required for the RevenueCat OneSignal integration
OneSignal Player ID to use in OneSignal integration. Empty String or null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting the OneSignal ID.
Static
setSubscriber attribute associated with the phone number for the user
Empty String or null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting the phone number.
Static
setStatic
setSubscriber attribute associated with the push token for the user
null will delete the subscriber attribute.
The promise will be rejected if configure has not been called yet or if there's an error setting the push token.
Static
setiOS only.
Set this property to true only when testing the ask-to-buy / SCA purchases flow. More information: http://errors.rev.cat/ask-to-buy
The promise will be rejected if configure has not been called yet.
Static
showShows 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.
Optional
messageTypes: IN_APP_MESSAGE_TYPE[]An array of message types that the stores can display inside your app. Must be one of [IN_APP_MESSAGE_TYPE]. By default, is undefined and all message types will be shown.
The promise will be rejected if configure has not been called yet.
Static
syncThis 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.
Product ID associated to the purchase.
ReceiptId that represents the Amazon purchase.
Amazon's userID. This parameter will be ignored when syncing a Google purchase.
Optional
isoCurrencyCode: null | stringProduct's currency code in ISO 4217 format.
Optional
price: null | numberProduct's price.
The promise will be rejected if configure has not been called yet or if there's an error syncing purchases.
Static
syncSyncs 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.
Promise of entitlements structure. The promise will be rejected if configure has not been called yet.
Static
sync@deprecated, use syncAmazonPurchase instead.
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.
Product ID associated to the purchase.
ReceiptId that represents the Amazon purchase.
Amazon's userID. This parameter will be ignored when syncing a Google purchase.
Optional
isoCurrencyCode: null | stringProduct's currency code in ISO 4217 format.
Optional
price: null | numberProduct's price.
The promise will be rejected if configure has not been called yet or if there's an error syncing purchases.
Static
syncThis 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.
The promise will be rejected if configure has not been called yet or if there's an error syncing purchases.
This function should only be called if you're not calling purchaseProduct/purchaseStoreProduct/purchasePackage/purchaseSubscriptionOption.
Enum for billing features. Currently, these are only relevant for Google Play Android users: https://developer.android.com/reference/com/android/billingclient/api/BillingClient.FeatureType