Discussion and help from anything related to RevenueCat.
Recently active
is it possible to implement a parental gate while using revenuecat paywalls?An example of a parental gate would be after a user clicks ‘purchase’ or ‘start trial’, a simple question is asked to verify the user is of age like “enter your birth year”If the user is verified, the Apple purchase opportunity modal is presented, and if not, the paywall will close.I can’t find a way where the verification question is asked after a user clicks purchase in a paywall. Parental gate functionality is required for every app that aims to participate in the ‘Made For Kids’ category.
I created this app with Expo and made a couple of offerings with Revenuecat. Now I want to test it. The packages appear,I hit subscribe, The popup appears, I write password and hit subscribe, It says done (without the tick appearing, just a circle) and the whole popup disappears, but after 3 seconds, the purchase popup (Sandbox) reappears again and again. No matter how many times I hit subscribe, it says done and re-appears. There is no record of subscription in my Revenuecat account (yes the sandbox checkbox ticked), and I have registered a sandbox user (valid email with a password) on App Store users. I’m very new to Sandbox testing and I use iOS simulator (17). Does anyone know what to do form here? Checked the Internet and not much was found. By the way, the code does not seem to go through anything after the purchase, it does not show the `console.log` after the function: Here’s the purchase function: const subscribe = async(item) => { try { const {purchaserInfo} = aw
Hi, Is there a way/what’s the best way to forward which variant a user saw during an AB test to the webhook? I want to message my users differently, depending on which price they saw. The messaging tool I use is Customerio (RC doesn’t have a direct integration with Customerio, so I have to forward data via the webhook). How do I get which user saw which price into Customerio? Thanks, Toby
Hello, I have 2 questions. 1.In my app I am starting out with only a tip jar(going to add a pro subscription later) In the docs it is not clear how to get products without offerings(or entitlements).Under the tab `Displaying Products` it is only explained how to show products with offerings. But, as of know, I don't have offerings configured as I don't have a paywall (yet). 2.I dont really understand the difference between entitlements and offerings and what they are exactly. Can someone maybe explain it to me(the docs are for those 2 topics a bit confusing to me) Any help here would be appreciated.
I am getting product details from Google play store, but purchase action fails on "None of the products registered in the RevenueCat dashboard could be fetched from the Play Store”Product returned:{"productId":"getbill_299_1m_1m0","type":"subs","title":"Monthly subscription 1m free (App name)","name":"Monthly subscription 1m free","localizedIn":["en-GB"],"skuDetailsToken":"<token>","subscriptionOfferDetails":[{"offerIdToken":"<token>","basePlanId":"basic-1month","offerId":"free-1m","pricingPhases":[{"priceAmountMicros":0,"priceCurrencyCode":"EUR","formattedPrice":"Free","billingPeriod":"P1M","recurrenceMode":2,"billingCycleCount":1},{"priceAmountMicros":3590000,"priceCurrencyCode":"EUR","formattedPrice":"€3.59","billingPeriod":"P1M","recurrenceMode":1}],"offerTags":["basic-1month"]},{"offerIdToken":"<token>","basePlanId":"basic-1month","pricingPhases":[{"priceAmountMicros":3590000,"priceCurrencyCode":"EUR","formattedPrice":"€3.59","billingPeriod":"P1M","recurrenceMode
Dear Community:I have purchased the Codelime yearly subscription on my MacBook Pro M2 via my iCloud Account - Apple ID. Since purchasing on this same device I can’t enable iCloud sync because for some reason it still sees my free subscription and not the one I just paid for. On my Mac Studio M1 and my iPhone it automatically recognized my Codelime premium subscription.On this MacBook Pro M2 device if I select restore purchases I am seeing the following message below.Apple Subscription Key is invalid or not present. In order to provide subscription offers, you must\nfirst generate a subscription key.\nPlease see https://docs.revenuecat.com/docs/ios-subscription-offers for more info. Apple Subscription Key is invalid or not present.From what I have read in this community forum, it seems that this is a new bug. If anyone can help me get this resolved, it would be highly appreciated.Looking forward to a response.Thanks
I have React Native project. How do we prevent a user from creating multiple accounts and sharing the logins with different users Example: Someone subscribe to the app. The have a monthly subscription and access to entitlement ALets say I have a login process that the user create and sign into an account (Account A). Now lets say that account A purchases an in app purchase and I am using the id of Account A as the sign in user for RevenueCat. If Account A purchase a subscription they will have access to content with Entitlement Pro. Now lets say that this same user logout. From my understand is that RevenueCat create an anonymous user and also create alias between the Account A and anonymous user. Now let say from the same device register a new account (Account B) if they press the restore purchase button RevenueCat will give access to this user and create an Amuse between the accountsNow if a person share the login information of account B to someone else with different device what i
I am launching an app with a subscription offering. I currently have an e-commerce site built using Shopify. I am selling subscriptions on the Shopify site using the Bold Subscriptions Add-On, with Shopify Payments as the gateway.Bold offers webhooks for subscription events. I was thinking that I could pass these webhooks through my backend to the RC API...but...I don’t see RC endpoints for subscription events like cancel, so maybe this is not a viable solution?Is it possible to integrate the subscriptions sold on the Shopify site with RevenueCat? Am I missing a simpler solution here? Thanks!
I feel like a simple, but valuable update to the web paywall links would be the ability to change the subscribe button colors. The black is universal, but kind of flat and unappealing. Being able to set the hex code for those buttons ourselves would be a simple way to enhance the checkout experience.
I have the following use case: A user can choose between using the app without an account or with an account, after which the data is synced to the cloud. In both cases, the user can purchase the Pro version. I display different paywalls depending on whether the user is logged in or not. This is managed through custom attributes and paywall targeting:Without an account → Show paywall without the sync option. With an account → Show paywall with the sync option.Problem: When a user starts without an account but then creates one, the app still displays the paywall meant for users without accounts even though the custom attribute is updated. The updated paywall is only shown after a restart. Is there a way to reinitialize the paywall or clear the cache without restarting the app?I don’t want to hard code the offering for the paywall in the code because I want to stay flexible and run experiments.
I have set up the RevenueCat Paywall. The Paywall works correctly on my iOS app but Android app does not show the paywall.No matter what paywall I choose in RevenueCat, it only show the one below. Do I miss any setup process?
Hi there, I have my Flutter App on Production with a subscription of 1 Month.I bught the subscription on a real device on production, and after 5 minutes I cancelled it. Looks like in RevenueCat it is still showing that thee Subscription is still active, why?Also, on my Flutter code I’ve implemented to show a different UI if isPremium, but doesn’t have recurring true. Not sure why is not working, and RevenueCat Dashboard doesn’t get updated…
In my desktop app, I use Stripe, connected to my RevenueCat account, to display a web page with a Stripe paywall (I use a Payment Link to keep it simple), and then call the RevenueCat REST API to:list my offerings purchase a product through Stripe check if a user has purchased my one-time payment product or not recover a one-time payment purchaseI want to interact with those APIs directly from my app, since I don’t have any back-end.So in order to test that, I tried for example to call the following endpoint, in order to get my offerings, using Postman:https://api.revenuecat.com/v2/projects/{project_id}/offeringsAs described in the documentation, I use the “Authorization” header.And here is my problem:if I use my secret API key (that I created with the right authorization) as a value, it works but if I use my Stripe public API key, I got an error: “Invalid API key”Which I don’t understand since I can use the public API keys in a mobile app to achieve the same actions above.So I have tw
Hi All,hoping for some help as I’m stuck. We’ve built an app in Flutter using Revenue Cat paywall. Products and subscriptions enables in App store and listed as ready for review.when I submit I get this error. I am only using a revenue cat paywall. App is only available in IOS App Store and Playstore no other option to purchase. no idea how to resolve or where to start.Guideline 3.1.1 - Business - Payments - In-App Purchase We noticed that your app includes or accesses paid digital content, services, or functionality by means other than in-app purchase, which is not appropriate for the App Store. Specifically: - The subscription can be purchased in the app using payment mechanisms other than in-app purchase. Next Steps The paid digital content, services, or subscriptions included in or accessed by your app must be available for purchase in the app using only in-app purchase. Apps that offer paid digital services and content across multiple platforms may allow customers to access the c
I am trying to publish my react native app on the Play Store but have been rejected multiple times with error Error 23: There is an issue with your configuration when the testers try to open my paywall.I have published in Closed Testing (where it works with no issue, as well as in Dev) and promoted the build to Prod for review, where it gets rejected. I’ve triple-checked that my configuration works and that the app and subscriptions are available in every country.Can anyone advise on how to solve this? I’m pulling my hair out trying to get this approved - even a temporary workaround would be helpful just to get the thing published in some form or another.
I want to experiment when I show the paywall to users. For example, I want to start with 3 experiments - show it immediately after they sign up, or one week later, or one month later. Making the game free completly without a trial period or subscription until that moment. I already setup 6 offerings with different price points and presentations of price options. I suppose I can create 18 offerings which are the same 6 offerings but on the 3 different time delays, but that seems like a lot. Is there a simpler way to experiment with when to show the user the paywall?
I’m planning on doing a soft launch of our web app that includes subscriptions with the Revenuecat web SDK. Are subscriptions from the web SDK treated the same way as iOS and android platforms? Meaning we can see them segmented in the charts?During the soft launch I just want to monitor any purchases coming in w/ web.
I have some apps in Brazil and I'm starting the process to receive payments with payment methods outside of Google Play, but in the RevenueCat documentation I didn't find any way to receive payments with Google Play's Alternative Billing, with the help of RevenueCat. Is it possible or will I need to use Google's official means for this. Using flutter.
Say I have subscription plans A and B (same level).From entitlement.productIdentifier I detect that a user is, say, subscribed to A. With this information, I keep option B available for a crossgrade, and A disabled and marked as active.When they opt to subscribe to B, A is still active (because it will remain so until the renewal date). The purchase succeeds but do I have the information to communicate the current scenario? I would like to disable B as well, because it is already purchased, and mark it somehow as active starting on certain date. Apparently I don’t have the information to figure out this scenario in PurchaserInfo, do I?
I’m using `customerInfoStream` for the first time, and I’m a bit confused - in sandbox testing, I’m seeing updates come in reliably each time a subscription renews, and it correctly includes the `activeSubscriptions` along with expiration dates. If I wait sufficiently, however, I never get an update with an `activeSubscriptions` property that is empty - I simply stop getting updates. I left my app running overnight in the simulator, and in the morning, I was not presented with the paywall as expected. Looking at my logs, the entry that I received includes the active subscription, from which my app (correctly) surmised that the entitlement was still active. The next update that I would have expected, with no active subscription, was never delivered. The time of this last event matches what I see in the console (where I do see ‘Opted out for renewal’) Is this expected? I can certainly use the provided `expiresDate` to create an event at that time, but it doesn’t seem to me like this
Hi,I was wondering when interpreting the LTV of a user, is the Experiments feature also considering if a user cancels and requests a refund? Best,Daniel
Hi, If I set up an experiment, will it go live only to new downloads, or everyone that has the app installed? Thanks, Toby
Hello, I invite you to create your two applications (IOS and android) on RevenueCat. To create my two applications (IOS and android) on RevenueCat via this one I imported the subscriptions of my application directly from the stores (AppStore and PlayStore).When I call the Purchases.getOfferings() method in my application having made the configurations beforehand I get this error:D/[Purchases] - DEBUG( 8517) : ℹ️ Product request completed for codingindustry.qualityfood.monthlyD/[Purchases] - DEBUG( 8517) : 💰 Retrieved productDetailsList : W/[Purchases] - WARN( 8517) : 🤖‼️ Unable to find ProductDetails for codingindustry.qualityfood.monthly W/[Purchases] - WARN( 8517) : There is a problem with your configuration in Play Store Developer Console. More information here: https://errors.rev.cat/configuring-productsD/[Achats] - DEBUG( 8517) : ℹ️ Build a bid response with 0 productsE/[Purchases] - ERROR( 8517) : 😿‼️ Offer retrieval error - PurchasesError(code=ConfigurationError, underlyingEr
Hi guys, We have the following scenario : - User is anonymous in the app, purchase subscription.- RevenueCat associates subscription with that anonymous user ID.- Our backend receives webhooks for the INITIAL_PURCHASE associated with the anonymous user id.- User signs up with our backend. User is attributed a unique user ID.- Our backend is unaware that the user has a subscription.- When the mobile apps tries to access some features (let's say GET /documents), they get an unauthorized error. Currently, the strategy we plan to use is to explicitly refresh a user subscription when the user tries to access the feature (GET /documents) and has no associated subscription. This means the feature is not paywalled in the mobile app, so the mobile app is aware of a subscription but not the server. Do you have any other strategies to deal with this?
I understand that RevenueCat Flutter SDK does not support web, only mobile devices. Our payment provider is Stripe. I see you do have a REST API that I can use in Flutter. So my question is how do I design a complete checkout process with Stripe and RevenueCat? I don’t see any examples of this online.
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.