Discussion and help from anything related to RevenueCat.
Recently active
I am looking to give all of our company staff a free ‘upgrade’ to our paid plan.I see in the docs about ‘granting entitlements’, but only users who have paid show up, so can be granted entitlements. Is there a way to see all app users to grant entitlements to our staff?
Is there a way to define a report (list) or a chart that shows the expected revenue in some time period?For example, I can get a report of all the current active customers with a positive auto renew intent, which are expected to renew next month. However I’d like to calculate also the expected revenue of those customers, based on the current status of auto-renew. Is that possible? Thanks
Hello, When I purchase an in-app non renewable purchase, the Webhook will still trigger, with the old userID as an app_user_id. Details :I’m having an issue when I switch accounts (userID) but use the same Apple ID (in Sandbox)(I don’t know in production). I’m using of course, logOut then LogIn. And I verified that the new userID is well accepted by the SDK on iOS. PS: I’m using alias (legacy) for the userID management, should I switch to transfer ? maybe it’s causing the issue ? Thank you,Using Xcode / Purchase SDK Cocoapods
I have RC working fine for both Android and iOS using test sandbox. I can purchase, restore and upgrade subscriptions.Now have sent code for production.Tested Android purchase in production - works fine. Apple has approved and am now trying to test in production, but first with Promo codes. App is in Manual release so not public yet.When I redeem code it downloads the app, and I get to the main page of the app which checks if user has an active entitlement or not, and it comes back false, so it displays the purchase options. If you select restore purchase..it does not recognize. I am checking for PeriodType.normal but not other types.So what I need to know is how RC handles Apple Promo codes (this is the 100 promo codes you can use for influencers)?is PeriodType normal, trial, unknown, or intro? I assume the isActive will be false is there any difference with Google Play promotion codes?I don't have debugging turned on as it is my production code, so I cannot see this.If I know what Pe
I think it’d would be nice to have a chart about intro price period conversion to the full price subscription, just like free trial conversion to paid subscription. Is there a way to get this data from the platform? Thanks.
I have done some searching on this topic, but I haven’t found anywhere that addresses it directly. I have an iOS app with a renewing annual subscription. If I wanted to offer existing subscribers an incentive to share the app, such as giving them an addition month of service for every relevant action. I don’t see a way to do this without disrupting their existing subscription, even if I took care of the accounting of starting the one-month of free access and then tried to trigger their next month.The best I could think of was to offer them to renew with a different annual subscription that had a 1 month free trial. But that doesn’t necessarily scale well for different numbers of incentives.I hope that makes sense.
Hello,When talking to the RevenueCat API from the web, is there a way to mark those calls as intended for sandbox/staging? When using the mobile SDK, the system knows the IAPs are meant for sandbox because of the build environment on the iOS or Android side. Just wondering how to indicate the same when making web API calls?
Hi there, I am facing issue after making purchase with Play Store. After click on buy button, Play Store gives error “This product is already active for the user.” when i am already subscribed and after that i am refreshing purchaserInfo with await getPurchaserInfo() and getting empty entitlement and all data. Not getting data that i am already subscribed. Purchase history is also getting empty.Please help me.Thank you in advance.
On iOS store, I have created 3 products in the same group at 3 different levels. One product at each level. Reading below, I followed the process. In my sandbox environment, I initiated purchase at Level 2, which went through fine. I then initiated another purchase at Level 1 which went through fine BUT... I was expecting Level 2 to be isActive = false! after the Level 1 in-app purchase goes through. I am actually seeing both Level 1 product and Level 2 Product as active and will renew = true for both. Can someone help me understand why this is please? and if it is a normal behaviour? I also read that at any one time, only one subscription can be active in any one group, but this is not what I am experiencing as stated above. Am I missing something?
On ios after a purchase succeeds a dialogue box saying “"You're all set your purchase was successful" pops up. Is there a way of preventing this?I want to ask the user to login right after the purchase in this dialogue gives the user an opportunity to blow past the login. I’d like to make that less likely if possible. thanks
Hey — We’re super excited to deeply integrate some of our support and workflow tools to use the new App Store APIs to extend subscriptions and issue refunds. Primarily this one: ExtendRenewalDateRequestThe request body containing subscription-renewal-extension data. But it requires to access the transaction ID, which the RC SDKs don’t expose easily. What’s the recommended way to get this done with RC?
I have a detail with the update of my application, initially I had uploaded a build with the subscriptions of Renew Cat and these were shown so that users could obtain them, but in this last update they are not being shown, in the documentation they indicate that the subscriptions Real or production are only visible when the build is released, but the binary is being rejected by the App Store because the payments are not visible.
When attempting to implement the PaywallView of the example SwiftUI project in my own project targeting iOS 15.0 I am receiving 2 errors. Referencing initializer 'init(_:content:)' on 'ForEach' requires that 'Purchases.Package' conform to 'Identifiable'ForEach(offering?.availablePackages ?? []) { package in PackageCellView(package: package) { (package) in /// - Set 'isPurchasing' state to `true` isPurchasing = true /// - Purchase a package Purchases.shared.purchase(package: package) { (transaction, info, error, userCancelled) in /// - Set 'isPurchasing' state to `false` isPurchasing = false /// - If the user didn't cancel and there wasn't an error with the purchase, close the paywall if !userCancelled, error == nil { isPresented = false } } }}https://github.com/RevenueCat/purchases-ios/blob/c63984004d09f1b131ffdb2b99cfb1c14eaaa76e/Examples/MagicWeatherSwiftUI/Shared/Sources/Vi
I’m testing in Android emulator with Play Store access using a testing account so no actual money is being charged. I am able to purchase products and packages, but not able to test changing packages using the UpgradeInfo docs. What could the issue be with Play Store or is there some other configuration I need to make somewhere? When I select the package to change to I see the following, which all looks correct in my logs. The SKU is found and the Flutter purchases_flutter package is clearly showing everything good to go at this point. D/[Purchases] - DEBUG(25398): Vending Offerings from cacheD/[Purchases] - DEBUG(25398): Product change started: com.revenuecat.purchases.models.ProductDetails@1e0bf2c4 - offering: packages UpgradeInfo: UpgradeInfo(oldSku=package_3.99_monthly, prorationMode=1)D/[Purchases] - DEBUG(25398): Querying Purchase with package_3.99_monthly and type SUBSD/[Purchases] - DEBUG(25398): Checking if cache is stale AppInBackground falseD/[Purchases] - DEBUG(25398)
I’m trying to export transaction data on a per transaction basis, rather than per user. I’m using a Customer List to do this.For example, I’d like each row to be a transaction by date (user ID, purchase date, amount paid, product name, etc.), whereas the current export shows each row as a single customer.
Hello,I can see active users on the front dashboard during my sandbox testing. I filled up all the details. We are testing using SWIFTUI and iOS 15.1 on a physical device. However, when I look into details I am not able to see the details. Please elaborate on this.
Regarding to the official doc ( https://docs.revenuecat.com/docs/webhooks ), I have 2 questions would like to clarify.1/ The description of presented_offering_id mentioned:“Not available for apps using legacy entitlements.”However I could not find the definition of “legacy entitlement”. 2/ The presented_offering_id is listed under “Subscription Lifecycle Events Fields”. But I can create offering for NON_RENEWING_PURCHASE , and I can receive this field from the webhook as well. Our application have a logic based on presented_offering_id, so is it ok to use it for NON_RENEWING_PURCHASE ? Thank you.
Hi there,I want to know how should I be able to limit the number of devices with the same user id , and block the subscription provided after that on another device.Like Netflix and Amazon does, they only allow streaming on maximum 2 to 3 devices simultaneously on there Standard plan.
I am quite confused with this. An insight into how I should plan this would be much appreciated…Here is what i am trying to do… Requirement:So, I have 3 types of Annual subscription products.Product 1 - Annual_10 (manage a team of 10 people) Product 2 - Annual_20 (manage a team of 20 people) Product 3 - Annual_50 (manage a team of 50 people)Q1 - How do I organise this in one or their own subscription group so that only one subscription is active at any one time! I want the person to be able to switch between subscriptions. So if someone buys Annual_20 and after 8 weeks decides to goto Annual_50, I want him to be able to do it by paying the associated cost and Annual_20 to be disabled at that point. Q2 - Can this switch be done through code or it will need to be done in settings on the iPhone? Many thanks
Hey team! I’m evaluating RevenueCat for our startup. Question for you: Say we used RevenueCat, but wanted to transition off to a custom solution down the road. What would the process for that be like? For example, will we need to give up our existing subscriptions to our users, or is it possible to transition everyone over?
We’ve been dealing with a support query from a customer who purchased the wrong annual subscription, then immediately bought the correct monthly subscription (for access to different products), but didn’t get access to the products the new subscription entitles them to.Our support log from 12 Nov 2021 at 15:53 shows that the original annual subscription is still active:Purchases.PurchaserInfo.activeSubscriptionsTPBDYhAnnually 4 Oct 2022 at 06:39TPBDInNoMonthly 4 Dec 2021 at 06:43iTunes shows the customer was given a refund from Apple for the first subscription:Other transactions greyed for confidentiality But the customer details screen doesn’t show a refund event: The customer has called Restore Subscriptions option several times now (which calls Purchases.shared.restoreTransactions), and we have also asked them to delete and reinstall the app to force generation of a new alias - none of this works.We’ve temporarily kept the customer happy by granting them a free annual that expires a
We’ve moved from using Unity IAP and RevenueCat in observer mode (unity 3.7.5) to using RevenueCat for full subscription management (unity 3.12.3). We haven’t faced any issues during testings updates, but after release we’ve noticed that some users have no access to their active subscriptions without pressing Restore button.We are using Aliased (legacy) restore behaviour and not using anonymous user id - user id is set up with app install with appUserID.Let me explain the difference found between users and information tracked for them. Both next cases have active subscriptions.Case 1 - subscription is still available after updateOn Customer profile we see that user has no updated Last Seen App Version and Last Seen SDK Version. But he has active subscription and smooth update experience.Case 2 - after update user has no info about active subscription and has to press restore buttonOn Customer profile we see that user has updated Last Seen App Version and Last Seen SDK Version (unity 3.
I ran an A/B test on free trials vs non-free trials and I’m trying to understand the results.The thing I’m most confused about is the difference between the revenue chart and the trial conversion chart. When a trial converts, is that when it shows as revenue?Here’s a chart comparing the same product for the last week. It is generating revenue, but no trials are convertinghttps://cln.sh/f9zbQK
I have 2 rooted Android devices for testing, both with Google Play Services installed.When getting the offerings one returned “PurchaseNotAllowedError” and another one is ok.Is this error returned by Google Play or RevenueCat?Any more info could be given?
We’ve had various service accounts set up to access our Google Play Store account for some time and have never had issues. Though we’ve completed the described steps in your documentation to enable Pub/Sub, the “Connect to Google” button simply presents the “loading state” and then goes back to the “enabled state” after about 15-20 seconds of loading. No additional data is presented to us. Below is a screenshot of the console from my browser. Looks like there is a CORS issue on the site.
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.