Discussion and help from anything related to RevenueCat.
Recently active
Hi RevenueCat Support Team,I have several Android apps in my RevenueCat account. Since they are all Android apps and some of them start with the same letter, it’s difficult to differentiate them in the dashboard. The only way to know which app it is, is by hovering over it, which is very inconvenient.It would be very helpful to have a custom logo for each RevenueCat project, or to automatically pull the app icon from the Google Play Store as well. This doesn’t seem like it would be a big challenge, and I would really appreciate having this kind of personalization - or at least feature parity with iOS app projects, which already benefit from app icons! :DThank you for your assistance.
Hello,We are experiencing an issue where Android subscriptions are not showing up in RevenueCat, while iOS works perfectly. On iOS, getOfferings() returns the products correctly. However, on Android, even though the subscription is published in Google Play Console and added to the Offering in RevenueCat, the availablePackages list comes back empty.Current situation:Subscription and base plan are Published in Google Play Console.In RevenueCat, the product android.pro.plan:androidproplan is added to both the Offering and the related Entitlement.Our device is added to the license testing list, and the app is installed via the Play Store.Purchases.configure() is called correctly with the right API keys.The exact same setup works fine on iOS.In this case, what could cause getOfferings() to return empty on Android?Thanks.
I have set up an subscription product in play console with the intention to evoke the offer with the revenuecat paywall in app. The paywall works correctly, but the problem is that the subscription must be bought before download. How to developers configure their apps to be free for download with in-app subscription purchases?
I created a paywall with a toggle. With the toggle is off, I have 2 offers:$rc_annual $rc_monthlyWhen it’s on:annual_3d_free_trial $rc_monthlyannual_3d_free_trial is basically an annual offer, but I attached it an Apple Store offer identifier. My issue is that when I’m selecting $rc_annual, the Apple Store offer is applied to this subscription, while it is not linked to in the paywall configurator.Expected result: the offer identifier should be liked to the package I selected $rc_annual configuration annual_3d_free_trial configuration
In Revenue Cat Web billing, we're seeing single Revenue Cat customers generate multiple stripe customerIds. After messaging support, it seems that might be a known issue? If so my feature request would be to capture stripe customer IDs in the RC Web Billing flow (i.e., purchases-js Web SDK?) and pass that through to stripe to prevent multiple stripe customers from being created.This isn’t a problem if you’re using Stripe as the payment processor. Nor is it a problem if you’re using subscriptions. But if you have multiple products (e.g., consumables) then a few issues arise from the current behavior: (1) stripe customers proliferate and can’t be merged (2) vendor lock-in since RC is then the only source of truth that consolidates customer accounts and (3) there’s no possibility to store and reuse customer CC information adding friction to the user UX.To be clear, what I’m proposing is something like:```const ret = await purchases.purchase({ rcPackage: pkg, stripeCustomerId
revenuecat website productionI updated image on my paywall and saved it, but for some reason i can’t see it updated on production?Other changes I made alongside updating the image, such as updating texts, are being updated just fine.
Hey guys, I’ve got a question regarding Mixpanel integration. We’ve confirmed that we’re getting rc_initial_purchase event in our Mixpanel dashboard when a new subscription is added. And now we’re trying to show users different Offerings(& paywalls) using the Placement feature, but can’t find in the documentation if we can get the Placement key(e.g., “onboarding”, “settings”) as a property of the event.Getting this value through our Mixpanel event is crucial for locating where in the app the subscription has occurred. Has anyone tried this before?Thanks. :)
Background: New to RC, iOS product has not yet been published, Android version is lagging behind in development. I’m using RC Paywall in the onboarding process and for subscription changes, with no backend services needed for my app.Subscriptions are sold on a monthly or annual basis. There are 3 pricing tiers, all delivering full access to app functionality and based on the user’s time in the app / session count. I need to support upgrades, downgrades and term changes without restriction. So my understanding is that all 6 subscriptions need to be in the same offering. So for example: baby_monthly, baby_annual, mom_monthly, mom_annual, dad_monthly, dad_annual.It seems that I need to create custom package identifiers, and maybe use one or two of the defaults? So the mom level should be the default.Do I expand the existing id format like so:$rc_annual_baby (Annual Baby)$rc_monthly_baby (Monthly Baby)and use this for mom:$rc_monthly (Monthly)I’m probably overthinking this, but am trying
Hey, We are trying to use revenuecat react-native-purchases library in our project, we were able to successfully set it up, some transactions works perfectly, but unfortunately some don’tWe are using react-native-purchases: 9.6.8, with react-native: 0.73.11, we didn’t configure it for iOS yet, we started with Android, problem below is related to Android platform only.Problem:When calling await Purchases.purchasePackage(selectedPackage) method, we get warning that says:🤖‼️Billing is disconnected and purchase methods won't work. Stacktrace: java.lang.Throwable at com.revenuecat.purchases.google.BillingWrapper.getStackTrace(BillingWrapper.kt:814) at com.revenuecat.purchases.google.BillingWrapper.access$getStackTrace(BillingWrapper.kt:82) at com.revenuecat.purchases.google.BillingWrapper$withConnectedClient$$inlined$log$1.invoke(logWrapper.kt:37) at com.revenuecat.purchases.google.BillingWrapper$withConnectedClient$$inlined$log$1.invoke(logWrapper.kt:36) at com.revenuecat.purchases.google
It would be very useful to have a “Resend” button next to a webhok in the dashboard (Integrations > Webhooks > Integration > Store Notifications), similar to what Stripe provides.The reason is simple: sometimes the receiving code isn’t correct or complete, and an event isn’t processed properly. For example, I recently didn’t have a proper handler for an “uncancellation” event, and now I have to locate the affected records in the database and fix them manually. Being able to replay the webhook after fixing the code would let me verify the behavior and correct the data automatically.A related improvement would be in the “send test event” functionality. At the moment, I can’t select the specific event type to test. Being able to trigger a particular event type would make testing much more practical.
Our app is experiencing native crashes on iOS when displaying RevenueCat paywalls. The crash occurs in Apple's HEIF image decoder when trying to render paywall images served in HEIC format.EnvironmentRevenueCat SDK (react-native) version: 9.6.9 iOS versions affected: iOS 17.x, iOS 18.5 (confirmed) Devices: iPhone 13, and likely others App framework: React Native / ExpoCrash Stack TraceThread #0 (main):VideoToolbox VTDecompressionSessionRemoteClient_CopyPropertyVideoToolbox VTDecompressionSessionRemote_CopyPropertyCMPhoto VTDecompressionPluginClass_copyPixelBufferAttributesCMPhoto HEIFItemDecoderCreateCMPhoto _decodeItemCMPhoto _applyDecodeStrategyCMPhoto _decodeImageCMPhoto _decodeAuxiliaryImageCMPhoto _createAuxiliaryImageForIndexCMPhoto _createImageForIndexCMPhoto CMPhotoDecompressionContainerCreateImageForIndexImageIO HEIFReadPlugin::copyImageBlockSet
Hi, I’m wondering if there is any way around this confusing behavior I’m seeing on iOS regarding consumables and multiple App User IDs.For context, I offer both subscriptions and consumables in my app, and require all purchasers to be logged in (no anonymous purchases). I cannot prevent users from making multiple alt accounts in my app, and many do. I have “Transfer if there are no active subscriptions” configured in my RC project settings.On iOS, I’m seeing the following behavior when a user with the same Apple ID tries to make purchases under different App User IDs:user1 purchases a subscription user2 (same Apple ID) then purchases a consumable they receive the error “There is already another active subscriber using the same receipt” but the purchase goes through and the consumable is credited to user1(!)Alternatively, if I configure “Transfer to new App User ID” in RC, this is instead what happens (arguably worse):user1 purchases a subscription user2 (same Apple ID) then purchases a
We’re trying to set up Google Play service credentials for our Android app, strictly following the steps in this guide:https://www.revenuecat.com/docs/service-credentials/creating-play-service-credentialsHowever, we are running into issues (see attached screenshot). We’re unsure whether this is caused by missing console permissions, a setup sequence issue, or something else in the Play Console UI (which looks different from the screenshots in the documentation).We need urgent help to resolve this so we can move forward with in-app purchases.Thank you!
https://www.revenuecat.com/docs/tools/paywalls/displaying-paywalls#setting-preferred-localeI noticed that the code is only available for iOS, Android, and ReactNative. Will the code for Flutter also be developed?
I have issues with setting up my play store app provider, two issues, not sure if unrelated. Issue 1: Service account credentials: Credentials need attentionTried following the guide 3 times now, one with the manual setup, and two times with the automated script. Every time waiting more thn 36 hours to pass, but “Credentials need attention” would not change. After doing it three times with the last time completely starting over I think I followed everything correctly and gave the correct permissions. Not sure what I am missing at this point, and because of that, not sure what other information I can provide, other than that I followed the guide word for word. Issue 2: Google developer notificationsEven though I am “Connected to Google”, test notifications are not being shown. In google play console, when I was not connectred to revenuecat sending the test notification failed, but now that is connected, the test notification is apparently sent, but refreshing the page does not show on r
Hi everyone,I’m running into the following error with my Expo React Native project and can’t figure out the cause. I’ve created development builds and also deployed a production build on TestFlight. The error still appears in both environments. My in‑app products are approved on the App Store. The paywall is configured in RevenueCat. Despite all this, the issue persists. Has anyone experienced something similar or can suggest what I might be missing?Thanks in advance for any guidance!
I am running tests and I can see the subscriptions on the dashboard. But I need to test the backend, and this is returning the items as empty:curl -X GET "https://api.revenuecat.com/v2/projects/{{projectid}}/customers/{{customer}}/active_entitlementsit returns 200 with the response, but the items is an empty array...how am I suppose to test my webhook api without this fetching data from the sandbox? I do have the sandbox checkbox in the dashboard enabled.
I want to enable the free trial switch only for the Monthly plan.Right now, when the user turns on the free trial switch, it correctly selects the package that includes the trial for the Monthly plan. So far, so good. However, if the user then changes the plan selection (for example, from Monthly to Yearly), the switch state stays the same, even though the Yearly plan should not allow a free trial. I couldn’t find clean way in the Paywall Editor to update or override the switch state when the user changes the selected plan, or to prevent the trial package from being applied to the Yearly option. How should I structure this logic?Does anyone have a recommended approach or a better way of handling this behavior?
Hello Everyone,I'm experiencing a significant issue with trial conversions in my app. Approximately 90% of trials that are not manually cancelled by users are failing to convert to paid subscriptions due to billing errors.Key details:Store: App Store Market: Brazil (BR) Product: Annual subscription with 7-day trial Issue: Billing errors at trial expiration, not user cancellationsMy questions:Is this billing error rate typical for the Brazilian market? Are there known issues with payment methods or banking infrastructure in Brazil that could explain this? What actions can I take to reduce these billing errors?I'd appreciate any insights you can provide on this issue and if someone have a similar experience.
Hi, my app keeps getting rejected from the iOS App Store due to issues with my subscriptions feature. They need the following things: an account that doesn’t have a subscription active an account that does have a subscription active an account with an expired subscription i can obviously create the first two accounts by just going in the app and either subscribing or not, but how in the world do I simply take a customer (by email) and set their subscription through the RC dashboard? Why is this not straightforward? If anyone knows, the help would be greatly appreciated. also, if there are any other cases that you’ve seen Apple reject surrounding paywall features, I’d love to hear them so I can plan ahead better as Apple seems to reject as soon as they find one problem rather than giving a report of all problems they found.
Hi all We’ve just launched our first subscription. We are using RC, and are finding that although the charts are great, they only go so far - and there are often things we want to find that we can’t get from them. We are exporting the data to bigquery then into PowerBi. I’m keen to explore other options - what reporting software are others using here, and I’m specifically interested to know if any of them are well set up for subsdcriptions and tailored to that specifically. PowerBI is so general that especially for an organisation that’s new to subscriptions, it’s involving us to have to “reinvent the wheel” a lot just to get graphs out that I’m sure 80-90% of subs businesses need. E.g it would be amazing to have something that just gave me everything in the revenuecat charts out of the box, but with a bit more flexibility. Any recommendations would be appreciated!
I had non-consumable on 3 in-app purchases that should of been consumable. I created 3 new products in apple connect and then re-wired them with new ID’s and everything says it’s good. They are approved in apple and says so in RC. However I just released a stable version of my app and the apple side of things says the old prices still. I deleted and put a new apple connect p8 file and key ID just to see if I could get it to refresh. So far no good. Any suggestions?
I would like to be able to test free trials using test store.I can’t see an option for that, is that planned?
I don’t see a way to define a free trial in the test store. I would like to verify that my paywall is working correctly and showing the right messages. What is the best way to test this?
We discover that on iOS 18.6.2 the paywall countdown always display “Time is up!”, while everything works perfectly on iOS 26. No issue on Android either.We tested it with the same version of our app with the last RevenueCat SDKEDIT : it appears it doesn’t work on iOS 17.7 either
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.