<!--
{
  "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",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "StoreKit"
    ],
    "preciseIdentifier" : "c:objc(pl)SKPaymentTransactionObserver"
  },
  "title" : "SKPaymentTransactionObserver"
}
-->

# SKPaymentTransactionObserver

A set of methods that process transactions, unlock purchased functionality, and continue promoted In-App Purchases.

```
protocol SKPaymentTransactionObserver : NSObjectProtocol
```

## Overview

Observers of [`SKPaymentQueue`](/documentation/StoreKit/SKPaymentQueue) objects implement the methods of this protocol.

The system calls an observer when the queue updates or removes transactions. An observer needs to process all successful transactions, unlock the functionality the user purchases, and then finish the transaction by calling the payment queue’s [`finishTransaction(_:)`](/documentation/StoreKit/SKPaymentQueue/finishTransaction(_:)) method.

## Topics

### Handling transactions

[`paymentQueue(_:updatedTransactions:)`](/documentation/StoreKit/SKPaymentTransactionObserver/paymentQueue(_:updatedTransactions:))

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

[`paymentQueue(_:removedTransactions:)`](/documentation/StoreKit/SKPaymentTransactionObserver/paymentQueue(_:removedTransactions:))

Tells an observer that one or more transactions have been removed from the queue.

### Restoring transactions

[`paymentQueue(_:restoreCompletedTransactionsFailedWithError:)`](/documentation/StoreKit/SKPaymentTransactionObserver/paymentQueue(_:restoreCompletedTransactionsFailedWithError:))

Tells the observer that an error occurred while restoring transactions.

[`paymentQueueRestoreCompletedTransactionsFinished(_:)`](/documentation/StoreKit/SKPaymentTransactionObserver/paymentQueueRestoreCompletedTransactionsFinished(_:))

Tells the observer that the payment queue has finished sending restored transactions.

### Handling promoted in-app purchases

[Promoting In-App Purchases](/documentation/StoreKit/promoting-in-app-purchases)

Show promoted In-App Purchases on your product page and handle purchases that customers initiate on the App Store.

[`paymentQueue(_:shouldAddStorePayment:for:)`](/documentation/StoreKit/SKPaymentTransactionObserver/paymentQueue(_:shouldAddStorePayment:for:))

Tells the observer when a user initiates an in-app purchase from the App Store.

### Revoking entitlements

[`paymentQueue(_:didRevokeEntitlementsForProductIdentifiers:)`](/documentation/StoreKit/SKPaymentTransactionObserver/paymentQueue(_:didRevokeEntitlementsForProductIdentifiers:))

Tells an observer that the customer is no longer entitled to one or more Family Sharing purchases.

### Changing the storefront

[`paymentQueueDidChangeStorefront(_:)`](/documentation/StoreKit/SKPaymentTransactionObserver/paymentQueueDidChangeStorefront(_:))

Tells the observer that the storefront for the payment queue has changed.

### Handling download actions

[`paymentQueue(_:updatedDownloads:)`](/documentation/StoreKit/SKPaymentTransactionObserver/paymentQueue(_:updatedDownloads:))

Tells the observer that the payment queue has updated one or more download objects.



---

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)