Discussion and help from anything related to RevenueCat.
Recently active
As can be seen in the screenshot attached, some of the “trial start”s are listed as “unknown” in the country breakdown. We didn’t have that issue before, suddenly it started on March 3rd. We didn’t had a new release or a change in the IAPs etc. The thing is, when a trial is converted to a subscription the country data is available again in the “Active Subscription” charts. How can I fix that?I appreciate any help,Thanks in advance
i cannot find the place in revenucat to see how many sales are on android and how many sales are in IOS.
Hi,I’m trying to Send Stripe tokens to RevenueCat and it doesn’t work, my doubt is the field "app_user_id", in which I wrote the id of the customer of Stripe, e.g. “cus_wefi”. In RC i don’t have any customer yet, i need to create it before? Because the doc of receipt says “Records a purchase for a user from iOS, Android, or Stripe and will create a user if they don't already exist.” Also, in the field “fetch_token” I wrote the id of the sub: e.g. “sub_wefou”,Thank you
Hey everyone,I am struggling how to unlock premium content after successful transaction. Based on docs and github a came up with : Purchases.shared.getCustomerInfo { (info, error) in guard let info = info, error == nil else { return } if info.entitlements.all["allaccess"]?.isActive == true{ //pro content here } else { //free content } } }but it throws errors at does not seems like to work.I have RC 4.0.0 Thanks for helping:)
Current situationMy app is currently on IOS and Android. The IAP work correctly. Im under Flutter.I used to purchase by requesting the product identifier (see below):await Purchases.purchaseProduct(<product identifier>, type: PurchaseType.inapp); Problem with new situation:Now, I have several offering with multiple packages in RevenueCat.So, I need to fetch the offering from RevenueCat when the app starts:Offerings offerings = await Purchases.getOfferings(); Look at the Response, there is an error on the price shown by RevenueCat: I end up with a different price sent by RevenueCat for the same product identifier : Price on Apple Connect: 2.99 EUR (Tier 3) Price on Smartphone in Production: 2.99 EUR Price on Response from RevenueCat SDK: 3.49 EUR (ERROR)The issue is only with IOS. I checked Apple Connect, the price is correct (see below) : I checked the purchase on Production smartphone, the price is correct (see below) : The error is only on RevenueCat when I fetch the offering.
Entitlement “pro” = will active app and allow users to access basic feature in the user interfaceEntitlement “cloud_store” = allow users to store data to our cloud server When users open our app (device A), there is no sign in form. The user can purchase a subscription which grants them the entitlement “pro”. As a result of no login process I know that the user will be an anonymous user. I also know that any other device (device B) can restore as long as they are on . I have 1 section (feature) in my app which allows users to store data to our server. For this I plan to require users to login to sync to our server. Once a user login they can purchase a different entitlement “cloud_store” My question: will I be able to allow 1 users with multiple devices, (device A: logged in) (device B: not logged in) to share entitlement “pro” and (device A) would only have access to entitlement “cloud_store” I guest I alike to keep an alliance with anonymous users and signed in users. And If signed
Hey guys,We are having difficulties with transaction_id and original_transaction_id fields which can be accessed from the SDK. Sometimes both of these fields have values and sometimes original_transaction_id is simply empty. When we take a look at the events which are being send via web hooks, we can actually see that original_transaction_id is not empty.Can you please tell us why is this happening?Also, I would like to know if there is a rule which is dictating the behavior where original_transaction_id would be empty after successful purchase?Kind regards,Aleksandar
Hello, I have a React Native iOS project where I am incorporating RevenueCat Consumable in app purchases. We noticed that there is an edge case with the purchasePackage flow described in the documentation here: https://docs.revenuecat.com/docs/making-purchases try { console.log(`Making purchase`); await Purchases.purchasePackage(productPackage); console.log(`Purchase successful`); } catch (error) { if (error.userCancelled) { // do nothing } else { // do error logic } }If there is an internet disruption or the app crashes during the execution of that purchasePackage promise (after the payment is authorized in the payment sheet but before the promise resolves), the payment can get in a weird state where it seems to be recorded but not recognized by RevenueCat. We do not get a web hook until either the user tries to purchase the product again or the user successfully purch
Hey boys and girls! I’m quite new to app development and just launched my first app on the app stores with the help of Revenuecat for offering in-app purchases. I’m located in the Netherlands and noticed that Maestro cards (debit cards) are not available for the in-app purchase, does anyone know why so and how I’m able to fix it? Thanks for taking the time to read this! Hope someone can help me.
I am attempting to keep my database up to date with my users’ subscription states via RevenueCat’s webhooks. When my server receives an event from RC, it extracts the `app_user_id` and immediately hits the /subscribers API endpoint to fetch the new subscription info for that user and save it to my database. This seems to be working for new subscriptions, renewals, and cancellations.I am running into an issue with the `TRANSFER` event type, however. I can trigger this event by logging out one of my users, logging into a new account, and restoring purchases. The Apple ID remains the same throughout, and I correctly log in/out to the Purchases SDK at the correct times, so RC (correctly) transfers the entitlements over to the new user ID.I receive the `TRANSFER` event via webhook, and handle it as a special case. Instead of simply extracting and refreshing the `app_user_id` (which isn’t present), I check the user IDs in `transferred_from` and `transferred_to`. The user IDs are then sent as
Hi support,I came across a few users that seem to be missing the EXPIRATION calls on which we rely to correctly cancel premium subscriptions. I leave below an example, a capture taken while writing: As you can see this is a user that should've expired on 12.01.2021 after failing to renew the subscription, but the premium status (top-right corner) is also saying the user renewed the subscription. That looks to me like something got lost on the way. The above raises some questions that I hope you can help with:to confirm this is normal behavior, or expected, a known issue; if not, why does this happen? what percentage of missing EXPIRATION (or other webhooks) should I expect? In the past weeks I counted 10%; Thank you
Hi, I have not been able to get family sharing working even though I have enabled all family sharing options on the device and in the App Store. Currently what I have been trying1. Invite family member2. Share app to family member3. Wait several hours4. Ask them to restore purchase using the Purchases.restoreTransactions() from the react-native SDK The results always say ‘No purchases restored’ I noticed that in the Restore Behavior under Project Settings > General that my account is under Alias (Legacy) rather than Transfer Purchase. I am concerned with changing the Restore Behavior from Alias (Legacy) to Transfer Purchase since there is a label saying this is not reversible. Is this causing the issue? Do you have any idea how I can resolve this? Thank you
We regularly offer Promotional Entitlements to users, but they sometimes don’t work, particularly on iOS. We ask people to refresh their status through opening their pro page and killing and restarting their app. I can’t reproduce it on my phone. Are there some known bugs around Promotional Entitlements?
We have a single entitlement in our project that can be backed by a few different subscriptions (iOS / Android / Web). Cancellation flow works and I can see the hooks being delivered to RevenueCat but I’d like to be able to differentiate between states of “unsubscribed but subscription has not expired” (ie good until end of month) and “unsubscribed” (ie no entitlement). Is there a way to do this? Thanks!
Hello!We are planning to use the "block restore" configuration on Revenue Cat for our iOS application and wanted to make sure (1) it's the right option for us given our business logic and (2) if we use it, can/should we avoid RC anonymous IDs altogether since we require a user to have an account and thus internal UUID (app user id) in our application before subscribing? We want to have a single source of truth for identifying a user, and to avoid having lots of anonymous IDs and the network calls to RC API that would unnecessarily create them (if possible).1. Our application requires users to create an account in order to subscribe, and we want to prevent the sharing of a subscription linked to a single Apple ID across multiple user accounts / internal app_user_ids that live in our application database. This makes it seem like the "block restore" option is the way for us to go since that should prevent both (a) the sharing of an Apple ID’s subscription from User A to User B (where both
I have a macOS app which sells for $24.99 (for the app itself – no subscription involved). I have a tvOS app which sells for $4.99 (for the app itself – no subscription involved). They both have IAPs which sell for between $2.99 and $16.99 on both macOS and tvOS. They are effectively the same subscription for real-time weather data and cost the same on either platform. I want to sell the apps separately, but if they subscribe in one, I want the other to be able to recognize and use the subscription. How can I make this works since there is no “universal” app. The macOS and tvOS versions must be purchased separately, but I want them to share IAPs.
Hi there!I am using this function to purchase products or subscriptions: purchaseProductWith(activity, skuDetails, onError, onSuccess) and I have the following use case: I am trying to purchase a subscription, then immediately after the payment is made, I lose my internet connection. In purchaseProductWith I receive onError → NetworkError, which is ok. Google also sends me an email with the receipt. Then once the internet connection is stable, I am not receiving the Product object from purchaseProductWith → onSuccess, in fact, this method is no longer triggered. If I try to buy again the same subscription it says that I am already subscribed, which is also correct, I already payed for the subscription. The problem is that since we don’t receive back the Product object from purchaseProductWith, we have nothing to send to our server, the server needs this object to validate it with google and to grant the user the necessary permissions to unlock features. We have a lot of clients who hav
I am attempting to add a Stripe product to my project. The documentation specifies that you associate the stripe product id with the Stripe product in your project, but the actual interface seems to be looking for a Stripe Webhook Secret. Is there documentation on the latter?
We have some requests to support purchasing our app subscription through non-Google Play stores (e.g., https://auroraoss.com/). Curious if that’s something RevenueCat would ever support?
On the Github page it seems the createAlias() function will be removed from RC SDK 5.0.Why? We use this function in our app to let users restore their purchase when switching phones or accounts. Without this function we would need to do this manually for every user via email customer support. Ofcourse this does not scale.Is there a alternative to createAlias() in the 5.0 SDK?
I currently use Nami Paywall for in app purchases on Android and iOS only. I want to move to RevenueCat. I would like to know if I need to sync purchases receipts or import receipts into RevenueCat? I am not sure if Nami allows us to export data however I like to know if1.) it’s required2.) what are the benefits of import the data to RevenueCat3.) scenes all of my users that made in app purchases are iOS and Android users (devices) would RevenueCat be able to pull in all of the data as far as previous sell history, trend information, active users when every a user launches the new app version of the app for the first time. Can someone please explain to me the most important things that I need to do. basically I just want to allow my existing users that have active subscription in the apple App Store and google play store continue to use there subscriptions as seamless as possible. If possible I would love to have there purchase history once they launch the app for the first time. La
Currently, the paywall in our app is only shown to users who are logged in, so we do not need to deal with anonymous users. However, we are introducing Apple offer codes and we want to support the URLs with the offer code embedded. I am hoping this flow will work: User clicks on the URL with the Apple offer code embedded User redeems the code User downloads our app and registers with us, we create a user ID for them We call setup from the Flutter SDK with the user ID At this point, if we make a call to GET /subscribers/app_user_id with the new user ID, will it return the entitlement that was granted using the offer code? Will setup have aliased the anonymous ID with our new user ID? Thank you very much for your help!
Hello,My code below gets the following build errors.None of the following functions can be called with the arguments supplied.Cannot infer a type for this parameter. Please specify it explicitly.I am copying from the Android set up guide and can’t see what I am doing wrong. Any guidance would be greatly appreciated. fun attemptPurchase(inActivity: Activity, forPackage: Package) { Purchases.sharedInstance.purchasePackage(inActivity, forPackage, onError = { error, userCancelled -> println("Error ${error.localizedMessage}") }, onSuccess = { product, customerInfo -> } )}
Does anyone know how to clear these issues/errors from the swift package?The don’t appear to be obstructing anything, and only appeared when migrating to the 4.0 SPM, the project still build/runs (seemingly) without issue.
If a user redeemed an offer code that gives them a 1-year free trial and then upgrades their subscription (through purchase or redeem another offer code) when the offer/promo is still active, what will happen to their previous offer? Do they get a refund?
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.