Get help with anything related to RevenueCat.
Recently active
In the charts I check my new trials by offering. I`m a bit confused. There are many new trials in row “No Offering”.How is “No Offering” possible in Revenuecat. Everything is an offering, correct? Could it be my web sals with stripe, where offering is not detected correctly or something like that?
This is my first time using RevenuCat moving away from native packages for IAP and I’ve been rejected from Apple (another first)It feels like I'm in a bit of a chicken and egg loop where the paywall modal isn't showing the products because apple haven't approved them yet and apple wont approve them until they show up in the paywall modal.Is there something from a RC perspective that I'm missing? I have two subs added (monthly and yearly) and one purchase added (lifetime) in App Store Connect. The first time they rejected and I went back in and changed a few things just to get them ready to submit again then resubmitted. These went to apple for approval when the prod version of the app did. They're saying they can't approve because pay wall isn't pulling in the products or prices, it's just showing blank but RC can see the products and prices in ASC, I can see that in the RC dashboard but they're not showing up in the production build - just a blank paywall. I'd really like to use your
After adding RevenueCat, the IPA size has noticeably increased a lot. Screenshot as below: Is there any way to optimize the app size?
Is there a way to grant virtual currency on a monthly basis when using an annual (or otherwise non-monthly) plan?From what I can see, all of the currency is currently granted at the time of purchase/renewal, which feels a bit odd. I wouldn’t expect the plan duration to change the “usage/behavior” of the virtual currency. Ideally, my users should stay engaged throughout the entire subscription period, rather than burning through all of their tokens in the first month.I’m new to RevenueCat, but I’m assuming I can work around this by handling it myself: for example, listening for a subscription purchase/renewal event, then scheduling a monthly cron job that grants the user virtual currency via the v2 API. Is that the recommended approach, or is there built-in support for this use case?
I’m using revenuecat for an app called Snap Tap Relax. I’ve doing a free trial and get over 130 free trials but more 85% results in billing errors. That doesn’t include people who cancel. Everything is set up correctly I still get some free trials converting so seems to be set up correctly. I hear others having similar problems.Just was curious if anyone ever solved this? This is on Google Play where it’s happening. I read on revenuecat yearly state of address billing errors for android are up to 29%. Which is not adding up on my end or what I’m seeing others reporting even on IOS. And just so you know i’m running google app promotions campaigns and optimizing for people who do a free trial plus do a relaxation session. So a better signal to send back to optimize for instead of just free trials. And get about 10 conversions per day. Any help would be greatly appreciated.
I tried to connect the google play console with revenue cat.I completed the setup mentioned in the revenue cat document. Now iam trying to import the products from google play console, its throwing an error, I can’t understand what’s the status of integration.
Hello!I have added a RevenueCat paywall, and on iOS everything works correctly, I see the exact paywall I created in the dashboard.However, on Android the paywall looks completely different: it shows a gradient background, large logo, “Restore purchases” button which is removed, and is missing all the feature texts. But the offerings are correct.It seems that Android is loading the legacy or fallback paywall instead of the new Paywalls v2 design.Details: Paywall ID: default Offering ID: default react-native-purchases: 9.6.0 react-native-purchases-ui: 9.1.0 Using: (RevenueCatUI.presentPaywall({ offering: currentOffering }) Tried: Uninstalled and reinstalled the app Republished the paywall Confirmed products and entitlements are shared between iOS and Android Could you please help we figure out what is causing this issue?Thank you!
Hi,I process webhooks events in my API, it works. For more resilience, I also sync with the subscriptions endpoint:https://api.revenuecat.com/v2/projects/$projectId/customers/$userIdStr/subscriptionsregularly. Sometimes the sync calls are triggered directly after processing the webhook, and they seem to return stale data, effectively reverting the webhook updates.How to deal with this? I assumed that subscriptions api was the source of truth, but this appears to not be correct?Interestingly I’ve been using this system for about 3 months without apparent issues but today this problem is happening consistently (specifically: subscription expires, I subscribe, receive “Initial” webhook, call `subscriptions` and get just the older expired subscriptions)Thanks
Hi,My app is integrated with RevenueCat and the subscriptions are set up in App Store Connect. When testing via TestFlight, the subscriptions correctly show a 3-day trial. However, once the app is live on the App Store, the trial option doesn’t appear.
I’m trying to set up products on an Android app. The documentation I’m struggling with to be specific is https://www.revenuecat.com/docs/service-credentials/creating-play-service-credentials?embed=true I’ve run the automated script successfully and such. But I’m stuck at this section:Once the script has finished running, you will need to upload the revenuecat-key.json file from the Cloud Console shell instance to RevenueCat in your Project Settings > Google Play App Settings > Service Account Key. I can’t see “Google Play App Settings” anywhere, am I looking in the complete wrong place? I asked your AI model for help: The location moved. You now upload your Google Play service account key under each Android app, not at the project level.Do this:In the RevenueCat dashboard, go to your Android app. Open App Settings > Service credentials (Google Play). Click “Upload key” (or “Replace key”) and upload the JSON you generated (revenuecat-key.json).If you don’t see the upload area:M
Hey guys, I'm going crazy with this problem. On Android, I can't repurchase a product that has already been purchased.I've set the product as digital and the problem persists.1 - The products don't have any entitlements added.2 - I can retrieve the products from the revenue catalog, and the checkout starts normally.But I can't repurchase the products, and I haven't found any clear instructions in your documentation explaining why this problem occurs.I need a product with a one-time payment to be able to be repurchased as many times as possible. My backend is already configured for this, but the problem persists.
Hello,I try to setup my app for android with revenue cat but the commande line on the shell editor of google cloud doesn’t work. I received this message after the execution but revenuecat show me that the JSON file doesn’t work properly. [SUCCESS] 🎉 Setup complete! The service account is ready for RevenueCat integration. Use the file revenuecat-key.json for your RevenueCat project, and use the service account revenuecat-service-account@project-id.iam.gserviceaccount.com for permissions in Google Play Console. This line remains in red: ❌ Permissions to call subscriptions API How I can debug the situation plz ? Thanks
Hi!I'm testing a weekly auto-renewable subscription on iOS sandbox (via TestFlight) and RevenueCat is only delivering the initial purchase event. After that, there are no renewal events, no new transactions in the dashboard, and no webhooks — even after ~10 minutes.RevenueCat shows: Purchased: ~12 minutes ago Expires: in a day (production duration) Type: New Sub But the subscription never auto-renews in sandbox, so my app can’t reset weekly credits.This works perfectly on Android, so the issue is probably related to Apple’s iOS sandbox/test environment, which is known to be flaky but I’m asking here in case there’s something I’m missing on the RevenueCat side or if others have seen the same behaviour.Any guidance or confirmation would be appreciatedThanks!
We are using the Keep with original App User ID option for the restore behaviour, as it seems to be the best option for our business logic. We are handling the RECEIPT_ALREADY_IN_USE error when the user tries to restore a purchase, which indicates that the subscription is already associated with another App User ID.If this error is thrown, we show a popup asking the user to log in with the email they were logged in with when they purchased the subscription. However, there doesn’t seem to be an easy way to tell the user which email that was, and it’s quite likely they might not remember.So my question is, how can I get the conflicting App User ID that’s causing the error? We use the RC Firebase extension, so I should have the account details (email) for any App User ID available to share with the user, but how can I get the relevant App User ID?My guess is that the original_transaction_id would be the correct identifier matching the two App User IDs, but that doesn’t seem to be exposed
HiI'm hitting a major roadblock with App Store Connect and was hoping someone could help.I originally submitted my app with some old subscriptions, which got stuck in "Waiting for Review." To fix it, I uploaded a new build and added three brand new subscriptions. They briefly showed as "Ready for Submission," but then reverted back to "Waiting for Review" again.How is the App Store review team supposed to approve the app if the paywall can't load without the subscriptions being approved first? This seems like a circular dependency. I've seen tons of other devs complaining about the exact same issue online.Also, are subscription approvals truly separate from the actual app approval process? It feels like they're tied together, but I'm not sure.Can someone explain if they’ve been able to resolve this or is it just a case of hounding the apple review team to approve my subscriptions?Thanks
Hi RevenueCat team,I’m experiencing an issue where the Attribution dashboard no longer shows any Apple Search Ads (ASA) keyword data. All traffic is now being classified as “organic,” even though I can clearly see subscription conversions coming from Apple Search Ads in App Store Connect.The data displayed in RevenueCat seems incorrect or incomplete. My Apple Search Ads setup appears normal, and the app has shown successful conversions. However, RevenueCat has not shown any ASA attribution data for almost a month, and my app code has not changed during that time.Could you please help me troubleshoot this issue? Why is RevenueCat no longer receiving or displaying Apple Search Ads attribution data?Thank you!
Hi,I want to change the disclaimer text in my paywall depending on the type of package the user selects. When the user picks a subscription package, I need to show the cancellation instructions that Google Play requires. When the user picks a lifetime package, I want to show a simple one time purchase disclaimer.I know about the promo offer text field, but that only works when the offer is active. Is there a way to implement this from the Paywall editor?This is the behavior I am trying to achieve.When a subscription package is selected:When lifetime package selected: Thanks!
I hope you’re doing well. I have a question regarding the best practices for offering subscription access to businesses through RevenueCat.Use Case:We want to provide premium access to all users who belong to a specific business domain, for example all users with an email ending in @abc.com.Instead of each individual user purchasing a subscription, the business would pay once and all their employees (based on email domain or a predefined list) should automatically receive premium access inside our app.What We Want to Achieve: A business purchases a subscription once (through our backend or manual assignment). All users who log in with an email that matches the business domain (e.g., @abc.com) should instantly receive our Premium entitlement. If the business subscription expires or is canceled, all users under that domain should automatically lose premium access Thank you in advance — any guidance would be greatly appreciated!
Hello,We have app/paywall integration that is working and has been for a while. We just received a report of a user receiving a error 23 on their devices and we have confirmed they are on the latest version of our app:Devices: iPhone 16 pro max and iPad mini 6iOS 26.1 on both devices (the latest)Both are running the same version 12.4.3, the latest.I have confirmed all of my configuration is correct as we are receiving new subscribers daily with the same offerings. Is there something going on with Apple with this specific combination of device.Any ideas?
i keep getting this error when i try to my product?Apple service Issuer ID and Subscription Key must be set before using this feature.but i have setup my issuer id and subscription key?
Hi team,I’m using this paywall template and I’m using the Test store to test the implementation, it’s purchasing logic works fine now, but one thing that I notice is: When I click Continue then choose Test valid purchase, it does not show the loading indicator to notify user that the payment is handling.I think that it’s a bad UX, but I’m not sure if it’s because this template does not have loading indicator, or did I miss anything when implementing the paywall. Can you please help? Thanks This is the video: https://www.icloud.com/photos/#/icloudlinks/0ccKDF2pSpJOxUwPVuOGg1npQ/0/ This is the template that I chose:
Users can purchase gold coins through IAP in my app. How can I synchronize the gold coin balance across the user's devices (logged in with the same Google ID or Apple ID)? I don’t want to force users log in. In-app subscriptions are bound to the Google or Apple account and don’t require login. How can I achieve a similar functionality for gold coins? Can I obtain a unique ID representing the Google ID or Apple ID when the user makes a purchase? Then, when the user recharges or spends gold coins, the unique ID can be sent to my server to update the gold coin balance? (Essentially, using this unique ID as a credential for an invisible user system.)
Hi, I’m looking for a way to grant users of my app entitlements, such as one week of free premium access.The problem is that if a user has never interacted with Purchases, they don’t appear in the RevenueCat dashboard.I can get the user ID from Supabase, but I can’t find a way to manually add this user to the RevenueCat dashboard so I can grant them entitlements.I know there’s a way to do this through the API, but is there really no way to add a new user directly in the dashboard when I already have the user ID?
I have a targeting at the first place (at the top in the rules order) and I’m running a few experiments rn and I need to exclude my sandbox user from the experiment so I can test with different offerings, but I couldn’t find a way to do this. Is there a way to unenroll a user from an experiment?
I'm currently in the process of migrating from Stripe to Paddle for my web purchases. For the previous web checkout that was processed through Stripe, I would use redemption links so new customers (without an account) could purchase the product directly off our website. Now I have Paddle set up as a web payment option but the Web purchase links section does not include the option to enable redemption links. It does show up in the Stripe-powered web checkout settings. How can I enable redemption links for my new panel configuration? No place to activate Redemption Links on my Paddle settingsThe old web checkout has redemption links as an option.
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.