I am using a web hook to track user subscription status on my server. The new EXPIRATION event seems like a good way to tell if the user should be downgraded or not. This raises a couple of questions though:
If a grace period is defined in the App Store for billing issues, when does the EXPIRATION event get fired (assuming the billing issue is not resolved): before the grace period or after?
Another question we have is: if a subscription is paused (possible only on Google Play), is this event (EXPIRATION) fired?
Yariv from the Bizillion team
Best answer by JensView original
@Bizillion, that’s a great question. Let me clarify the exact conditions with the engineering team and get back to you.
@Bizillion, thanks for your patience. We checked this and we seem to have some inconsistencies there currently in how grace periods are handled. What should be the case is that the EXPIRATION event fires after the grace period ends. In other words, you should be able to rely on the EXPIRATION event to revoke access to premium entitlements. We will work on fixing the inconsistent behavior.
For paused subscriptions, you can rely on the SUBSCRIPTION_PAUSED event.
Thanks for your reply. It would be greatly appreciated if you could post here when any inconsistencies have been fixed.
As for paused subscriptions, I understand that the SUBSCRIPTION_PAUSED event indicates that - but I would still like to know if the EXPIRATION event will also be fired when the subscription is paused (as that is also an instance when premium entitlements should be revoked).
I think it’s a great idea to have one event that correctly signals revoking premium entitlements - I’m just trying to make sure EXPIRATION is that event.
Hi Bizillion, apologies for the delay – I was OOO first and then sick. I am still investigating the second part of the question and will get back to you once I know the answer.
I just checked our implementation and we currently do not send an EXPIRATION event when a Play subscription is paused. So if you want to revoke access, you’ll need listen for both EXPIRATION and SUBSCRIPTION_PAUSED.
I agree that one event would be nice - I’ll start a discussion on what kind of changes would be required to support this.
@Bizillion, we’ve got another update here.
In summary, you will now be able to rely on the EXPIRATION event to be fired whenever the customer should lose access to their subscription, including in the event of a paused subscription or a billing issue resulting in a grace period.
That’s great news, thanks! We appreciate the response and willingness to implement improvements based on customer feedback!