Get help with anything related to RevenueCat.
Recently active
Hello!I have a subscription with grace period 14 days, if this subscription is expired and now on grace period i get this JSON:[app1800_sub_personal_monthly] => Array ( [billing_issues_detected_at] => 2021-08-27T08:29:54Z [expires_date] => 2021-09-12T08:29:50Z [grace_period_expires_date] => 2021-09-12T08:29:50Z [is_sandbox] => [original_purchase_date] => 2021-07-27T08:29:52Z [ownership_type] => PURCHASED [period_type] => normal [purchase_date] => 2021-07-27T08:29:50Z [store] => app_store [unsubscribe_detected_at] => )Not so long ago, these fields were different and I use field “expires_date” to understand that the subscription expired and he
Hi guys! I do subscriptions for my app. A have 2 entitlements (Standard, Premium). And I have 3 periods for every entitlement (1 month, 6 month, 1 year). There are 6 products at all. As I understand, a can't use default packages for this, and I need to create custom package for every product? For example: place “1 month standard” and “1 month advanced” in to default MONTHLY package. Because now, I created 6 custom packages. Am I doing everything right? Can you give me some details about this please.
The question is for an iOS app - My setup is that I am using my backend to give access to “Pro” features through the API and I am using Revenue cat to process the payment. Sign up comes after the purchase is made and it is optional to the user. I want to understand how I should give access from the backend to users who are making a purchase but do not sign up? This approach should also work when the user comes back and restores purchase after uninstalling the app.
I am trying to look at when users start a free trial cancel the subscription. I exported a customer list from RevenueCat and have been looking at the data in Excel. In Excel the columns that I am looking at are trial_opt_out_at and trial_start_at. Does anyone know how to convert the values in these columns to dates from the numbers that they are set. Currently the values in these columns look like - 1629693003000.
HI there! I’m hoping you will able to help. Here is the error Item Unavailable, id the correct, in the google account all is also ok. It’s closed testing, and also testers, devices and so on is ok. The app got prices from the cat, but still it doesn’t work. We also can’t make a test purchase via cat and didn’t seen any tries in the sandbox dashboard. Maybe someone know what to do nextThanks in advance
We’re currently migrating to RevenueCat. In the past we had many products on Android/iOS mainly for pricing tests where user subscribed to. We don’t offer these products anymore but of course these users should still have access to the PRO features.Do we still need to add all these legacy products (subscriptions) in RevenueCat too, so we can find out they have a valid subscription? Or do we only have to set up the products that we actually want offer in the app?And will this affect analytics somehow when products are not added?BestJanis
Here is the Setup: 1. App is a race car game where user has different cars they build. 2. User can buy new parts for each of their cars. 3. Upgrades are onetime, non-expiring purchases. 4. One upgrade is for one car only. 4.a. if user wants to upgrade tires for two cars...the user makes two purchases of product ID "nrp_tire_lvl3_199" User Scenario: 1. User is managing two cars (A, B, and C).2. User wants to upgrade tires on car B.3. User makes purchase of "nrp_tire_lvl3_199"4. Our server receives the Web hook notification of the purchase. ??? How can we tell the server which of the User's cars to apply the upgrade to? How can the Server know to apply the upgrade to Car B?
Ok, so I read and think I understand how the Restore Settings work, but have some further clarification settings. We’re in the process of migrating to a new backend where all users will need to sign up again with a new system where they will get user IDs. These user IDs are the ones that will not be recycled changed. We don’t want a scenario where users can log out of their new accounts, create a new one, restore subscriptions (mint a new subscriber), then give those credentials to someone else or what have you. That’s why we want to have the Block Restores enabled, but we aren’t sure how to handle the migration process from the old version of our app to the new one. What I was thinking - first, we don’t enable this Block Restores Setting and let everyone migrate to the new login system, restore purchases if they need. Our old version is also using the old SDK and we aren’t calling reset user ID anywhere - what will happen when we upgrade to the new SDK and haven’t called login yet? W
Hi,Do I need to implement anything in the RevenueCat setup or within my app to handle the grace period if I enable it?
Hi guys, how can I cancel an Apple subscription for existing users? We are switching to free business model and I need to do it somehow. what is the easiest way? Best regards,Alex
I’ve got a question about values that are dumped out via the S3 ETL, and how it relates to taxation.Suppose we have a subscription with a price set as $10 USD in the Play store. The Play Store seems to set regional prices based on current exchange rates and local taxes. Say, for example, that same $10 USD now shows in Australia as $15.49 AUS (the conversion rate, plus 10% tax, plus “country-specific pricing patterns”, according to Google). If we had a purchase go through in Australia, what can we expect to see in the data on S3, specifically for price_in_purchased_currency? I’d expect the price_in_usd to be 10.00, and the purchased_currency be AUS, but what will the price_in_purchased_currency be? Will the price_in_purchased_currency be the final price that was charged to the customer, or will it exclude the tax? Is the behaviour the same for purchases made through the App Store?We’re trying to sort a few things out before we have actual purchases flowing through. Unfortunately
As a product designer, I’m finding a bit difficult to get evidence and examples online of the checkout process in order to create the necessary user flows for the project I’m currently working on… My team is currently considering using Apple Pay, Stripe and Google Pay as payment alternatives for the Flutter app we are building, and I would like to see the checkout process sequence, examples and any specific UI styling needed in order to provide everything the dev team needs to build it into the app. It would be good to have some references and/or resources for designers that are not GitHub experts or that can’t create the sample project by themselves.Thanks!
Is there a reason, why you removed the total revenue chart in the new revenue charts? I know it is shown, when you hover it, but that makes the user experience way worse. We also used a screenshot of this chart to report to our investors. That is not possible anymore. I would suggest, that you bring it back as it was, or give the possibility to at least see it. This change decreased usability in my opinion.
I am looking into how to support discounted subscriptions in our app similar to how we provide them in our web based product. We have a few different scenarios that I am looking to support, specifically:Giving an introductory offer of 20% off for 3 months based on signup criteria Giving an introductory offer of 20% off for 6 months based on different signup criteria Giving a free month of a subscriptionI am looking at https://docs.revenuecat.com/docs/ios-subscription-offers to try to figure out the best option for me. It looks like Introductory Offers is what we want for the first two bullet points since we can automatically apply it in-app at initial purchase time without the customer needing to enter an offer code. However, the notes beside intro offers says “SDK applies offer to purchases automatically”, does that mean I can’t control which of the two intro prices I offer? Is that a misunderstanding of intro offers on my part perhaps? Basically, based on server side information, I w
I’m using react native to fetch the packages and looking at the logs: const offerings = await Purchases.getOfferings(); const packages = offerings.all["default"].availablePackages; console.log("Paywall Currency", packages[0].product.currency_code)Looking at the logs, the products inside the package has the price in USD. But the phone I am running the code on is set to Australia for the region of the account. I went to Settings > Account name > Media & Purchases > Country Region > Set to AustraliaAm I doing something wrong here?
I have a question about how RevenueCat outputs the price fields (price, price_in_purchased_currency) with actions that have proration. I can think of two scenarios where proration comes into effect:Android upgrades with IMMEDIATE_WITH_TIME_PRORATION iOS upgradesWhen these events occur we receive a webhook with details about the change. Does this webhook contain the full price of the new plan, or the prorated price? I am also wondering about the transactions that get exported into S3, but I’m guessing that answer is the same as the webhooks.As an example, say a users is paying $50 per month for a subscription. Half way through the billing period they upgrade to a subscription that is $100 per month. Is the `price` in the webhook going to be $75 (assuming the renewal date remains the same) or $100 (if it reports the full price of the new plan)? I’ve tried to test this out myself in Sandbox, but with the super quick renewal periods, it’s hard to say for certain what is going on.A similar
Hey RevenueCat community,I’d like to ask for some guidance related to app monetization. Is it mandatory for a subscription-based app to provide free functionality? Or an app could be paid-only with a limited free trial after which an app’s functionality is not accessible?
Testing in Sandbox we’ve encountered the following issue: Upon making a purchase on Android we see the following behavior:Play Store (on device) - Gets success confirmation PlayStore console order manager shows the order Purchase shows up on PlaySore order manager RevenueCat Dashboard has a record of that exact purchase (matching transaction_id) However there’s no record of webhook that’s being triggered for INITIAL_PURCHASE (see image above)Is this an issue with RevenueCat SDK or the RevenueCat service?Please advise
Hi RevCat team and community Would love some guidance around LTV calculations in the experiments feature. We’ve been doing price testing of two price points for 2+ months now, and every day we check the experiments feature it is different, wild swings between variant A and B. I would have thought now we have been through 2 monthly renewal cycles we would start to see a trend or more signal, but it is different recommendation each day. Is there a recommended time period to run an experiment? Or someone on the RevCat team that can help us analysis the results or setup our experiment differently? Thanks - love the idea behind the feature - just looking for best way to utilize it. Cheers
I am a beginner at revenuecat, i am experiencing a problem, the stats on dashboard page are not correct, the active subscription count on AppStore connect and revenue cat are not correct.Am i doing something wrong?
Hello.I was testing this service using 3 my app user account.Then I have received 8 messages as 1 order below.There are 3 app_user_ids in the messages.But the original_transaction_ids are same. Why the app_user_id would be different?Are the messages correct? no,created_at,log,1,2021-08-06 11:54:59,"{""event_timestamp_ms"": 1628250897569, ""product_id"": ""*.month6a"", ""period_type"": ""NORMAL"", ""purchased_at_ms"": 1628250893513, ""expiration_at_ms"": 1628251907634, ""environment"": ""SANDBOX"", ""entitlement_id"": null, ""entitlement_ids"": [""Subscriptions""], ""presented_offering_id"": null, ""transaction_id"": ""GPA.****-****-****-54738"", ""original_transaction_id"": ""GPA.****-****-****-54738"", ""is_family_share"": false, ""app_user_id"": ""056b***"", ""aliases"": [""056b***""], ""original_app_user_id"": ""056b***"", ""currency"": ""JPY"", ""price"": 152.901, ""price_in_purchased_currency"": 16800.0, ""subscriber_attributes"": {}, ""store"": ""PLAY_STORE"", ""takehome_percenta
There is a way to know if the subscription has expired without doing an operation like Purchases.getPurchaserInfo ()I understand that Purchases.addPurchaserInfoUpdateListener detects when a purchase is made, or whatever but not when a subscription expires.I use Flutter.If you have any advice on how to do it I would be grateful.Thanks
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!!
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
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.