API Reference Documentation Unreal Engine API Reference
Complete reference for every function, delegate, async action, struct, and enum in RevenueCat Bridge.
/ API Reference
Everything lives on URevenueCatSubsystem, a GameInstanceSubsystem. One instance per game session, accessible from anywhere.
In C++:
URevenueCatSubsystem * RC = GetGameInstance ()->GetSubsystem < URevenueCatSubsystem > ();
In Blueprints: search for "RevenueCat" in the action palette. All functions are in the RevenueCat category.
Location: Project Settings > Plugins > RevenueCat
These are stored in URevenueCatSettings (a DeveloperSettings subclass) and saved to DefaultGame.ini.
Setting Type Description AndroidApiKeyFStringRevenueCat public API key for Android IosApiKeyFStringRevenueCat public API key for iOS bEnableDebugLogsboolVerbose SDK logging. Turn on during development, turn off before shipping.
Function Returns Description ConfigureSDK(ApiKey)voidInitialize the SDK with an API key. Called automatically on startup using the key from Project Settings. You only need to call this manually if you want to override the key at runtime. IsConfigured()boolWhether the SDK has been configured.
Function Returns Description FetchOfferings()voidFetch available offerings from RevenueCat. Results come back through OnOfferingsFetched. GetCachedOfferings()TArray<FRevenueCatOffering>Returns offerings from the last FetchOfferings call. Empty if you haven't fetched yet. GetCurrentOffering(OutOffering)boolGets the offering marked "current" in the dashboard. Returns false if nothing is cached. FindPackageByID(PackageID, OutPackage)boolFind a package by its RevenueCat PackageID (e.g. "$rc_monthly"). Searches all cached offerings. FindPackageByProductID(ProductID, OutPackage)boolFind a package by the store product ID (e.g. "com.yourapp.monthly_sub"). Searches all cached offerings.
Function Returns Description PurchasePackage(Package)voidTrigger the native purchase flow for a package. Results come back through OnPurchaseCompleted. RestorePurchases()voidRestore previous purchases (e.g. after reinstall). Results through OnPurchasesRestored. SyncPurchases()voidForce-sync pending receipts with RevenueCat servers. Results through OnCustomerInfoUpdated.
Function Returns Description FetchCustomerInfo()voidFetch the latest customer info from RevenueCat. Results through OnCustomerInfoUpdated. GetCachedCustomerInfo()FRevenueCatCustomerInfoReturns cached customer info from the last fetch. IsEntitlementActive(EntitlementID)boolCheck if a specific entitlement is active. Uses cached data - call FetchCustomerInfo() first if you need fresh data.
Function Returns Description LogIn(AppUserID)voidIdentify a user with a custom ID. Links purchases to this ID across devices. Results through OnCustomerInfoUpdated. LogOut()voidRevert to an anonymous RevenueCat ID. Results through OnCustomerInfoUpdated. GetAppUserID()FStringGet the current RevenueCat App User ID (anonymous IDs start with $RCAnonymousID:). IsAnonymous()boolWhether the current user is anonymous.
Function Description SetFirebaseAppInstanceId(AppInstanceId)Set Firebase App Instance ID for RevenueCat's Firebase integration. This plugin does not depend on Firebase - get the ID from your own Firebase setup. SetAttributes(Attributes)Set arbitrary key-value pairs as subscriber attributes. Takes a TMap<FString, FString>. SetEmail(Email)Set subscriber's email (reserved attribute). SetDisplayName(DisplayName)Set subscriber's display name (reserved attribute). SetPhoneNumber(PhoneNumber)Set subscriber's phone number (reserved attribute).
Function Description SetMediaSource(MediaSource)Set media source (e.g. "facebook_ads"). SetCampaign(Campaign)Set campaign name. SetAdGroup(AdGroup)Set ad group. SetCreative(Creative)Set creative name. SetKeyword(Keyword)Set keyword. CollectDeviceIdentifiers()Auto-collect GAID (Android) / IDFA (iOS) and send to RevenueCat. Called automatically on SDK initialization — you only need to call this manually if you want to refresh identifiers later.
All attribution functions are fire-and-forget. No callback. Verify the values in the RevenueCat dashboard under the customer's attributes.
Function Description ShowManageSubscriptions()Open the platform's subscription management page (Play Store or App Store). No-op on unsupported platforms.
Bind these in Blueprints via the Assign node from the subsystem's Events section, or in C++:
RC->OnPurchaseCompleted. AddDynamic ( this , & UMyClass ::HandlePurchase);
Delegate Parameters When It Fires OnConfigured(none) SDK initialization completed. OnOfferingsFetchedTArray<FRevenueCatOffering> OfferingsOfferings fetched from RevenueCat. OnPurchaseCompletedERevenueCatPurchaseResult Result, FRevenueCatCustomerInfo CustomerInfoA purchase flow finished (success, cancel, error, or already owned). OnPurchasesRestoredFRevenueCatCustomerInfo CustomerInfoRestore purchases completed. OnCustomerInfoUpdatedFRevenueCatCustomerInfo CustomerInfoCustomer info changed (login, logout, fetch, or automatic SDK update). OnErrorFRevenueCatError ErrorAny error occurred. Check ErrorCode and ErrorMessage.
These latent nodes derive from UBlueprintAsyncActionBase and provide output execution pins (OnSuccess / OnFailure / OnCancelled) directly in the Blueprint graph — no manual delegate binding needed.
Search for the node name in the Blueprint action palette (they are in the RevenueCat category).
Pin Type Description OnSuccess TArray<FRevenueCatOffering>Fired with the fetched offerings OnFailure FRevenueCatErrorFired on error
Pin Type Description Package (input)FRevenueCatPackageThe package to purchase OnSuccess FRevenueCatCustomerInfoFired when purchase succeeds or is already owned OnCancelled — Fired when the user cancels the purchase flow OnFailure FRevenueCatErrorFired on error or pending purchase
Pin Type Description OnSuccess FRevenueCatCustomerInfoFired with restored customer info OnFailure FRevenueCatErrorFired on error
Pin Type Description OnSuccess FRevenueCatCustomerInfoFired with synced customer info OnFailure FRevenueCatErrorFired on error
Pin Type Description OnSuccess FRevenueCatCustomerInfoFired with the latest customer info OnFailure FRevenueCatErrorFired on error
Pin Type Description AppUserID (input)FStringThe custom user ID to log in with OnSuccess FRevenueCatCustomerInfoFired with the identified customer info OnFailure FRevenueCatErrorFired on error
Pin Type Description OnSuccess FRevenueCatCustomerInfoFired with the anonymous customer info OnFailure FRevenueCatErrorFired on error
Note: These async actions bind to the subsystem's existing delegates internally. Avoid running multiple instances of the same async action type simultaneously.
Value Meaning SuccessPurchase completed. UserCancelledUser dismissed the purchase dialog. ErrorPurchase failed. Check OnError for details. AlreadyOwnedUser already owns this product. PendingPurchasePurchase is pending (e.g. parental approval, slow payment method).
Value Meaning SubscriptionAuto-renewing subscription. NonConsumableOne-time purchase, permanent. ConsumableConsumable (can be bought again). UnknownType not determined.
Value Meaning NormalStandard billing period. IntroIntroductory offer period. TrialFree trial period.
Value Meaning AppStoreApple App Store PlayStoreGoogle Play Store AmazonAmazon Appstore StripeStripe (web) PromotionalGranted via RevenueCat dashboard UnknownUnknown store
Represents a single store product (a subscription, one-time purchase, etc.).
Field Type Description ProductIDFStringStore product identifier (e.g. "com.yourapp.monthly") TitleFStringLocalized product title DescriptionFStringLocalized product description PriceStringFStringFormatted price with currency symbol (e.g. "$4.99") PriceMicrosint64Price in micros (4990000 = $4.99) CurrencyCodeFStringISO 4217 currency code (e.g. "USD") ProductTypeERevenueCatProductTypeSubscription, NonConsumable, Consumable, or Unknown SubscriptionPeriodFStringISO 8601 duration (e.g. "P1M" for monthly, "P1Y" for annual). Empty for non-subscriptions. IntroPriceStringFStringFormatted intro price (e.g. "$0.99") IntroPriceMicrosint64Intro price in micros IntroPricePeriodFStringISO 8601 intro period (e.g. "P1W") IntroPriceCyclesint32Number of intro billing cycles FreeTrialPeriodFStringISO 8601 trial period (e.g. "P7D" for 7 days). Empty if no trial.
A package is a product wrapped in an offering context. This is what you pass to PurchasePackage.
Field Type Description PackageIDFStringRevenueCat package identifier (e.g. "$rc_monthly") PackageTypeFStringMONTHLY, ANNUAL, LIFETIME, WEEKLY, CUSTOM, etc.ProductFRevenueCatProductThe store product in this package
A group of packages. You configure these in the RevenueCat dashboard.
Field Type Description OfferingIDFStringRevenueCat offering identifier DisplayNameFStringDescription you set in the dashboard bIsCurrentboolWhether this is the "current" offering PackagesTArray<FRevenueCatPackage>Available packages in this offering
Represents access to a feature or content. This is what you check to gate premium content.
Field Type Description EntitlementIDFStringThe entitlement identifier (e.g. "pro") bIsActiveboolWhether this entitlement is currently active ProductIDFStringProduct that unlocked this entitlement ExpirationDateFStringISO 8601 expiration date. Empty if it's a lifetime purchase. bWillRenewboolWhether the subscription will auto-renew PeriodTypeERevenueCatPeriodTypeNormal, Intro, or Trial StoreERevenueCatStoreWhich store the purchase came from bIsSandboxboolWhether this was purchased in sandbox/test mode PurchaseDateFStringISO 8601 original purchase date LatestPurchaseDateFStringISO 8601 latest purchase/renewal date UnsubscribeDetectedAtFStringISO 8601 date unsubscribe was detected. Empty if still subscribed. BillingIssueDetectedAtFStringISO 8601 date a billing issue was detected. Empty if no issues.
The full picture of a customer's purchases and subscriptions.
Field Type Description OriginalAppUserIDFStringThe original RevenueCat App User ID ActiveEntitlementsTArray<FRevenueCatEntitlement>Currently active entitlements AllPurchasedProductIDsTArray<FString>Every product ID ever purchased FirstSeenFStringISO 8601 date the user was first seen ManagementURLFStringURL to manage subscriptions. Can be empty. ActiveSubscriptionsTArray<FString>Product IDs with active subscriptions
Field Type Description ErrorCodeint32RevenueCat error code ErrorMessageFStringHuman-readable error message
On non-mobile platforms (Win64 editor), every function in the subsystem compiles and runs. Instead of calling the native SDK (which doesn't exist on desktop), it logs a message like:
[RevenueCat] FetchOfferings stub — unsupported platform.
This means you can:
Build and iterate on your Blueprint purchase flow in the editor
Compile and test C++ code without a device
Run PIE without crashes
ConfigureSDK is the exception - it sets IsConfigured() = true and fires OnConfigured on stubs, so your initialization flow works in the editor. Other async operations (FetchOfferings, PurchasePackage, etc.) will not fire their callbacks on unsupported platforms.
PreviousGetting Started Next Testing & Troubleshooting