<!--
{
  "documentType" : "article",
  "framework" : "StoreKit",
  "identifier" : "/documentation/StoreKit/requesting-a-payment-from-the-app-store",
  "metadataVersion" : "0.1.0",
  "role" : "article",
  "title" : "Requesting a payment from the App Store"
}
-->

# Requesting a payment from the App Store

Submit a payment request to the App Store when a customer selects a product to buy.

## Discussion

After you present your app’s store UI, users can make purchases from within your app. When the user chooses a product, your app creates and submits a payment request to the App Store.

Implementing an in-app purchase flow consists of three stages. In the first stage, your app retrieves product information. Then your app requests payment when the user selects a product in your app’s store. Finally, your app delivers the products.

![A flowchart depicting the three stages of the in-app purchase process between your app and the App Store. First, your app makes a request for a product, the App Store provides that product information, and your app displays it. Next, the user selects a product, your app makes a payment request, and the App Store processes the payment. Finally, the App Store calls your app’s transaction queue observer, and your app delivers the purchased product. The second stage, requesting payment, is highlighted.](images/com.apple.storekit/media-3315895@2x.png)

### Create a payment request

When the user selects a product to buy, create a payment request using the corresponding [`SKProduct`](/documentation/StoreKit/SKProduct) object and set the quantity if needed, as the code below shows. The product object comes from the array of products that your app’s products request returns, as described in [Fetching product information from the App Store](/documentation/StoreKit/fetching-product-information-from-the-app-store).

```objc
SKProduct *product = <# Product returned by a products request. #>;
SKMutablePayment *payment = [SKMutablePayment paymentWithProduct:product];
payment.quantity = 2;
```

### Submit a payment request

Submit your payment request to the App Store by adding it to the payment queue. If you add a payment object to the queue more than once, the system submits it to the App Store multiple times, charging the user and requiring your app to deliver the product each time.

```objc
[[SKPaymentQueue defaultQueue] addPayment:payment];
```

For each payment request your app submits, it receives a corresponding transaction to process. For more information about transactions and the payment queue, see [Processing a transaction](/documentation/StoreKit/processing-a-transaction).

For auto-renewable subscriptions, you may submit a payment request with a subscription offer for users you determine eligible to receive an offer. For more information, see [Implementing promotional offers in your app](/documentation/StoreKit/implementing-promotional-offers-in-your-app).

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)