Where is cancellation date?

Our auto-renewable subscriptions validations are made via web. When a subscription is about to expire, we request Apple with the receipt data to know if the subscription was renewed or cancelled. What is happening, sandbox and production, is that when the subscription was cancelled by the user, the expires_date keeps coming the same (ok!), but there's no key cancellation date, described in https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html

This way we can't know when to stop requesting Apple for receipt information.



Thank you.

Answered by PBK in 157519022

The cancellation_date refers to the very rare case where the user demands a refund. The more usual case is the one in which the user cancels their next renewal. In that case you get an expires_date that is in the past with no new receipt indicating an expires_date in the future - i.e. no renewal.


It sounds like you are sending an old receipt to the servers and expecting them to respond with latest_receipt_info. That field is currently deprecated and may disappear. You will need to acquire the latest receipt from the app itself and forward that to the Apple servers. If you want this feature to remain you will have to file an Enhancement Request to iTunes Connect through the Bug Reporter.

Accepted Answer

The cancellation_date refers to the very rare case where the user demands a refund. The more usual case is the one in which the user cancels their next renewal. In that case you get an expires_date that is in the past with no new receipt indicating an expires_date in the future - i.e. no renewal.


It sounds like you are sending an old receipt to the servers and expecting them to respond with latest_receipt_info. That field is currently deprecated and may disappear. You will need to acquire the latest receipt from the app itself and forward that to the Apple servers. If you want this feature to remain you will have to file an Enhancement Request to iTunes Connect through the Bug Reporter.

Thank so much for your reply. Your are right, I'm using latest_receipt_info and I didn't know it is deprecated.

In our app we use one subscription for a group of users. So I will have to wait for the main user (the one who paid), to enter the app so I will know if the subscription is valid? Can you suggest a better way?


Thanks again!

Yes, submit an Enhancement Request to keep this valuable procedure. Then you will be able to continue to validate the subscription over and over again using the first receipt presented to your server. Your app's feature - multiple users sharing the same subscription - is yet another reason to maintain this procedure.

Where is cancellation date?
 
 
Q