<!--
{
  "availability" : [
    "iOS: 10.0.0 - 11.0.0",
    "iPadOS: 10.0.0 - 11.0.0",
    "macCatalyst: 13.1.0 - 13.1.0",
    "macOS: 11.0.0 -",
    "visionOS: 1.0.0 - 1.0.0",
    "watchOS: 3.0.0 - 4.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "PassKit",
  "identifier" : "/documentation/PassKit/PKPaymentAuthorizationControllerDelegate/paymentAuthorizationController(_:didSelectPaymentMethod:completion:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "PassKit (Apple Pay and Wallet)"
    ],
    "preciseIdentifier" : "c:objc(pl)PKPaymentAuthorizationControllerDelegate(im)paymentAuthorizationController:didSelectPaymentMethod:completion:"
  },
  "title" : "paymentAuthorizationController(_:didSelectPaymentMethod:completion:)"
}
-->

# paymentAuthorizationController(_:didSelectPaymentMethod:completion:)

Tells the delegate that the user changed the payment method, and asks for an updated payment request.

```
optional func paymentAuthorizationController(_ controller: PKPaymentAuthorizationController, didSelectPaymentMethod paymentMethod: PKPaymentMethod, completion: @escaping @Sendable ([PKPaymentSummaryItem]) -> Void)
```

## Parameters

`controller`

The payment authorization controller.

`paymentMethod`

The new payment method.

`completion`

The completion block to call with the updated payment summary items.

    This block takes the following parameters:

- `summaryItems`: An updated array of summary items that include any changes due to fees or credit card surcharges associated with the payment method.

## Discussion

This method is called when the user has selected a new payment card.  Use this delegate callback to update the summary items in response to the card type changing (for example, applying credit card surcharges), and then call the callback with the updated summary items.

> Note:
> The delegate receives no further callbacks except ``doc://com.apple.passkit/documentation/PassKit/PKPaymentAuthorizationControllerDelegate/paymentAuthorizationControllerDidFinish(_:)`` until it has invoked the completion block.

---

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)