---
title: "paymentAuthorizationControllerDidFinish(_:)"
framework: passkit
role: symbol
role_heading: Instance Method
path: "passkit/pkpaymentauthorizationcontrollerdelegate/paymentauthorizationcontrollerdidfinish(_:)"
---

# paymentAuthorizationControllerDidFinish(_:)

Tells the delegate that payment authorization has completed.

## Declaration

```swift
@MainActor func paymentAuthorizationControllerDidFinish(_ controller: PKPaymentAuthorizationController)
```

## Parameters

- `controller`: The payment authorization controller.

## Discussion

Discussion Use this method to dismiss the payment authorization controller and update any other app state. When the user authorizes a payment request, this method is called after the user is shown the status from the paymentAuthorizationController(_:didAuthorizePayment:completion:) method’s completion block. When the user cancels without authorizing the payment request, only paymentAuthorizationControllerDidFinish: is called.

## See Also

### 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)
