Discussion and help from anything related to RevenueCat.
Recently active
My android app is already published in production track and I still cant manage to retrieve offerings. The ids on RevenueCat are identical to the ids in Play Store, they acre active and i’ve waited more than 36 hours. Here is the log:D/[Purchases] - DEBUG(14514): ℹ️ Vending Offerings from cacheD/[Purchases] - DEBUG(14514): ℹ️ Checking if cache is stale AppInBackground falseD/[Purchases] - DEBUG(14514): ℹ️ Offerings cache is stale, updating from network in foregroundD/[Purchases] - DEBUG(14514): 😻 Offerings updated from network.D/[Purchases] - DEBUG(14514): ℹ️ API request started: GET /subscribers/%24RCAnonymousID%3A2ac7bf44a8bd48f192ec7584b895dcab/offeringsD/[Purchases] - DEBUG(14514): ℹ️ API request completed with status: GET /subscribers/%24RCAnonymousID%3A2ac7bf44a8bd48f192ec7584b895dcab/offerings 200D/[Purchases] - DEBUG(14514): ℹ️ Requesting products from the store with identifiers: prazosprocessuais-planobasico-teste1, teste_10_coinsD/[Purchases] - DEBUG(14514): ℹ️ Products requ
Currently in CustomerInfo, there are properties like originalPurchaseDate and originalApplicationVersion for grandfathering users but I found originalTransactionID missing. originalTransactionID was useful to identify Spam users with shared Apple ID accounts. Is it possible for RevenueCat to expose this property so that we don’t need to add a duplicate logic to decode the App Store receipt?Thanks.
How to solve this "Your first subscription must be submitted with a new app version", Submit for review always disable , and already submitted and published my app, the subscription plans is not fatch for the users because it's rejected it. now I cannot submit it with the app. When i search they asked to add the subscription on an In App Purchases section which it's not there any more, It was only at the first time, now not.
If I check the docs (https://docs.revenuecat.com/docs/mixpanel) for the mixpanel integration, I see that for cancellations you differentiate between “Trial Cancelled” and “Cancellation”. However, on the uncancellation side there is only one event with the description “When a user re-enables the auto-renew status for a subscription.”Are uncancellations of trials not tracked or are they covered by this event?
I am testing out the sample app “Purchase_tester” and getting an error in the following part of the code highlight in orange. class _PurchaseButton extends StatelessWidget {final Package package;const _PurchaseButton({Key? key, required this.package}) : super(key: key); @overrideWidget build(BuildContext context) => ElevatedButton(onPressed: () async {try {final purchaserInfo = await Purchases.purchasePackage(package);} on PlatformException catch (e) {final errorCode = PurchasesErrorHelper.getErrorCode(e);if (errorCode == PurchasesErrorCode.purchaseCancelledError) {print('User cancelled');} else if (errorCode ==PurchasesErrorCode.purchaseNotAllowedError) {print('User not allow to purchase');} else if (errorCode == PurchasesErrorCode.paymentPendingError) {print('Payment is pending');}}return const InitialScreen();},child: Text('Buy - (${package.product.priceString})'),);} The error says; The return type 'InitialScreen' isn't a 'Future<void>', as required by the closure's conte
In the past 3 days we have updated for apple review but they keep rejecting them. purchasePackage throw "There was a problem with the App Store", i tried to ingore this message. purchasePackage return Succeed but entitlement is empty The subscription was successful without going through the payment process. but my app don't get any exception
When does a payment (subscription) made on google play appear on the Revenuecat screen?
I was recently troubleshooting a customer-reported issue related to a SUBSCRIBER_ALIAS event and I ran across this post stating that the SUBSCRIBER_ALIAS event had been deprecated and has not been sent “for awhile now.”However, that reply was dated 25 February 2022, and the SUBSCRIBER_ALIAS event I was troubleshooting was received much more recently, on 2 June 2022. So apparently SUBSCRIBER_ALIAS events *are* still being sent?I’m currently trying to update our handling of SUBSCRIBER_ALIAS events to account for a change to “original_app_user_id” in the same event -- something we had not accounted for (and the root cause of this customer reported issue.)But the aforementioned post, and the Webhooks documentation which now lists SUBSCRIBER_ALIAS as deprecated has me wondering if I should be handling an entirely different event?Is there any documentation that explains how the account-sharing functionality that was enabled by the SUBSCRIBER_ALIAS event is being replaced, now that the event
I mean the case when the one user (team owner) is paying money for a few other (members), in other words, in other words, all team members shared one common (group) subscription, and only the owner pays for it. I'm new with the RevenueCat and didn't find this feature in the Doc, so decided to ask for being totally sure.
Context: i have an app live on google play. everything works fine i add a suffix to package name to create another flavor of the app i publish this new app to closed testing and add a list of testers i create new app on Revenue cat (same package name as my new flavor) i add the same Service Account credentials JSON for new app as the one for existing live app where everything works fine i added 2 products in revenueCat for this new app. the Identifier for each product is matching the Product ID on google play for that new app subscriptions. Each product has the same entitlement as existing app products. all are sharing the same entitlement. I am checking the Debug info for this new app: when i am checking the logs, i can see [ Products request finished for : {my products} Retrieved skuDetailsList: SkuDetails: {"productId":… ] - here i have all the products, but then i can see the next row of logs : Requesting products from the store with identifiers: {my products}, Products re
Hi, I am facing with this issue:Unable to load receipt, ensure you are logged in to a valid Apple account. The receipt is missing. I am able to get products and also able to able to see and buy them. But after I click OK, I got the error message. I don’t know why this is happening. Apple Store rejected my binary couple of times. With a physical device I can buy the product but with the simulator it works until the receipt error. Thank you.
Hey all,I am a bit confused on how best to setup subscription groups on iOS and would love your help.On my app I’m adding 3 service levels (Silver, Gold, Platinum) with 4 durations each (Monthly, 3 Months, 6 Months, Annual). The 3 service levels are setup as entitlements on RevenueCat and they are set up as 3 separate subscription groups on App Store Connect.While testing, I realized that a user could be subscribed to all 3 simultaneously and upgrading/downgrading does not automatically work as I didn’t specify anywhere that one subscription is a down/upgrade of another. From my understanding on this and this post, Apple would automatically manage the up/down/cross grading with refunds and billing. My question is; to set everything up correctly, would I need to have 1 instead of the 3 subscription groups I currently have for each service level on App Store Connect and pile all the 12 products under 1 subscription group? Or did I start off correctly with 3 subscription groups and would
Hello, We are experiencing consistent crash after a test subscription purchase in our Android app.The purchase first seemed to be successful, but after a short time, the first crash occurs and the crash message appears every 30 to 50 seconds from the background.Also, re-launching the app also crashes after the purchase(the purchase might have triggered something). Here is the crash log:23:38:39.533 26296-26521/? E/AndroidRuntime: FATAL EXCEPTION: Thread-12 Process: com.company.app, PID: 26296 java.lang.NoSuchMethodError: No virtual method getSku()Ljava/lang/String; in class Lcom/android/billingclient/api/Purchase; or its super classes (declaration of 'com.android.billingclient.api.Purchase' appears in base.apk) at com.revenuecat.purchases.google.PurchaseDetailsConversionsKt.toRevenueCatPurchaseDetails(purchaseDetailsConversions.kt:16) at com.revenuecat.purchases.google.BillingWrapper.toMapOfGooglePurchaseWrapper(BillingWrapper.kt:401) at com.revenuecat.purcha
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).\nThis could be due to a timeout, or a problem in your configuration.
Hello Revenue Cat Community. I have an internal test track of a Google Play app, with a RevenueCat managed subscription (anonymous, no app login). I was under the impression that if a user bought a subscription on Device A , and then downloaded the app on Device B (and logs into his Google Play account on that device) - then the subscription should only work on one of the devices. Currently I am testing with 2 physical devices - and it doesn’t seem to matter which device I bought the subscription on, and which device I use to access the app: the subscription works on both of them.Is my assumption wrong then? Subscriptions will work on any device - so long as the user is logged into the correct Google Play account? (and does this logic hold for Apple?) Thanks.
How to solve this missing lib on android?I have installed cordova and capacitor plugins for ionic by following this guide :https://ionicframework.com/docs/native/purchases$ npm install cordova-plugin-purchases@2.3.0 $ npm install @awesome-cordova-plugins/purchases $ ionic cap sync package.json I have those : "@awesome-cordova-plugins/core": "5.43.0","@awesome-cordova-plugins/purchases": "^5.44.0","cordova-annotated-plugin-android": "^1.0.4","cordova-plugin-purchases": "^2.3.0",
I am testing a scenario where the user bought a subscription with an iPhone and tries to manage his subscription using an Android device. RevenueCat’s SDK gives me this link to manage the subscriptions: purchaseInfo.managementURL = https://apps.apple.com/account/subscriptions.When my app lauches this URL, the user is sent to Apple’s Music website, which instructs the user to install Apple Music app.I installed Apple Music app as per Apple’s instructions, and tried to manage the Apple subscriptions from an Android device again. This time my app launches https://apps.apple.com/account/subscriptions and Apple’s Music Android app is opened, but it stays in a never ending loading animation, so I can’t access my subscriptions from this https://apps.apple.com/account/subscriptions URL.I also tried opening this same URL from a browser on a Windows PC, but the page also never ends loading, with the following message:
So we get rid of all AppStore/PlayStore integration for processing payment and rely fully on RevenueCat webHook.the main issue that we encounter so far is that when we have a restoreSubscription the RevenueCat webHook does't react also if user has a purchase already and he receive "You are currently subscribed to this" and press OK again the RevenueCat webHook does't react.How can we manage this 2 scenarios ?
I have introduced monthly and yearly subscriptions using RevenueCat SDK in my app. My app including these products has been approved, but the subscription products are still “In Review” status for nearly a week.Is this a regular delay according to your experience? Do you think I should keep waiting?I am concerned because my app offers these non-available products to the customers. Not a good user experience.It seems I cannot revoke these subscription products from review in the AppStore Connect interface. I wonder if it is possible to revoke them and submit them again, if it helps?I wrote to the AppStore support, they replied that they will let the reviewers know. But nothing changed. The waiting silently continues. I keep checking and seeing “In Review” status with no feedback or update.Thank you.
Hello!BackgroundWe’ve noticed that we now typically receive a BILLING_ISSUE webhook followed by a CANCELLATION webhook with a reason of BILLING_ERROR when a customer encounters billing problems in the App Store/Play Store.The webhook documentation does not really tell me what the practical difference is between these two:BILLING_ISSUE:There has been a problem trying to charge the subscriber. This does not mean the subscription has expired.CANCELLATION w/ BILLING_ERROR:Apple, Amazon, or Google could not charge the subscriber using their payment method.The CANCELLATION event with cancellation reason BILLING_ERROR is fired as soon as the billing issue has been detected. The EXPIRATION event with expiration reason BILLING_ERROR is fired if the grace period (if set up) has ended without recovering the payment, and the customer should lose access to the subscription.From the descriptions here, it kind of seems like they are interchangeable. Neither signify that the subscription has expired,
I'd like to track the number of new paying customers we get each month (to calculate CAC). I’ve found two ways to do this, but am seeing large discrepancies between the two. Can someone help me understand the discrepancy, and recommend the best way to get this number?Here is what I’ve been looking at:Active Subscriptions Movement chart - # of “New Actives” for a given month. Customers list - filtered down (e.g. for May, first purchase date >= 2022-05-01, first purchase date < 2022-06-01, total spent > $0) I’m seeing a discrepancy of 13% for May, and 50% for June (numbers are in the low hundreds). My first guess is data lag. This comment suggests that the Customer list can take 2 hours to refresh, but that wouldn’t explain the magnitude of the difference.is there something I’m missing in terms of the definitions for “active subscriptions” and “first purchase date”?From the “Active Subscriptions” chart info on hover:Active Subscriptions shows the number of unexpired, paid subsc
I’m invoking Purchases.shared.purchase on a new iOS app I’m building and all is connected and configured properly (I think), this is what I get: 022-06-21 15:00:24.660227+0100 Mindworks[29422:726454] [Purchases] - DEBUG: ℹ️ API request completed: GET /v1/subscribers/$RCAnonymousID:1001512f67bb474d872e2adbe6ef3a22 3042022-06-21 15:00:24.664658+0100 Mindworks[29422:726454] [Purchases] - DEBUG: ℹ️ Sending latest CustomerInfo to delegate.2022-06-21 15:00:24.664755+0100 Mindworks[29422:726454] [Purchases] - DEBUG: 😻 CustomerInfo updated from network.2022-06-21 15:00:24.664820+0100 Mindworks[29422:726454] [Purchases] - DEBUG: ℹ️ GetCustomerInfoOperation: Finished2022-06-21 15:00:24.664994+0100 Mindworks[29422:726454] [Purchases] - DEBUG: ℹ️ Serial request done: GET subscribers/$RCAnonymousID%3A1001512f67bb474d872e2adbe6ef3a22, 0 requests left in the queue2022-06-21 15:00:24.665013+0100 Mindworks[29422:726540] [Purchases] - DEBUG: ℹ️ GetOfferingsOperation: Started2022-06-21 15:00:24.665164+0
I have a web application as main and a mobile application, Apple also forced us to give the option to charge for apple within the app, we are implementing.But I'm in doubt about his signature at apple after his signature expires due to payment failure, Apple says that it goes into a Billing Retry mode and that it stays 60 days trying to charge…Does this mode only enter when the grace period has been enabled or does it activate the same? My question is, there was no payment, a billing_issue event came, then an expiration event, and a cancellation event comes right after expiration, or does it only come cancellation after 60 days?I'm confused as to how the apple subscription is after it expires due to lack of payment, if it is active, then I enable my client to contract outside (web) with our means of payment and Apple is still trying 60 days, there could be two methods charging together, ours and Apple's... Can I only enable customers to contract outside Apple after these 60 days? Don't
Hi there, so my app has a few options for subscriptions. A couple of those options have an introductory offer. When my app builds my paywall VC it fetches all my products from Revenuecat and uses them to fill in the regular price from the products respective .localizedPriceString. The setup function then passes through a guard which checks if the user has subscribed before by calling .getCustomerInfo and verifying if both .entitilments.all and .allPurchasedProductIdentifiers are empty. If they both come back empty then the introductory prices are added to my paywall vc as well to be presented to the user.In my own sandbox testing this seems to work fine. I submitted my app for review, and it has been rejected a few times now. The first couple were for other issues so assumed the paywall experience was fine. The Revenuecat customer sandbox account seemed to say so. However I have now been rejected a couple times in a row because my paywall is preseting the reviewer the intro pricing but
I’m trying to delete two unused products (the ones without entitlements in my account). However, when I try to do this, I get a message saying that they can’t be deleted because there are transactions using that product.However, no matter where I check (lists, charts, sandbox purchases, etc.) I can’t see any record of subscriptions using those products. How can I determine what transactions are being referenced so I can successfully delete the products?Separately, I ordinarily wouldn’t care about having unused products, but I’ve been experiencing an issue where I see [Purchases] - WARN: 🍎‼️ Invalid Product Identifiers messages for those two products appear while testing my iOS app on a physical device.I receive 50+ of these messages within ~1 second, memory usage for the app spikes from 30MB to >2GB, and the entire app crashes. What is going on here and how can I resolve this issue? I’m very concerned that my users could be experiencing this as well.
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.