Get help with anything related to RevenueCat.
Recently active
Hey folks,Hoping someone here can shed some light on a perplexing issue I'm seeing with subscriptions in my app.I had a user kindly inform me that their annual subscription (purchased via Apple) recently failed due to insufficient funds. The weird part? They're still able to access all the premium features in the app.I've checked in App Store Connect, and I don't have any grace periods set up. What's even stranger is when I look at this user's profile in RevenueCat, it shows them as having an active annual subscription with no indication of a payment issue whatsoever.This has me scratching my head, so I'm wondering:How does Apple typically handle these failed payments, and how does RevenueCat usually reflect them? Any idea why a user would still have premium access after a payment fails? How long might this access last? Is there a way to configure things (either in Apple's settings or RevenueCat) so that premium access is immediately revoked if a payment fails, and only restored once t
https://community.revenuecat.com/sdks-51/getofferings-work-fine-for-iphone-testfligths-app-but-not-working-on-ipad-testflight-app-6403?tid=6403&fid=51 I had a similar problem here, but unfortunately there was no change for me after I did this solution. My terminal output shows these problems. Where exactly could the problem be?ERROR: 🍎‼️ Error fetching offerings - The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 1.)There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used). More information: https://rev.cat/why-are-offerings-emptyERROR: 😿‼️ 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 (or the StoreKit Configuration file if one is
I use webhooks to credit users for purchases in my app, I noticed I started to receive a new event type, INVOICE_ISSUANCE. I looked at the documentation but I have no idea what I would use this event for. The documentation says: A new invoice has been issued for the purchase. This event is sent when a new invoice is created for a subscription or non-renewing purchase that has not yet been paid. This event is only available for Web Billing purchases.Does this mean a user saw the web paywall or they clicked purchase and you just haven’t collected the funds? Will other events still be emitted? Would love a bit more documentation about why someone might care about the event.
Hello RevenueCat Team,I’m facing a circular issue during the App Store review process and would appreciate your guidance.I’ve implemented a hardcoded paywall UI on the client side (not relying on dynamic offerings), and completed all setup: Subscription products are created in App Store Connect These products are added to a new Offering in RevenueCat The Offering is configured, but the product has not yet been approved by Apple During app review, since the in-app purchase product isn’t approved, the Offering isn’t accessible via the RevenueCat SDK.Because of that, Apple sees the paywall but encounters a missing product error when attempting to make a purchase, leading to a rejection under Guideline 2.1 - App Completeness.Ironically, Apple is telling me they can’t approve the subscription product until it’s accessible in-app, but I can’t access it in-app until it’s approved and synced to RevenueCat.Despite explaining this situation to the App Store reviewers, our submissions continu
Neither Google Pay nor Apple Pay is functioning with the Web Payment Link because of the following error (in console):stripe.js:1 Uncaught (in promise) IntegrationError: Invalid value for click event resolve callback: applePay.recurringPaymentRequest.regularBilling.recurringPaymentStartDate should be a future Date. You specified: "2025-06-09T18:19:18.915Z". at le (stripe.js:1:191329) at pe (stripe.js:1:191408) at Za (stripe.js:1:355332) at stripe.js:1:388185 at stripe.js:1:380848 The monthly and annual plans can’t be purchased due to the error above. But the lifetime plan works just fine.Here is an example of my payment page https://pay.rev.cat/sandbox/nhscxmehgplykyuc/useridDoes anyone know how to fix it?
When building iOS simulator build from react native, with the react-native-purchases 7.0.0, and XCode is 16.4 (if that matters).I use this command: eas build --platform ios --profile development-ios --localThen during the [RUN_FASTLANE] I see:“'SubscriptionPeriod' is ambiguous for type lookup in this context”. However, I don’t see it if I build with eas (not locally).I understand Flutter fixed this issue recently. 1) Which version was this fixed in for react-native-purchases? 2) Why do I only see it when building locally?
I am struggling to implement a paywall with many (22) subscriptions. Because our subscriptions are based on the number of users, we have a lot of options for the users to pick from. However, when I start adding the packages to the Footer, instead of the subscriptions being scrollable, it seems the footer just grows to fill the entire screen and then cuts off the additional subscription options. What is the recommended way to approach this?
I set the duration incorrectly in product web billing, but I cannot edit it after editing. Please advise. Do I have to recreate it? I hope editing will be supported in the future.
Curious how others handle this. I’m showing my paywall early in the onboarding and I don’t require a login for my app.. it’s a game you can play against the computer if you don’t want to play online opponents (The game: Upwords). If you do want to play online I do require a login to keep track of the games, pair people etc.I have a back end server and thinking I could try a couple of thingsWhen a user starts a trail send the original RevCat anonID to my server along with days till trial ends and their push notification token (firebase messaging). I’d have to make sure a user agrees to push notifications when I do this. I could also have a dialog that allows them to enter an email for the reminder if they aren’t logged into my app. .. all this info gets sent to my server.. have a cron job on the server that collects any entries in the DB that are ending in 2 days and send out emails/push notifications If they do create a new account later, which is email based, I could search for the
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
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.