Skip to main content
Question

Customer refunding non-consumable

  • March 25, 2026
  • 5 replies
  • 100 views

Forum|alt.badge.img+4

I understand that, as a developer, we should refund via RC dashboard, not Play Console. However, what about when the customer triggers a refund on the Play Store? How can my app detect this? Or will it actually be reflected somehow in the entitlements?

This post has been closed for comments

5 replies

Tarek
RevenueCat Staff
Forum|alt.badge.img+5
  • RevenueCat Staff
  • March 27, 2026

Hey Mark,

 

Thank you for reaching out, Tarek from the support team here.

 

For Google Play Store purchases you can indeed issue refunds from the dashboard as outlined in our documentation. (Please note that this does not apply to Apple which doesn't allow developers to issue refunds)

 

Usually, a refund automatically revokes the attached subscription. As long as you listen for an up-to-date CustomerInfo in your app, the entitlement will be revoked and you can prevent unwanted access.

 

If the customer asks for a refund on the Play Store, it can take up to 24 hours to be detected.

 

Also, please note that refunds due to no acknowledgement of purchases aren't detected automatically. You must refund and revoke in order for RevenueCat to detect this. Feel free to check out Google's documentation here on this.

 

I hope this is useful!

 

Best regards,


Forum|alt.badge.img+4
  • Author
  • Dedicated Member
  • March 27, 2026

Thank you from your reply. So, if I understand you correctly, if the user triggers a refund, then this will be reflected in the RC entitlements (though may take up to 24 hours). So as long as I’m reacting to RC entitlements, then this should not be an issue.

On another note, what is the rationale behind entitlements regarding non-consumables? Over the years, I’ve purchased and consumed products on Google Play (for testing purposes - i.e. to retest purchase flow). These products are marked as non-consumables in RC dashboard. So when I implemented RC (as replacement for Play Billing), I noticed all my entitlements were granted even though Play Billing queryPurchasesAsync() returns empty purchases (because all consumed).

I understand that consuming a non-consumable is going to be a grey area, but why is RC getting historical purchases instead of using queryPurchasesAsync()?


Tarek
RevenueCat Staff
Forum|alt.badge.img+5
  • RevenueCat Staff
  • March 30, 2026

Hey Mark,

 

So, if I understand you correctly, if the user triggers a refund, then this will be reflected in the RC entitlements (though may take up to 24 hours). So as long as I’m reacting to RC entitlements, then this should not be an issue.

 

Exactly, you only need to take care of reacting to entitlements and keeping CustomerInfo (which contains entitlements) up-to-date https://www.revenuecat.com/docs/customers/customer-info#listening-for-customerinfo-updates.

 

 what is the rationale behind entitlements regarding non-consumables? 

 

As outlined in the doc, entitlements for non-consumables are unlocked forever by design. (The usual use case is a lifetime unlock for instance)

If you mark a product as non-consumable in the dashboard, RevenueCat assumes it should never be consumed and should always grant its entitlement, since consuming a non-consumable is a contradictory behavior.

To ensure that, we query purchase history.

 

I hope that helps clarify it!

 

Best regards,

 

 


Forum|alt.badge.img+4
  • Author
  • Dedicated Member
  • March 31, 2026

I guess this kind of makes sense, but it also means that certain functionality of Billing API is not supported. This is something I can currently do with Play Billing:

1. Purchases are not automatically consumed
2. Consumption is only done explicitly by the app (not on each purchase) - This is how I do testing
3. Consumed purchases are considered the same as never-purchased

So is there a way to mark as product as “explicitly consumable”?


Tarek
RevenueCat Staff
Forum|alt.badge.img+5
  • RevenueCat Staff
  • March 31, 2026

Hey Mark,

 

There is a way to mark a product as "explicitly consumable" by making it a non-consumable.

 

However, currently, it's true that the product would then never be consumed and stay purchased, we don't offer a mechanism yet to consume "on-demand".

 

I have forwarded your request internally to consider improvements in this area.

 

Best regards,