Discussion and help from anything related to RevenueCat.
Recently active
Hi folks,I’m building an Android app and trying to have 2 paywalls presented (that I have configured in Revneuecat) - one for when user is in trial period and one when trial is over. I'm trying to launch PaywallActivity with a specific offering in RevenueCat SDK 9.0.0, but it always shows the "current" offering from the dashboard instead of the offering I specify.*** Here is our code:```java// BillingManager.java - Method to launch paywall with specific offeringpublic void launchPaywall(String offeringIdentifier, BillingCallback callback) { // First get the offering object Purchases.getSharedInstance().getOfferings(new ReceiveOfferingsCallback() { @Override public void onReceived(Offerings offerings) { Offering targetOffering = offerings.get(offeringIdentifier); if (targetOffering != null) { // Launch PaywallActivity with specific offering Intent intent = new Intent(currentActivity, PaywallActivity.clas
We are using flutter and firebase custom claims, which work great for the normal in app purchase flow.We use `rc.Purchases.logIn` to associate the firebase user id.We now have set up apple Promo Codes for our monthly subscription offer.This also works as expected for users that already have an account (i.e. the firebase id is already known to revenue cat).Now the issue:When a non-existing user follows the promo code link and makes the “purchase” of our monthly subscription via that promo code, revenue cat does not yet have the firebase id (since it does not exist yet).When that person now downloads the app and creates a firebase account, we again use `rc.Purchases.logIn` to tell revenue cat about it.I can see in the revenue cat dashboard that that association has worked.But even after the user has called restore purchases, their id token never gets the expected custom claim.
Im trying to change the link color of a text field. By default, its a purple/blue color but I want to change it to something else. I dont see an option in the text properties panel. Is this something thats doable? If not, any recommended alternatives? Thank you
Hi,We added the RevenueCat react-native SDK to our app in the last release and we are seeing thousands of these errors across thousands of users: “😿‼️ Error when syncing subscriber attributes. Details: The operation couldn’t be completed. (RevenueCat.BackendError error 0.) UserInfo: [:]”. They seem to happen immediately after app launch and SDK initialization. What is the cause of this and how do I fix it?
Consider this scenario: the user account is only created in the database after the user subscribes.Since I don't have a user ID initially, I initialize the Web SDK like this:const appUserId = Purchases.generateRevenueCatAnonymousAppUserId();const purchases = Purchases.configure({ apiKey: WEB_BILLING_PUBLIC_API_KEY, appUserId,}); Once the user account is created, I need to associate the existing RevenueCat data (based on the anonymous appUserId) with the newly created user ID. Based on the docs, it looks like I can create a new customer using the new user ID and then use the transfer endpoint.Questions: If the destination appUserId doesn’t yet exist in RevenueCat, will the transfer endpoint create it automatically, or do I need to create it first? Is using the transfer endpoint the recommended approach for this use case? Or is there a better way to handle the transition from anonymous to identified user server side?
The old style paywall did display full screen on ios26 beta3, but the new style paywall does not. Attached image. struct OnboardingFlow: View { let purchases = PurchaseManager.shared var body: some View { VStack { if let offering = purchases.offering { PaywallView( offering: offering, displayCloseButton: true ) .ignoresSafeArea() } else { ProgressView() } } .task { await purchases.fetchOfferings() } }}
Looks like this issue was raised before, but I am unable to update any strings in the paywall builder tool at all…Tried using Firefox and Safari, but no luck
Perhaps this is already answered, couldn’t find it. It’s my first time I’m setting up a paywall for the app, and I very often see how people are designing yearly payment for example:How do I get the striped out yearly price tag? I can’t figure out is that whole sum created somehow with in App Store subscription and in RevenueCat paywall editor it’s received through variable or is it hardcoded? Thanks in advance.
Hello,I am integration Branch with RC and I found this in RC documentation:https://www.revenuecat.com/docs/integrations/attribution/branch#optional-set-a-separate-identity-in-branch-and-revenuecatQuote:If you prefer to keep a separate user identity between Branch and RevenueCat, set a $branchId Attribute in RevenueCat. If set, RevenueCat will use this identifier for Branch events instead of the App User Id. I like that aproach and I would like to set $branchId with a user id from Branch, what how do I get it?Could you please tell me which field I should use to set $branchId?PS: if I don’t change/override/use any custom identity ids, so what comes from BranchSDK is not changed, I just want to pass it to RC as $branchId. Thanks!
im trying to migrate over to Revenue Cat and have followed the steps. I noticed that my previous subscriptions have not pulled through so I cant see all my existing users, only new ones since setting up the various accounts and connecting to apple and google I keep getting told that the Secret key api is too short but its exactly what I have under secret keys in the api keys section my products already exist and have been bought numerous times over the last 5 months as well as Product Configuration Error: PlatformException(23, There is an issue with your configuration. Check the underlying error for more details. There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used). More information: https://rev.cat/why-are-offerings-empty, {message: There is an issue with your configuration. Check the underlying error for more details. There's a problem wi
not getting any offerings and planson calling await Purchases.getOfferings(); its just keep loading logs: D/[Purchases] - DEBUG(29119): ℹ️ Cleaning previously sent tokensD/[Purchases] - DEBUG(29119): ℹ️ Tokens already posted: []D/[Purchases] - DEBUG(29119): ℹ️ Saving tokens []D/[Purchases] - DEBUG(29119): ℹ️ Tokens already posted: []D/[Purchases] - DEBUG(29119): ℹ️ No pending purchases to syncD/[Purchases] - DEBUG(29119): Request already scheduled with jitter delay, adding existing callbacks to unjittered request with key: BackgroundAwareCallbackCacheKey(cacheKey=[/subscribers/7r34LFyvZVP024pwpErDILSapda2], appInBackground=false)D/[Purchases] - DEBUG(29119): Billing connected with country code: IND/[Purchases] - DEBUG(29119): API request started: GET /subscribers/7r34LFyvZVP024pwpErDILSapda2/offeringsD/[Purchases] - DEBUG(29119): API request completed with status: GET /subscribers/7r34LFyvZVP024pwpErDILSapda2/offerings 304D/[Purchases] - DEBUG(29119): ℹ️ Requesting products from the s
Hello,Is it possible to set the default language for Web Purchase Links? It’s not available in URLs parameters, neither in the dashboard. Thank you.
Hi everyone,I’m new to RevenueCat and subscriptions in general, and I’m currently testing my app in the sandbox environment. I’ve connected my backend to RevenueCat via webhooks, and my webhook sets a label for each user based on their app_user_id.Here’s what’s confusing me: When there is no active subscription in App Store, and a user with app_user_id: user_1 subscribes, the webhook triggers as expected. However, if I log out and then log in as a different user (user_2), and subscribe again, no webhook is triggered. Does this mean that both users share the same subscription because it’s tied to my Apple sandbox account? How does this work exactly? I would like each app_user_id to be treated as a separate user in my backend, but I’m not sure if I’m misunderstanding how RevenueCat links subscriptions to users in this scenario.Any clarification would be greatly appreciated. Thanks!
Hello, nothing happens when I click “Duplicate to another project” menu item in paywalls section. Please fix it.
Hey there,The user experience of loading the dynamic paywall is really ugly. You see all these skeleton loaders. Is there a way to avoid this? I rather have it have a short delay of 0.5s vs this weird experience.
I was testing a scenario when the user is on a subscription (e.g. monthly) and decides to purchase a lifetime access while subscribed. In this scenario:user has their monthly subscription that lasts until 31Jul for example (let's assume today is 11Jul) user purchased lifetime access -hen user goes to the settings and cancels their subscription which is still valid until 31Jul but won't renewNow I wanted to show a banner to the user that they must manually cancel their subscription (as far as I know we cannot do it on our own). For this I am checking the willRenew flag that I found inside the customerInfo.subscriptionsByProductIdentifier.What I noticed though during testing in Sandbox that the willRenew flag is not updated and couldn't get a confirmation on RevenueCat's forum if it's just a Sandbox issue or it's also not reliable in Production.I also considered using it together with the unsubscribeDetectedAt attribute, somehow like this:let hasNotCancelledActiveSubscription = customer.
I’m a little confused on how this should be handled and If it’s suppose to work that way. I’ve logged in as (user id = ) userA , I’ve purchased a subscription then I’ve logged out and logged in as userB and then deleted userA from my database.UserA HistoryUser B History Why is the renew event sent from userA ? This creates a problem in my app because `userA` was deleted after transfer and some time later the subscription renewed. Also the revenue cat firebase extension fails because of the same thing I would expect that after transfer all the subsequent events to have the new customer id set.
Hello, RevenueCat team.I've already correctly configured my service account in Google Cloud and Play Console with Admin access and API permissions.I uploaded the JSON to the RevenueCat dashboard, enabled all the APIs used in the project (vdt-invest-25), and waited over an hour.I uploaded app with closed test. I still receive the error message: ❌ Permissions to call subscriptions API.I'm counting on your help to resolve this.
I’m wonderign if its possibel to haev a nested bottom sheet withitng the paywall like the above? Like you click on the “Upgrade your locket” and it woud pull up that “Subscribe to locket gold” modal within the paywall?
Getting in-app purchases can take a long time to get approved, but I’d like to test my paywall before it’s approved. I don’t see my new product in the offering. Is there a way to force it? All I see is the default. thanks
Hi,Currently, the SDK for Unity only allows string values to be sent for customer attributes.Also, in the Targeting Ruels UI, it seems to only do string comparisons.Am I doing something wrong, or is it limited to strings only?thanks!
Hello, is there a way to add an entitlement to a customer using the rest api v2?
Hi everybody and RC Team,I just want to request RC team regarding few limitations of APIs, I actualy want to get list of active subscriptions (new) on daily basis for graph stats also ios and android users number on subscriptions. Thanks
Hello everyone, I have completed the AppsFlyer integration as described in the documentation, but I’m not seeing any events (e.g. trial started, conversion, renewals) appear in my AppsFlyer dashboard, even after waiting for some time. Additionally, the documentation does not clearly explain how event names should be structured or sent. This causes confusion when trying to verify whether RevenueCat is sending the correct events to AppsFlyer. As shown in the screenshot, the "No Events to Show" message appears in the Integration Events section. Does this mean that no events were sent at all to AppsFlyer? Or could this indicate a problem with the event naming or setup?👉 One thing I’m not sure about:Should the event names listed under the "Integrations" tab (in RevenueCat dashboard) match RevenueCat’s default names, or do they need to follow AppsFlyer's default naming conventions (e.g., af_subscribe, af_start_trial, etc.) for them to be tracked properly?Any help or clarification on how t
Hello,we have implemented RevenueCat into our app.We are testing the app through TestFlight.Testers see the price for the US in USD in the paywall, while they should see the prices for Germany in EUR. On the Apple Payment screen the price shows correct in EUR.They are located in Germany, have a phone locale and everything set up in German, their App Store account is registered in Germany, and their added credit card is from Germany. No VPN and no previous activity in with US store accounts.We didn't change anything regarding locale in App Store Connect. We use the default US Localization.We are getting prices like this:func getOfferings() { Purchases.shared.getOfferings { offerings, error in if let error { print("Purchases: Error: \(error.localizedDescription)") return } // We are getting prices from availablePackages guard let packages = offerings?.current?.availablePackages else { return } for package in pac
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.