I've been looking at various other threads trying to decipher this, but there don't seem to be clear answers.
My question is the following: if I want to develop an app with In-App Purchases, but I want to know when those IAPs were refunded, how can I do that? My plan was to keep receipts server-side, and to keep checking with Apple's servers until the refund period ends (how long that is exactly is another matter).
However, it's not clear from the documentation how I can tell by a receipt, that an IAP was refunded. I read here about the cancellation_time field:
however, I have a few questions.
- The link mentions that "This field is set when a customer contacts Apple customer support for a refund and the transaction is canceled." Does this happen if a user in the EU cancels an IAP with no questions asked, within the first 14-day window after purchase?
- According to the link, cancellation_date might appear in various places, depending on circumstances I don't fully understand: "
cancellation_dateis not automatically added to your app's receipt when set. It appears in the
latest_receiptsection of your app's receipt when the receipt is updated (for instance, when a new payment transaction occurs or when you restore purchases using SKPaymentQueue’s restoreCompletedTransactions), when your app calls SKReceiptRefreshRequest to refresh it, or when your app performs receipt validation with the App Store (
https://buy.itunes.apple.com/verifyReceipt). Note: If your app validates its receipt with the App Store and your subscriptions are still valid, then
cancellation_datewill appear in the
latest_receiptsection of the returned receipt. If your subscriptions are expired,
cancellation_datewill appear in its
latest_receipt_infosection." Is there a series of steps a server can take, using a receipt, to be certain whether an IAP has been refunded?
- How long do we need to keep checking for refunds? Can users refund their IAPs after the initial 14-day grace period (in Europe, at least)?
Thanks in advance.