---
title: SKPaymentTransactionObserver
framework: storekit
role: symbol
role_heading: Protocol
path: storekit/skpaymenttransactionobserver
---

# SKPaymentTransactionObserver

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

## Declaration

```swift
protocol SKPaymentTransactionObserver : NSObjectProtocol
```

## Mentioned in

Testing In-App Purchases in Xcode Promoting In-App Purchases Processing a transaction Setting up the transaction observer for the payment queue Testing transaction observer code Choosing a receipt validation technique Supporting Family Sharing in your app Testing resubscribing from the subscriptions page

## Overview

Overview Observers of 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(_:) method.

## Topics

### Handling transactions

- [paymentQueue(_:updatedTransactions:)](storekit/skpaymenttransactionobserver/paymentqueue(_:updatedtransactions:).md)
- [paymentQueue(_:removedTransactions:)](storekit/skpaymenttransactionobserver/paymentqueue(_:removedtransactions:).md)

### Restoring transactions

- [paymentQueue(_:restoreCompletedTransactionsFailedWithError:)](storekit/skpaymenttransactionobserver/paymentqueue(_:restorecompletedtransactionsfailedwitherror:).md)
- [paymentQueueRestoreCompletedTransactionsFinished(_:)](storekit/skpaymenttransactionobserver/paymentqueuerestorecompletedtransactionsfinished(_:).md)

### Handling promoted in-app purchases

- [Promoting In-App Purchases](storekit/promoting-in-app-purchases.md)
- [paymentQueue(_:shouldAddStorePayment:for:)](storekit/skpaymenttransactionobserver/paymentqueue(_:shouldaddstorepayment:for:).md)

### Revoking entitlements

- [paymentQueue(_:didRevokeEntitlementsForProductIdentifiers:)](storekit/skpaymenttransactionobserver/paymentqueue(_:didrevokeentitlementsforproductidentifiers:).md)

### Changing the storefront

- [paymentQueueDidChangeStorefront(_:)](storekit/skpaymenttransactionobserver/paymentqueuedidchangestorefront(_:).md)

### Handling download actions

- [paymentQueue(_:updatedDownloads:)](storekit/skpaymenttransactionobserver/paymentqueue(_:updateddownloads:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Essentials

- [Setting up the transaction observer for the payment queue](storekit/setting-up-the-transaction-observer-for-the-payment-queue.md)
- [Offering, completing, and restoring in-app purchases](storekit/offering-completing-and-restoring-in-app-purchases.md)
- [SKPaymentQueue](storekit/skpaymentqueue.md)
- [SKPaymentQueueDelegate](storekit/skpaymentqueuedelegate.md)
- [SKRequest](storekit/skrequest.md)
