Discussion and help from anything related to RevenueCat.
Recently active
Hi,I would like to test different pricing for various locations on both Android and iOS. What is the best way to approach this, especially on Android?Thank you in advance for your guidance!Best regards,Wojtek
with expo sdk52, "react-native-purchases": "^8.5.0", pod install --repo-updateI had this error message[!] CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/9/a/d/PurchasesHybridCommon/13.15.0/PurchasesHybridCommon.podspec.json Response: Error in the HTTP2 framing layerfixed it by updating cocoapods :CocoaPods 1.16.1 is available.`sudo gem install cocoapods`Et voilà ;)
I am getting the following error when trying to test my app integration with Amazon. I have already implemented purchases with RevenueCat on this same app for Google Play and Apple, and it works fine on those stores. Now I am getting this error when I try to start selling subscriptions on this app on the Amazon Appstore. D/[Purchases] - DEBUG(15726): ℹ️ Offerings cache is stale, updating from network in foregroundD/[Purchases] - DEBUG(15726): 😻 Start Offerings update from network.D/[Purchases] - DEBUG(15726): Request already scheduled with jitter delay, adding existing callbacks to unjittered request with key: BackgroundAwareCallbackCacheKey(cacheKey=[/subscribers/xxx/offerings], appInBackground=false)D/[Purchases] - DEBUG(15726): ℹ️ Updating pending purchase queueD/[Purchases] - DEBUG(15726): ℹ️ No subscriber attributes to synchronize.D/[Purchases] - DEBUG(15726): Getting storefront from cache was null.D/[Purchases] - DEBUG(15726): ℹ️ Listener setD/[Purchases] - DEBUG(15726): API req
I have a question about initializing the Purchases SDK, based on the following points from the docs:If no App User ID is provided, RevenueCat will generate a random App User ID and cache it on the device. The SDK should generally be configured early in the app lifecycle.Many apps allow users to purchase subscriptions before creating an account. This reduces friction between opening the app and making a payment.But, this means that I'll need to instantiate the Purchases SDK before receiving a User ID from my authentication system. This results in the creation of an anonymous RevenueCat ID for everyone who opens the app, even if they don’t create an account or make a purchase. Assuming a typical conversion rate (e.g., 5%), this would mean that 95% of the users in my RevenueCat dashboard are likely people who opened the app once and then deleted it, which seems highly inefficient. Is there a more efficient way to handle this situation without generating so many unused anonymous users?Than
Hi Everyone,HAppy New Year!II had a customer register recently and his son attempted to register too, but his dad had used his iTunes account, therefore the son couldn’t start another subscription for his account.How can we get around that problem? Technically speaking each user should have their own subscription associated to their email address. In this case I had to let the son submit his request using his Dads subscription.Hope that makes sense. Not a real technical issue, but one I hope the community can help with. Thanks in advanceNick CockinosRedhot Internet Solutions Pty Ltd
Hi, I have 2 packages to offer: Starter, Premium.I have multiple offering that I’d like to display, based on the user sub.Free User will get Offering A, which has Starter Plan or Premium Plan.Starter Users will get Offering B, which has Starter->Premium special offer. I have a few placements in my app, where I want to display the right offering based on the user’s current subscription, but I don’t see any attribute in the Targeting which I can relay on as user entitlement/subscription. What’s the best way to do it, if possible at all?
I am trying to get my brain around how custom offer codes are supposed to work and I just had a friend test one in my production app and everything worked (I think) but Revenuecat shows the offer used as a 1 week trial when the offer code was a 1 year trial. Here’s the scenario: I’m using paywalls and I have a $29.99 annual subscription with a 1 week free trial Everything about the paywall has been tested in prod and works great I created a custom offer code in App Store Connect for my early users to get a free year of the app. I am only using this code via the App Store link. User gets a link and goes through the App Store redemption process. A friend of mine tested this process and it seemed to work for him. His subscription in settings shows that he has the 1 year free trial.The problem is, when he signed up, Revenuecat shows his subscription as the standard 1 week trial not a 1 year trial. I maybe be misunderstanding how this should work on the Revenuecat side but is this expected?
In the revenue cat system, we first calculate monthly revenue and then annual revenue. However, on the dashboard, the monthly revenue appears as $0, while only the annual revenue is displayed correctly. In reality, both monthly and annual revenues were calculated without any refunds for the monthly revenue. Why does the dashboard show $0 for the monthly revenue?
Hi, I am using revenuecat in my Apple and android apps for in app purchases. These are often very small IAP starting from €0,29. Now I want to add this feature to my website as well so I have to integrate Stripe. Now I see that they have a standard fee of 1.5% + €0,25 per payment. And a minimum purchase of €0,50. Is this also the case with the revenuecat + stripe intergration?grts
I have a problem with creating paywalls. I've already tried it in the following browsers: Chrome, Firefox, Opera and Edge. The problem always in the selected language, no matter which:English (United States) has an error.and the Create Paywall button doesn't work. See the image
I have a paywall with weekly/monthly/annual and lifetime. Lifetime has been translated to “Durée de vie” which is obviously Google Translate / ChatGPT at work because it means “duration of life / life expectancy”, aka “life time” in a literal way. How to change the wording to “À vie” or “Achat permanent”?
I have a question regarding a RENEWAL event. Specifically, for Android, when the webhook receives a type=RENEWAL, when should we process it and consider it a real resume of subscription to where entitlements should be granted? Currently according to the documentation this RENEWAL event should only happen after a SUBSCRIPTION_PAUSED event for Android. Is this correct or can the previous event be of another type? if so, what other types should be supported.Specific example app user ID: JNhjegTrnBTZIbsYLzZkHPmroOl1Firstly, Customer History does not even show an event that happened today for RENEWAL:But as you can see from my database of logs for each webhook event I got this: Second, is this order expected? After Expiration we would get a renewal or an initial?Should we proceed with granting entitlements?
How best to handle this? I have 2 paywall offerings both unlock the same entitlement. However one is at a reduced cost. Prior to moving to a subscription model the App offered a one time purchase. If user had purchased the one time they are now shown the 33% discounted paywall. If they are new customer or had no previous purchases they see the full price paywall. The issue is a user who qualifies for the discounted option takes it but them successfully applies to Apple for a refund of the original in-app purchase. A full 11 months later. Now that I don’t mind because it’s Apples way. What I do mind is the user getting the discounted rate and then refunding their transaction of 11 months previous and now should not be entitled to the discounted rate. Finally my questionsCan I force user to, at renewal of the subscription onto the standard price?detect either in code or via the revenuecat dashboard customers who have taken the discounted option and subsequently cancelled (claimed refund
I’m building a subscription-based app where users can choose between two base plans (Basic and Premium), and I want to offer several recurring add-ons (e.g., Read Receipt, Priority Message, etc.), each priced at for eg : AUD 2.00/month. The goal is to allow users to dynamically add or remove these features, with their subscription price updating accordingly or maybe even multiple subscription . Is this possible through in-app purchases and revenuecat ? If so could you please provide me the best approach . Thanks in advance
Initially, I created two apps in one project (Project A).However, I didn't feel comfortable splitting the data exactly how I wanted it in the dashboard, so I created a new project (Project B) to split it up, try await Purchases.shared.syncPurchases()to migrate them.Initially, this seemed to work well, but Project A still had the customer's information. How can we fix this?
I'm using RevenueCat's fetchOfferings to retrieve subscription details for my app. While it successfully fetches the description of the subscription products I created in the Google Play Console, it does not retrieve the benefits that I added when setting them up.Here is an example of the output returned by fetchOfferings:{ "monthly_plans": [ { "offeringIdentifier": "test", "product": { "presentedOfferingIdentifier": "test", "subscriptionOptions": [ { "presentedOfferingContext": { "placementIdentifier": null, "targetingContext": null, "offeringIdentifier": "test" }, "introPhase": null, "freePhase": null, "isPrepaid": false, "presentedOfferingIdentifier": "test", "fullPricePhase": { "offerPaymentMode": null, "billingCycleCount": 0, "price": { "currencyCode": "INR", "amountMicros": 300000000, "formatted": "₹300.00" }, "recurrenceMode": 1, "billingPeriod": {
Should I be able to fetch products that are in the “Waiting for Review” state in Apple App Store Connect?I’m getting this error when testing locally on a physical device which is also logged in in a sandbox account:(RevenueCat.OfferingsManager.Error-Fehler 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 informhttps://rev.cat/why-are-offerings-empty I verified everything with the article, but I’m not sure if I’m able to fetch products in the waiting state. Would make sense tho because it’s one step further than the “Ready To Submit”
I have this scenario that I am trying to avoid as it is very confusing how to even manage such a subscription:User1 logs into the app (app_user_id is configured) User1 purchases the 1 month subscription User1 logs out User2 logs in (new app_user_id is configured) User2 tries to purchase the 1 month subscription and gets “already purchased” error BUT if User2 tries to purchase the 3 months subscription, iOS allows it (and treats it as product change?)Will this mean same iOS account has actually made 2 purchases for 2 different users or now the lines are crossed and the first user has been upgraded?FWIW, I have revenue cat configured to now allow transfers since the entire app is behind a login and each user should have their own subscription per one account.
Its Possible usage an Sandbox in Flutter? Having to send it to closed testing every time takes a long time to develop
I have set up various products on play store and am able to fetch them successful via the Purchases.sharedInstance.getOfferingsWith function. Some of my products have introductory pricing and/or free trials. I have tried testing this functionality and it seems to work. The problem I am running into now is if I have a user that has made use of the free trial or intro pricing for the subscription, cancels the subscription, and then wants to resubscribe I don’t appear to have a way to tell that the user is not longer eligible for intro pricing or free trials. The only way to tell is only after the user has started to go through the play store billing flow, but I need to display the correct information about the product in my app’s UI.
I am implementing a subscription-based app with monthly and yearly plans. I've set up free trials for both plans under Introductory Offers in Apple Store Connect. However, I'm unsure how to integrate these free trials into my iOS app using RevenueCat.Here are the specific points I need help with:How do I configure RevenueCat to recognize and handle the free trials I've set up in Apple Store Connect? Are there specific methods or API calls in RevenueCat I should use to verify the free trial period for a user? Do I need to make any additional configurations in RevenueCat or my app's code to ensure the free trial works correctly for both subscription plans?Any examples, documentation references, or guidance would be greatly appreciated.
Hi there, seems like the Payments that are made from the RevenueCat that are shown in the Dashboard are in the UTC timezone, which makes the whole process seemingly annoying as I’ve to check it each time. Is there any way in the account settings where I could change the timezone atleast during development purposes?
I use Paywall(Beta) . I want to translate into 20 languages, but I'm stuck with the character limit. How can we fix this?localized_strings: must be less than 4000 characters
I see that RC’s StoreKit 2 beta is hopefully (!) coming soon. Will this support the appAccountToken on the StoreKit transaction?
I’m trying to design my first paywall and I may have made life a bit too complicated by also having Offer Codes for about a 50% discount on launch.What I can’t see how to do is customise paywall content if the user has an offer code.I’ve setup offers$7.99 for first year (vs $14.99 normal), or $0.99 per month for first 6 months (vs $1.99 normal) Am I obliged in some way to put those reduced figures on the paywall?Or am I overthinking this and I can just ignore the offer code discounts in my paywall pricing? I’m using the Siamese Content paywall template which generates (sample) content such as “Try 7 days for free, then $1.99 for your first month, and just $3.33/mo thereafter.” which I think is rendered from the Play store suggested Try ( sub_offer_duration )) for free, then ( sub_offer_price_2 }) for your first ( sub_offer_duration_2]), and just {{ price_per_period }} thereafter.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.