Instance Method


Tells the observer that a user initiated an in-app purchase from the App Store.


- (BOOL)paymentQueue:(SKPaymentQueue *)queue shouldAddStorePayment:(SKPayment *)payment forProduct:(SKProduct *)product;



The payment queue on which the payment request was made.


The payment request.


The in-app purchase product.

Return Value

Return true to continue the transaction in your app.

Return false to defer or cancel the transaction.

If you return false, you can continue the transaction later by manually adding the SKPayment payment to the SKPaymentQueue queue.


This delegate method is called when the user starts an in-app purchase in the App Store, and the transaction continues in your app. Specifically, if your app is already installed, the method is called automatically.

If your app is not yet installed when the user starts the in-app purchase in the App Store, the user gets a notification when the app installation is complete. This method is called when the user taps the notification. Otherwise, if the user opens the app manually, this method is called only if the app is opened soon after the purchase was started.