<!--
{
  "availability" : [
    "iOS: 3.0.0 - 18.0.0",
    "iPadOS: 3.0.0 - 18.0.0",
    "macCatalyst: 13.1.0 - 18.0.0",
    "macOS: 10.7.0 - 15.0.0",
    "tvOS: 9.0.0 - 18.0.0",
    "visionOS: 1.0.0 - 2.0.0",
    "watchOS: 6.2.0 - 11.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "StoreKit",
  "identifier" : "/documentation/StoreKit/SKPaymentTransactionObserver/paymentQueue(_:updatedTransactions:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "StoreKit"
    ],
    "preciseIdentifier" : "c:objc(pl)SKPaymentTransactionObserver(im)paymentQueue:updatedTransactions:"
  },
  "title" : "paymentQueue(_:updatedTransactions:)"
}
-->

# paymentQueue(_:updatedTransactions:)

Tells an observer that one or more transactions have been updated.

```
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])
```

## Parameters

`queue`

The payment queue that updated the transactions.

`transactions`

An array of the transactions that were updated.

## Discussion

The application should process each transaction by examining the transaction’s [`transactionState`](/documentation/StoreKit/SKPaymentTransaction/transactionState) property. If [`transactionState`](/documentation/StoreKit/SKPaymentTransaction/transactionState) is [`SKPaymentTransactionState.purchased`](/documentation/StoreKit/SKPaymentTransactionState/purchased), payment was successfully received for the desired functionality. The application should make the functionality available to the user. If [`transactionState`](/documentation/StoreKit/SKPaymentTransaction/transactionState) is [`SKPaymentTransactionState.failed`](/documentation/StoreKit/SKPaymentTransactionState/failed), the application can read the transaction’s error property to return a meaningful error to the user.

Once a transaction is processed, it should be removed from the payment queue by calling the payment queue’s [`finishTransaction(_:)`](/documentation/StoreKit/SKPaymentQueue/finishTransaction(_:)) method, passing the transaction as a parameter.

> Important:
> Once the transaction is finished, StoreKit can’t tell you that this item is already purchased. It is important that applications process the transaction completely before calling ``doc://com.apple.storekit/documentation/StoreKit/SKPaymentQueue/finishTransaction(_:)``.

## See Also

  [In-App Purchase Programming Guide](https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Introduction.html#//apple_ref/doc/uid/TP40008267)



---

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)