Discussion and help from anything related to RevenueCat.
Recently active
I created an app in a RevenueCat account (info@mycompany.com). However, to rapidly release in app store, I released it under my personal App Store connect account (myself@gmail.com). Since we’ve started getting paid subscriptions, I now want to transfer the app to my company’s App Store connect account (info@mycompany.com). I’ve moved the app to my company’s App Store connect account (info@mycompany.com) but I’m not sure how the RevenueCat migration would work since the RevenueCat account is already under my company’s email (info@mycompany.com) In summary:There is 1 RevenueCat account (info@mycompany.com) Initial App Store account which was used to create api keys, certificates, etc. (myself@gmail.com) Company App Store account which now has the app after I moved it. (info@mycompany.com) Should I re-create the api keys, certificates, etc. from within my company’s App Store connect account? Do I need to change the webhook urls, etc in RevenueCat? Will it affect the existing paid custom
Hey,We recently integrated Customer Center and are offering promotional offers in our when a user tries to cancel. I’m trying to evaluate the efficacy of the offer.Question 1: Is there any place to in RevCat to evaluate the efficacy/performance?Question 2: I see two ways to track promotional offer conversions, either by segmenting on the Active Subscriptions chart by “Offer Type” or by checking the “period_type" on webhooks. The question is do these track or fire, respectively, when the user converts on the promotional offer paywall, or when the promotional offer goes into effect, which could be many months from when they see the paywall? An example of the latter would be a user tries to cancel an annual with 6 months left on it, sees an offer for the next year at half off, accepts this offer, but that next year will not start for another 6 months and my not show up in the char or fire a webhook.Thanks!
Hi everyone,I'm integrating Facebook Ads with RevenueCat for ads analytics purposes and adding the Stripe Billing integration to RevenueCat.In my React Native Expo (Android app) subscription flow, users will complete the payment via the Stripe Customer Portal opened in an in-app browser. If I integrate Stripe with RevenueCat and the subscription events are successfully tracked in RevenueCat, will these Stripe-based subscription events be forwarded to Facebook Ads through RevenueCat's integration?I want to ensure that my ad campaigns can accurately track conversions from Stripe subscriptions.Thanks in advance for your support!
Your OpenApi yaml files:www.revenuecat.com/docs/redocusaurus/plugin-redoc-0.yamlwww.revenuecat.com/docs/redocusaurus/plugin-redoc-1.yamlwww.revenuecat.com/docs/redocusaurus/plugin-redoc-2.yamlwww.revenuecat.com/docs/redocusaurus/plugin-redoc-3.yamllack format specifier for integers explained in OpenAPI standard:https://spec.openapis.org/oas/v3.1.0.html#data-typesThis causes problem for Auto-generation of API layer for languages like C# (ASP.NET). E.g. in file plugin-redoc-0is a field `purchased_at` specified as:purchased_at: description: The date when the purchase was made in ms since epoch nullable: false type: integer example: 1658399423658This field is too long for integer (int32). Please specify the missing `format` attribute: `int64` into fields like this. You already closed similar issue without any explanation and reasoning. Can you please keep this opened or ideally fix it ? Thank you. PS: I am maintainer of .NET MAUI RevenueCat library https://github.com/Kebechet/Maui.Reve
Hey.I have configured Mixpanel integration on RevenueCat for tracking different purchase events. Can someone guide me, how can I set a custom property for these revenue cat purchase event - which are being tracked on Mixpanel.
In our iOS app we have a RevenueCat paywall to allow purchasing a subscription.If a user has an active subscription with account A, logs out, logs into account B, and tries to purchase a new subscription → then the following “You are currently subscribed to this” alert pops up.We want to allow the user to transfer their account if they wish. Is there any way to change the copy of this alert to mention that they’re about to transfer their account? Right now it’s very unclear that pressing “OK” will transfer their subscription.Thank you!
In my Android app I have a hard paywall and I’m getting problems with app review.Given the hard paywall there is a requirement that the user is logged in to Google Play on the device, there is no login in the app itself. App review did not like this even though I display a descriptive error when a ConfigurationError occurs, saying that they need to login to a Google account on device. They only see this as a crash/non-working app.Even worse, the app is only targeted for Sweden and thus requires a Google account set to the Swedish region. I have however opened this up to all markets just to try to get through app review but they don’t seem to want to login to the Google account I’ve provided in the Google Play console. Is there a built-in way to properly check if the user is signed in to Google Play. When they are not, is there a built in prompt for this I can use? If not, how is this usually handled?
I have a KMP app that is done except for billing. How does revenue cat handle promo codes for both Google and IOS? For marketing I plan on having 6 month free codes. We also want to offer our Beta testers 1 year free for participating. Will a separate set of codes have to be generated for IOS and google or can revenue cat create 1 pool of promo codes that will work on both platforms? It seems like this would be possible using entitlements I just don't see a way to enter a 1 time use code into the entitlements. Thanks,Kurtapa
I have added an offer to my currently Active and Approved subscription in app store connect. But after 1 day when I go to purchase my subscription, that 3-Day Free Trial does not show up.I have another subscription that does show it but that was added when I created it and before importing it into RC, thus RC imported it with all that info. So my question: How long does it take to reflect to users if you add an Introductory/Promotional offer to an existing live and approved subscription?
I’m liking the new Paywall builder a lot but I am facing several issues:When adding a product that is only configured on iOS the Paywall display seems to fail on android and some very ugly fallback Paywall is being displayed. If I remove the product and only include products working on both Platforms it works fine. The desired behavior would be just to leave out the not supported package instead of having the paywall fail completely. I tried to duplicate a paywall that I have created and wanted to attach it to a different offering. This does not seem to work, it appears that the offering of the original paywall gets duplicated as well. This is a big drawback, since I would then have to create every Paywall from scratch (I intend to have similar looking Paywalls throughout the app but displaying a different selection of products depending on the customer journey). Am I missing something here or is this not implemented yet? I could not find any place to detach the paywall from the offeri
We’re using AWS and our API is behind an API Gateway. AWS API Gateway provides API key authentication via the `x-api-key` header. Is there a way to customize the header RevenueCat uses when making webhook calls so that RevenueCat can integrate with APIs in AWS? Thanks a lot!!!Patrick
EDIT: solved, user error
Something strange has been happening over this last week. Each user who starts a free trial has it automatically cancelled due to a billing error. Event data reported by RC contains "cancel_reason": "BILLING_ERROR".The app currently looks for billing issues (via billingIssueDetectedAt in RCEntitlementInfo) and guides the user to update their App Store billing. Beyond this, to prevent revenue loss, I’ve switched to a discounted offering without a free trial while I figure out what’s going on.For context, it’s an iOS app using Purchases v3.11.1 (although this is probably not an SDK issue).Any ideas as to what’s happening here?
As you can see below, my paywall sheet comes up with a stubborn back-navigation chevron, which is non-functional. I’m using SwiftUI and my app is a document-browser based app, which I have read causes a particularly sticky nav bar. I have a hacky way to hide it, if I want to also hide the close button as well, that relies on my black-background in the hero image.Any other ideas? .sheet(isPresented: $isShowingPaywall) { PaywallView(displayCloseButton: true) .tint(.black) // horrible hack to hide back chevron but loses dismiss button as well }
Hey Everyone, The Problem: Paywall looks great, is super easy to implement, BUT seems easy to bypassThe issue is when you runContentView() .presentPaywallIfNeeded(requiredEntitlementIdentifier: "standard")you get a great UI on the iOS paywall, but the user can swipe down and go to ContentView() for free, or press the ‘close button’ x in the upper right hand corner and get to the ContentView for free. This issue was raised here a few months ago, but there does not seem to be a solution yet. An Idea of Workaround, but it’s not there yetOne way I like to add logic goes like thisif subscriptionManager.isSubscribed || subscriptionManager.isOnIntroductoryOffer { ContentView() } else { PaywallView() //But seems to have no way to send this to ContentView }above you can see that I just to the logical check myself. But the issue then is that even if I call the PaywallView() itself, you do get th
My app requires a user account login before purchasing a subscription. It allows the account owner to create, edit and share content. I only have one subscription type & it’s required to create content. I will not allow family sharing of subscriptions. It’s important the content ownership is under the user account, this allows them to edit the content across platforms (Android, IOS, Web).My question is regarding the Restore Purchases option required on IOS. I see two scenarios here:Subscription is already associated with currently logged in user - no-op: I tell the user they’re already subscribed (the SDK Purchases object should already know that). Subscription was created in user account A, and they’re logged into user account B.For scenario 2, the only useful thing I could do is remove the content owned in account A and add it to account B. This could actually be useful for my app, if the user ever losses access to their original account A, I can tell them to create a new account
I am have flutter app(ios/android), usinng purchases-flutter 4.13.0(dev), 4.12.0(prod).The error appeared 4-5 days ago, it is in prod and dev. For android - this error does not appear every time but today very often. 4-5 days ago it was workingPlatformException(10, Error performing request., {code: 10, message: Error performing request., readableErrorCode: NetworkError, readable_error_code: NetworkError, underlyingErrorMessage: Unable to resolve host "api.revenuecat.com": No address associated with hostname}, null)For iOS - I tried this code final purchaserInfo = await Purchases.getCustomerInfo();and it is never completedit is logs: [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request POST receipts[Purchases] - DEBUG: ℹ️ API request started: POST /v1/receipts[Purchases] - DEBUG: ℹ️ SKReceiptRefreshRequest finished[Purchases] - DEBUG: ℹ️ Loaded receipt from url file:///private/var/mobile/Containers/Data/Application/D1593594-6743-4414-BC41-E34FC5560BEE/StoreK
Hi team, Is there an example of a Revenuecat webhook endpoint that we can use in our backend php to fetch events data? we d'ont find a kind of information on documentation.We need a sample like this one (used on stripe) bellow : <?php// webhook.php \Stripe\Stripe::setApiKey('Your_Key'); $endpoint_secret = 'whsec_...'; $payload = @file_get_contents('php://input');$sig_header = $_SERVER['HTTP_STRIPE_SIGNATURE'];$event = null; try { $event = \Stripe\Webhook::constructEvent( $payload, $sig_header, $endpoint_secret );} catch(\UnexpectedValueException $e) { // Invalid payload echo '⚠️ Webhook error while parsing basic request.'; http_response_code(400); exit();} catch(\Stripe\Exception\SignatureVerificationException $e) { // Invalid signature echo '⚠️ Webhook error while validating signature.'; http_response_code(400); exit();} // Handle the eventswitch ($event->type) { case 'customer.subscription.created': // What to do break; case 'customer.subscriptio
In the app, I have an option to let the user change the language. This is due to my demographic not actually changing the language on their phone to match their native language.Due do this, the language itself is managed by my state system, rather than the localization of the phone or other resources. This is an issue, as there do not seem to be any options to change the localization of the paywall within the code.Will I have to ditch paywalls altogether? Or is there something I am not seeing here?
Our app is already live on the App Store. After setting up our in-app purchases (IAPs) for the first time in App Store Connect, we created a new release version and submitted it along with the IAPs for Apple’s review (with the publish setting set to manual).Our IAPs were approved last night, and our release’s status is now “Pending for Developer Release”, but when testing on RevenueCat, we are unable to fetch any offerings.Could this be due to the 24-hour waiting period, or might there be another reason?This is the example we used to test:https://github.com/RevenueCat/purchases-ios/tree/main/Examples/MagicWeatherSwiftUIThis is the error message we received:The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 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).This is the code we called:try await Purchases.shared
Im using the the new Paywall UI library for react native. I have created a paywall with a Spanish localized version. However, when testing the app on iOS with the default language set to Spanish I get the default paywall in English. I have not yet tested this on Android. Im using react native purchases and purchases-ui 7.16.1 and expo sdk 49
I have done all setup, my subscriptions are in Ready to Submit status. I have done the required configuration on revenucat as well. I tried it on my physical deviceBut still getting the below error: ERROR: 🍎‼️ Error fetching offerings - The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 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 information: https://rev.cat/why-are-offerings-empty2025-03-26 19:11:36.691266+0530 pbgo_app-Stage[97115:6434967] [error] ERROR: 😿‼️ There is an issue 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). More information: https://rev.cat/why-are-offering
The new paywall feature looks amazing! Is it possible to use with capacitor (I think not but wanted to verify) and when might it be available? Any suggestions of workarounds for the interim? Thanks!
Hi, we are trying to add a close button that has a top right alignment but couldn’t figure out the right configuration in the paywall v2 builder. We could only successfully put it on the top center but we can’t seem to figure out how to make it be placed on the right. With what components can we use to make this happen? Thanks!
I want to have some primer text before displaying the paywall, the text would change depending on whether a user has already used the trial.Given this scenario: User A logs in, starts trial and subscription, we have a hook to update our platform to reflect that the user is now premium, and then user A logs out of the app after a while.User B logs into the same device, isn’t premium so sees the primer The Google account has used the trial before, which seems to be reflected in the paywall but I don’t know how we are supposed to check that same state for our primer.This answersuggests using the entitlements, which does work but not for a new user. There is a suggestion at the bottom of that page to sync purchases but we don’t want to transfer purchasing from one user to another. Really I would just like to know what does the paywall check. Do I need to fetch all the offerings, and check all the packages to see whether the products have a freeTrial subscriptionOption?
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.