Get help with anything related to RevenueCat.
Recently active
The subscription part of my app charges users per week and the initial purchase gives users a 2 week trial period, which means they have 2 weeks before the initial subscription expires.I submitted my app for review and I got a rejection:Guideline 2.1 - Information NeededWe are not able to continue our review because we need access to a demo account with an expired subscription to review the entire purchase flow.Next StepsTo resolve this issue, provide a user name and password for a demo account with expired subscriptions in the App Review Information section of App Store Connect.The issue is when I make a sandbox test purchase, the expiration date is 2 weeks from now. How can I force a faster expiration date? If I can’t, then I have to wait 2 weeks until I can give this to the reviewer.Here are the purchase printouts from RevenueCat latestPurchaseDate= 2023-11-05 22:14:03 +0000originalPurchaseDate= 2023-11-05 22:14:03 +0000expirationDate= 2023-11-19 22:14:03 +0000 I went to App Store C
Hi,I need to implement a free trial period for a paid iOS app. How do I check if the trial period has expired with RevenueCat ?
Refunds are issued differently depending if the subscriber purchased through the App Store or the Play Store. App StoreApple does not allow developers to issue refunds on behalf of users. Users will need to contact Apple customer support directly for a refund. RevenueCat will automatically detect when a refund has been issued by Apple.If a user requests a refund, you can direct them to the Apple support page: https://support.apple.com/en-us/HT204084 Play StoreThere are multiple ways to refund a customer that purchased through the Play Store:(recommended) Active Android subscriptions may be refunded directly through the RevenueCat dashboard. Click on the respective transaction event on the customer page and hit "Refund" in the upper right. Documentation for reference. Refunds can also be granted programmatically through the RevenueCat REST API. It's also possible to refund users directly through the Google Play console. This is not recommended since RevenueCat cannot track refunds init
{all: {}}The issue is occurring in iOS as well as Android.The product identifiers are same in the appstore as well as revenuecat. All agreements have been signed. There is a working version of RNIAP which we are replacing with revenuecat.I am not using any sandbox, directly testing on my device.How do I go about resolving this issue?
I have created around 5 promo codes for my in app product which is a one time purchase on Google Play console, and I want to redeem it through my app but I am not able to do that, as my app does not provide more options by which I can redeem it through, like the purchase dialogue comes to the screen and it only allows me to select the test card option for the purchases( as of now my app is in development stage), so my questions are :Is I have to create/ put some more code in my app to able to use promo code. Right now I am using react native IAP library to do so. If yes, than is there any specific link/ document which I have to follow to implement the promo codes. Can I redeem code outside my app, by putting it directly on play Store app ( in redeem & gift card section)for in app purchases(subscription and one time purchase) ,if yes ,so what all are the scenarios which I have to follow to validate the purchase, or whom can I give that redeem purchase through play store directly. Th
The Google Play Services credentials documentation from Revenue Cat walks through a step (1) in the API Access page of the Google Play Console. However, that page no longer exists: Can step 1 be ignored now? PS: Google Play docs definitely need to be updated.
I got rejected several times by appstore: We found that your in-app purchase products exhibited one or more bugs which create a poor user experience. Specifically, in-app purchase page loaded and error message occurred. Please review the details and resources below and complete the next steps..What should I do?
Something strange has been happening over this last week. Each user who starts a free trial has it automatically cancelled due to a billing error. Event data reported by RC contains "cancel_reason": "BILLING_ERROR".The app currently looks for billing issues (via billingIssueDetectedAt in RCEntitlementInfo) and guides the user to update their App Store billing. Beyond this, to prevent revenue loss, I’ve switched to a discounted offering without a free trial while I figure out what’s going on.For context, it’s an iOS app using Purchases v3.11.1 (although this is probably not an SDK issue).Any ideas as to what’s happening here?
My iOS/Android app was hacked by some users and now they can bypass the payment process and access all the pro content of my app.Does Revenuecat help to prevent that by double authenticate before unlocking the pro content?
I didn’t understand how to test the inApp purchases on a iOS simulator using Expo. I usually run my code withnpx expo run:ios I’ve created the subscription and certificate in XCode following the documentation: https://www.revenuecat.com/docs/apple-app-store#ios-14-only-testing-on-the-simulator Now I’m not sure how to build/run correctly the app.
Hi, I am new to iAP and Subscriptions. After 10 years, i decide to go free app with subscription and i realized after my app approved theres something wrong. I edited some field in the appstore connect and i cant submit new version with the subscription. I am attaching a screenshot, for the appstore localization, it says waiting for review. And in the subscriptions section, it says developer action needed. How to get out of here and submit the new version with the subscription successfully for review?
Hello RevenueCat community,I am experiencing a challenge in managing in-app subscriptions for multiple users on the same device. Here's the situation: User A has an active subscription and is logged into the app on a device. User A logs out, and User B logs in on the same device. User B doesn't have an active subscription, so they are correctly presented with the paywall. When User B attempts to purchase a subscription, Apple's system sends an alert that a subscription already exists (referring to User A's subscription). Upon dismissing the alert, the purchase process proceeds, and User A's subscription gets linked to User B's account. When User A logs back in, they are incorrectly presented with the paywall, and RevenueCat's records show User B as the owner of the subscription. In this situation, my goal is to keep User A's subscription linked to User A, and alert userB that there is already an active subscription linked to the current appleID, and therefore cannot proceed wit
Hey,I am very new to everything involving in-app purchases, so sorry if this is a somewhat confused question. I am building an app (iOS/macOS only) that involves making calls to some AI tools through a custom backend that I am building as well. I would love to not force users to create accounts at all, since purchases are done and identified through the user’s Apple ID anyways, so there’s no immediate need to. I could just let them use the app as anonymous users. However, I need some way for the backend to know if an incoming request is made by a user with an active subscription. I searched online for quite a bit, but haven’t found this exact problem yet. From what I read in the documentation, there might be a way to do this, by sending the users App ID (generated by the RC SDK) to the backend on each request and have the backend call the RC API with that App ID to check the subscription status. I have not tested this because I am not at the stage of development yet. I just wanted t
I tested fresh version of my app via TestFlight - I opened app from it and purchased yearly subscription.It was my real device and the account was my real account (not a sandbox one).After I made a purchase I don’t know how to cancel it:in the sandbox account section (inside settings → Developer, etc) there is no any subs, because I didn’t purchase from sandbox account in the real Account Settings → Subscriptions there is only my real subs for others app.I see that sandbox purchases still coming to RevenueCat every day (renewals).How to cancel subscription made on real acc in app started from TestFlight? Where else I can check?
Hello! I was wondering if somebody knows a trick to check if I am enrolled in the Small Business Program. I would like also to see from an official report which is the take over percentage applied actually to new subscriptions. Any recommended approach? Thank you in advance
Hello, I use revenue cat paywall package in my iOS app. Apple rejected my build with “- Your auto-renewable subscription promotes the free trial or introductory period for your subscription more clearly and conspicuously than the billed amount.”My Package details for an introductory offer:“{{ sub_offer_duration }} free trial, then **{{ price_per_period }}**”My Call to action:“Continue with free trial 🔓”My previous app got approved with texts for package details for an introductory offer and call to action. I have made my price_per_period bold to make it more clear. How should I modify my paywall content in order to get approved?Whole rejection text:Guideline 3.1.2 - Business - Payments - SubscriptionsWe noticed that one or more of your auto-renewable subscriptions is marketed in the purchase flow in a manner that may mislead or confuse users about the subscription terms or pricing. Specifically:- Your auto-renewable subscription promotes the free trial or introductory period for you
Hi, I’m trying to get some clarity around account creation. Currently, a user can create as many accounts as they want in our app (no payment is needed upon account creation). However, we want to only allow a single Apple/Google ID to be associated with one account. For example, if I:Create two brand new accounts Login to the first one and subscribe to a paid monthly subscription Logout and login to the second accountAt this point, I would expect that the second account doesn’t have access to the paid monthly subscription that was purchased by account number one. The phone is still logged in with the same Apple/Google ID, so:Is the second account able to purchase a paid monthly subscription? If the second account purchased a higher tier than the first account, would it all be associated with one account in RevenueCat, therefore “upgrading” the first account?We have done some testing in Sandbox mode, and wanted clarity on how this would work in production. One thing to note is that each
I am trying to create some new subscriptions on Google Play console and have created a new product with a matching product ID on RevenueCat and in the Google Play console. After creating the new product on the Play Console, I have to add a “Base Plan” and give it a unique “Base Plan ID”. What should I put for the “Base Plan ID”? Should I put the product ID as the base plan ID as well? I know these are new changes to the Play Console, so appreciate any guidance I can get on this.
We are playing with the idea of introducing an affiliate program that revolves around using offer codes to track purchases. Very much in the same way that you see podcasts doing it by telling their listeners to enter code “PODCAST” to get 10% off, which in turn allows the company to track sales and measure campaign performance. I know that iOS and Android both have offer codes, but I think this type of thing would require a more custom solution. Has anyone done this before? I know we could easily build our own system that generates codes, and let users enter a code in the app, which we verify, then display alternate pricing and tag the user with the offer code. But then we have to figure out the best way to track sales, retention, life time value, refunds, etc. to determine how to pay affiliates. Would we be able to utilize any of the integrations for this purpose? Has anyone done this in combination with a promotional service like https://www.talon.one/?Any insight here would be appre
Hello, I am receiving this RC error into my error monitoring service : “There is an issue with your configuration. Check the underlying error for more details.” However, I cannot reproduce this problem, my app is live on both iOS and Android and everything seems to work fine, I have active subscriptions. Still a little number of my users (<1%) are receiving this error. I’ve read all posts about it and all of them are about configuration issues, however in my case, RC works fine for 99% of my users. I use “react-native-purchases”: “5.13.1”. This error only happens on Android. Should I be worried about this error ? Or is it harmless ? Thank you
Adding RevenueCat to a new project that built okay without RevenueCat. I’ve tried the project IOS 17 & 16 with RevenueCat. Now get this type of error during linking:duplicate symbol '_OBJC_METACLASS_$_RCSubscriptionPeriod' in: /Users/username/Library/Developer/Xcode/DerivedData/project-gqirresgntulppesvshjgagnzupy/Build/Products/Debug-iphoneos/RevenueCat.o /Users/username/Library/Developer/Xcode/DerivedData/project-gqirresgntulppesvshjgagnzupy/Build/Products/Debug-iphoneos/RevenueCat_CustomEntitlementComputation.oduplicate symbol '_OBJC_CLASS_$_RCCustomerInfo' in: /Users/username/Library/Developer/Xcode/DerivedData/project-gqirresgntulppesvshjgagnzupy/Build/Products/Debug-iphoneos/RevenueCat.o /Users/username/Library/Developer/Xcode/DerivedData/project-gqirresgntulppesvshjgagnzupy/Build/Products/Debug-iphoneos/RevenueCat_CustomEntitlementComputation.oduplicate symbol '_OBJC_CLASS_$_RCPromotionalOfferEligibility' in: /Users/username/Library/Developer/Xcode/DerivedData
Hello, I’ve managed to invoke presentCodeRedemptionSheet() inside the react native app, and did successfully setup the subscription offer codes in the app store. However when we try to redeem the code, native modal says that the offer has already expired even though expiration date is in the future. Is it possible to test the subscription offer codes in the sandbox? thanks
Hello,I intend to have both subscription and consumable products in my app. If you want an example of the kind of setup I want, check Slopes: the app offers subscription (monthly/yearly) + consumables (passes to unlock one day or one week). In Slopes, the user can redeem the pass whenever he wants, but it’s not what I plan: I plan to use the consumable as soon it’s purchased. So if a user purchase a one week pass consumable, I want to unlock the content from the purchase date.How would you setup the same thing using RevenueCat? Do I have to setup my own system to record the purchase date (= activation date in my case) then unlock the content based on this date? Or is it possible to access consumables purchase history in RevenueCat so I can check when a consumable had been purchased and unlock the content afterwards?Thanks,Axel
Could I please get someone knowledgeable to confirm that I understand things correctly?I currently have an iOS app that has two subscription options: yearly or three months.I want to add a free trial.From reading the forums and the docs I think these are the steps I should take. Are they correct? If they are correct then several assumption I made about how this works are incorrect.Add an introductory offer to each of my two subscription options in App Store Connect. Wait for the change to propagate. Adjust my UI for users that’s aren’t subscribed based on what Purchases.shared.checkTrialOrIntroDiscountEligibility indicates. That lets me choose whether a free trial is mentioned or not.I’m also thinking this would be a good time to throw out my paywall and start using RC’s paywall feature.Thank you!
My purchases are successful on real devices. But I am getting the error log in the simulator. This results in a rejection by the review team. What's the solution? (I created and installed the certificate in the document for test device purchases.) Here is my LOG 2022-01-07 00:49:54.151515+0300 ScoutAppFUT21[7770:194248] [boringssl] boringssl_metrics_log_metric_block_invoke(151) Failed to log metrics2022-01-07 00:51:25.634886+0300 ScoutAppFUT21[7770:194001] [Purchases] - DEBUG: ℹ️ applicationDidBecomeActive2022-01-07 00:51:26.017855+0300 ScoutAppFUT21[7770:196034] [boringssl] boringssl_metrics_log_metric_block_invoke(151) Failed to log metrics2022-01-07 00:51:26.320790+0300 ScoutAppFUT21[7770:194001] [Purchases] - DEBUG: ℹ️ Vending PurchaserInfo from cache.*********User is not Premium*********2022-01-07 00:51:26.344411+0300 ScoutAppFUT21[7770:194001] [Purchases] - DEBUG: ℹ️ Vending Offerings from cacheUser is not yet Premium2022-01-07 00:51:27.356642+0300 ScoutAppFUT21[7770:194001] [Pu
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.