Discussion and help from anything related to RevenueCat.
Recently active
I setup the Revenue Cat Stripe SDK about 9 months ago when it was a “testing” environment in Stripe. Now I migrated it to their “sandbox”. None of the products I setup inside Stripe show up, but the production purchases are still valid as `rc_product_identifier` inside the transaction. And now, in my dev environment, when i `Purchases.getSharedInstance().getOfferings();` the offerings are not found...So I added 2 products in my sandbox. My offerings are still empty. What changed in this new Sandbox environment that caused products to not migrate over?Do we still NEED to have a product listed in Stripe?Is the documentation for the Web SDK correct still for Products & Sanbox configuration?
Hi there,I have an Expo 53 / react-native-purchases / react-native-purchases-ui 9.2.0 app which uses RC’s V2 paywalls in production, and I’m getting occassional Sentry reports about crashes on Android:IllegalArgumentException: Software rendering doesn't support hardware bitmaps at android.graphics.BaseCanvas.throwIfHwBitmapInSwMode(BaseCanvas.java:732) at android.graphics.BaseCanvas.throwIfCannotDraw(BaseCanvas.java:82) at android.graphics.BaseCanvas.drawBitmap(BaseCanvas.java:140) at android.graphics.Canvas.drawBitmap(Canvas.java:1664) at u0.G.o(SourceFile:109)...(95 additional frame(s) were not displayed)This seems to happen when my V2 Paywall is triggered (I navigate to a react-navigation screen which uses RC’s `<RevenueCatUI.Paywall />` to display the V2 Paywall. Reports are most common on Pixel 6 / Pixel 7 devices running Android 15+ although I have a few reports on Samsung devices too. I haven’t been able to reproduce on my physical Pixel 7 test device, but S
In my paywall, certain things don’t update with package selection. I am using the React Native SDK and Expo. In the paywall, the user is able to select between either a monthly or yearly subscription period by tapping either of the correlating boxes. The selected box is checked, and the border is set to a width of 2, while the unselected product’s border width is set to 1. On Android: The border width does not change on selection, but the checkmark does.On iOS: Both the border and checkmark work properly.On both: There is a text field saying “Auto-renews for {{ product.price_per_period }} until canceled”, but the variable does not switch to reflect the monthly price, it’s always set to the annual price. Is there something specific I’m supposed to do to make it function correctly?
When linking RevenueCat to Mixpanel in iOS, the Mixpanel user City and Region fields become empty. I see reference to this in a prior post but no solution. This is the code I am using:Mixpanel.mainInstance().identify(distinctId: Purchases.shared.appUserID)
When I use {{ product.offer_period_with_unit }}, the paywall displays correctly in the bottom button, but the top button displays “1 year”, using the same variable. This is testing with TestFlight on iOS.
Hi RevenueCat Support Team,I’ve recently integrated the Meta Ads integration as per your documentation and triggered several purchase events while running the app in development mode. However, I’m not seeing any indication that these events are being sent to Meta—neither in the RevenueCat dashboard nor on Meta’s side.A few additional details: I haven’t implemented the ATT prompt yet, so users have not granted tracking permission. From the docs, it appears that the IDFA is optional and RevenueCat should still be able to forward events without it. The app is using RevenueCat’s anonymous ID and I’ve verified that purchases are correctly being tracked in the RevenueCat dashboard.Could you help clarify:Are events from development builds or sandbox purchases forwarded to Meta Ads? Is ATT permission mandatory for Meta Ads event forwarding in practice, even if IDFA is optional? Are there any known limitations or delays when viewing these events in the dashboard or Meta Events Manager?Let me kn
Hi, Does anyone ever encountered randomly this issue in the lasts few days ?I’m getting that using a Firebase Cloud Functions, never been able to reproduce using Postman... GET /v1/subscribers/{id} return 403 with : data: '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\n' +'<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">\n' +'<TITLE>ERROR: The request could not be satisfied</TITLE>\n' +'</HEAD><BODY>\n' +'<H1>403 ERROR</H1>\n' +'<H2>The request could not be satisfied.</H2>\n' +'<HR noshade size="1px">\n' +'Bad request.\n' +"We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.\n" +'<BR clear="all">\n' +'If you provide content to customers through CloudFront, you can find steps to troubl
Hello Revenuecatters:we are having an issue with Paywall layout, making the paywall not usable from a customer experience standpoint, after updating to Android API 35. Does anyone else have this issue? The issue is that the padding of the paywall is pushed down making the pay button below the fold on the screen and therefore the user cannot press on it.
Hello,I have an app that’s been live for about a year. When I first set up the project, I didn’t define my own user IDs, so RevenueCat has been assigning them automatically. Now I’d like to switch to using my own user IDs to make subscription granting and tracking easier.My question is: what happens if I assign new user IDs to existing users? For example, if a user currently has a premium subscription under their RevenueCat-assigned ID, will their premium status still be recognized after I set a new ID?This is crucial to clarify, as I want to avoid any risk of premium users losing access to their subscriptions. Thanks in advance for your guidance.
Live paddle webhook is trigger successfully but data is not coming at revenue cat side.For sandbox user data coming revenue side and it is working fine but not for live.I am verify Live api key all fine. then I added the API key in revenue cat then webhook automatically in my live Paddle account. And logs print in paddle as well. but LIve data not coming in RevenueCat sideplease help me what is wrong here
Hi!Is there anyway we could set a “default” entitlement for new users.The trial from Apple Store imply the activation of a subscription and it seems to repeal a lot of users.Is there any way we could have something to give new users the ability to try the app with an entitlement with a limited duration? Doing it through the Rest API induce a lot of latency and we have to wait for the app to contact the server, then the server to grant the entitlement and finally the local customer to synchronise and sometimes it takes a long time. It would be great to be able to assign a default entitlement when a user is created without relying on the various stores. Is something like this possible? Is it a feature you could consider? Thanks!
Hi!We have integrated Revenuecat with AppsFlyer for running ads on Apple Search Ads and Meta. The Apple Search Ads integrated is working, but we have some issue with getting attribution to work for Meta.We are doing these calls: await Purchases.collectDeviceIdentifiers() await Purchases.enableAdServicesAttributionTokenCollection()... if (appsFlyerConversionData) { await Purchases.setMediaSource( appsFlyerConversionData.data.media_source, ) }However, it seems that ‘enableAdServicesAttributionTokenCollection’ is only relevant for Apple. How do you collect similar data for Meta?
I’m integrating with RevenueCat webhooks to track subscription plan changes across iOS and Android. From the documentation, I can see the following events are emitted when a plan change occurs: Android: PRODUCT_CHANGE,INITIAL_PURCHASE iOS: PRODUCT_CHANGE,RENEWAL My questions: Can I rely solely on the PRODUCT_CHANGE event to handle corresponding plan changes in the backend for both iOS and Android? Does the PRODUCT_CHANGE event guarantee that the payment has been processed successfully, or is it just an indication of the plan change attempt? In the case of a payment failure during a plan change, what happens to the subscription? Does the existing subscription continue until the end of the billing period? Or would RevenueCat emit an EXPIRATION event for the new subscription?
Hi team,I try to open my existing paywall, but it won’t load, and multiple pages of the revenuecat site show this error, even after page refresh, cleared cache, log out log in again, tried with a different browser. please help!
I’d like to see the list of all customers (people with a revenuecat id, not necessarily a subscription), order by last open or something, is there a way to do that? Or at least get the ability to search by customer id, as typing in all 32 chars of an id from a screenshot gets a bit old quick :) I see customer lists, but is there a way to just do a one time search?
Hello,I’im displaying my paywall with a passed offering but when the user first opens the paywall the image is displayed late, which makes the paywall appear a bit cheap. Is there any way to “preload” the paywall? theres already so much caching anyways happening :DThanks a lot
When I access they web billing payment section for react native, it says sandbox on the top. Is this valid or should it not be saying that? Sorry if this was said before I couldn’t find anything about it.
Hi, See attached screenshot. I’m pressing Save, but it won’t save. I see the red exclamation mark error, but what does it mean? It’s not telling me how to get rid of the error.I’ve configured several products, offerings before and am doing the same process this time, so not sure why I’m getting an error? Project ID: proj69bbdf42 Please help! Thanks, Toby
When a user starts a subscription, I can see it under:allPurchasedProductIdentifiers: [“com.xyz.weekly”]Which is perfect.However, after they cancel subscription, I still see “com.xyz.weekly” under allPurchasedProductIdentifierI don’t use entitlements and offerings, so I can’t check active entitlements field.Is there solution to this?
Hi there!We’re implementing RevenueCat in our app and using webhooks to handle and store lifecycle changes.The major issue we’ve run into however is that both:Webhooks don’t have a global subscription id (i.e. the Paddle ID from https://www.revenuecat.com/docs/api-v2#tag/Subscription-Data-Model) The API doesn’t have the original_transaction_id (it only has the current store_subscription_identifier)Due to this, there isn’t a any common id between both the API and webhooks that we can reliably use to query / create subscription data in our database / server-side.These have both been asked for recently in: Our use-case and the reason we need a global id between the API and webhooks is that we have our own verify / activate API method that queries the RevenueCat API. That currently creates a subscription with the API’s store_subscription_identifier. But by the time the webhook comes in, the original_transaction_id (which doesn’t change between webhooks) is different resulting in two rec
After Google will also open up to external payments (https://support.google.com/googleplay/android-developer/answer/14372887?hl=en&ref_topic=15820351&sjid=9606841540042051-EU) will there be an option for the Web Purchase feature on Android Paywalls as well?
My main question is:Is there another way to implement offer codes aside from using Apple’s native offer code redemption either through URL or Purchases.shared.presentCodeRedemptionSheet()? Context:The apple store connect is really restrictive when it comes to offer codes.Like only having 10 offer codes per subscription. That is important because we plan on using this for affiliates and if we have more than 10 affiliates, we have to make another subscription of the same price but different identifier, and that doesn’t seem like a good solution. This adds up to the fact that RevenueCat’s webhook records the offer code name in the webhook instead of the custom code name.Custom codes are always unique and considers even deactivated offer codes or custom codes. We don’t know how many users our affiliates would get and there’s a set maximum of 25000 redemptions for a custom code which means if that is exhausted, people can’t use that offer code anymore.During testing, there is an occurrence
I have connected with live paddle account but it display me message connected to paddle sandbox. If I have want change any thing live automatic to manual save not actIve, it is always disable and I am not able to save the changes.
Hi, I want to track which offer code led to a purchase to work with affiliate marketing. But there is nothing in the Dashboard or the csv export. I only get latest_offer, latest_offer_type, latest_purchased_offeringlatest_offer is the name of the offer, not the code latest_offer_type just says “offer_code” latest_purchased_offering is emptyThis is crucial to run affiliate campaigns and Apple only shares information via an ancient download endpoint, which is done via a 8 year old Java applet that can download data for a single day only. Sometimes I think Apple just got fat and doesn’t give a damn about us developers…Is there a way to do this via RC? Thank you!
I no longer offer Lifetime Premium, so I want to delete the in app purchase from the App Store, so it no longer shows under my app.Can I do this without the users having bought this being affected? I want their entitlement to stay the same.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.