---
title: PKIdentityAuthorizationController
framework: passkit
role: symbol
role_heading: Class
path: passkit/pkidentityauthorizationcontroller
---

# PKIdentityAuthorizationController

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

## Declaration

```swift
class PKIdentityAuthorizationController
```

## Mentioned in

Requesting identity data from a Wallet pass

## Overview

Overview Use this class to request PKIdentityElement objects from a mobile driver’s license or state identification card. When you request identity information, the system prompts the user for approval. // 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. 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

- [PKIdentityDriversLicenseDescriptor](passkit/pkidentitydriverslicensedescriptor.md)
- [PKIdentityIntentToStore](passkit/pkidentityintenttostore.md)
- [PKIdentityDocumentDescriptor](passkit/pkidentitydocumentdescriptor.md)

### Requesting a document

- [checkCanRequestDocument(_:completion:)](passkit/pkidentityauthorizationcontroller/checkcanrequestdocument(_:completion:).md)
- [requestDocument(_:completion:)](passkit/pkidentityauthorizationcontroller/requestdocument(_:completion:).md)

### Cancelling a request

- [cancelRequest()](passkit/pkidentityauthorizationcontroller/cancelrequest().md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Identity sheet interactions and authorization

- [PKIdentityRequest](passkit/pkidentityrequest.md)
- [PKIdentityDocument](passkit/pkidentitydocument.md)
- [PKIdentityElement](passkit/pkidentityelement.md)
- [PKIdentityButton](passkit/pkidentitybutton.md)
- [VerifyIdentityWithWalletButton](passkit/verifyidentitywithwalletbutton.md)
- [VerifyIdentityWithWalletButtonLabel](passkit/verifyidentitywithwalletbuttonlabel.md)
- [VerifyIdentityWithWalletButtonStyle](passkit/verifyidentitywithwalletbuttonstyle.md)
