Discussion and help from anything related to RevenueCat.
Recently active
Hi,why do my 2 consumables have "productType": "NON_CONSUMABLE" in purchasePackage?I set them up as consumables on the App Store, see here: https://prnt.sc/4JCY6HuohfkcBut this is what I log:```` LOG PurchaseTemplate.js: purchasePackage {"identifier": "onDemand Session", "offeringIdentifier": "default", "packageType": "CUSTOM", "product": {"currencyCode": "EUR", "description": "Buy once and keep forever", "discounts": [], "identifier": "SMED_S_1_E", "introPrice": null, "price": 0.99, "priceString": "€0,99", "productCategory": "NON_SUBSCRIPTION", "productType": "NON_CONSUMABLE", "title": "1 Extra Session"}} LOG PurchaseTemplate.js: purchasePackage {"identifier": "10 Extra Sessions", "offeringIdentifier": "default", "packageType": "CUSTOM", "product": {"currencyCode": "EUR", "description": "Buy once and keep forever", "discounts": [], "identifier": "SMED_S_10_E", "introPrice": null, "price": 7.99, "priceString": "€7,99", "productCategory": "NON_SUBSCRIPTION", "productType": "NON_CONSUM
Using the SDK for CapacitorI have a single subscription in App Store Connect that is in Ready to Submit status. The id matches that registered with RevenueCat.App Store Connect Free and Paid Apps Agreements are Active. Banking connecting is Clear. I’m using `cap run ios` to run the app on my ipad.`await Purchases.getOfferings();`gives me the error code #23 saying that there’s a problem with the configuration in App Store Connect. I’ve also tried to access the subscription directly, like this:`await Purchases.getProducts(["subscription_id"])`But that gives me this error:`Unhandled Promise Rejection: Error: Must provide productIdentifiers parameter`Any suggestions on what I am missing or could do differently? Thank you!
Hi there, I set up a (already working) base plan and now want to add some offers to it. I set up the base plan and followed your guide to add an offer in Google Play.Settings are “Eligibility criteria”: Developer determined (as I want to decide whom to show the offering), and set up a Discounted recurring payment phase. I named the offer “test2alle”. Then I activated it. When I try to fetch offerings via Offerings? offerings = await Purchases.getOfferings();and print the results (just 4 developing reasons) only the base plan appears. Even when i call offeringtext = offerings!.getOffering("default")!.annual!.storeProduct.subscriptionOptions as suggestet here ( ) the offering is not appearing in my output and i cant find it anywhere: [SubscriptionOption(id: fumi-pro-year-2023, storeProductId: fumi.pro.year.new:fumi-pro-year-2023, productId: fumi.pro.year.new, pricingPhases: [PricingPhase(billingPeriod: Period(unit: PeriodUnit.year, value: 1, iso8601: P1Y), recurrenceMode: RecurrenceMod
Hi everybody,my App (opti*Map for Android and iOS) offers in-app purchases. Up to now I used the SDKBOX IAP library which unfortunately is not supported anymore.Therefore I would like to migrate to RevenueCat!Has anybody in this community successfully implemented RevenueCat in a Cocos2d-x Project which is mainly programmed in C++?Thanks for your answers and best regards,Jens
I noticed that when retrieving the CustomerInfo object form the REST v1 api there is a ‘store_transaction_id’ included for each subscription and non_subscription object. This field isn’t documented in the CustomerInfo documentation. Can you clarify what it refers to? I’m hoping it refers to the original_transaction_id so that I can use it to correlate subscriptions with event hooks as I’ve seen other developers ask for numerous times. For transactions in the sandbox this number is not unique but I assume that’s just a feature/shortcoming of the sandbox environment. Can someone confirm?
“””> To remove the app - do we simply unpublish it from the stores? Will it automatically cancel subscriptions of existing users and refund them?That should work and will cancel everyone's subscriptions but Apple and Google recommend a more gradual wind down, similar to what I described above. You can avoid more issues like many customers requesting refunds all at once by doing it gradually (it sounds like you have 12 months to wind it down which is great.)“””This is an existing answer which I have a follow up on. If you unpublish the app and existing subscriptions get cancelled, do users also receive a refund? Or are cancellations not the same as refunds? For iOS, can a user get a refund only when they proactively request it?
SOLVED IGNORE-----------Anyone had an issue with the leading icon for your product feature not showing in the paywall. Seems like it should be simply choosing the icon but it’s not displaying for me. Am I missing a next step to ‘enable’ the choice? Is there a variable embed call I need to encode?Specifically this is the ‘Bengal’ paywall template. Thanks.
I want to use your system in an Expo (React-native) project. The system asks me for a Subscription Offer Key. It says that this is created in Xcode. But I am doing my project in Visual Studio Code. What can I do?
So I’m trying to verify purchase’s made on client devices. I’ve made a simple flow with screen shots and notations to more clearly explain my problem.But simply put: How do I request a receipt/transaction token be validated by revanueCat from Unity C#, and receive the response.
Error enumerating unfinished transactions: Error Domain=ASDErrorDomain Code=500 "(null)" UserInfo={client-environment-type=Sandbox, storefront-country-code=CAN,NSUnder lyingError=0x600000db250 {Error Domain=AMSErrorDomain Code=2 "Finance Authentication Error" UserInfo=(NSLocalizedDescription=Finance Authentication Error, AMSURL=https://mzstorekit-sb.itunes.apple.com/inApps/v1/history?guid=019F85705EBC&reason=initial, AMSStatusCode=401, NSLocalizedFailureReason=No delegate to perform authentication:Getting this error right now and stuck in a constant loop with Sandbox
Hi, I created a new subscription (yearly) in the Play Console. I attached an offer to it: 7 day free trial. The problem is that the freeTrialPeriod I receive from RevenueCat is null. Am I missing something here?
When does RC plan on releasing an API for creating paywalls?My app allows users to subscribe to multiple creators and each creator needs their own paywall. It is not scalable to manually make a new paywall every time we add a new creator. We already use the API to create the entitlement, product and offerings for a new creator. It makes sense to add an API to create the paywall as well. Alternatively, it would be nice to be able to re-use or duplicate an existing paywall in the RC dashboard.
I'm using RevenueCat to track my subscriptions, while using another tool to track non-consumable in-app purchases. The problem is that RevenueCat adds the revenue from non-consumables to the MTR, and this increases my cost with RevenueCat.Is there any way to exclude non-consumables from RevenueCat?
Trying to test subscriptions here in the UK, I’m getting times that are an hour earlier than they should be.Eg. in the below, “event_timestamp_ms: 1715095053830” is 3:17 pm UTC but it was purchased at 4:17 PM BST). This means that my test subscriptions have already expired as soon as I’ve bought them.I’ve been testing and using this app on RevenueCat for many years now, I haven’t noticed this before?Is this expected (i.e. do I need to write some test code to adjust the time)??{"app_id": "app4ba6172f87","app_user_id": "$RCAnonymousID:6e4c865677794230bf7135217c28374f","country_code": "GB","currency": "GBP","entitlement_ids": ["TPBDCore","tpbdinno"],"environment": "SANDBOX",“event_timestamp_ms": 1715095053830,"expiration_at_ms": 1674173448000,"is_family_share": false,"new_product_id": "TPBDInNoMonthly","offer_code": null,"presented_offering_context": null,"presented_offering_id": null,"price": 67.89584611756514,"price_in_purchased_currency": 54.99,"product_id": "TPBDIaYhAnnually","purchas
I’m currently trying to develop against the beta version of the v2 api. I had hoped it was going to allow me to get information that the v1 version didn’t provide but it seems even harder to use. Am I missing something or is there no no way to get the equivalent of the CustomerInfo object. In v1 that would allow me to see all the users purchases and subscriptions but it seems in v2 I have to query for the subscriptions and purchases separately. Also, are the webhooks going to be updated to include the subscription id parameter that’s now in the subscrition object returned from the v2 webhook?
why does the “New Customers” number changes retroactively?Active Subscriptions not increasing...6 may, I see 830 New Customers 7 May, I see 893 New Customerswithout any purchaseApp is live...
Hi, How can I get customers list with filtering by Last Seen App Version? Regards
I want to send a reminder to users when their subscription is about to renew. On a daily basis, I need to determine the users whose subscription will automatically renew in the next X days.I know I could do this with the Customer Lists feature, but to my understanding, that would require manual effort. I am looking for a way to programmatically query Revenue Cat.Is there a REST API I could use?Or, is there another way I can do this?
Sometimes my customers get the following error while attempting to make a purchase: “There was an unknown backend error. The API key is not intended for the Platform.” with the error code 7810. I can’t find any solutions online so I decided to ask how I should handle this here.
Hi all,As far as I can tell from the forums and docs, this is supposed to work in terms of setting some automatic updating of the customerInfo via listeners, but I can’t make it work in my app (React Native android). referring to addCustomerInfoUpdateListener() in this case..https://www.revenuecat.com/docs/customers/customer-info#listening-for-customerinfo-updates Purchases.getCustomerInfo() works but the listener which is supposed to update once the subscription time is over (5 minutes in test mode), isn’t triggering anything. I’m not sure if this really has been resolved or not and would love for someone to point to some working example that I can understand, besides the docs which are relatively minimal for this use case. The only thing I can think of now is to have a 5 minute setTimeout() in my app but that seems far from ideal.. :/
Our testflight apps and local dev app works just fine. The IOS and android version are showing White Screen of Death on visiting screen with Purchases. It worked before but now it doesnt. The app freezes with white screen on each visit of purchase screen by any user.
The title really says it all. Purchases.getCustomerInfo() shows an active subscription even though it expired hours ago. I even tried deleting the Sandbox customer in RC, but it still queries as having an active sub.latestExpirationDate shows "2024-06-03T20:44:00.000Z”. Is there any way to prevent me from having to wait so long for this test sub stop showing as active?
Dear Suuport team, As per check ‘getCustomerInfo’, it work for: - “Test card, always approves” / “Slow test card, approves after a few minutes” and “Test card, always declines” but for “Slow test card, declines after a few minutes”, there is no response status of that case. May you advise in this case? Please kindly check the code below: Future<void> makePurchase(context, String numberOfEgg) async { Map<String, dynamic> payload = {}; List<Map<dynamic, dynamic>> filteredItems = []; bool slowCardApproval = true; try { filteredItems = filterById(numberOfEgg, Platform.isIOS ? products : googleProducts); if (filteredItems.isNotEmpty && !isPurchasePending) { ref.read(purchaseInProgressProvider.notifier).setInProgress(true); payload = { 'identifier': filteredItems[0]['identifier'], 'description': filteredItems[0]['description'], 'title': filteredItems[0]['title'],
I am using EAS Build development IOS (not simulator) and when making a purchase and filling out apple ID sign in info, I get the following error:[Error: There was a problem with the App Store.]I have filled out all forms, agreements, tax info, and bank info on Apple Store Connect.I am wondering why this error is happening. Here is my code to make the purchase: const handlePurchase = async (num) => { try { const { customerInfo } = await Purchases.purchaseStoreProduct(product); console.log(customerInfo); } catch (e) { if (!e.userCancelled) { console.log(e); } else { Alert.alert("Cancelled", "Purchase has been cancelled."); } } };
Any help truly appreciated - a new app has launched today and the dashboard is looking a little strange. All of the figures don’t match, but mainly the New Customers number is 216 and the Active Subscriptions is only 31… any suggestions as to why? TIA
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.