Discussion and help from anything related to RevenueCat.
Recently active
When the user chooses a subscription in my application i want to present also an offer for him to start a free trial if he chooses to. What i want is to start a subscription with free trial or without free trial depending on what the user chooses to. Is there any way to do this or are free trials introductory offers automatically applied if user is eligible and chooses to subscribe?Would this be possible using introductory offers or promotional offers?
Hi guys So I have a user that opted in for the free trial and has being using the app, however on revenuecat it says that the user will be charged today as the free trial period ended, however the user has not being charged (IOS) does anyone know the reason?
I’m using the following code to set originalPurchaseDate: Purchases.shared.getCustomerInfo { info, error in if let error = error { print(error) return } if let date = info?.originalPurchaseDate { UserDefaults.standard.originalPurchaseDate = date } }However I noticed `info?.originalPurchaseDate` is nil (either the info or originalPurchaseDate) in production. (I extracted UserDefaults on my JB device, the app is installed from the AppStore and I can see the StoreKit/receipt is present as expected)In the debug build the info (CustomerInfo) is not nil, but as expected the `originalPurchaseDate` is not available.What could be the problem?I want to use this code in my second app which I’m moving from the paid-upfront to freemium, but it seems I might not be able to use it.Thank you.
I like the documentation how to display products, but is there a similar one of how to display active subscriptions?Once user makes a purchase, I would like to display information about this purchase in a Membership management screen. Currently I am relying on getCustomerInfo().entitlements.active, but that does not describe the products well. I would like to show the display title and description of the product(s) that was purchased at that point in time even if it is not offered anymore.Is there a way to get full information of the purchase like that is more than identifiers? PS: FIWI in react-native I tried calling getProducts(customerInfo.allPurchasedProductIdentifiers)but that errors out:Error: Unknown error. at Object.promiseMethodWrapper [as getProductInfo]
I am testing the purchases of subscriptions for both ios and android and receiving webhook notifications to my backend in order to update the subscription status of a user. Android works really well, every time i purchase a subscription, a renewal process happens or cancel/expiration, the events are received by revenuecat in real time and webhook requests are sent instantly. For IOS however for some reason it has a big lag. For example i renew a subscription directly from the app store, and revenuecat has not received the event not even 5 minutes later. Every time a renewal event occurs it’s delivery time is usually 3-5 minutes later then the purchase date in the request. Also the time window between renewal seem to not correspond with the time set in the appstore settings. For example if i set 5 minutes between renewals, sometimes is 5 minutes sometimes is 10 minutes between two renewals.Has anyone encountered this problem in ios sanbox environemnt? Is it the same for production also?
Hi!I’m trying to use RevenueCat as Observer to analyze and confirm the purchases in my mobile game… Unity IAP handling the process and I need the RevenueCat to read trustable data via being Observer…The documentation feels unclear to me so I’m here to ask my questions via these post:Do I need to add my store products (consumables and non-consumables) to RevenueCat dashboard as well while using it as Observer? Is there a function to call RevenueCat to collect the data of purchasing? When Unity IAP completes a purchase process, will RevenueCat handle the data automatically?Please don’t mind me if these questions are so cheesy but I had to ask to learn.Thanks!
I'm encountering an issue in my React Native app when attempting to downgrade or modify iOS in-app subscription plans. The upgrade process works seamlessly, reflecting changes accurately in the RevenueCat dashboard and customer history. However, when downgrading a plan, although the RevenueCat dashboard captures the change in customer history, the latest downgraded plan doesn't appear in customer information or the RevenueCat sandbox history.
I know this question has been asked sometimes, but I could not find definitive answers. I have three apps on the App Store, having auto-renewable subscriptions. I would like to create a subscription bundle, where user can purchase the subscription bundle from any of the three apps. Obviously, the user should get access to all three apps once the purchase is successful. Here is the link from Apple, describing what I’d like to do: https://developer.apple.com/documentation/storekit/in-app_purchase/original_api_for_in-app_purchase/subscriptions_and_offers/offering_a_subscription_across_multiple_appsIs there a way to implement this “easily” in RevenueCat? I once read that I would need to have my apps in one single RC project. At the moment, the three apps belong to three different projects. If this is the way to go, could someone give more details on this implementation (I cannot find it in the docs):If the apps are in the same project, will the user get assigned the same userID across the
Hello RevenueCat community,I am a new user of RevenueCat and am having issues with processing subscription purchases. Here is the relevant information.- App designed no-code in FlutterFlow- App connected and products connected in RevenueCat- App uses Firebase for Users and Authentication information- Google Analytics functions properly and shows user events- Licensing is set up for purchases in Google Developer Console with the test account I am using- RevenueCat extension is set up in Firebase- Firebase integration is set up in RevenueCat- RevenueCat service account is active. I have for now given Admin permissions for everything, so there should be no restrictions because I was encountering some access errors earlier that seem to have been fixed. - The service account JSON was generated and uploaded in RevenueCat and RevenueCat shows connected to Google. - Firebase, RevenueCat, and Google analytics are enabled and seem to be functioning with FlutterFlow- Sandbox Data is checked on th
Hi,I just wanted to let you know there is a typo in your documentation regarding the dependency for Debug UI on Android. Instead of:debugImplementation "com.revenuecat.purchase:purchases-debugview:6.9.2"releaseImplementation "com.revenuecat.purchase:purchases-debugview-noop:6.9.2"It should be debugImplementation "com.revenuecat.purchases:purchases-debug-view:6.9.2"releaseImplementation "com.revenuecat.purchases:purchases-debug-view-noop:6.9.2" Note the “s” at the end of “com.revenuecat.purchases” and “debug-view” instead of “debugview”.
Hello, I'm using RevenueCat on Flutter (purchases_flutter). Yesterday Google sent me a mail that the previous PBL version 4 will be deprecated so upgrade to PBL version 5.My using purchases_flutter version is 4.2.2. So I have to change version to 5.7.0.But there is no new version of purchases_flutter documentation.final purchaseInfo = await Purchases.purchaseProduct(REMOVE_ADS_ID);Previous I used this code. But now how I can fix it?
Hello? First, I would like to thank you for your hard work. Thanks to Revenue Cat, we are able to make our payment flow more efficient. Thank you.I am working on synchronizing user subscription statuses using Revenue Cat's SDK and Web Hook. While working, I have some questions regarding the following:During the App's Life Cycle, when CustomerInfo changes, what is the relationship between the timing of this change and the timing when the WebHook event sends a request to the backend server? Is there no guarantee that the request for the WebHook event is sent before the CustomerInfo is updated? If there is no relationship between them, how can we manage the user's subscription status with the database? Users can purchase products both <1> during the app's life cycle and <2> outside of the app's life cycle, with the latter case being when they can directly change their subscription products. How does Revenue Cat detect subscription-related actions initiated by users in scenari
Hi!I have 2 paywalls configured - one with subscriptions and one with consumables. Is it possible to select which paywall to present using RevenueCatUI? Or the "default" one will always be presented?I would like to use them both (not in an experiment) - in different parts of the app. Thanks!
Hi,I’ve followed the tutorial to properly setup RevenueCat on Android via Google Play but I can’t figure out how to make it work when there are multiple packageNames from the mix of buildTypes & variants. For instance, I have two buildTypes (debug & release) and two productFlavors (default & staging). Which means I have the 4 followings configurations:com.mycompany.myapp com.mycompany.myapp.debug com.mycompany.myapp.staging com.mycompany.myapp.staging.debugI understand I have to create 4 different Android apps in RevenueCat to match these 4 package names.But does that mean I also have to create 4 different apps in Google Play, even if only the first one (com.mycompany.myapp) is meant to be published? That seems to be Is there a way to tell RevenueCat to map the correct subscriptions in the Google Play console with only one app?
Looking through the SDK, it looks like the application package name must exactly match the name provided in the RevenueCat dashboard. This makes sense, but it breaks the common practice of using Android’s applicationIdSuffix to install a debug version alongside of a release version, which is a really useful feature.Is it currently possible to manually specify an application package name rather than deriving it from the application context? If not, it would be really nice to be able to do so, or at least to allow specifying an applicationIdSuffix to the RevenueCat SDK. Something like this?PurchasesConfiguration.Builder(context, API_KEY) .applicationIdSuffix(“.debug”) .build()
I have my app configured all fine in revenuecat and AppStore Connect. Create a paywall in revenuecat. Create a StoreKit file and its certificate then upload “cer” file to revenueCat… All works perfect both simulator and real device associated with Xcode, I can simulate subscription and it is logged in sandbox transaction history in revenuecat dashboard.The problem is when I upload a beta version to testFlight and beta testers download the app to test it. All of them have sandbox account added in their devices… same problem for all… a popup alert like I attached… I tried deleting StoreKit file and certificate from project and revenuecat web, but it doesn't work any way… the issue is still the same… any help? Anything I’m doing in a wrong way? :(
Hi. I’m try to buy the product: const result = await Purchases.purchasePackage(this.selectedPackage);It’s resolves success, but result.customerInfo.entitlements.active is empty. In Xcode i receive following warning:Transaction '2000000463276919' will not be finished: it's a non-subscription and it's missing in CustomerInfo list: []What’s happening?
I have installed the firebase extension and setup both the customers and events collections. Using the sandbox testing guide, I have made a purchase that seems to renew every 5 minutes until it stops after 6 renewals or so. The first event is INITIAL_PURCHASE then a few RENEWALs, but at the end I get 2 events at the same time one for EXPIRATION and one for CANCELLATION both with reason BILLING_ERROR.What is the difference between these 2 and why would they come same time?I was just expecting one. Is this tied to how the test user is setup?Mainly, which event tells me to remove the extra paid features for the user?According to the docs, sounds like EXPIRATION is the only one to remove user functionality and not CANCELLATION? Would CANCELLATION ever come alone with nothing after?
Why is clicking a subscription or IAP so slow on iOS. When I click on a subscription, it can take up to 20 seconds to even show the pop up modal to purchase the subscription. I am testing this on testflight and am wondering if there is a way to make this delay quick? The IAPs and subscription purchases eventually go through, just unacceptably slow. Is this due to Apples test flight servers being slow or something else? Will we see increased performance when we deploy a production build? For context, I am using `purchaseProduct` to buy both IAPs and subs.Thanks
This is the Crash Report I got from the Play Console: Typejava.lang.OutOfMemoryErrorException java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again at java.lang.Thread.nativeCreate at java.lang.Thread.start (Thread.java:976) at java.util.concurrent.ThreadPoolExecutor.addWorker (ThreadPoolExecutor.java:954) at java.util.concurrent.ThreadPoolExecutor.ensurePrestart (ThreadPoolExecutor.java:1610) at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute (ScheduledThreadPoolExecutor.java:351) at java.util.concurrent.ScheduledThreadPoolExecutor.schedule (ScheduledThreadPoolExecutor.java:569) at java.util.concurrent.ScheduledThreadPoolExecutor.submit (ScheduledThreadPoolExecutor.java:722) at java.util.concurrent.Executors$DelegatedExecutorService.submit (Executors.java:705) at com.revenuecat.purchases.common.Dispatcher.enqueue (Dispatcher.kt:69) at com.revenuecat.purchases.paywalls.events.PaywallEventsManager.enqueue (PaywallEventsManager.kt:89) at
Hello, Please after uploading the json key generated from googe console to revenue cat I get this errorIs there any way to fix this problem? thank you!
Hi there,I was testing webhooks for an endpoint, which I created on my server. But when I am testing the Webhooks. I get this message - "It wasn't possible to connect, are you sure the URL is correct?"also my function return timeout Please, advice what should I do to diagnose this error. Thanks
The conversion from a weekly price to a price/month is wrong. If the weekly price is $0.99 then the monthly price is $4.29 and not $3.96.A month is 4.333 weeks and not 4.
I have my CURL like so:```curl --request GET \ --url https://api.revenuecat.com/v1/subscribers/$RCAnonymousID:<sandboxId> \ --header 'accept: application/json' \ --header 'authorization: Bearer xxxxx [secret, non-public key]```In my dashboard I see the sandboxid user and that they have the correct entitlement.I get this response, missing the entitlement```{"request_date":"2023-11-21T15:51:13Z","request_date_ms":1700581873079,"subscriber":{"entitlements":{},"first_seen":"2023-11-21T15:49:30Z","last_seen":"2023-11-21T15:49:30Z","management_url":null,"non_subscriptions":{},"original_app_user_id":"<sandboxid>","original_application_version":null,"original_purchase_date":null,"other_purchases":{},"subscriptions":{}}}```This was working for me before. I was able to get the correct entitlement and everything. It seems to have stopped working. Or I did something else wrong.Any idea what’s going on?
How can we show the subscription management sheet in-app for iOS using showManageSubscriptions? https://developer.apple.com/documentation/storekit/appstore/3803198-showmanagesubscriptions I know we can use the customer's management URL, but that opens the sheet in the app store instead of in-app. Thanks.
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.