Skip to main content
Question

Is it possible to remove entitlements when a user cancels trial?

  • 8 August 2024
  • 5 replies
  • 32 views

We want to test the conversion of trials where the user’s entitlements are removed when they cancel the trial. 

Hi @Eoin Hamilton 

As soon as the trial expires (and the subscriber does not convert) the entitlement in RevenueCat would be expired. Am I missing anything?

 

Regards,


I am referring to the scenario where the user cancels their trial early. Can the entitlement be removed via the SDK? 


mmm….if I”m understanding your question correctly, if the user opts-out of renewing/converting, you want to revoke access earlier (even if the expiration is in the future) meaning:

  • User starts a 7 day trial
  • On the second day, the user decides not to auto-renew (they still have 6 days of access)
  • Even though subscriber should have 6 more days of access, you want to revoke access at that time.

to be honest, I would not recommend going that path.  If you are giving a free trial using the stores mechanics, you should honor that.  If you revoke access to an account when the user is supposed to have access, you would be going against Apple/Google policy.

 

I don’t think that we have anything specific on the SDK to handle…. the entitlement comes from what the store is telling us.

On Google you could revoke a subscription calling this endpoint → https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptions/revoke (so you could listen to cancellation events and force revoke access)

 

I don’t think that Apple provides an endpoint for that


Thanks Marcos. I appreciate the concern but your response makes it sound as if we are lying to the customer. If we were to do this, It would be made explicitly clear during the sign up and if they are going to cancel. 


Hi @Eoin Hamilton,

We don’t have an specific way to handle and it goes against Apple developer rules so you could get your app rejected if they find out.

Said that, you could achieve it doing some backend work and integrating with our webhooks and listening on CANCELLATION events. It’s not the recommended way but you could have a solution for your case.

Let me know if this helps!