---
title: PKPaymentAuthorizationControllerDelegate
framework: passkit
role: symbol
role_heading: Protocol
path: passkit/pkpaymentauthorizationcontrollerdelegate
---

# PKPaymentAuthorizationControllerDelegate

Methods that let you respond to user interactions with your payment authorization controller.

## Declaration

```swift
protocol PKPaymentAuthorizationControllerDelegate : NSObjectProtocol
```

## Overview

Overview The PKPaymentAuthorizationControllerDelegate protocol is implemented by the payment authorization controller’s delegate. You implement this protocol to respond to user interaction with that controller. In most cases, the payment authorization controller automatically waits for its delegate to finish responding to one method before it calls other delegate methods. You indicate that the delegate is finished with the current method by calling that method’s completion block. This action tells the pay authorization controller to proceed with the next step in the authorization process. There is one exception to this step-by-step procedure: The pay authorization controller calls the paymentAuthorizationControllerDidFinish(_:) method as soon as the user cancels a payment without authorizing. The controller can call this method at any time.

## Topics

### Handling user interactions

- [presentationWindow(for:)](passkit/pkpaymentauthorizationcontrollerdelegate/presentationwindow(for:).md)

### Handling user’s payment method selection

- [paymentAuthorizationController(_:didSelectPaymentMethod:handler:)](passkit/pkpaymentauthorizationcontrollerdelegate/paymentauthorizationcontroller(_:didselectpaymentmethod:handler:).md)
- [paymentAuthorizationController(_:didSelectPaymentMethod:completion:)](passkit/pkpaymentauthorizationcontrollerdelegate/paymentauthorizationcontroller(_:didselectpaymentmethod:completion:).md)

### Handling coupons

- [paymentAuthorizationController(_:didChangeCouponCode:handler:)](passkit/pkpaymentauthorizationcontrollerdelegate/paymentauthorizationcontroller(_:didchangecouponcode:handler:).md)

### Handling shipping information

- [paymentAuthorizationController(_:didSelectShippingContact:handler:)](passkit/pkpaymentauthorizationcontrollerdelegate/paymentauthorizationcontroller(_:didselectshippingcontact:handler:).md)
- [paymentAuthorizationController(_:didSelectShippingContact:completion:)](passkit/pkpaymentauthorizationcontrollerdelegate/paymentauthorizationcontroller(_:didselectshippingcontact:completion:).md)
- [paymentAuthorizationController(_:didSelectShippingMethod:handler:)](passkit/pkpaymentauthorizationcontrollerdelegate/paymentauthorizationcontroller(_:didselectshippingmethod:handler:).md)
- [paymentAuthorizationController(_:didSelectShippingMethod:completion:)](passkit/pkpaymentauthorizationcontrollerdelegate/paymentauthorizationcontroller(_:didselectshippingmethod:completion:).md)

### Handling user’s payment authorization

- [paymentAuthorizationController(_:didRequestMerchantSessionUpdate:)](passkit/pkpaymentauthorizationcontrollerdelegate/paymentauthorizationcontroller(_:didrequestmerchantsessionupdate:).md)
- [paymentAuthorizationControllerWillAuthorizePayment(_:)](passkit/pkpaymentauthorizationcontrollerdelegate/paymentauthorizationcontrollerwillauthorizepayment(_:).md)
- [paymentAuthorizationController(_:didAuthorizePayment:handler:)](passkit/pkpaymentauthorizationcontrollerdelegate/paymentauthorizationcontroller(_:didauthorizepayment:handler:).md)
- [paymentAuthorizationController(_:didAuthorizePayment:completion:)](passkit/pkpaymentauthorizationcontrollerdelegate/paymentauthorizationcontroller(_:didauthorizepayment:completion:).md)
- [paymentAuthorizationControllerDidFinish(_:)](passkit/pkpaymentauthorizationcontrollerdelegate/paymentauthorizationcontrollerdidfinish(_:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Handling user interactions

- [delegate](passkit/pkpaymentauthorizationcontroller/delegate.md)
- [present(completion:)](passkit/pkpaymentauthorizationcontroller/present(completion:).md)
- [dismiss(completion:)](passkit/pkpaymentauthorizationcontroller/dismiss(completion:).md)
