<!--
{
  "availability" : [
    "iOS: 16.0.0 -",
    "iPadOS: 16.0.0 -",
    "macCatalyst: 16.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PassKit",
  "identifier" : "/documentation/PassKit/PKIdentityAuthorizationController",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "PassKit (Apple Pay and Wallet)"
    ],
    "preciseIdentifier" : "c:objc(cs)PKIdentityAuthorizationController"
  },
  "title" : "PKIdentityAuthorizationController"
}
-->

# PKIdentityAuthorizationController

An object that presents a sheet that prompts the user to allow a request for identity information.

```
class PKIdentityAuthorizationController
```

## Overview

Use this class to request [`PKIdentityElement`](/documentation/PassKit/PKIdentityElement) objects from a mobile driver’s license or state identification card. When you request identity information, the system prompts the user for approval.

```swift
// Create an authorization controller.
let controller = PKIdentityAuthorizationController()

// Describe the elements you request.
let descriptor = PKIdentityDriversLicenseDescriptor()
descriptor.addElements([.age(atLeast: 18)], 
                        intentToStore: .willNotStore)
descriptor.addElements([.givenName, .portrait], 
                        intentToStore: .mayStore(days: 30))

// Create the request.
let request = PKIdentityRequest()
request.descriptor = descriptor
request.merchantIdentifier = // A merchant identifier you configure in the developer portal.
request.nonce = // Generate a nonce to verify a request is only made once.

// Prompt the user for approval.
controller.requestDocument(request) { document, error in
    // Handle the document response or error, if necessary.
}
```

The system returns response data as an encoded concise binary object representation (CBOR) blob; CBOR is a binary format similar to JSON. You must decrypt the response on your server.

For design guidance, see [Human Interface Guidelines > Technologies > Wallet](https://developer.apple.com/design/human-interface-guidelines/technologies/wallet/introduction).

> Important:
> This API only works on iPhone and returns an error if you access it on iPad. This framework requires a special entitlement from Apple. This entitlement is not yet available.

## Topics

### Describing a document

[`class PKIdentityDriversLicenseDescriptor`](/documentation/PassKit/PKIdentityDriversLicenseDescriptor)

An object for requesting information from a user’s driver’s license or equivalent document.

[`class PKIdentityIntentToStore`](/documentation/PassKit/PKIdentityIntentToStore)

An object that represents your intention to store an identity element or values derived from an identity element.

[`protocol PKIdentityDocumentDescriptor`](/documentation/PassKit/PKIdentityDocumentDescriptor)

A type that describes the structure and behavior of an identity document.

### Requesting a document

[`func checkCanRequestDocument(any PKIdentityDocumentDescriptor, completion: (Bool) -> Void)`](/documentation/PassKit/PKIdentityAuthorizationController/checkCanRequestDocument(_:completion:))

Returns whether an identity document is available to request.

[`func requestDocument(PKIdentityRequest, completion: (PKIdentityDocument?, (any Error)?) -> Void)`](/documentation/PassKit/PKIdentityAuthorizationController/requestDocument(_:completion:))

Prompts the user to approve the request to get the identity information.

### Cancelling a request

[`func cancelRequest()`](/documentation/PassKit/PKIdentityAuthorizationController/cancelRequest())

Cancels a request in progress.

## Relationships

### Conforms To

[`CVarArg`](/documentation/Swift/CVarArg)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`Hashable`](/documentation/Swift/Hashable)

[`Equatable`](/documentation/Swift/Equatable)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

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)