Get help with anything related to RevenueCat.
Recently active
Hey RevenueCat team!I love what you’re doing, amazing work! 🙌I just wanted to ask if you’re planning to build a RevenueCat Android app anytime soon? It’d be super helpful to have quick access on the go.Thank you.
I configured my revenue cat in main.dart file ,then I called my profile api,I got my user data then set my user ID in revenue cat login function.I did my purchase logout from mobile also used revenue cat logout function.Then I logged in using different account,but I am getting old subscription data...
Hey there!I want to pass some custom variables to my paywall like {{ user_first_name }}, how can I do that with RevenueCat?Thanks!
Is there a way to disable some of the emails described here? https://www.revenuecat.com/docs/web/web-billing/lifecycle-emails I would like to disable them while testing because they spam my inbox (due to the short renewal periods). I’d also like to be able to disable some of them, like the renewal emails.
How can i delete an ongoing subscription from app store if I no longer want to have it , i want my app to be free
Scenario: a user subscribes on one platform with a free trial, it expires or is cancelled and then the same user goes to a different platform and subscribes again - is there a way to prevent the user accessing another free trial via RevenueCat?
I have done research on the best way ti monitize my app and it seems that displaying a Paywall before onboarding or just after is a recommended approach. I think I will use this approach but have a question on how to implement. I plan on using a RevCat paywall that is displayed right after the install. The paywall will offer two plans (Yearly and Monthly) and will have a free Trial of 7 days. This would be accomplished using the Apple store and Google Play built in functionality. The paywall will also have a Cancel button. The question I have is what is the recomened approach if a user clicks the cancel button on this initial paywall? Do you still give them access to app for 7 days anyways? I’m thinking this would be the way to go and I will setup a diiferent Offering (Yearly/Monthly/Paywall) that does not have free trial (through the stores and a Revcat Paywall) and give access to the user to purchase a subscrition in the app. I would also track the install date and present th
I have tested from three different browsers (Safari, Chrome, Firefox) and two different operating systems (one macOS and one Windows), but I still encounter an error that prevents me from uploading or dragging and dropping files.I reviewed similar issue posts, and I hope your customer support won’t provide generic responses like restarting my browser or computer, or even my Wi-Fi router.I’m unsure whether your Sentry wrapper is throwing an error or if it’s related to cookie access.
Hi,I am from the UK and about to launch my new mobile app.I have set my paywall up correctly and app store connect correctly. All price regions are set. My app store and device region are set to the UK. My account is logged in.In development mode, I see the correct currency on the paywall which is pounds. When I launch in testflight I see $ (on the paywall) and then on the app purchase subscriptions sheet I see pounds. This happens on multiple devices in testflight.Why is this happening?I am hesitant to actually push to app store until I can be sure this is fixed.I do not want all of my customer seeing $ on the paywall, it must show the correct currency.Of all the threads I’ve read on this, no on whether from revenucat or elsewhere can actually describe the problem.Thanks.
I offer Yearly/Monthly and lifetime on my paywall. I know that for subscriptions they are in the same subscription group.. so if a user chooses to switch from monthly to yearly they aren’t subscribed to both, it automatically switches them.. but what if they are on a subscription and choose lifetime? It’s in a diff section of appstore connect and not part of the “subscription group” so would they then be both subscribed and have the lifetime unlock ? All three products are on my paywall in the same offereing and maybe rev cat handles making sure only one is active? thanks!
In reading over the documentation, I see that the appAccountToken in the StoreKit transaction is only set if the app user ID is a UUID (https://www.revenuecat.com/docs/platform-resources/server-notifications/apple-server-notifications#user-identity). We use firebase for auth and their user IDs are not UUIDs. We can generate a UUID from the Firebase ID, but we’d need to to create a UUID → Firebase UID lookup. We can easily do this if necessary, but I’m not clear on the benefits. "What do we lose out on if appAccountToken is not set because we aren’t using UUIDs?
On the paywall the yearly subscription has a tag that shows the percentage of how much the user would save by selecting the yearly subscription. Is there a way to show the actual dollar amount instead of the percentage ?Thank you.
I just made my first test purchase… well, or so I thought. It said something went wrong, but nothing happened in my app, so I guess it didn’t register the purchase correctly.Now I cannot make another test purchase to debug, because I already own the item (that’s what Google Play says once the purchase bottom sheet appears).Is there a way to delete the purchase? Or is the only way to do this by making the product consumable (which isn’t really what I’d want in a real production environment for users, they can only buy the product once)?Thanks!/edit: I think I may have found the answer:“Note: To perform multiple test purchases for the same non-consumable product, you can refund and revoke purchases using Google Play Console.”This is as per the Google Play docs… Should we delete the customer in RevenueCat as well, or keep them and their metadata?
Hi looking into Virtual Currency for tokens in my game. Currently on ios I save tokens to icloud so they transfer between devices but are not tied to a user account in my game. I also save them on the keychain so they survive app delete / install. On android I save the count in userData but that doesn’t survive app delete and that’s not great.I haven’t associated tokens with user accounts because creating an account isn’t mandatory.. some people simply like to play the computer opponent and not online.. so they don’t need an account. So wondered if virtual currency might be a good option as rev cat creates an anon id. But it’s complicated. For example.. assume someone installs the app the the first time, gets an AnonID and buys tokens without a userid in my app.. then they create a new account in my game and I tell RevCat about that userID. It does look like that in-game user id gets assigned get an alias to the orig anonID and the tokens are still there. Great But if I insta
Hi team,I’ve integrated RevenueCat with my Flutter app and everything works fine in testing — all products show up correctly and test purchases complete as expected.Now that I’ve uploaded the app to production, I created a promo code for one of my subscription products through the Google Play Console. However, I noticed that the "Redeem code" option does not appear during the purchase flow in the production version of the app.Has anyone else experienced this?Is there something specific that needs to be done on the RevenueCat side or in the Google Play Console to ensure that the redeem option is visible in production?Any guidance would be appreciated!Thanks!
Hello there,Is it possible to have something like 'Day {{ primary.trialPeriodDays | minus: 3 }}: Trial Reminder' in our trial timeline, to indicate that users will receive the reminder 3 days before the trial period ends?Regards,Zahra
Hi RevenueCat fam,I’m testing my paywall with real device. My payment still shows up after my purchasing and even tho I use .presentPaywallIfNeeded( function which should automatically check if I’ve paid. .presentPaywallIfNeeded(requiredEntitlementIdentifier: "pro",purchaseCompleted: { customerInfo inprint("Purchase completed: \(customerInfo.entitlements)")},restoreCompleted: { customerInfo in// Paywall will be dismissed automatically if "pro" is now active.print("Purchases restored: \(customerInfo.entitlements)")}) Attached is what I saw after click purchase on paywall a 2nd timeAnd this is my LOG DEBUG: ℹ️ There are no requests currently running, starting request GET /v1/subscribers/$RCAnonymousID%3A65c82d3b6f4442e9996c0c824846953aDEBUG: ℹ️ API request started: GET '/v1/subscribers/$RCAnonymousID%3A65c82d3b6f4442e9996c0c824846953a'DEBUG: ℹ️ API request completed: GET '/v1/subscribers/$RCAnonymousID%3A65c82d3b6f4442e9996c0c824846953a' (304)DEBUG: 😻 CustomerInfo updated from network.D
So Ive built an EXPO app and have successfully managed to run development builds using sandbox environment for an app and tested purchase flows which all works fine. signed the paid agreements etc and set up my apple IAP and subscriptions properly. I’ve now tried to submit my app but I keep getting rejected due to: “Guideline 2.1 - Performance - App CompletenessWe found that your in-app purchase products exhibited one or more bugs which create a poor user experience. Specifically, there was no response when we tapped Unlock Now in Inspiration, Guests, and Budget. Please review the details and resources below and complete the next steps.Review device details:- Device type: iPhone 13 mini- OS version: iOS 18.5” Its very frustrating as it appears the issue is my IAPs have not been accepted/in review.The other issue I noticed before i submitted was that in testflight i was unable to trigger the paywalls, which I assumed was due to the IAP and subscriptions not being reviewed and accepted
I have added localization through RevenueCat which has updated the text content. I would like to change the main image for each language to help improve conversions by country. Is it possible to “localize” the image in addition to the text copy?
The slow fetch product informations issue was resolved yesterday, but it is still very slow to buy an IAP in sandbox mode, my app was rejected because of this, since the reviewer failed to buy the IAP successfully. Please fix it ASAP!! It is very important to me!! Thanks.
Hi RevenueCat Community,I have a question regarding event data retrieval via the API.We know that when RevenueCat sends webhook notifications, each event payload includes a unique id for that specific event instance (e.g., INITIAL_PURCHASE, RENEWAL, etc.).My question is: Is there a way to use this unique event ID to directly query the RevenueCat API and retrieve the detailed data for that specific past event at a later time?For example, if I have an event ID like "evt_xxxxxxxxxxxxxx", is there an API endpoint similar to GET /events/{event_id} where I can fetch the details of this single event?I understand we can get a list of events associated with a customer through the /subscribers/{app_user_id} endpoint, and that webhooks provide event details at the time of occurrence. However, I'm specifically interested in whether it's possible to look up a single event's data using only its unique event ID after it has already been processed by our webhook system.Any clarification or guidance on
Context:I'm currently using my own backend as the source of truth for subscription status. This is necessary since we have users who don’t go through the standard payment flow.While debugging an issue, I noticed the following behavior in the Customer History (see attached screenshot, customerId: user_01jtg9rmtwe6x8g96v43bcn2z3): A trial started event for pulso_suscripcion:pulso-anual occurred at 2025-05-05 01:29 PM UTC. However, the first time this webhook was delivered to my API was at 2025-05-05 07:49 PM UTC. This 6+ hour delay was the first attempt at delivery (not a retry), which likely caused a bug in my system logic (the user was able to subscribe again, so an expiration event then revoked its entitlement from my backend). Another point: I explicitly do not want Platform Server Notifications, as those were sending events tied to anonymous IDs. (https://community.revenuecat.com/sdks-51/after-purchase-new-alias-app-user-id-created-6098?tid=6098&fid=51, https://www.revenueca
Every app download now gets a unique ID tied to the user’s Apple ID — perfect for things like offering one-time deals, detecting reinstalls, or even blocking repeat offenders. Will RevenueCat support this, or do we need to pull it directly from the device? Available starting iOS 16+More info: https://developer.apple.com/documentation/storekit/apptransaction/apptransactionid
Hello,On the Paywall is there a way to dynamically show the free trial text according to whether the customer is subscribing for the first time or has already subscribed before ?
Hi RevenueCat Team,I’m seeing a currency mismatch in my TestFlight build on iOS 18.4 and 18.5: Tester’s Apple ID region is set to India. In-app UI shows prices in USD. Purchase sheet shows prices correctly in INR. I’ve tried uninstalling, reinstalling but no change. This started happening after updating to iOS 18.4 and 18.5, and IOS 18.3 is worked fine Is this a known sandbox/TestFlight issue or something with my RevenueCat setup? Any advice?Thanks
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.