Configuring your environment for the Verify with Wallet API
Set up your environment to use Verify with Wallet.
Overview
Verify with Wallet allows you to verify a person’s information using their digital ID stored in Apple Wallet. Verify with Wallet streamlines the verification experience in apps that use age or identity verification by allowing people to share information from their digital ID.
To request a digital ID stored in Apple Wallet, you use the PKIdentityNationalIDCardDescriptor. You need the in-app-identity-presentment entitlement to use this API, and you can submit your request here. For more information on the Verify with Wallet API and entitlement requirements, see Get started with the Verify with Wallet API.
Set up your developer account
After you add the in-app-identity-presentment entitlement, you’ll set up your developer account. Complete the following steps in the Certificates, Identifiers, & Profiles section of the Apple Developer website:
Create a merchant ID. If you already have a merchant ID you use for Apple Pay, you can reuse it here.
Create an Identity Access Certificate for your merchant ID. This certificate shows up in the Identity tab on the Edit or Configure a Merchant ID page. Note that your server uses the private key of the encryption certificate to decrypt the encrypted data returned from the API.
Add the
In App Identity Presentmentcapability to your App ID. This capability appears in the Additional Capabilities tab of the Edit your App ID Configuration page.Add the ‘In App Identity Presentment Merchant IDs’ capability to your App ID and select the associated Merchant IDs.
Generate a new provisioning profile with these changes.
Configure your app’s entitlement file
Choose the document-type you want to add the entitlement to from the entitlement request you submitted. For more information, see Managing your app’s information property list values.
Filter the list of entitlements to just the ones you requested through the entitlement request. The following example shows what a entitlement with the us-drivers-license doc-type request might look like:
"com.apple.developer.in-app-identity-presentment": {
"document-types": [
"us-drivers-license"
],
"elements": [
"given-name",
"family-name",
"portrait",
"address",
"issuing-authority",
"document-expiration-date",
"document-number",
"driving-privileges",
"age",
"date-of-birth"
]
},
"com.apple.developer.in-app-identity-presentment.merchant-identifiers": [
“your-merchant-id-goes-here”
]
You must add the com.apple.developer.in-app-identity-presentment.merchant-identifiers entitlement even if you’re using the same merchant ID for Apple Pay. Apple Pay’s com.apple.developer.in-app-payments entitlement isn’t recognized for identity verification.
Once you’ve set up your developer environment, you can use the PKIdentityNationalIDCardDescriptor API to request a digital ID stored in Apple Wallet.
See Also
Identity passes and authorization
Requesting identity data from a Wallet passVerifying Wallet identity requestsPKIdentityPhotoIDDescriptorPKIdentityAnyOfDescriptorPKIdentityDriversLicenseDescriptorPKAddIdentityDocumentMetadataPKAddIdentityDocumentConfigurationPKAddIdentityDocumentTypeJPKIPassContentsPKAddIdentityDocumentConfigurationPKAddPassMetadataPreviewPKIdentityDocumentMetadataPKIdentityNationalIDCardDescriptorPKJapanIndividualNumberCardMetadata