Discussion and help from anything related to RevenueCat.
Recently active
Hello - I’ve tried to summarise our problem as concisely as possible below: Problem: How do we understand promotion code redemption & user behaviour using RevenueCat?Context: We recently ran a promotion using codes generated in App Store Connect. Users who redeemed these codes received two months free on our product. The promotion is now complete and we want to understand what behaviour was like for this cohort. e.g. How many of these users continued with us or did they churn? What’s their LTV? etc. Details: Within App Store Connect Reporting we can identify users who redeemed a code and see their ‘Subscriber ID’. Within RevenueCat we then have no method of tying users together i.e. there appears to be no common identifier across the two systems for a given user. Additionally it doesn’t appear that promotion codes sync across the two platforms i.e. when viewing an individual customer in RC, I can’t see within their history if they have utilised a promo code. Any advice appreciated
Hi there,→ I am purchase subscription with app userId 1 and using sandbox id 1→ Now I am log out from the app and login with app userId 2 and using sandbox id 2 with same deviceIn time of second user purchase I am getting [Error: There is already another active subscriber using the same receipt.]. I understood that If I try with same sandbox id then it happens but with different sandbox ids don’t why it’s happen.
Hello RevenueCat Team,I am currently utilizing RevenueCat's webhooks to synchronize purchase events with our backend system, and for the most part, this integration has been successful. However, we've encountered a specific issue with the "TRANSFER" event webhook, which does not seem to trigger as expected.Despite our efforts, the "TRANSFER" event webhook never gets called automatically in our setup. Oddly enough, when I manually initiate a transfer through the RevenueCat dashboard, the webhook does trigger and operates as intended. This discrepancy leads me to wonder if the problem might be related to our reliance on the legacy transfer behavior, specifically the "Share between App User IDs (legacy)" feature.Could this legacy approach be the reason why the "TRANSFER" event is not automatically triggering the webhook? If so, do you have any recommendations on how to resolve this issue or any alternative approaches we should consider to ensure seamless synchronization for transfer event
I have followed this guide:https://www.revenuecat.com/docs/apple-server-notificationsto try and setup the store server notifications, but whenever navigating to App Information > App Store Server Notifications, I do not see this - “App Store Server Notifications” per instruction steps 3 and 4. Am I missing something? I do not see anywhere I could enter the URL.
Hi everyone, I am trying to figure out the best solution to design for my new feature. I want to offer multiple expansion packs that pretty much share the same price, however I would really like to be able to use the entitlements feature to manage user access. My issue is that it seems like products map directly to an entitlement? is there any way for the same product to grant access to different entitlements? What alternatives would I have to avoid having to setup a new product on apple / google app stores and stripe for every single expansion pack?
Hi there!Can you please clarify the case of using RC with the Server-Side observer mode?Prerequisites:Apple App Store Server Notification is configured Google Real-Time Developer Notifications is configured Webhooks are configuredThe happy-path looks like:Our app (Android/iOS) completes a purchase for a new user and gets the fetch token/receipt Our app sends all needed data (app_user_id, fetch_token, price/currency, product_id) to our backend Our backend invokes POST /v1/receipts Our webhook receives the initial_purchase eventWhat will happen if our backend doesn't invoke POST /v1/receipts due to a network error or internal error:Will the initial_purchase event be raised anyway for that new user? Will any future events be automatically detected for that user? Should we guarantee to invoke POST /v1/receipts to ensure correct behavior?
Hello, I wanted to change the paywall display settings from the Paywall editor I wanted to include introductory offer values as well as variable preview values I had previously selected. When I select and save the second box (for introductory offer values ), it shows up on the preview but when refresh the page, the selection is gone and not reflected in the simulator. This behavior is same for both Chrome and Safari.
Love the new paywalls and here are some suggestions for improvements. This is paywall “Bengal” on an iPhone 15 Pro using UIKit.Please hide status bar. Big gap between header image and title. Footer font too big. Can you just say “Terms”, “Privacy”, and optional “Restore”? Please hide thumb bar.HTH
I’m building an app using Flutterflow, Firebase Authentication and RevenueCat.Authentication is optional and RevenueCat App Store subscriptions are optional with a freemium model.After a user has upgraded to a premium subscription, if they subsequently logout or login from the app (firebase auth) their RevenueCat entitlement is “forgotten”. When the user tries to subscribe again, their entitlement is “re-discovered”.Is this intended behaviour? I swear it wasn’t doing this a few days ago, but perhaps I didn't notice. I’d prefer for the RevenueCat entitlements and Firebase Authentication to be independent.I think this is related to anonymous app user IDs.https://www.revenuecat.com/docs/user-idsIs there anything I could have changed in my flutterflow setup that would trigger Flutterflow to change what kind of ID is used with Revenuecat? i.e. change from always anonymous to a mix of app IDs and anonymous? or vice versa?
Hello,I am using webhooks to store all webhook events that RC sends me in a postgres database. I noticed on the webhook documentation that I should be requesting the `/subscriber` endpoint on every subscription webhook event that comes in in order to “sync” the state of the database to the RC api source of truth. My question is - from a server, should I be using the apple API key or the google API key when requesting subscriber attributes from my server? My working assumption is that I can use this api to ultimately tell if a user is subscribed, so I am going to use that to unlock subscriptions / determine backend authorization for certain endpoints. Is this the correct approach here? If so, which key should I be using or does it not matter from the server (will using the apple and google api keys against the /subscriber endpoint return the same data?)Another question I have is about latency. Will the webhook event come in before the revenue cat api is updated? Also is this a bad appro
Hey, I get an error when I paste the JSON file in the Android app config.. Do you have any ideas where I can read how to troubleshoot? they don’t have anything on their website (or I can’t find it)
Hi,I have set up my app, with an auto-renewing subscription in a closed test track on Play Store with myself as License tester, and then downloaded the app on my test device. All subscriptions features seems to work fine, I can subscribe, cancel a subscription, restore a subscription and all actions are reflected in RC backend in the sandbox overview. But I am curious about the options one finds in Google Play Store>Configuration>License test page. I choose the ERROR_CONTACTING_SERVER as response and saved, my expectation was to get an error in the app when buying a new subscription. But no the purchase of a new subscription went well. So my question is how are these response options on the License test page linked to the RC SDK? Regards Tomas
Does anyone know if it's possible to get a shadow on the paywall footer like in their web editor? I am not sure if I am missing something? Looking through the paywall source code, it does not look like a shadow is applied anywhere?
What happens to the active subscriber’s entitlement when i remove the product from sale on my appstore connect. ? Scenario : A yearly subscriber having 10months left and i remove the yearly product from sale on appstore connect.
We are trying to show an alert if the user is not eligible for the trial/offer on our paywall. It’s very important we test that for new users this alert does not show, because otherwise we’re going to start blocking valid payments. We tried testing this on Testflight using a sandbox account. Our sandbox user presses Reset Eligibility to clear out any old uses of the trials/offers.When we carry out this test, the status comes back “Unknown”. Is this common when using a sandbox tester? Are there any obvious reasons this could be? Is there a way of testing the new user path (i.e. one that has just signed up and has not taken out any trials) without having to repeatedly create new users or something? We’re using react-native-purchases: 4.5.2
Hi guysI using Revunuecat to integrate subscription purchasing and daily payment functions.It works on iphone but not on android.Please look at my code section.Which product_id should be the same as the one currently in the rectangular region?Please let me know what I should set the product_id to in my code.Thanks
Hi there,I have completed the integration to my Flutter project. I published my App and test it using real payment. The end result confuses me. Could anyone understand how it works?This is the record on my iPhone, the subscription is 6 month expired in 23rd Sept 2023The screenshot from my iPhone above is customer with ID 14, the records for customer 14 is shown below. In addition, I have the “Renewal Receipts” checked on my iPhone but I did not see any related purchases in the Purchase History. In the Customer List, I have NO customer in the Active List, 2 customers in the Sandbox List, 0 customer in the Non-subscriber List, and 1 customer in the Expired List as shown above. This is the transaction shown in the Customer Profile This is the continuous section from the previous Customer Profile. The screenshot from iPhone shows the subscription to the product “bacabuku_9540_6_month”, but it did not show the subscription to product “bacabuku_1540_1_m”. Meanwhile, the customer profile fro
How can I search for a user, by my custom App User ID, which gets set after user logs in?
Hello, I would like to know if you can help me.I am developing an app in react native, in which my authentication method is through oauth. Next, I register the user in revenueCat using the login method by passing the unique user uuid.Currently, I am experiencing two issues:The first one is regarding virtual cards.I have followed all the steps described in the guide, but from the user account when trying to make a subscription purchase, only my real cards linked to my play store account appear. I have been reading that perhaps this is what is causing the error and I should use the sandbox with a test user without real cards linked, which leads me to the second question. To test the functionality from user “A”, I purchased the monthly subscription. everything worked fine, but from the same device when switching to user account “B”, even changing the play store account, when trying to make a subscription purchase, the error "The product is already active for this user" appears. I have tri
Right now I have a webhook setup to know if a user is going through a downgrade in the near future. But currently revenuecat does not send the PRODUCT_CHANGE notification when the user changes their product instead sends it when the actual downgrade happens and the user is charged but it’s not supposed to be this way according to documentation, where it says the PRODUCT_CHANGE notification will come through whenever the user requests for a change and a INITIAL_PURCHASE event will come through when the actual change takes place
Hi! We are migrating a legacy paid RN app to be subscription-based and need a way to “grandfather” in existing users (who bought the app before adding subscriptions/RevenueCat).These are anonymous users (no login) so can’t link legacy identifiers.RevenueCat provides this (Objective-C based) tutorial - https://www.revenuecat.com/blog/converting-a-paid-ios-app-to-subscriptions but does anyone know of React Native-based example (that will work on both iOS and Android)? Thanks in advance!
We would like to use the new Flutter Paywall in the Form of a footer in our app. Additionally we would like to customize the Paywall’s font and border of the CTA button. When can we expect that to be added? Best regards ✌️
Hello, I’m trying to get App Store Promotions for In-App Purchases working through RevenueCat. I feel like I must be missing a permission or some important setup call somewhere, because I just can’t seem to get the delegate purchases method containing readyForPromotedProduct to ever be called when opening an App Store Promotions link (e.g. itms-services://?action=purchaseIntent&bundleId=<BUNDLE_ID_HERE>&productIdentifier=<PRODUCT_ID_HERE>). I’ve confirmed that the normal purchases method (func purchases(_ purchases: Purchases, receivedUpdated customerInfo: CustomerInfo)) gets called every start, but not the one I want. I’ve tried all the following sources:RevenueCat documentation for readyForPromotedProduct Two different RevenueCat examples (MockPurchasesDelegate.swift, PurchasesDelegateHandler.swift) The following community threads: Here is my Swift code: final class PurchasesDelegateHandler: NSObject, Sendable { static let shared = PurchasesDelegateHandler()} e
This is very strange and I can’t believe it happened. I am testing a purchase with AppUserID 56 as shown in the log file below (indicated as /v1/subscribers/56/offerings). I made a purchase and got a message indicating that “There is already another active subscriber using the same receipt” (as shown below). When I check RC dashboard, it shows that the purchase is made by AppUserID 14, shown below. I am using purchases_flutter plugin and using the login() function upon user login. I supposed the login() function will set the current user of Revenuecat and thereafter the purchase made should be belonging to the ID passed in to the login() function. How can user 56 turn out to be user 14?I hope someone out there can help me. Thank you.
I am interested in whether I can use RevenueCat in Serbia, since Stripe is not supported in Serbia? I would like to create a React Native application that would have subscriptions and the application would be used only in Serbia.
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.