Can a server check for subscription updates without the app being opened?

When a user purchases an auto-renewing subscription through the app, the intiial receipt is available to be sent server-side for validation, storage, etc. However, if the user ceases to use the app, is there an API endpoint or webhook that the server can utilize to update the status of the subscription?


From everything i have found, it appears that if a user ceases to use the app with an active paid subscription, our server will remain ignorant of all future payments and/or cancellations. Sure, if the user opens the app at some point in the future this info becomes available, but i would really prefer our data be up-to-date with regards to users with active subscriptions.


Am i missing something here?

Accepted Reply

Yes you are missing something. If you take any autorenewable receipt (for a given subscription - even the receipt for the first purchase) and send it to the server the server will respond with the latest autorenewable receipt containing all renewals associated with that subscription.

Replies

Yes you are missing something. If you take any autorenewable receipt (for a given subscription - even the receipt for the first purchase) and send it to the server the server will respond with the latest autorenewable receipt containing all renewals associated with that subscription.

Hey PBK, I am not seeing this behavior, not sure if this has changed since your post in 7 months ago. I'm only getting the initial transaction returned when I verify the original recepit despite my iTunes history saying a more recent payment was taken. If you have any ideas how to resolve this please let me know.

See my response to your other post. This works for the deprecated transaction.transactionReceipt and was an undocumented feature for quite awhile for newer receipts.

Hi Jimmy,


I'm also not seeing the same behavior. I store the initial Receipt in my backend and then periodically validate with Apple server to check for renewals, but I'm only seeing the first transaction and nothing else.


It used to work in Sandbox, now I can't reproduce. What did you do to fix?

(EDITED Dec 7, 2017 - Apple has responded, perhaps to requests from us!!! latest_receipt and latest_receipt_info are returned for post iOS6 receipts. Documents have also been updated to reflect this.)


This is no longer possible. Here is the correct answer as of 2016:


latest_receipt is documented to be returned only for iOS6 style receipts from transaction.transactionReceipt. This property has been deprecated. Stop using it! To check an autorenewable subscription you must have the app itself generate and send you the latest receipt.

For quite some time the Apple servers appended the latest_receipt to new receipts - both iOS6 and also later receipt. This service waxes and wanes and is not documented. It is starting to fail often. Do not rely on it!

About a month ago on this forum various postings asked Apple to maintain the feature whereby the Apple servers scan their database and append the latest_receipt to an old receipt sent to them. Apple has not responded. Please feel free to post a feature request using the bug reporter.

Can you Please explain how to achive this ?

Please mark this as Correct Answer. Thanks

Actually things have changed back so that the original 'correct answer', wrong for awhile, is now correct again. The documents have been changed to refelect that.