Discussion and help from anything related to RevenueCat.
Recently active
I’ve already followed every steps in the documentation and I’m able to retrieve the offering lists in iOS device but not in Android device. The offering is always empty in Android Emulator for some reason.Here is a few information that I already checked my self.1. My App is already published and currently it’s available for Closed Testing in Play Console.2. I already got all checkmarks in the Valid credentials(screenshot below) 3. Here is how I implement it in my code class PurchaseApi {static Future init() async {late String _apiKey; if (Platform.isAndroid) {_apiKey = "Google API from ReveneuCat";} else if (Platform.isIOS) {_apiKey = "IOS API from ReveneuCat";} else if (Platform.isMacOS) {_apiKey = "IOS API from ReveneuCat";} else {_apiKey = "Google API from ReveneuCat";} await Purchases.configure(PurchasesConfiguration(_apiKey));} static Future<List<Offering>> fetchOffers() async {try {final offerings = await Purchases.getOfferings();final current = offerings.current; ret
Good day!I'm trying to test the webhook, but I get the error "It wasn't possible to connect, are you sure the URL is correct?", everything is configured according to the documentation.Please help to solve the problemThanks
Hi all, We have an app in both iOS and Android stores and we use RC for consolidating our subscriptions.There are currently few thousand paying subscribers (both Android, iOS and Stripe). The decision has been made to sunset the application and migrate the users to another service.We are looking at;Removing ability to purchase annual subscription. Users can still purchase and use monthly. Stop existing annual subscribers from renewing (is that possible - what is the best way?) In the next 12-14 months - slowly nudge users to another service/app.I guess my question is;What is the best way of doing this? Is it possible to refund users earlier - or at least set their subscriptions to non-renewable (iOS/Android/Stripe). Stripe we seem to have a full control. Are there any other gotchas? To remove the app - do we simply unpublish it from the stores? Will it automatically cancel subscriptions of existing users and refund them? Thanks heaps! Luke
Hi,Within App Store Connect I changed the introductory offer from a 7 day trial to a reduced price for 6 months (pay per period). My changes are live. Within my app downloaded from the app store the price is shown correctly. In the simulator and TestFlight I still get the old trial shown within the “introPrice” object.I am using React Native. {"identifier": "$rc_monthly", "offeringIdentifier": "xxx", "packageType": "MONTHLY", "product": {"currencyCode": "EUR", "description": "xxx", "discounts": [], "identifier": "xxx_1m_xxx", "introPrice": {"cycles": 1, "period": "P3D", "periodNumberOfUnits": 3, "periodUnit": "DAY", "price": 0, "priceString": "0,00 €"}, "price": 19.990000000000002, "priceString": "19,99 €", "productCategory": "SUBSCRIPTION", "productType": "NON_CONSUMABLE", "subscriptionPeriod": "P1M", "title": "xxx"}} Is there anything I can do to get the updated introPrice? I already tried different phones, even a brand-new one.
Hi,Firstly, thank you for providing this framework and documentation, it makes integration of subscriptions a breeze. We are using Revenue Cat - React Native SDK.I have a scenario that I am not sure how to handle, was thinking if you can provide any suggestions.We have a web product that uses Stripe for subscription management. The user can signup for a product and gets an introductory free trial of 1 month. Then after that 1 month they are prompted to renew, the can choose to renew by paying, or also can extend their trial by adding another offer code (promotional offer).Lets say, the user now installs iOS app during the first the trial month (that was issued by the web platform). On the app after the month, we were planning to show them a screen to renew the subscription and show the option to enter the promo code. But having implemented this and going through the promo offer purchase flow I get the error that “The User is ineligible for that action.”. I think this has to do with the
I have noticed that for iOS, in the Offerings product, the Promotional Offer set up in App Store comes as a discounted price and for Android it comes as introductory price. I am using Flutter (Dart) and my code looks like the following: checkOffer(Offering offering) { if (Platform.isIOS){ if (offering.availablePackages[option-1].storeProduct.discounts == null) return false; return true; } else{ if (offering.availablePackages[option-1].storeProduct.introductoryPrice == null) return false; return true; }I only have one type of promotional/introductory setup, which is a 7 day trial. Anyways I will only talk about iOS here as Android works fine.So I used a totally new account with my released iOS app and tried to buy a subscription and I got charged immediately without the 7 Day Trial. What could I be doing wrong here please?
We just released our app. 1 user reported this issue where they subscribed, but then see this error message: I don’t know why this happens. Here is my flow inside Expo/React Native app: Wrap app in providers <PurchaseProvider setPurchasesChecked={setPurchasesChecked}> <AuthProvider> <Stack/> </AuthProvider></PurchaseProvider> Inside the PurchaseProvider getCustomerInfo: useEffect( function initPurchaseConfig() { const initialize = async () => { try { Purchases.setLogLevel(Purchases.LOG_LEVEL.VERBOSE); await Purchases.configure({ apiKey: APIKEY }); const info = await Purchases.getCustomerInfo(); const { isActive } = info?.entitlements.active[entitlementName] || {}; setIsActive(!!isActive); } catch (e) { setMessage(['error', (e as Error).message]); } finally { setIsReady(true); setPurchasesChecked(true); } }; initialize(
Hi, can you please provide me a full example of getting if Android user is eligible for trial in Flutter application. Your help will be highly appreciated.Thank you.
Hello!I’m integrating RevenueCat in a Unity app with several scenes.In the Scene 1 I have created a game object that includes the reference to the “Purchases” script. In this scene with have all the logic to manage subscriptions.This scene open another scenes where we don’t have a reference to “Purchases” script (it’s not needed).The usual user workflow is Scene 1 → Scene 2 → Scene 1 → Scene 2,…My questions is: Every time the first scene is loaded the “Purchases” script calls to Configure method but I have read that this is not a good approach. How are you guys doing this? Is it ok to call Configure method every time the user open the Scene 1? Thank you!
Debug Output when running app…. is this normal? It does slow down start up. Seems to validate and work fine. MacOS v 14.1.1 (23B81)RevenueCat debug output on my app TalkTextChat ******* app init to call purchases.configure(withAPIKey...[Purchases] - DEBUG: ℹ️ Configuring SDK using RevenueCat's UserDefaults suite.[Purchases] - DEBUG: 👤 Identifying App User ID[Purchases] - DEBUG: ℹ️ Debug logging enabled[Purchases] - DEBUG: ℹ️ SDK Version - 4.17.7[Purchases] - DEBUG: ℹ️ Bundle ID - au.com.egads.talkingtextchat[Purchases] - DEBUG: 👤 No initial App User IDdidSet for phrases[Purchases] - DEBUG: ℹ️ Vending CustomerInfo from cache.phrases: ["Hi, my name is John, I cannot hear or speak, and need to use this app to talk with you.", "Here here is a new test phrase!", "Another new phrase."]didSet for numPhraseEntriesname JohnnumPhraseEntries:3phrases:["Hi, my name is John, I cannot hear or speak, and need to use this app to talk with you.", "Here here is a new test phrase!"
Hello people I am having the following problem, I can import my products created in the apple store, but when I go to search the offers I get the second errorThere is a problem with your configuration. Check the underlying error for more details. 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).If I try to list the products I get an empty array.by my research I found a lot of genre talking about filling the us tax form of apple store connect, but there is no consistent information or at least I did not find about how to fill or even where and how to send send, and even worse when in item 7.7. U.S. Taxpayer Identification Number (required - see instructions)You can help me with that, just like I do to get that US TAX ID.I even got information to add it to those who live in the United States but my company and from Portugal, so I didn
We are a subscription app, made in unity project, that generates iOS and Android apps.We also allow the user to create a subscription via web using Stripe.Currently, we store Stripe’s data in our Users DB and when the users logs in, we check against our DB to see if the user has a valid subscription.For Android and iOS we use a custom App User Id, which is the device/install ID.Our intention is to start identyfying users with our internal user_id (associated to the login credentials) and unify subscriptions via rcat to work cross platform, allowing a user that purchase via any platform, to login in any other device/platform and enjoy the subscription access.What would you recommend as the best way to proceed? How can we logIn a new App User ID for both new and old customers for this to work smoothly?Any help, use cases you know, is welcome!
greetings I have an android application with the kotlin language, and I want to implement pending purchases to deliver coins in a transaction with a slow card, I have already tried several similar sdk, and all have the same problem, that pending transactions to deliver coins do not work due, most are only focused on subscriptions, I would like to know if you can implement purchases of coins and if you can deliver the coins after the transaction is completed later.If you have an example of how to handle coin delivery for pending transactions I would appreciate it, since they all have the same problem.
Hi. I have integrated RevenueCat to my iOS version of my app and am using it with satisfaction. Therefore, I am considering using it to the Android version of my app. My app for Android version has a premium version for lifetime access for almost 10 years. Currently, I am no longer selling lifetime access as I have changed to selling only subscription plans. However, because any promise to users is important, I should continue to provide lifetime access to users who have purchased the product. My app does not have an app login system. So, I have been providing access by referring to PlayStore purchase history. After testing, it seems that RevenueCat's Purchases.configure() consumes all one-time products. This means that if the user reinstalls the app or changes devices, they will no longer be able to access their lifetime access. This is because RevenueCat's anonymous ID would be changed in these situations. The workaround I am considering is to use RevenueCat to process subscription p
I have set up app monetization on the Play Store, and here's what it currently looks like: There is a 'paid' option and free option. However, when I open the app on the Play Store in my closed testing environment, it appears to be set up for immediate payment through the Play Store. My intention is for the app to be installed first for free, and then during the installation and sign-up process, the integrated Revenue Cat functionality will handle the payment.Should I configure the app to be free on the Play Store. the first screenshot is from play store and second is from monetization setup in google dev console.? and i assume this is same for iOS aswell.also when i click make it free i see the below. if i proceed will this effect revenucat later for fetching offers etc.., ?
We seem to be getting a `Domain=RCPurchasesErrorDomain Code=23` error when trying to retrieve offerings on iOS 14. The full log is as follows:2021-12-03 10:22:16.648693+0200 Today[34769:534081] [Purchases] - ERROR: SKRequest failed: UNKNOWN_ERROR2021-12-03 10:22:16.649045+0200 Today[34769:491827] [Purchases] - ERROR: Error fetching offerings - Error Domain=RCPurchasesErrorDomain Code=23 "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).This could be due to a timeout, or a problem in your configuration.More information: https://rev.cat/why-are-offerings-empty" UserInfo={NSLocalizedDescription=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).This could be due to a timeout, or a problem in your configuration.More information: https://rev.cat/why-are-offerings-empty, readable
After having subscriptions working correctly in my apps on ios and android, since yesterday I have started receiving an error when connecting to the android play store and it is not possible to make a subscription on android. Anyone know what might be happening?
Hey, are there any examples how to implement footer Paywall in pure Kotlin without Jetpack Compose? I can’t find anything on the net :(
I got the following event through webhook: { "event_timestamp_ms" : 1674239936328.0, "store" : "APP_STORE", "transferred_from" : [ "84c2523f-2f06-49af-886c-a151cc630232" ], "transferred_to" : [ "48f3ab7f-86fd-45a3-9bf6-db8edeea0904" ], "type" : "TRANSFER", "id" : "00DC5B1C-3166-47FB-8F19-AB2B406F8484", "app_id" : "app9a300b6a91"} Is it expected? There is no product_id, so I don’t know what should I transfer.
While in the process of setup.. Error enumerating unfinished transactions for first transaction listener: Error Domain=ASDErrorDomain Code=500 "(null)" UserInfo={NSUnderlyingError=0x28114e0d0 {Error Domain=AMSErrorDomain Code=301 "Invalid Status Code" UserInfo={NSLocalizedDescription=Invalid Status Code, AMSURL=https://mzstorekit-sb.itunes.apple.com/inApps/v1/history?REDACTED, AMSStatusCode=404, AMSServerPayload={ errorCode = 4040003; errorMessage = "App not found."; okButtonString = OK;}, NSLocalizedFailureReason=The response has an invalid status code}}, storefront-country-code=PRT, client-environment-type=Sandbox} After this error the following shows up: 🍎‼️ Error fetching offerings - Não foi possível concluir a operação. (RevenueCat.OfferingsManager.Error, erro 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 in
I’m trying to implement RevenueCAtUI in ios, but i having this error‘Cannot infer contextual base in reference to member 'basedOnSize'This is my environment:-Mac Monterey 12.6-Xcode 14.1-Swift 5.7.1-RevenueCAT 4.26.0 Any Help, advise is welcome, thank you team.
I just finished setting up revenuecat with firebase as per documentation. I got a firebase function that is supposed to check if a user is premium via claims. I also setup the emulators accordingly, i think. I imported the extension as well and if needed i can give the firebase.json.No trace of claims show up in either of these results called in the function after the user successfully subscribed: ```ts const tokenResult = await admin.auth().verifyIdToken(idToken); if (idToken) { functions.logger.info("tokenResult: ", tokenResult); admin.auth().getUser(tokenResult.uid).then((user) => { functions.logger.info("user: ", user); });```All i get is the usual firebase auth data. It’s also not writing anything to the firestore emulator. Can anybody help me figure out what am i doing wrong?
My app is built in Flutter. As suggested by the revenuecat documentation, I’m redirecting the users to the app store to redeem offer code.In some tests I made, the offer code was accepted by the app store but revenuecat didn’t recognize it and the user is seen as not paying.I’ve setup all the settings required bu revenuecat, including the “In-app purchase key configuration”.Not even “addPurchaserInfoUpdateListener” is called after the redemption of the offer code.
HiI have been working with the Revenue Cat Export and I am trying to understand how the billing issues detected works on the Apple Store (it appears to be different to the Play Store).The flow that I think is happening is:Customer reaches end of subscription Payment attempt is made for the next subscription period Payment fails The column Billing_Issue_at is updated for the last paid subscription row and no new row is created.Point 4 is important as it means that lines flagged as billing issues would be legitimate transactions, and not failed transactions.The customer goes into dunning for 60 days. If the customer pays a new line is added to the export If the customer doesn’t pay then nothing happens, there is no unsubscribe flag added to the export. After 60 days it can be assumed that the customer subscription has expiredIs this correct?
I wanted to pick up on this older closed ticket if that is ok.I am also running into this issue, and my offering is made of multiple packages/products like in the rc example / documentation here. I am looking for custom metadata at the product or package to be able to put the “1 MONTH” and “1 YEAR” text somewhere. Even the “SAVE 38%” should be in custom data no?Just trying to replicate the rc example here below dynamically and flexibly.What is the currently suggested way to do this?
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.