0
votes

I came across this status code 21006 on Apple's status code page and it says

This receipt is valid but the subscription has expired. When this status code is returned to your server, the receipt data is also decoded and returned as part of the response. Only returned for iOS 6-style transaction receipts for auto-renewable subscriptions.

The last sentence there is confusing for me. Does this mean it will be returned for iOS versions 6 and after? or only iOS version 6?

Can I safely use this code to assume a subscription has expired?

1

1 Answers

0
votes

You can receive iOS 6 style receipts in later iOS versions. At first glance it seems to depend on how you fetch your receipt. When I look at this developer forums thread, appStoreReceiptURL in your main bundle should be iOS 7 style.

If you're validating a receipt, look in the response JSON for latest_expired_receipt_info and if it exists, you're dealing with iOS 6 style.