Dear RevenueCat Community,
I am using the RevenueCat SDK in my Flutter application and have implemented App Tracking Transparency (ATT) on iOS, requesting the user’s permission before a purchase. When the user grants permission, I call Purchases.collectDeviceIdentifiers() to obtain device identifiers such as the IDFA.
In my Flutter app, users can purchase subscriptions via Stripe. For this, a web view is opened for the user to complete the payment. Once the purchase is completed and the user returns to the app, the app submits the subscription information to https://api.revenuecat.com/v1/receipts to upload the purchase to RevenueCat. This is how the user gains access to the app features after the purchase.
To receive purchase events centrally in my backend, I have added a webhook in RevenueCat that reports Initial Purchase and Renewal events to my endpoint.
I have observed the following behavior:
-
For in-app purchases (IAP), in the RevenueCat dashboard > Recent Transactions > Customer Detail, the ATT Consent status is correctly displayed in the customer attributes section as
Deniedif the user denied permission orAuthorizedif the user granted permission. -
For Stripe purchases, in the RevenueCat dashboard > Recent Transactions > Customer Detail the, ATT Consent status in the customer attributes section appears gray, indicating no value has been set.
I understand that the ATT Consent status is automatically obtained by the Purchases SDK from the device. However, I would like to confirm if there are any limitations or specific configurations I should be aware of to have the ATT Consent status also available for Stripe purchases.
It’s strange that for users who purchase through in-app purchases, the ATT consent status is displayed, but for users who purchase via Stripe, it isn’t. In my app, I use the same logic to request ATT permission in both cases, so it doesn’t make sense that it works for one and not the other.

Thank you in advance for your assistance and guidance.
Best regards,
Roberto Cruz
