<!--
{
  "availability" : [
    "iOS: 8.0.0 - 9.0.0",
    "iPadOS: 8.0.0 - 9.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "PassKit",
  "identifier" : "/documentation/PassKit/PKPaymentAuthorizationViewControllerDelegate/paymentAuthorizationViewController(_:didSelectShippingAddress:completion:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "PassKit (Apple Pay and Wallet)"
    ],
    "preciseIdentifier" : "c:objc(pl)PKPaymentAuthorizationViewControllerDelegate(im)paymentAuthorizationViewController:didSelectShippingAddress:completion:"
  },
  "title" : "paymentAuthorizationViewController(_:didSelectShippingAddress:completion:)"
}
-->

# paymentAuthorizationViewController(_:didSelectShippingAddress:completion:)

Tells the delegate that the user selected a shipping address.

```
optional func paymentAuthorizationViewController(_ controller: PKPaymentAuthorizationViewController, didSelectShippingAddress address: ABRecord, completion: @escaping @Sendable (PKPaymentAuthorizationStatus, [PKShippingMethod], [PKPaymentSummaryItem]) -> Void)
```

## Parameters

`controller`

The payment authorization view controller.

`address`

An address book record representing the selected shipping method.

`completion`

The completion block to be called with updated shipping information.

    This block takes the following parameters:

- `status`: The authorization status for the payment. For values, see [`PKPaymentAuthorizationViewControllerDelegate`](/documentation/PassKit/PKPaymentAuthorizationViewControllerDelegate).
- `shippingMethods`: An array of [`PKShippingMethod`](/documentation/PassKit/PKShippingMethod) objects that replaces the shipping methods for the current payment request.
- `summaryItems`: An array of [`PKPaymentSummaryItem`](/documentation/PassKit/PKPaymentSummaryItem) objects that replaces the summary items for the current payment request.

## Discussion

Use this method to update the available shipping methods and, if a shipping method has been selected, the current shipping cost.

When this method is called, you create a new array of valid [`PKShippingMethod`](/documentation/PassKit/PKShippingMethod) objects for the specified address. You also create an array of [`PKPaymentSummaryItem`](/documentation/PassKit/PKPaymentSummaryItem) objects that represent the updated cost. The summary items should include the shipping cost if a valid shipping method has been selected. For more information on updating these values, see the [`PKPaymentRequest`](/documentation/PassKit/PKPaymentRequest) class’s [`shippingMethods`](/documentation/PassKit/PKPaymentRequest/shippingMethods) and [`paymentSummaryItems`](/documentation/PassKit/PKPaymentRequest/paymentSummaryItems) properties.

---

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)