Get help with anything related to RevenueCat.
Recently active
Hi, I am developing an app in South Africa, can I use RevenueCat to accept payments / subscription payments in my country? ThanksBruno
Hi all, I am currently migrating to RevenueCat. My current user subscription details are stored in DB. I have used rest to migrate those over using the uuid for the user. But when a user registers on my platform, they get a 1 month free trial. This trial is basically a exp date set in the DB for the user without any interaction with Stripe, Google or Apple. My question is, how can I set this user up on revenuecat with a custom trail exp date if they without interaction with the Stripe, Google or Apple. Essentially adding a customer with a trail expiry date. Is this possible and if so how can I achieve this? Thanks
Is it possible to share in-app purchases between two different apps of the same platform? For example, I have an app that I want to phase out and rebuild a new one from the ground up, but I want my users purchases to transfer over without having to repurchase. I’ve added the two apps to a project and it seems like it can be done in entitlements, but haven’t figured out how to get it to work. The purchases just restore to their respective apps and won't share between. If so how? Or is there any documentation I can be pointed towards.
Getting a 429 on the https://api.revenuecat.com/v1/subscribers/app_user_id request. The response body has this: {"code":7638,"message":"There is another request in flight trying to perform the same action."}The requests are made from backend webhook code where two webhook events for the same user get load balanced to two completely different servers. So, I do have 2 outstanding requests for the same user. I'm wondering if there is a way around this since the amount of work to coordinate a single outstanding request per user isn't trivial.Thanks,Ken
Hello,We are looking for ways to integrate RevenueCat to our payment process but we are having a bit hard time to understand why payment verification in the server side is so hard or are we missing something?For the context, we are selling digital goods and our backend server needs to verify payments before completing the purchase flow and unlock the items for use of the client. The only way to achieve this at the moment [1] is using RestAPI and calling ` /subscribers` endpoint [2] but this seems a bit fragile because:SDK returns all purchases (historically) for a product as an array, so client needs to iterate this array and find the corresponding revenueCatId of the purchase that is being made. Lets assume that the last item is the last purchase, so sending that to our backend-server. Our backend calls ` /subscribers` endpoint which returns all purchases for all products for a subscriber. So the logic is the find the revenueCatId sent from client in this list for the product, check t
I can’t fetch data from StoreKit testing framwork for test in app purchase on myappbelow this error messageflutter: fetchOffers error PlatformException(23, 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-empty, {readable_error_code: CONFIGURATION_ERROR, readableErrorCode: CONFIGURATION_ERROR, code: 23, message: 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-empty, underlyingErrorMessage: }, null) This is my step 1.I create StoreKit Configuration file on Xcode 2.Create subscriptionSubscription3.I config schema import StoreKit ConfigurationImport file config4.I export cerification
Hello there, I’m currently trying to search for webhooks that have been missed due to server outage and I cannot find any past sent webhook that either got received or missed. Is there a way to look up the history of webhooks sent by RevenueCat or to recover the lost ones that didn’t get delivery confirmation? This is necessary because I use webhooks as a trigger to handle permission state changes that could affect our subscribers negatively if not handled. Is there any workaround?
screencap of chrome errors when choosing ‘deleted’ userID Hi. just trying to wipe out some sandbox users via the project management screen. after deletion, they continue to show on my list and if you click a ‘deleted’ user...it simply reloads the screen. error messages are included from chrome dev tools...
Greetings, It seems like the only “Free Trial” option for Subscriptions on Android (Google Play) that RC supports is “Eligibility Criteria: New Customer Acquisition” in Play Store’s offers. That’s the only backward-compatible offer that RC is accepting, per docs. This offer, on the Google Play side, is only limited to the new customers (either never had this, or never had any subscription(s)). Now, consider that a user gets this package and cancels the renewal. After a while, they come back and want to resubscribe to the same package.On the Google Side, the user is not eligible to the offer. So no 14 days trials. However, on the RC side, we are receiving the same “14 days trial” intro_offer in the getOfferings() for this user, as a brand new user.It is causing an inconsistency between what our app is displaying the user in the UI and what they end up buying, which can cause us legal problems down the road.How can we prevent this?
Hi, I am trying to dynamically display the trial duration of my annual product. I have found `trialDuration` on RC framework but I don’t know to use it? I am getting products like this:private var offering: Offering? = SubscriptionManager.shared.offerings?.currentand then need to access trial duration to display it via a text label. some thing like getting localizedPriceString.Any help would be great!
Hello, I have multiple subscription offers, but only need to see if a user is subscribed to at least one to give them access to premium features. Since I’ve started using RevenueCat years ago, I check `purchaserInfo.activeSubscriptions.isEmpty` but RevenueCat’s documentation says to use `purchaserInfo.entitlements.active.isEmpty`. What’s the difference between the two methods?
I don’t understand in practice what this part of the documentation really mean:https://docs.revenuecat.com/docs/restoring-purchases#google-play-on-androidGoogle Play on AndroidDue to platform limitations, purchases will be transferred as soon as you call configure if a user's purchases are already associated with another app user ID.This may cause unexpected transfers of purchases between app user IDs, especially for apps with optional logins or users with multiple devices. To prevent this behavior, you should wait to call configure until you have the appropriate app user ID for your customer. My app is developed in Flutter, and I couldn’t find a “configure” method on the RevenueCat SDK for Flutter. Is it referring to the “setup” method? If that’s so, then should I first login the user before calling setup/configure? Won’t RevenueCat throw an error when I try to login the user before calling the setup/configure method?In short, how can I set the user UID before I call the setup/configu
Since you can have multiple apps inside one project, I’m wondering what the structure should look like?If I have two different apps, one game “Fighter”, and another unrelated app “MySocial”.Do I make these under the same project, or do I put them in seperate projects? Is the multiple-app thing meant for iOS & Android version of the same app?
This only happens to one of my apps, my first app persist entitlements until it’s uninstalled, however my new app that has an one-time-purchase, grants the entitlements after payment but when the app is restarted, the entitlements are all gone despite the payment going through, I can re-purchase it too. Is it cause im using the same service account json for both apps? The code shouldnt be wrong cause im using the same on both apps and the first one works.What could be wrong? I DID notice that I forgot to put the new app in the service account permissions, which i thought would fix the problem, but I still have the same problem.
For what I could understand from reading the docs, RevenueCat has two different methods by which we can identify the user.One method is by calling Purchases.login(). The other method is by calling Purchases.setup().What are the differences between these two methods of identifying the user?At first I thought I should call Purchases.setup() in my app initialization, and the login() method should be user right after I authenticate my user in my application, but it looks like I misundersdood it, because I am having some weird errors of unexpected transfers between anonymous and authenticated UIDs.The correct way then is to use both of these two methods but only after I know which UID to apply to the user? And the setup() method should be called only once, and after it has been called then I should only call the login method?
Hi,If Ive an auto-renewable subscription and uninstall the app. after reinstalling again the sheet to subscribe pops up. Is that correct? And if you assumed again click on subscribe that the money isnt debited?And when Im testing, the subscription of my app isnt displayed in the Apple ID under Subscription. Is this all correct and is this only due to testing?
I have a customer that converted from a trial for $0, and it’s renewing at $0, and just got a billing error but still the subscription will renew next month? what is going on here?
I have added multiple subscription prices to App Store Connect so I can switch between them using the RevenueCat current offering to do some A/B testing on prices.But this got me thinking...When a user views their subscriptions in their App Store account, they can make changes like cancel or upgrade/downgrade a subscription.Will this list offer the user all the available subscription prices? Can a user go to this page then select the lowest priced subscription to change to before a free trial expires then get it for the lower price?There doesn’t seem to be a way to tell ASC which subscriptions to show as not/available.
Hello,I have an app that is live on the App Store and the Google Play Store. We have a paywall where users can subscribe to access our app, either subscribing to a monthly plan or a semi-annual plan. We are now wanting to raise our prices, but want to keep the existing prices for those who are currently subscribed. I read online in the RevenueCat docs that you recommend creating new products as opposed to increasing prices of existing products. That makes sense because we want our revenue data on RC to be accurate, and our product names have the price in them. I know how to create new products, but my main concern is that on iOS, users will be able to change their subscription to the old "grandfathered" pricing through the Subscriptions section of the settings app. Will that be the case? Or is there a way to stop users from moving to a cheaper subscription within the same entitlement/subscription group. Thanks in advance for your help! I have attached a screenshot below to show what I
I see the option to override an offering on the customer page. I’m assuming this doesn’t change the offering the customer has with Apple/Google? The user case I'm tried to cater for is the following: Existing subscriber completes a challenge in app. We reward them with a promotion on their subscription (e.g. 30 days free).From what I've read you can use iOS offer codes, but its messy. Wondering if anyway to setup a promo in RevCat then target specific user IDs by overriding their offering. Likely not but thought I would ask anyway. Thanks all
I am currently building an app in Flutter using RevenueCat for the in-app-purchases.I now want to know for each user, if he has already made an in-app-purchase, since I have trial subscriptions activated. I need this information, because I want to adjust the UI in case a user registers with a new account that I haven't seen in RevenueCat so far. In this case, he won't be able to use the trial subscription again, since Google/Apple prevent this.I am using a custom ID for every user in my app and I use this ID for RevenueCat aswell, one could just create a new account and get a different user id. Ass far as I understand, in this case, this looks like a "new" user to RevenueCat which has no subscriptions. I think the solution would have to check the GooglePlay-Account for an already purchased subscriptionSo far I have not found a way to find out, if a user has already made an in-app-purchase. Any ideas on how to achieve this?Thanks.
The App Store account deletion rule references “guest accounts” as also requiring deletion. Should I assume that “guest” would be analogous to RevenueCat’s “anonymous users” that are automatically generated in RevenueCat? And therefore that these anonymous accounts would be subject to the same deletion rule even though there is no personal user information linked to that id?If so, and I wanted to manually delete the account upon user request, what would be the best practice method of obtaining the anonymous user id so that they could be manually deleted? (I have no server for the app). Thank you!
I have implemented consumable in-app purchases with revenue cat and wanted to use the anonymous ID (“$RCAnonymousID:…) to keep track of the purchases a user has made. This seems to work fine until a user reinstalls the app or I upload a new version of the app. I call the restore function to get previous purchases but if I check the ID with the originalRevenueCatID method I get a different ID if I reinstall the appI tested this with TestFlight (iOs) and reinstalled the same version of the app after I purchased something but the purchase is gone and also the ID is something else. Is this because of TestFlight maybe and it should work if I publish the app? Or is this generally not possible?I basically wanted to not force the user to create an account and still be able to keep track of in-app purchases across multiple versions of the same app and of course re installationsHope this is the right place to ask. Would appreciate any kind of advice!
Hi,I am making an app where users can purchase the same subscription multiple times. Is this possible?
Hi all,Im trying to get iOS Code Redemption working in flutter and having some issues.So as per the doc (not flutter specific, so following the API doc mixed with the swift example), and I go ahead and call: await Purchases.presentCodeRedemptionSheet();And then….. nothing happens? Is there anything else that needs to be done in the code after the sheet is dismissed to detect that a purchase has been made via the code redemption sheet? It’s really hard to test as this as it seems as though it cant be tested in a simulator or in debug mode on a real device - so I’m doing it ‘live’ and not getting any really good logging.The “Codes” are attached to an App Store IAP that I do have configured in revenuecat / has an entitlement….I’ve tried to re-initialise the purchaserinfo object & check for entitlements again and its still not triggering in the way it should if an entitlement is detected. Running purchases_flutter 3.1.0 on flutter 2.0.5Anyone have any ideas?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.