Discussion and help from anything related to RevenueCat.
Recently active
Is it possible to force the orientation of a paywall/offering using the metadata JSON object? I want to force portrait mode for the paywall if possible. Cheers!
Hello,I am currently using two subscription plans in my app: Plus and Pro. Following the guidance in the RevenueCat documentation, I have implemented a custom PurchaseLogic that creates a new PurchaseParams containing the GoogleReplacementMode (for upgrading/downgrading plans).To handle this logic manually, I have also set purchasesAreCompletedBy to MY_APP.Based on the documentation for MY_APP, it states that the app is responsible for acknowledging the purchase. To confirm my understanding: after calling Purchases.sharedInstance.awaitPurchase(purchaseParams), should I then proceed to handle the acknowledgment and the remaining transaction steps directly using the Google BillingClient?Thank you.
Hello, I’m developing locally using only the RevenueCat Test Store (test_ API key with Test Store products in my Offerings). After I make a test purchase, I might have to quickly re-run the flow from scratch, as I am developing and changing things and trying to make sure that everything still works. However:- Deleting the customer in RevenueCat does not make the active Test Store subscription go away for re-testing.- There doesn’t appear to be any way to cancel or expedite cancellation for a Test Store subscription (no user-facing cancel, no management URL), so I end up waiting for renewals/expiration instead of immediately testing again.Questions for the community/RC team Is there any supported way in the Test Store to immediately cancel/expire a subscription so I can re-purchase right away? If instant cancel/expire isn’t supported in the Test Store, what’s the recommended best practice to achieve a fast dev/test loop while developing locally? (e.g., any official workflow to simulate
I setted credential correctly Connected to Googlesent test notification to rc topic But when i save changes receive this error All configuration seems correct.Can someone help me?
Hey, I once found this handy llm.txt file in your docs, but I don’t find it anymore and the google link is broken:https://www.revenuecat.com/docs/assets/files/llms-4bbc6a7400826a5789ff0a888c6c90c4.txtWhere can I find it? Thanks
Hi RevenueCat Team / Community,I am encountering a persistent account_invalid error while testing RevenueCat Web Billing with Stripe. It appears that RevenueCat is attempting to use a Production API Key to access a Stripe Sandbox Account, which results in the following error:JSON { "error": { "code": "account_invalid", "message": "The provided key 'pk_live_******************' does not have access to account 'acct_1SZWXNDHtgf1OqUX'...", "type": "invalid_request_error" }}What I have already tried: Stripe Side: Revoked/Deleted the RevenueCat app from my Stripe Production dashboard and re-connected it only to the Test Mode environment. RevenueCat Side: Deleted the main Stripe account under Account Settings -> Project -> Stripe. App Configuration: Verified that the "Web Billing" app provider in the RevenueCat dashboard is correctly linked to the Stripe Sandbox account. Product IDs: Confirmed that all Product Identifiers match correctly between Stripe and RevenueCat. O
Hey! Would it be possible to add CHF to Display Currency? ❤️
I’m having an issue where my RevenueCat paywall works perfectly in the iOS Simulator, but fails to load on real devices via TestFlight. This is my first app and first time setting up in-app subscriptions.What works In the iOS Simulator, the paywall loads correctly. All products appear and I can simulate purchases. Product IDs match exactly between App Store Connect and RevenueCat. The RevenueCat offering is active and includes the correct products. What fails On a real device using TestFlight, the paywall does not load. RevenueCat returns a configuration error (Error 23 / products not found). No products are returned from Apple in TestFlight. App Store Connect setup Subscriptions are created in App Store Connect and currently in “Ready to Submit” / “Waiting for Review” state. I have accepted all agreements in App Store Connect (Paid Applications, Tax, Banking are active). The subscription is attached to the current app version under In-App Purchases and Subscriptions. T
We get the Package identifier, but not the title that we configure in the dashboard. That means we have to use the extremely unwieldy metadata to get human readable titles like “Annual”, “Lifetime” etc.That is a very bad API, as it requires iterating through the offerings and finding keys with the same identifier. Why create a model with so much uncertainty and need for null coalescing all the things that could go wrong?
Currently we only have two options:price.formatted, which uses the period of the offer dividing the price into monthly price, but without access to the currency symbol (only code is offered)How are meant to display something very common like $60.00/year also shown as $5.00/month? fun StoreProduct.priceFormattedMonthly(): String? { return this.period?.valueInMonths?.let { months -> val monthlyPrice = this.price.amountMicros.div(months).div(1_000_000).round(2) return "${this.price.currencyCode}$monthlyPrice/ mo" }}
Hello! I have enabled the integration from RC to Meta using the App events api. When in development and testing in sandbox mode, any test purchase shows up instantly in the events feed and later gets forwarded to metas event manager as expected. I have tested 2 real production purchases and it's been almost 24 hrs. RC correctly shows the purchases and customers, but no events in the meta integration as well as meta, both have not received these events. Is this normal or due to volume, or is something set up incorrectly? Thank you.
Hello - wanted to clarify something I saw discussed in documentation and other questions. It seems that there shouldn’t be a big concern exposing a customer’s user ID to the customer themselves. Is there an issue with other people being able to discover a customer’s ID? For example, we have IDs for our application users. These users may (in the future) interact with each other, for example user A might send a message to user B. Would it be a problem if the IDs that we use to enable identifying the target of the message are the same IDs we use to identify a user to RC? In other words, what would user A be able to do if they knew the customer ID for user B? Or: given our public API key (which is compiled into the app) and a customer’s ID, what information and operations are exposed? It would be great if there was a RC security whitepaper or something like that which went over all the security considerations for implementation somewhere in the doc hub...maybe i’m missing it?
Hello,Is it possible to have a button on the paywall that triggers a custom action in my app similar to the Customer Center functionality?I would like to put a button which (closes the paywall and) resolves an action in my app afterwards.Thanks,Stan
Hi,I’m experiencing an issue I can’t seem to fix.The text color on my paywall appears differently in the iOS simulator compared to what I see on the RevenueCat dashboard. Some text elements don’t have the same color as configured in the dashboard.I’ve tried switching the device appearance between light and dark mode, but it doesn’t change anything.Has anyone experienced this before or knows what could cause this discrepancy?Environment:Flutter: 3.38.7purchases_flutter: ^9.11.0purchases_ui_flutter: ^9.11.0iOS: 17.2Thanks in advance!
Hello, I’m using react native (react-native-purchases and react-native-purchases-ui both at 9.7.0) for my iOS-only app. I’m displaying a paywall to my users via const result = await RevenueCatUI.presentPaywall({ offering });I have a video in my paywall, specifically, the offering “Aziz with video”. You can clearly see that the video has audio if you click on the “eye” icon, which will play the video: I’m testing this on my iPhone by clicking on the “Preview in app” button, scanning a QR code, and having the paywall display in the RevenueCat mobile app.
Hey Everyone, I have a customer that not exist on my backend at all, does not exist on the dashboard at all (neither production or sandbox) but he is still able to login into my paid app… Can someone please tell me what on earth is going on? Any help would be super appreciated. Customer ID: 7f62a3e2-7f3b-4f9a-9d82-f472584ffbee
When I export my Figma file to RevenueCat the line spacing is much larger than it is in Figma. I’ve also tried building this natively in RevenueCat, but I don’t see any controls for linespacing. And if I just use two blocks next to each other with no space, the line spacing is still too large. Is there anyway to address this so the linespacing for the paywall in RevenueCat matches the design as created in Figma?
Hi team,Is there any way to access the beta paywall analytics? kind regards,D
Hi,I am trying to integrate Meta Conversion API using the steps in the documentation. I have said up everything on Metas side and see general install data flowing in. I am currently still in development of my app and using the Test Store for subscriptions.I see the requests coming back Response 400 in the RevenueCat dashboard with the following error: Response body{"error":{"message":"Invalid parameter","type":"OAuthException","code":100,"error_subcode":2804043,"is_transient":false,"error_user_title":"Invalid extended device info parameter","error_user_msg":"You are sending a device information with wrong 'extinfo version' or 'OS version'. Please refer to https:\/\/developers.facebook.com\/docs\/graph-api\/reference\/application\/activities\/#parameters for more details.","fbtrace_id":"AvGtc5A3lYjP9sqP7guRLhh"}}Since you are the ones handling the payload I can’t do anything about this.Request: {"access_token": "EAAa1ZAw...krOJf...","data": [{"action_source": "app","app_data": {"adverti
Hi, having trouble with the Purchase Button Text. In the paywall creator, all is fine. When I build my app though (iOS), the Purchase Button Text does not show when the annual plan is selected, but if I select the monthly plan then the text does appear. Tap annual again, and it disappears. See screenshots below. Any advice on how to fix this? Thanks so much!
Hi there. I have a carousel contained within a stack and want to set the Size/Height of the stack to “Fill”, but it’s just showing a “Fill disabled: parents height is set to fit” message. However the parent is the main Paywall component which has no option to change its size?
Trying to use this endpoint to get the product details, but the trial_length field in the subscription model is not returned (null) even though the product does have a trial period.What’s going on? How do I get this information?
Hello RevenueCat Support Team,We are investigating an attribution issue related to AppsFlyer integration on Android and would appreciate your assistance.ContextIn some cases, purchase events (af_purchase) sent to AppsFlyer via S2S are attributed to an old appsflyer_id, which appears to belong to a previous installation of the app. According to AppsFlyer documentation, a new appsflyer_id should be generated on every fresh install.AppsFlyer support confirmed that these purchase events are received via S2S and advised us to ensure that the latest appsflyer_id is correctly extracted from the AppsFlyer SDK and used in the S2S request.Our implementation We obtain the AppsFlyer ID via:AppsFlyer.getAppsFlyerId() We pass it to RevenueCat after SDK initialization using:purchases.SetAppsflyerID(AppsFlyer.getAppsFlyerId()); RevenueCat then forwards purchase events to AppsFlyer via S2S. Questions Does RevenueCat update the AppsFlyer ID used for S2S events, or is the first provided value persis
How do I add a Footer to my Paywall. When not using a template I don’t see the option as it’s not included by default and it’s none of the components.
The Paywall doesn’t show the price (although all other UI are shown correctly) and pressing the purchase button doesn’t have any effect. It shows the price and the button works in Test Store.I have added myself to Google Play Internal Testing and have the correct product ID and base plan Id from Play Console. I have also linked the offer and entitlement correctly. The Google Play API key is also correct in the client code.
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.