Discussion and help from anything related to RevenueCat.
Recently active
We used to have an old format for handling user ids that we currently use to initialize RevenueCat with. What are the downstream implications if we need to change the user id format for all users? More specifically:Would there be a chance that the client gets out of sync from Google Play/App Store? What are the downstream implications in RevenueCat’s dashes/data reporting? Are there any other implications from changing the user id format? We are using Flutter so the code diff would be:# current codeawait Purchases.setup(_api, appUserId: oldUserIdString);# new codeawait Purchases.setup(_api, appUserId: newUserIdString);
We recently upgraded to Adjust SDK V5, but since the update, the Adjust dashboard isn't displaying any RevenueCat events. In RevenueCat, I can see that Adjust events are being triggered under the integration section, but these events are not appearing in the Adjust report dashboard.
Hi there,I am using Revenue Cat Paywalls to let my users purchase products. However if a consumable has been purchased before I am getting the error message:Ignoring purchase request for already subscribed packageThis is happening even though the purchase request is for a NON_RENEWING_PURCHASE which is not a subscription.My app is written in Flutter and I am currently testing on Android before moving on to iOS. I have rechecked my product set up on the Google Play Store and they are not set up as subscriptions. These products are not set up with entitlements in RC, they only have offerings attached.Can anyone help resolve this because at the moment my app doesn’t allow the repurchase of consumables which is obviously an issue.
I’ve successfully deployed my app with in app annual subscription. I’ve added some new features on the app and was trying to do full regression testing and can’t seem to retest the subscription. I pushed app to Phone with Xcode and my features are locked as if I have not purchased. I tried to purchase and nothing happens. Notice log said I already have bought. Tried restore purchase and it shows success, but then nothing unlocks on my app. also pushed to TestFlight and got same results. I tried new sandbox user and can’t seem to get anything new to trigger. The app continues to think I made the purchase. going to go through code again to make sure I didn’t remove or comment out something for revenue cat, but figured I’d post here to see if anyone has an article or video on retesting changes after deployed… fyi- I also tried to log in with the sandbox user in the App Store settings, but it’s not triggering… since revenue cat is live do I need to trigger sandbox somehow? bill
Hello all. I was looking through using the Web beta SDK and trying to get it working. When I thought I was using the right API key I keep getting Invalid API key. Use your RevenueCat Billing API key. I have tried all of them that I see and am looking to find where that one is located.
I found this annoyingly difficult so I made a free gist… so you don’t have to be annoyed. Use at your own risk etc etc...https://gist.github.com/JavascriptMick/233358b6a00d6d733ed9a630db587c2d Using https://github.com/openapi-ts/openapi-typescript to talk to the RevenueCat Rest API in a typesafe wayHow I created the schema file download the OpenAPI Schema from https://www.revenuecat.com/docs/redocusaurus/plugin-redoc-0.yaml run the followingnpx openapi-typescript plugin-redoc-0.yaml -o ./revenuecat-api-v2.d.tsdependencies "openapi-fetch": "^0.13.4", "vitest": "^1.3.1"
I have an Android app that I created years ago with a non-consumable one-time in-app purchase. In 2024 I converted it to start using RevenueCat. I realized I can see proceeds in the yearly charts for the years I didn’t have RevenueCat, which I assume are users who are still using it and re-established their purchase in the new version of the app.Is there a way to backfill all the missing data, even for those former users who haven’t yet opened the new app, such that the charts will be retroactively correct for revenue or proceeds would be accurate.Perhaps this is documented somewhere but my searches have come up empty.
Hello,We have not launched/ pushed to production yet, but I had regarding the Charts. We are not seeing any data come through at all from our testing, is this normal in the Sandbox environment? We do see some data come through on the Overview, just nothing in charts. Any ideas?
Hi! I am setting up the new paywall for an android app, and I like how it goes so far, however one thing throws me off - Revenue Cat automatically shows AlertDialogs not styled accordingly and with non user-friendly error messages. I would want to be able to show completely custom dialogs for each needed usecase with my own styling and wording. (The one you see on the attached screenshot is for example when the internet connection is turned off).The listener provided to paywall is not invoked in any of the callbacks. i.e. onPurchaseError is not called etc. I would want to either pass custom dialogs to the paywall or just handle all these cases via callbacks myself.please let me know if it’s possible and i’m missing smth.Additionally as you can see on a screenshot I am using a custom overlay for the back button and “Redeem code” button. And I would want to disable these when there’s an operation in progress. However I don’t believe that the paywallexposes such isInProgress and isLoading
I want to display the amount based on the Product information obtained from Offerings. However, when I check it on the actual iOS device, "Price String" is displayed as "XXX 120.0" etc., and the currency part is not displayed well. Andorid's device will display "¥ 120" without any problem.AppStoreConnect information is set at ¥120 as shown in the screenshot.
I’m using the RevenueCat V2 API to retrieve customer information with the https://api.revenuecat.com/v2/projects/{project_id}/customers . According to the documentation, the response should include the active_entitlements field, but it is not present in the data I receive. only Response{ experiment: null, first_seen_at: 123, id: 'XXXXX', last_seen_at: 123, object: 'customer', project_id: 'XXX'}
I followed all instructions here: https://www.revenuecat.com/docs/service-credentials/creating-play-service-credentialsHowever subscriptions API is not connecting on revenue cat side after >48 hours.is there something missing from these instructions?if anyone can hop on a call to help fix I can pay a good consulting rate
Preface: Not sure if this is from the recent corrupt index issue. I’m running into an issue where when testing in testflight sandbox, when I go an purchase an in app subscription it says that I already have a subscription when I I don’t.The account/phone i’m testing with did have previous subscriptions of the same plan on both prod and test flight however, they are both expired, and previous testing, I would get a prompt to repurchase again. Would love some insight on this, and love to provide more information if needed. Thanks!
Hi,When granting an entitlement to a user, then revoking it, the event RC sends is incorrect:{ "app_user_id": "xxxxxxx", "country_code": null, "currency": "USD", "entitlement_ids": [ "premium" ], "environment": "PRODUCTION", "event_timestamp_ms": 1736906680737, "expiration_at_ms": 1736906680737, "expiration_reason": "UNSUBSCRIBE", "is_family_share": null, "offer_code": null, "period_type": "PROMOTIONAL", "presented_offering_context": null, "presented_offering_id": null, "price": 0, "price_in_purchased_currency": 0, "product_display_name": null, "product_id": "rc_promo_premium_monthly", "product_price_in_purchased_currency": 0, "purchased_at_ms": 1736906503135, "renewal_number": null, "store": "PROMOTIONAL", "takehome_percentage": 1, "transaction_id": "yyyyyyy"}In the payload above (which was taken from the Event Details screen), you can spot that the event ts and the expiration ts is the same (which is correct and means that it’s expired right now), but the e
RevenueCat portal missing some transactions although transaction are completed and showing in play console.
Hello everyone, has anyone ever had this problem? Why does it work in my simulator and not in my TestFlight? I've looked several times, but I don't know what the problem is. And what do I have to do but cordon off bank and tax?? Or nothing to do?
Hi, We have two stripe flows we want to support, one via web onboarding and one via winback. We would love to be able to split out these sources in revenue cat charts, but use the same stripe account to manage both. In one case, we are working with a third party to support stripe payments and they have set the app user id in metadata in a custom field. We would like to set our field to a different metadata property “app_user_id” and “partner_app_user_id”. Is it possible to route some webhooks to one revenue cat endpoint and others to another? Best, Jake
I’ve integrated Firebase with RevenueCat and can see RevenueCat’s analytics events, including rc_trial_start, in Firebase. However, when I import these events into Google Ads as conversion events, no data appears.I’ve been running a Google iOS campaign and want to track rc_trial_start as a conversion event. Despite users starting a free trial from the campaign (validated through SKAdNetwork), the conversion count for this event remains at zero in Google Ads.Here’s what I’ve already checked:rc_trial_start is visible in Firebase and marked as a conversion event. Firebase is properly linked with Google Ads. The campaign is successfully tracking SKAdNetwork events.Has anyone experienced a similar issue or have insights into what might be causing this problem? Any suggestions or guidance would be greatly appreciated.
We’re looking for the price the trial will convert into in both webhooks payloads and export rows. It just shows as $0. I can understand the rationale but as far as I know the StoreKit client is aware of the value of the offering before the free trial is applied and this data is very difficult to join after the fact due to the fact that these store SKUs are subject to price changes. Without this data we cannot estimate unregretted projected MRR. Is there any way for me to resolve this today or is this a feature request?
I'm stuck with this issue for 2days without any luck in solving it…## Environment- React Native (Expo)- iOS/App Store Connect- Development environment- Real-device “iPhone”## IssueGetting configuration error when fetching offerings:“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” What additional configuration steps might I be missing? Looking for a checklist to verify my setup.please check the attachments
I’m currently using Unity's IAP package for my in-app purchase system, but I’d like to use RevenueCat in Observer Mode.In the documentation, I found the following example: // Observer mode can be configured through the Unity Editor. // If you'd like to do it programmatically instead, // make sure to check "Use runtime setup" in the Unity Editor, and then: Purchases.PurchasesConfiguration.Builder builder = Purchases.PurchasesConfiguration.Builder.Init(<api_key>); Purchases.PurchasesConfiguration purchasesConfiguration = builder.SetUserDefaultsSuiteName("user_default") .SetObserverMode(true) .SetAppUserId(appUserId) .Build(); purchases.Configure(purchasesConfiguration); However, the method SetObserverMode(true) doesn't seem to exist, and I get an error saying the method is not found.Am I missing something? Is this method removed or replaced? And is this all I need to do to enable Observer Mode programmatically, or is there additional configuration required?Thanks in advance!
I have tried both “getOfferings” and “getProducts([“<productId>”])”. All i get are the consumable items, i can’t get my auto renewable subscriptions in the application code, even though i can see them in the revenue cat dashboard.P.S: currently my app is only setup for ios, i am testing on iOS 17.5 simulator.
Hi,I am currently using RevenueCat to manage user subscriptions in my Flutter app.For now, I am using entitlements, but I want to improve this process because I have created a backend. Each user is connected to an account linked to this backend, and I want only the backend to handle users' subscription statuses.To achieve this, I want to use RevenueCat webhooks so that the backend is always aware of each user's subscription status. With this setup, my backend can control access and allow or deny certain actions accordingly. The information from webhooks will be very sensitive because it will determine each user's subscription status.My first question is: Is this the right approach to achieve this with RevenueCat?And my second question is: I want the webhook endpoint to be very secure for the reasons mentioned above, so I created an x-api-key value to use it. Is there a way to add this to the RevenueCat webhook? I saw there is an Authorization header, where I tried to add x-api-key {val
I have 4 apps in production from the same source of code. they are different only in JSON files used as sources.two of the apps fails with the same error (BOTH production!!! and sandbox)failing apps is for BY (Belarus) and RU (Russia) regionstwo others works fine:they are for KZ (Kazakhstan) and UK (the Ukraine) regions.Is it some kind of sanctions from Revenue cat? this is so critical because people loosing money and customersUnhandled error happened: Error Domain=RevenueCat.ErrorCode Code=2 "There was a problem with the App Store." UserInfo={NSLocalizedDescription=There was a problem with the App Store., NSUnderlyingError=0x301b43060 {Error Domain=StoreKit.StoreKitError Code=2 "Не удается выполнить запрос"}, readable_error_code=STORE_PROBLEM, source_file=RevenueCat/StoreKitError+Extensions.swift:43, source_function=asPurchasesError}but the most crazies moment here is that the same builds works fine on other devices:it fails on my iPhone 13 Pro with 18.2.1 but it works on my iPad Pro
Hi,I have configured revenuecat in react native. I am able to call getCustomerInfo. But when I call const offerings = await Purchases.getOfferings(); it returns nothing. No error or no response at all.I have created products and offerings as well.Can someone help. thank you :)const offerings = await Purchases.getOfferings();
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.