IOS – How to check individual in-app purchases as developer on iTunes Connect

app-store-connectin-app-purchaseios-appstore

Is there any way to check each in-app purchases my app is receiving on iTunes Connect?

On Android for example you have a list of every purchase with an ID so if a client makes a complain I can easily check if he actually made the purchase, but on iTunes I just see statistical data, but not list of every purchase, so I can't check purchase.

My worst fear is a purchase properly charged but not registered by our servers, so the client loses its money and I can't confirm the purchase.

Best Answer

No, there's no way of doing this for non-subscription in-app purchases. It is purposely not made possible.

The only information you'll receive from iTunes Connect is aggregates - i.e. the statistical data, you mention. This means that you can see how many in-app purchases what made, but not the details of each individual buyer.

For non-consumable in-app purchases, Apple requires your app to have a Restore button that restores in-app purchases to the device. In addition to this, Apple designed the StoreKit system so that even if the user were guided to try to buy a non-consumable in-app purchase again, it will automatically switch to restore or fail completely.

The process is implemented in your app using the restoreCompletedTransactions() method of the SKPaymentQueue class in the StoreKit framework. Your app will receive copies of the original transactions - so even when a purchases hasn't been registered by your own servers, you'll get a copy of the transaction and receipt to be able to get another attempt at storing it on your own server.

This means that your worst fear is ungrounded. It is simply not possible for a user to pay for the same non-consumable in-app purchase twice.