I am developing an iOS app that uses App Store Server API (v2) for auto-renewable subscriptions.
I noticed a discrepancy between the expiration date returned by the API and the date displayed in iPhone Settings > Subscriptions:
- App Store Server API
expiresDate
: 2025-09-12T12:10:25 (KST) - iOS Settings > Subscriptions: 2025-09-11 (one day earlier)
My understanding:
- The API’s
expiresDate
is the precise UTC timestamp. - The Settings UI might display the "last full calendar day" for UX purposes.
Questions:
- Is this behavior (UI showing one day earlier) an intentional Apple policy?
- If so, is there any official documentation or guideline explaining this behavior?
- Should developers always rely on the API’s
expiresDate
for subscription state management?
This discrepancy is confusing for both developers and end users, so any clarification or official reference would be greatly appreciated.