Discussion and help from anything related to RevenueCat.
Recently active
I'm not seeing my offerings show up when I try to fetch offerings through the RC Amazon SDK.The SDK is configured using AmazonConfiguration.Builder I've enabled the products in the Amazon Developer Console I've setup the Amazon Live App Testing I've added products to RevenueCat and add it to my Offering and Entitlement I've followed everything on this postEvery time I open the paywall I get: DEBUG: âšď¸ No cached Offerings, fetching from network. No errors, but no Offerings showing up either when querrying through Purchases.getSharedInstance().getOfferingsApp works fine in regular Google Play mode.Would it be possible to get step-by-step instructions on how to actually setup the Amazon SDK?
Hi,We have noticed that there are no webhooks for when a userâs billing issue gets resolved in the app store/play store. This means that currently when we are looking at user events streams we are not actually able to tell if a user still has a subscription or not until we receive either a renewal event or an expiration event. I was wondering if there is something we are missing and if there is some way to know when a billing issue has been successfully resolved.Many thanks,Lydia
We are currently testing restore purchase behavior on the Test Flight version of our app. When evoking the restore purchase behavior the app was able to locate the current subscription and unlock pro level features, but we never received a TRANSFER webhook. Are TRANSFER events available in Sandbox/Test Flight environments.Â
Hello all, i am new to the app space. I used a no code app software and I completed my app. The last part is the subscription part. The subscription is for use of the entire app. So hereâs where I need help oe guidance:Flow:-User downloads my app in Appstore or Google PlayStore.-They set up an account.-Payment wall opens and they pay.Heres the help that I need to understand: How do I update user info to show they paid so they can have access, and when they cancel, they wont have access? Do i use a webhook to accomplish this?Can anyone explain a webhook and how to use it. I think my understanding of webhooks is my missing link. So right now, i can manually update a user profile and enter âtrueâ for their entitlement. Then I can get a notification showing cancellation, then manually enter a âfalse.âThis is no problem if i have 20-40 subscribers. If I have 1000, then this is a huge problem. Can anyone share any advice or knowledge, thanks.
âIdentifying Usersâ is listed as a developer responsibility in https://docs.revenuecat.com/docs/implementation-responsibilitiesUsing appleâs CKContainer CKRecord.Id as and iOS in-app purchase identity seemed like a no-brainer...but is there a "better" method for this. I see there is identy merge behavior in RevenueCat for anonymous user ids, but does this solve the issue on its own?The app I'm developing has zero-need for a user account, other than supporting review guideline [3.1.3(b) Multiplatform Services], the use of the CKRecord.Id seems like it would be a perfect, frictionless way to achieve subscription persistence across devises, since it persists the same value across all of the users devices without bothering the user... except for the quirk - of requiring "iCloud Drive" to be enabled. Which make total sense if you are looking to save documents to iCloud. but..I donât need that part.This all feels like reinforcement of the notion that using this service in this way should not
Hey! I am being asked to put in my apple ID password every time I try and subscribe. For nearly every other app I use this is done automatically.  Can someone please point my in the right direction. Thanks
Hi there!The date range selection in the MRR movement chart does not seem to work correctly. Even if I select all times, the data of the last month is displayed.Am I doing something wrong? :)
Context:We have two different environments/backends for our appTest BE Production BETheoretically it is possible to have the same app id of users created on test vs user created on prod BE, as they are separate backends. FYI: For test env users, we use the RCat sandbox for subscriptions.Scenario:User A is a test BE user (app id: 123), has an active subscription on RCat sandbox. This can be seen on the RCat user profile by enabling the sandbox toggle. User B is created on production BE, with the same app id (app id: 123), and does NOT has any active subscription. Question:Q1: Will these two users have the same user profile on RCat (allowing to switch between them through the sandbox toggle on top), or will they both have different profiles?Q2: Will User B be able to access the sandbox subscription from user A in any way? This user is not a licensed tester.Â
We added RevenueCat to an existing application that already had in app purchases.We would like to hide some from RevenueCat as to avoid the MTR fee. Is there a way to do this?We are using RevenueCat for new In App subscriptions but would like to separate these from previously implemented purchases.
Hi, We have a scenario where a user wants to do a crossgrade within the same subscription group. i.e. move from a monthly to annual subscription. However at the moment we have an introductory offer on our annual subscription where a user pays £79.99 for the first year which run until this Saturday (26th March). I have a few questions: If a user initiates a crossgrade today (i.e. going to the managementUrl in Apple App Store and subscribing to the annual subscription) will the introductory offer work for them? From reading your blog online it says that they wont be charged for the crossgrade until their month is finished. However at this point the introductory offer will not be live anymore. So seen as they initiated the crossgrade today will they still get the introductory offer price? Can a user avail of an introductory offer if they crossgrade to a new product within the same subscription group? From reading online it seems they will only be eligible for an intro offer if they haven'
HiMy testing with Play Store sandbox always cancels due to a billing error. Sometimes at the first renewal and other times after 2 or 3.Is this intended behaviour?I see that other users are seeing this issue but with no resolution from RevenueCat. Had their subscription of  remove_ads_monthly cancelled due to a billing errorView detailStarted a subscription of  remove_ads_monthly for GBP 0.492022-03-19 1:48 PMLast opened the appIn the last dayHad their subscription of  remove_ads_monthly cancelled due to a billing error2022-03-16 11:12 AMRenewed their subscription of  remove_ads_monthly for GBP 0.492022-03-16 10:44 AMStarted a subscription of  remove_ads_monthly for GBP 0.492022-03-16 10:37 AMCreated a new alias $xxxxxxxxxxxxxxxxx2022-03-16 10:37 AM
Hi,Iâm a currently facing an issue in sandbox mode with renewal subscriptions in Android.When I purchase I get the activeSubscriptions property within the UpdatedPurchaserInfoListener(onReceived) but after some time, if I kill the app and relaunch it, the listener will return an empty activeSubscriptions.And still, after some time, killing the app again and relaunching it will give me the expected activeSubscriptions.This is happening before the subscription gets cancelled after the 6th renewal.So why do I get this empty activeSubscriptions property whereas the subscription is supposed to be active ? Itâs really annoyingThanks for helpingÂ
Iâm trying to set up Purchases on a watchOS app which has a companion iOS app.I thought I could consume a Swift package for multiple targets at the same time but as per this post on SO itâs not quite straightforward as I thought it would be.I followed Diego Carreraâs solution and added the Purchases framework in the Watch extension like this:General tab, and in Frameworks, Libraries and Embedded Content press +, select the package and press AddThis did the trick for me and on my Watch App Extension I can finally see the import Purchases option.I also added a shared singleton class to manage Purchasesâ delegate, both for the iOS and the watchOS app. There, I configure everything, set the delegate to self and retrieve the purchaser info.This is all good if I run everything on the iOS app but when I do the same on my watch, Purchases wonât work and I get no information at all:<PurchaserInfo originalApplicationVersion: (null), latestExpirationDate: (null) activeEntitlements: {}, activeS
I have an AppStore Connect âSandbox Test Userâ account with âINTERRUPTED PURCHASESâ enabled; This user is signed into the simulatorâs iCloud account (Iâm using XCode StoreKit file), however the purchase is still successfully being processed. This project is using the RevenueCat 4.0.0 swift package for integration.Does RevenueCat offer its own method to manufacture/force a failed purchase? Is there something else that must be done to flex error handling code? I plan to attempt the same as above on a physical device as soon as I regain access to my test deviceâŚÂ but is that mandatory for purchase interruption to work?
Hi there, we are currently using the RevenueCat integration with Segment which is really helpful, however we have noticed a couple of webhooks that donât trigger events to Segment, EXPIRATION and PRODUCT_CHANGE. I was wondering if there was a specific reason that these are excluded or whether this is just something that hasnât been developed yet, and if so whether it would be possible to add those? Many thanks, Lydia
Iâd like to get a better understanding of how refunds are treated with respect to the active subscription data. If someone refunds their subscription, I understand that they are excluded from the revenue data, but are they also excluded from the active/expired subscription charts?Thanks!Â
I have found testing that the line below sometimes returns false when a subscription is active. purchaserInfo.entitlements[XXXXXXXXX]?.isActiveHow can this be?Also I notice that in your quick start guide you no longer have the line purchaserInfo.entitlements[XXXXXXXXX]?.isActiveregardsPeterÂ
Hei there.I am a bit confused by the number of active subscriptions in the dashboard.There are currently 7 active subscribers, but the dashboard shows 8.It seams that this is because one of the subscribers got their subscription transfered from another subscriber.(Probably because the user logged out from his account and restored the subscription anonimously)I would expect that there are currently only 7 active subscriptions, and not 8, as the subscription was transfered from one user to another.Is this just a bug in the dashboard or are there now really 8 active subscriptions or am I just misunderstanding something? Note: What I am actually trying to do is to refund everybody that purchased the subscription as we are still in a beta test and those user accidentally did the subscription. I was able to refund 7 users, but the dashboard shows that there are 8 active subscription. Thats why I am confusedâŚÂ Thanks,Felix
Hi RevenueCatIâve got a trouble with adding webhook support to our backend, right now weâre receiving test webhook event but when we are doing parsing weâre getting such error "Converting circular structure to JSON"this error comes from library that weâre using to parse cookies (âcookie-parserâ)as an example that is what we get from your side and in the request we have a number of Circular objects references which couldnât be parsed by javascript properly, can you explain why it happens and how should we handle this {"req":{"socket":{"_pendingData":null,"_parent":null,"bytesRead":2222,"remotePort":16134,"connecting":false,"_server":"[Circular]","_hadError":false,"_paused":false,"remoteFamily":"IPv6","_events":{"error":[null,null],"end":[null,null],"close":[null,null,null]},"_bytesDispatched":0,"_writableState":{"objectMode":false,"writecb":null,"needDrain":false,"decodeStrings":false,"pendingcb":0,"bufferedRequestCount":0,"finished":false,"defaultEncoding":"utf8","prefinished":false,"e
My iOS SwiftUI app has 2 subscription options: Individual and Family. The level of access is the same, the only difference is that Family enables family sharing.Because the package length cannot be the same for multiple packages, I worked around it by having the Individual subscription on a RC standard Annual length, and Family subscription on a custom length (for more on that, see my other post).Everything seemed to work fine, but recently (RC update?) I started having the following problem with the Family subscription.When a user purchases a subscription, I expect the following subscriptionActive value to update, as per RC documentation and sample apps:class UserViewModel: NSObject, ObservableObject {  static let shared = UserViewModel() @Published var subscriptionActive: Bool = false @Published var customerInfo: CustomerInfo? {   didSet {    subscriptionActive = customerInfo?.entitlements[Constants.entitlementID]?.isActive == true   } }I could just check if subscriptio
 I have followed the instructions as in docs and my revenue account is connected to Google Play service. I have configured the product, entitlements and offer for my product. When I try to integrate the application, it gives an error message.- ERROR: đ¤âźď¸ Error fetching offerings - PurchasesError(code=ConfigurationError, underlyingErrorMessage=There's a problem with your configuration. There are no products registered in the RevenueCat dashboard for your offerings.I have configured the product, offer and entitlement as described in the documents. How to troubleshoot this problem?Â
Hi, I updated the $displayName and $email user attributes using the REST API for all my users. However when I go to the customer view on the dashboard those two fields are displaying empty text fields (screenshot below). I also used the REST API to GET the latest user info and the response says that the attributes have been set (snippet of response below). How do I get this data to show up on the Customer dashboard? This info is vital to our customer support team.  Â
Hi. There are groups in my app and the groups have a couple of members. If one of them pays for subscription, I change the group status and all the members in group can access premium contents. Can I initialize the âgroup idâ instead of user id (firebase auth uid) ? Is it a good practice? Do I have to use aliases?My code: await Purchases.setup(_api_key, appUserId: group.id); Â
We are making an app(both iOS and Android) that will containing thousands of in-app purchases and have some questions regarding the use of RevenueCat:Is there a limit on how many entitlements we can create in RC? Is there an api for adding and managing products and entitlements?
Hi Everyone,I just started using revenue cat for my project, yesterday I migrated my old user data and total customers at the end of the day was around 4 thousand, but in the morning I saw a surge in new customers by 700, though my active subsscriptions and active trials count was the same. Does revenue cat takes time to process some receipts and add the customers later on ? Is there any way I can find out which customers were added during a given time window/ daily basis?
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.