What is the correct way to validate auto renew subscription?

Hi, I'm implementing an auto renew subscription in my app. I tried to figure out how to validate and get notified about any changes in users subscription status, and I found so much ways to do it.

What is the difference between those:

a. /validateReceipt

b. appstore API (for example inApps/v1/history/{originalTransactionId})

c. apple notifications service, with the webhook url in the appstore connect information.

Do I need to use all of the above methods in order to make my auto renew subscriptions 100% hermetic?

You can choose to do on-device validation as well as server-side validation that best fits your app and infrastructure. Identify the minimum version of iOS you are planning to support for your application. StoreKit2 simplifies the on-device validation please refer to framework link: https://developer.apple.com/documentation/storekit/in-app_purchase & link to WWDC21 session. https://developer.apple.com/videos/play/wwdc2021/10174

If you are using the Original API for In-App Purchase on the client you can still use the new App Store Server API Subscription Status to validate auto-renewable subscription purchase on the server side and store the required information on your server.

In order to receive real-time subscription updates and maintain the entitlement status on your server, it is recommended that you implement App Store Server Notification. Please check this WWDC session for App Store Server Notification Version 2 https://developer.apple.com/videos/play/wwdc2021/10174

What is the correct way to validate auto renew subscription?
 
 
Q