---
title: "paymentAuthorizationController(_:didAuthorizePayment:completion:)"
framework: passkit
role: symbol
role_heading: Instance Method
path: "passkit/pkpaymentauthorizationcontrollerdelegate/paymentauthorizationcontroller(_:didauthorizepayment:completion:)"
---

# paymentAuthorizationController(_:didAuthorizePayment:completion:)

Tells the delegate that the user authorized the payment request, and asks for a result.

## Declaration

```swift
optional func paymentAuthorizationController(_ controller: PKPaymentAuthorizationController, didAuthorizePayment payment: PKPayment, completion: @escaping @Sendable (PKPaymentAuthorizationStatus) -> Void)
```

```swift
optional func paymentAuthorizationController(_ controller: PKPaymentAuthorizationController, didAuthorizePayment payment: PKPayment) async -> PKPaymentAuthorizationStatus
```

## Parameters

- `controller`: The payment authorization controller.
- `payment`: The authorized payment. This object contains the payment token you need to submit to your payment processor, as well as the billing and shipping information required by the payment request.
- `completion`: The completion block to call with the result of authorizing the payment. This block takes the following parameters:

## Discussion

Discussion This method is called after the payment request is authorized. You submit the payment information to your payment processor to authorize the transaction, and then call the completion block. note: The delegate receives no further callbacks except paymentAuthorizationControllerDidFinish(_:) until it has invoked the completion block.

## 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)
- [paymentAuthorizationControllerDidFinish(_:)](passkit/pkpaymentauthorizationcontrollerdelegate/paymentauthorizationcontrollerdidfinish(_:).md)
