California mDL (CA DMV Wallet)
Overview
A California Department of Motor Vehicles app offering a digital version of state-issued IDs and driver's licenses. Desktop displays a QR, mobile deep‑links to the DMV Wallet; resident approves share, releasing AAMVA‑compliant driver data in seconds.
- ID:
usa-california-dmv - Type: eID (app)
- Verification Type: Presentation
- Regions: North America, United States
- Countries: US
- Subdivisions: US-CA
- Adoption: 2,100,000
- URL: https://www.dmv.ca.gov/portal/ca-dmv-wallet/mdl-faqs/
Integration with Trinsic
- Permission required: No, this method is live by default for all Trinsic customers.
- Cost: Contact the Trinsic team.
User Flow
To see an example: watch this video
The CA DMV verification flow works on mobile and desktop. On desktop, users are presented a QR code which they scan in order to open the CA DMV Wallet application. On mobile, the user clicks a button which deep-links them to their CA DMV Wallet application. In both cases, the user is taken to their mobile app where they complete a FaceID authentication and consent to share the requested data.
Direct API Requirements
Direct API is not a requirement.You can integrate with this provider using the Hosted UI instead, with no additional integration requirements on your end.
What your integration must support in order to use this provider with the Direct Provider Sessions API.
- Supports Direct Provider Sessions: ✅
- Launch Method:
DeeplinkToMobile— Launch the given URI on the user's mobile device. - Collection Method:
PollResult— Results arrive asynchronously; poll with theresultsAccessKeyreturned at session creation. - Trinsic-Hosted UI: A Trinsic-Hosted Fallback UI exists for this provider, which may be invoked to cover gaps in your integration's capabilities.
Outputs
Normalized AttributesThese attributes form part of our normalized model, a standardized set used across providers. Trinsic normalizes this for you and lets you know when a property is available for each provider.
| Field | Availability | Notes |
|---|---|---|
person.givenName | Always | - |
person.familyName | Always | - |
person.dateOfBirth | Always | - |
person.sex | Always | - |
person.address.line1 | Always | - |
person.address.city | Always | - |
person.address.subdivision | Always | - |
person.address.postalCode | Always | - |
person.address.country | Always | - |
document.type | Always | - |
document.number | Always | - |
document.issueDate | Always | - |
document.expirationDate | Always | - |
document.issuingCountry | Always | - |
document.issuingSubdivision | Always | - |
document.issuingAuthority | Always | - |
attachments.documentPortrait | Always | - |
| Field | Optional | Description | Example Values |
|---|---|---|---|
mobileDriversLicense.standard.givenName | Yes | First name(s), other name(s), or secondary identifier of the individual. | JOHN |
mobileDriversLicense.standard.givenNameNationalCharacter | Yes | The given name of the individual using the full UTF-8 character set. | JOHN |
mobileDriversLicense.standard.familyName | Yes | Last name, surname, or primary identifier of the individual. | DOE |
mobileDriversLicense.standard.familyNameNationalCharacter | Yes | The family name of the individual using the full UTF-8 character set. | DOE |
mobileDriversLicense.standard.dateOfBirth | Yes | The date of birth of the individual. | 1990-01-31 |
mobileDriversLicense.standard.issueDate | Yes | The date when the mDL was issued. This date marks the beginning of the Administrative Validity Period of the mDL, which is usually (but not necessarily always) the same as the issue date of the underlying physical document used to create the mDL, if one exists. | 2020-01-31 |
mobileDriversLicense.standard.expiryDate | Yes | The date when the mDL expires. This date marks the end of the Administrative Validity Period of the mDL, which is usually (but not necessarily always) the same as the expiration date of the underlying physical document used to create the mDL, if one exists. | 2030-01-31 |
mobileDriversLicense.standard.issuingCountry | Yes | Alpha-2 country code of the issuing authority's country or territory. | US |
mobileDriversLicense.standard.issuingAuthority | Yes | Name or identifier of the mDL issuing authority. This field's contents are arbitrary; it has no guaranteed format. | CA,USA |
mobileDriversLicense.standard.issuingJurisdiction | Yes | ISO 3166-2 country-subdivision code for the jurisdiction that issued the mDL. | US-CA |
mobileDriversLicense.standard.nationality | Yes | Nationality of the individual as an ISO 3166-1 alpha-2 country code. | US |
mobileDriversLicense.standard.documentNumber | Yes | The document number assigned to the mDL. This is typically the same as the document number of the underlying physical document used to create the mDL, if one exists. | D1234567 |
mobileDriversLicense.standard.drivingPrivileges | Yes | Driving privileges of the individual, parsed per ISO 18013-5. | [{'{'} "vehicleCategoryCode": "C", "issueDate": "2020-01-31", "expiryDate": "2030-01-31" {'}'}] |
mobileDriversLicense.standard.unDistinguishingSign | Yes | The UN Distinguishing sign of the issuing country according to ISO/IEC 18013-1. | USA |
mobileDriversLicense.standard.administrativeNumber | Yes | Audit control number assigned by the issuing authority. The meaning and semantics of this field are defined by the issuing authority in question. | 123456789 |
mobileDriversLicense.standard.sex | Yes | The individual's sex as an ISO/IEC 5218 code. Possible values: - 0: Unknown - 1: Male - 2: Female - 9: Not Applicable | 1 |
mobileDriversLicense.standard.heightCentimeters | Yes | The individual's height in centimeters. | 180 |
mobileDriversLicense.standard.weightKilograms | Yes | The individual's weight in kilograms. | 75 |
mobileDriversLicense.standard.eyeColor | Yes | The individual's eye color. Possible values: - "black" - "blue" - "brown" - "dichromatic" - "grey" - "green" - "hazel" - "maroon" - "pink" - "unknown" | brown |
mobileDriversLicense.standard.hairColor | Yes | The individual's hair color. Possible values: - "bald" - "black" - "blond" - "brown" - "grey" - "red" - "auburn" - "sandy" - "white" - "unknown" | black |
mobileDriversLicense.standard.birthPlace | Yes | Country and municipality or state/province where the individual was born. | SACRAMENTO, CA |
mobileDriversLicense.standard.residentAddress | Yes | Address where the individual resides. The exact format of this field is variable and depends on the issuer. It may map exactly to a "Line1", or it may include city, state, and/or zip code as well. | 123 MAIN ST |
mobileDriversLicense.standard.residentCity | Yes | City where the individual resides. | SACRAMENTO |
mobileDriversLicense.standard.residentState | Yes | State, province, or district where the individual resides. | CA |
mobileDriversLicense.standard.residentPostalCode | Yes | Postal code where the individual resides. | 95814 |
mobileDriversLicense.standard.residentCountry | Yes | Country where the individual resides as an ISO 3166-1 alpha-2 country code. | US |
mobileDriversLicense.standard.portraitCaptureDate | Yes | Date and time when the portrait image was captured. | 2020-01-31T12:34:56Z |
mobileDriversLicense.standard.ageInYears | Yes | Age of the individual in years. | 35 |
mobileDriversLicense.standard.ageBirthYear | Yes | Year of birth of the individual. | 1990 |
mobileDriversLicense.standard.ageOver | Yes | Processed age-over claims returned by the mDL. | [{'{'} "age": 18, "isOver": true {'}'}, {'{'} "age": 21, "isOver": true {'}'}] |
mobileDriversLicense.standard.biometricTemplateFace.templates | Yes | Individual biometric templates contained in this group. | [] |
mobileDriversLicense.standard.biometricTemplateVoice.templates | Yes | Individual biometric templates contained in this group. | [] |
mobileDriversLicense.standard.biometricTemplateFinger.templates | Yes | Individual biometric templates contained in this group. | [] |
mobileDriversLicense.standard.biometricTemplateIris.templates | Yes | Individual biometric templates contained in this group. | [] |
mobileDriversLicense.standard.biometricTemplateRetina.templates | Yes | Individual biometric templates contained in this group. | [] |
mobileDriversLicense.aamva.domesticDrivingPrivileges | Yes | Domestic categories of vehicles, restrictions, and conditions, parsed per AAMVA Section 7.2.4. | [{'{'} "vehicleClass": {'{'} "code": "C", "description": "Passenger Vehicles" {'}'} {'}'}] |
mobileDriversLicense.aamva.nameSuffix | Yes | Name suffix of the individual that has been issued the credential. | JR |
mobileDriversLicense.aamva.organDonor | Yes | Whether the individual is an organ donor. | true |
mobileDriversLicense.aamva.veteran | Yes | Whether the individual is a veteran. | true |
mobileDriversLicense.aamva.familyNameTruncation | Yes | Indicates whether the family name has been truncated. Possible values: - 'T': Truncated - 'N': Not truncated - 'U': Unknown whether truncated | N |
mobileDriversLicense.aamva.givenNameTruncation | Yes | Indicates whether the given name has been truncated. Possible values: - 'T': Truncated - 'N': Not truncated - 'U': Unknown whether truncated | N |
mobileDriversLicense.aamva.akaFamilyNameV2 | Yes | Other family name by which the individual is known. | SMITH |
mobileDriversLicense.aamva.akaGivenNameV2 | Yes | Other given name by which the individual is known. | JOHN |
mobileDriversLicense.aamva.akaSuffix | Yes | Other suffix by which the individual is known. | JR |
mobileDriversLicense.aamva.weightRange.minKilograms | Yes | Minimum weight in the range, in kilograms. | 71 |
mobileDriversLicense.aamva.weightRange.maxKilograms | Yes | Maximum weight in the range, in kilograms. If null, the maximum weight has no limit. | 86 |
mobileDriversLicense.aamva.raceEthnicity | Yes | AAMVA D20 race or ethnicity code of the individual. | U |
mobileDriversLicense.aamva.sex | Yes | The sex of the individual as an AAMVA-defined sex code. This is distinct from an ISO/IEC 5218 sex code in two ways: there is no "Unknown" value, and "Not Applicable" is replaced with "Not Specified". Possible values: - 1: Male - 2: Female - 9: Not Specified | 1 |
mobileDriversLicense.aamva.firstName | Yes | First name of the individual. | JOHN |
mobileDriversLicense.aamva.middleNames | Yes | Middle name or names of the individual. | ALBERT |
mobileDriversLicense.aamva.firstNameTruncation | Yes | Whether the first name has been truncated. | N |
mobileDriversLicense.aamva.middleNamesTruncation | Yes | Whether the middle name has been truncated. | N |
mobileDriversLicense.aamva.edlCredential | Yes | Deprecated AAMVA EDL (Enhanced Driver's License) credential indicator. If present, indicates the type of the EDL credential. Possible values: 1: Driver's License 2: Identification Card | 1 |
mobileDriversLicense.aamva.edlCredentialV2 | Yes | Whether the credential is an Enhanced Driver's License (EDL). | true |
mobileDriversLicense.aamva.dhsCompliance | Yes | Whether the credential is REAL ID compliant. true for fully compliant ("F"),false for non-compliant ("N"), null when not present. | true |
mobileDriversLicense.aamva.residentCounty | Yes | Deprecated county code for the county where the individual lives. | 067 |
mobileDriversLicense.aamva.residentCountyV2 | Yes | County code for the county where the individual lives. | 067 |
mobileDriversLicense.aamva.hazmatEndorsementExpirationDate | Yes | Date on which the hazardous material endorsement expires. | 2030-01-31 |
mobileDriversLicense.aamva.cdlIndicator | Yes | Whether the credential is a Commercial Driver's License (CDL) per FMCSA. | true |
mobileDriversLicense.aamva.cdlNonDomiciled | Yes | Deprecated. Whether the CDL holder is non-domiciled in the issuing jurisdiction. | true |
mobileDriversLicense.aamva.cdlNonDomiciledV2 | Yes | Whether the CDL holder is non-domiciled in the issuing jurisdiction. | true |
mobileDriversLicense.aamva.dhsComplianceText | Yes | Text agreed on between the issuing authority and DHS for non-compliant credentials. | Federal Limits Apply |
mobileDriversLicense.aamva.dhsTemporaryLawfulStatus | Yes | Whether the individual has DHS temporary lawful status. | true |
rawMdlOutput.iacaRootCertificate.serialNumber | Yes | The serial number of the certificate | 535868140170056787981774412188464491855209169584 |
rawMdlOutput.iacaRootCertificate.commonName | Yes | The common name (CN) of the certificate | California DMV IACA Root |
rawMdlOutput.iacaRootCertificate.stateOrProvinceName | Yes | The stateOrProvinceName field from the signing certificate. Per the ISO 18013-5 (mDL) spec, this is an ISO 3166-2:2020 country subdivision code (e.g., "US-CA" for California, USA). May be an empty string for certificates which are not state-specific (e.g., Google Wallet's ID Pass certificates). | US-CA |
rawMdlOutput.iacaRootCertificate.notBefore | Yes | The date before which this certificate is not valid. | 2023-03-01T17:17:39.000Z |
rawMdlOutput.iacaRootCertificate.notAfter | Yes | The date after which this certificate is not valid. | 2033-01-07T17:17:39.000Z |
rawMdlOutput.documentSignerCertificate.serialNumber | Yes | The serial number of the certificate | 306801082360131207284784033026769989720690200468 |
rawMdlOutput.documentSignerCertificate.commonName | Yes | The common name (CN) of the certificate | California DMV IACA mdoc Signer |
rawMdlOutput.documentSignerCertificate.stateOrProvinceName | Yes | The stateOrProvinceName field from the signing certificate. Per the ISO 18013-5 (mDL) spec, this is an ISO 3166-2:2020 country subdivision code (e.g., "US-CA" for California, USA). May be an empty string for certificates which are not state-specific (e.g., Google Wallet's ID Pass certificates). | US-CA |
rawMdlOutput.documentSignerCertificate.notBefore | Yes | The date before which this certificate is not valid. | 2025-01-13T17:26:32.000Z |
rawMdlOutput.documentSignerCertificate.notAfter | Yes | The date after which this certificate is not valid. | 2026-04-13T17:26:32.000Z |
rawMdlOutput.documentType | Yes | The document type of the mDoc presented by the individual. Common values: - "org.iso.18013.5.1.mDL" for ISO 18013-5 mDLs - "com.google.wallet.idcard.1" for Google Wallet ID Cards | org.iso.18013.5.1.mDL |
rawMdlOutput.nameSpaces | Yes | The namespaces, and fields within those namespaces, which were present in the processed mDL. | {'{'}<br /> "org.iso.18013.5.1": {'{'}<br /> "family_name": {'{'}<br /> "type": "String",<br /> "value": "DOE"<br /> {'}'},<br /> "given_name": {'{'}<br /> "type": "String",<br /> "value": "JOHN"<br /> {'}'},<br /> "birth_date": {'{'}<br /> "type": "String",<br /> "value": "2000-03-27"<br /> {'}'},<br /> "age_over_21": {'{'}<br /> "type": "Boolean",<br /> "value": "true"<br /> {'}'}<br /> {'}'}<br />{'}'} |
Updated 18 days ago
