Support Request: App Store Server Notification Inaccuracies

Unsure if this has been reported before, but I'm seeing a specific scenario where Apple is sending back faulty information in App Store Server Notifications.

When users have payment failures that result in the membership expiring, and then reactivate later on with a different subscription, they are given a new originalTransactionId, yet we have three cases where we receive messages about the old originalTransactionId, indicating that after the user recovers their subscription, Apple is resurrecting the old subscription and treating it as if it is active BUT ultimately decides to deactivate it.

Here is a sample screenshot of an impacted user. We only have three month and annual plans.

Timeline:

  • March 21st:
    • This user signed up for a 3 Month Plan
  • June 21st:
    • This user fails to pay
  • July 7th:
    • After our 16 day grace period, this user loses access
  • July 29th:
    • This user sees they lost access and repurchase
  • Augsut 19th:
    • Their membership is deactivated (long before their 3 Month Subscription is up)

For further verification I've also attached a record of all the payloads we've received from Apple for this user.

Please let me know if you need any more details to fix this bug OR if it has already been fixed! Thank you.

Hello - thank you for your post, and for providing detailed information.

In this case, here is what happened:

  • You correctly note the first few events: Initial Subscribe on March 21, Failure to Renew due to billing issue + Start of Billing Grace Period on June 21, and Expiration of Billing Grace Period on July 7.
  • What you may have missed is that on July 7, when the Billing Grace Period ended, the subscription continued in the Billing Retry state as detailed on this page.
  • The Billing Retry period lasts for a total of 60 days, in all cases. Your Billing Grace Period took up the first 16 of those 60 days, so that 44 days of Billing Retry remained as of July 7. The notification you received on August 19 (with type=EXPIRED and subtype=BILLING_RETRY) was sent to indicate the end of the 60-day Billing Retry period for the original purchase (as documented here.)
  • The purchase made on July 29 was a new and separate purchase. Ideally, your app would have known that the original subscription was still in the Billing Retry state until August 19, and prevented a new purchase. Additionally, the July 29 purchase was made using a different Apple Account than the one used initially on March 21 - so the customer most likely logged in to a different Apple Account on the same device before making the July 29 purchase.

Based on all of this information, the notifications you received and documented were all as expected, and not indicating any bug or issue. Please let us know if we can provide any additional information or assistance.

Thank you.

Support Request: App Store Server Notification Inaccuracies
 
 
Q