Discussion and help from anything related to RevenueCat.
Recently active
I can't get a consumable product in the list of products, although information about subscriptions comes without problems - in Google playThe product is active, but it is not in the resulting list :(
We are working through our integration with Revenue Cat for in-app subscriptions. We’re planning to use webhooks to keep our database up to date with users’ entitlements. What happens if we add an entitlement to an existing subscription? Will the webhooks be called for existing users? If we update the user status with the rest API, will the new entitlements be reflected in that response? Thanks!!
Hello, I have a problem with changing renewal preference of my subscriptions, it was just working yesterday but now it shows that subscription I wanted to changed to is bought and subscription I wanted changed from is set as a new renewal preference.So to explain it more clearly:I have now “subscription_month” want to change to “subscription_year” when I click to buy it it show correctly native android message that you will change from “subscription_month” to “subscription_year”.But when I go to revenuecat I see “Started a subscription of subscription_year” Changed their renewal preference to “subscription_month”Don’t know why this happen I checked and it gives correct sku in UpgradeInfo I am taking it from “purchaserInfo.activeSubscriptions[0]”. As I said it was working just yesterday so I have no idea what could have changed.
Hi, I’m confused about what should the webhook type be in the following 2 cases:I canceled my subscription or my subscription expired, then after several months I purchase it again in the app.I realized Gold subscription I previously purchased is not enough so I purchased Platinum subscription in the app while my Gold subscription is active.
Hello,I tried to search for a similar case - couldn’t find anything.My macOS app got rejected for the following reason, as if Revenue cat doesn’t check for the existence of a purchase receipt.We noticed that your app does not check for the existence of a purchase receipt, which can prevent in-app purchases from being correctly processed. Next StepsWe recommend implementing receipt validation to resolve this issue. At a minimum, the app will need to check for the existence of an App Store receipt and exit at launch with a status of 173 if it does not exist. See Validating Mac App Store Receipts for more information. I assume syncing purchases might solve the problem but the documentation says to use this API only for migration - https://docs.revenuecat.com/docs/migrating-existing-subscriptions. I don’t want to sync it for every install. Actually I’m not even certain it is going to check for the receipt if i call that.Best Regards,Konstantin
Hello guys, I’m currently building a landing page and in my backend I want to render a page that lists my current offering’s packages prices. But I can’t seem to get that data or find an endpoint that returns it.What am I missing? Thanks in advance!
Hi There, We are just starting on our RevenueCat journey, so far I have integrated RC with our App and the revenue is starting to roll in, so far so good.Our Business Model demands that we split the Revenue between different Content Creators depending on the location of our Users, this is easy for other countries, but gets pretty fine grained in our own country since we are splitting according to states (cantons in Switzerland). So I have added an attribute to our Users defining the Region they live in.Since we have a monthly payroll for our content creators, I need a chart that tells me which user has spent how much in say the month of July and where they are situated.I can create a customer list putting the most recent purchase between 7.1 and 7.31 but i only see the total amount spent and have no way of knowing how much the User has spent within this time frame.Is there a way to get this data in one table? Is this perhaps something I should use a 3rd party integration for? Also on a
When running an experiment https://docs.revenuecat.com/docs/experiments I can go into a user page and under “Current offering” see in what test group this user is. Could this data be shared to amplitude as well? So that I in amplitude can know what test group a user is in?
HiI want to implement a Free 3 day Trial period before purchasing.I would like to use “FirstSeen” from purchaserInfo. Documentation means that:“ In the event that the user deletes and reinstalls the app, a new random App User ID will be generated.”But when testing and uninstalling/reinstalling… i always got the same AppUserID and the FirstSeen doesnt change - that would be fine… but the docu says other things. How is it actually? ThanksWalter
I’m in the process of writing React-Native components that should display the details of a package. For this reason I am interested in knowing which fields are available on a Package object when received via an offering - so that I can model my data correctly. I have looked through the documentation and searched through community posts, but have not found what I’m looking for. Is it not available or have I just not succeeded in searching properly? I think all developers working with RevenueCat would benefit from having some kind of documentation for the shape of packages, offerings, and entitlements - so that we can code without actually accessing these data points in our projects.
I have an app on both App Store and Google Play which offers a free trial for subscription options (monthly/yearly), or a one-time lifetime in-app-purchase. The subscription options both include a free 3 day trial.For the most part, this works just fine. But some users get very upset when they downloaded the app for free and just want to try it for 3 days, but when they are presented with the paywall where they must choose a subscription in order to start the trial, they realise that they can’t actually try it without having a payment method on their Apple/Google account. Even though these users are very few, they are very loud, blasting very negative 1-star reviews. I of course answer them that this is just how App Store/Google Play works, and that we as developers must follow Apples/Googles requirements. I also added an FAQ on the paywall and website, as well as in the app store description, but it hasn’t helped.As I have understood the App Store/Google Play requirements, I MUST use
I had noticed this problem in my test app, but since it never showed up after my first try, I didn't give it any thought.Now that I have entered my production app I have noticed that the problem has recurred and therefore I am asking for help to fix it.Explanation of the problem.I state that I have tested the thing with iOS for now.When I try to purchase a renewable subscription, the first time I do it with a new device that has never purchased this subscription, after completing the purchase, the iOS window for purchase is presented to me again. If I proceed with the purchase again after all it goes smoothly. Even all future purchases have no more problems.I would like to understand if I made a mistake in the programming, where, however, I followed the example given by you to the letter, and in fact everything works perfectly after the first time.This can be unpleasant for the user since it can give the impression that he has paid twice and since mine is a subscription that automatica
Hello we have tried both options but Trail priod is not working doPurchase = async () =>{try {await Purchases.purchaseProduct("gold_299_pf", null, Purchases.PURCHASE_TYPE.SUBS);}catch (error) {console.log(error)return}}=================doPurchase = async () =>{ console.log("testng"); try {const offerings = await Purchases.getOfferings();if (offerings.current.monthly !== null) {const currentOffering = offerings.current.monthly; const { purchaserInfo, productIdentifier } = await Purchases.purchasePackage(currentOffering); if (typeof purchaserInfo.entitlements.active[ENTITLEMENT_ID] !== 'undefined') {console.log("Purchase Success"); }}} catch (e) { if (!e.userCancelled) {Alert.alert('acquisto annullato', e.message); log output========== {"identifier": "$rc_monthly", "offeringIdentifier": "Defult", "packageType": "MONTHLY", "product": {"currency_code": "INR", "description": "Abbonamento Mensile €2,99 con rinnovo automatico", "discounts": null, "identifier": "gold_299_pf", "introPric
I noticed that when a user bought an IAP (no-consumable) on a macOS device, and then switched to a different Apple account, the new account still had access to pro features. I tried restarting the app and clicking the restore purchases button (which called `Purchases.shared.restoreTransactions`) but they didn’t help. I think the cause is Apple doesn’t refresh receipts for apps when a new account is signed in. I’m wondering if that is expected and what is the best practices to deal with that (ex should we just ignore those cases or there is a method to refresh receipt explicitly (and if that’s the case, should we invoke that method on every launch?)).
Configured an iOS app for observer mode to run alongside our existing iOS storekit implementation. After two subscription tests in Sandbox, no data appears in RC. I seem to be missing something, but have followed the docs I find regarding observer mode. I can see through device settings>app store>sandbox that the subscription test is active and my app behaves as such, so I know the sandbox transactions exist. Thanks.
So I'm using the @ionic-native/purchases plugin for setting up in-app subscriptions. The only plugin-related code I have is this.purchases.setDebugLogsEnabled(true); this.purchases.setup(environment.purchasesAPIKey, appUserID);on the app's initializing.And then in another component: this.purchases.getPurchaserInfo().then((purchaserInfo) => { console.log('purchaserInfo:', JSON.stringify(purchaserInfo)); }); this.purchases.getOfferings().then((offerings) => { console.log('offerings:', JSON.stringify(offerings)); }); this.purchases.getProducts(['product1_test']).then((products) => { console.log('products:', JSON.stringify(products)); }); console.log('appUserID:', this.purchases.getAppUserID()); All the methods return empty lists / objects, e.g.:offerings: {"all":{},"current":null} Even though the underlying request that I found in Android Studio's Profiler gives back proper offerings data:{ "current_offering_id": "default", "offerings":
As title says, does RevenueCat combine all MRR under the same account to charge a fee when it reaches a limit?
Hi there.Can I edit user's “Aliases"?
We want to export our receipts from apple so that we can import them to a new provider but revenuecat is not responding to any email and we do not know how to proceed now. Any idea?Thank You
Hello, we are integrating with a third party app that is going to pay us per use of their members, for example, each time a user opens our the app we get paid x dollars.What is the best way of implementing such a system where RevenueCat can account for the revenue?My solution would only account for access: 1. Add a promotional entitlement via REST API to these members (so they get access to the features)Is there any alternative to get the value of the payments back to RevenueCat?
At WWDC 2020, Apple introduced the ability to do local StoreKit testing in Xcode (that is, testing without connecting to App Store servers and without using sandbox accounts). I would like to use that local StoreKit testing to test restoring RevenueCat-enabled purchases after an app re-install.Unfortunately, even though such a restore succeeds when testing on a device using a sandbox account, that restore always fails when performed using local StoreKit testing in Xcode (either on a real device or on the iOS Simulator).My question: does RevenueCat support the restoration of purchases after an app re-install when local StoreKit testing in Xcode is being used to make and subsequently restore the purchases?Here are the steps I performed in the effort to test the restore of purchases using local StoreKit testing. Note: I have tried these steps both on a real device and in the iOS Simulator, and the result is the same in each case. I set up local StoreKit testing in Xcode with a StoreKit c
Unable to end testing for launching app.
Hi there,I’ve been searching for a few days how to implement promoted in-app purchases in my app with RevenueCat. My environment:RevenueCat SDK version is 3.12.2 iOS platform iOS 14 Xcode 12.5.1ResearchI’ve found this question in Github. I’ve also read the SDK reference.QuestionNow, SwiftUI apps launch using a custom struct that conforms to the App protocol, so there is no AppDelegate file anymore. My App struct is something like that:@mainstruct SimoleonApp: App { init() { Purchases.configure(withAPIKey: "KEY") } var body: some Scene { WindowGroup { ContentView() } }}My question is, where do I have to place the following function to support promoted in-app purchases?func purchases(_ purchases: Purchases, shouldPurchasePromoProduct product: SKProduct, defermentBlock makeDeferredPurchase: @escaping RCDeferredPromotionalPurchaseBlock) { makeDeferredPurchase { (transaction, info, error, cancelled) in if let purchaserInfo = info {
I create two different identifier for a non-consumable product for both android and ios.How can I make the product available to other platform if I purchased it in the other one?
Note that developers (you) cannot change a customer's subscription directly. The app stores do not allow developers to upgrade or downgrade a subscription on behalf of a customer. Only a customer can change their subscription.iOSThere are no code changes required to support upgrades, downgrades, and crossgrades for iOS subscriptions in your app. A customer can upgrade, downgrade, or crossgrade between subscriptions as often as they like.According to Apple, when a customer changes their subscription level, access to the new product can vary depending on the new product:Upgrade. A user purchases a subscription that offers a higher level of service than their current subscription. They are immediately upgraded and receive a refund of the prorated amount of their original subscription. If you’d like users to immediately access more content or features, rank the subscription higher to make it an upgrade.Downgrade. A user selects a subscription that offers a lower level of service than thei
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.