US Driver's License Validation
DLV
Customers can validate driver’s licenses, learner’s permits, and government-issued IDs with government and proprietary data sources in 42 US states and Washington, D.C.
US territories defined as insular areas (such as Puerto Rico) are not supported.
Driver’s License Validation validates the printed data fields from the driver’s license with government and proprietary data sources.
States that are Not Supported
- Alaska
- Louisiana
- Minnesota
- New Hampshire
- New York
- Oklahoma
- South Carolina
- Utah
Fields that are being validated
Data Field | Supported in 41 States | Supported in California |
---|---|---|
Driver’s License Number | V | V |
License Type (ie. Commercial) | V | |
Last Name | V | V |
Date of Birth | V | V |
Expiration Date | V | |
State | V | V |
Turning on the Feature
- If your account hasn't been set for the Driver's License Validation feature yet, please reach out to the Vouched team and ask to turn it on ([email protected]).
- Once set on the Vouched side, the feature is live, and Driver's License Validation checks will be added to your candidates' validations.
- The feature can be controlled via your JS plugin account props:
verification: { enableDriversLicenseValidation: false}
. Setting the field to False will turn it off for the specific job. The feature cannot be turned on solely from the plugin withverification: { enableDriversLicenseValidation: true}
. You must have the feature enabled for your account as mentioned above in note 1.
Reading the Response
There are two ways to read Driver's License Validation response, via the dashboard and via the job JSON response.
JSON Response:
A dlv
object is included under the result
object of any job response. Customers can get the responses by setting a callbackURL or using the Vouched Find Job API.
An example of a successful dlv
response object:
"result": {
"dlv": {
"dlvStatusMessage": "Completed",
"dlvCheckPerformed": true,
"dlvEnabled": true,
"result": {
"stateSupported": true,
"checkPerformedAt": "2023-02-23T23:24:54.000Z",
"wasCheckPerformed": true,
"status": "Approved",
"source": "governmental",
"fieldMatchesAvailable": [
"licenseNumber",
"lastName",
"birthDate",
],
"fieldMatchesFailed": [],
"fieldMatchesSucceeded": [
"licenseNumber",
"lastName",
"birthDate",
],
"fieldMatchesUnavailable": [
"expirationDate",
"issueDate"
]
}
}
}
dlvStatusMessage
is a string that indicates the status of the dlv job. This can be"Pending"
,"In Progress"
,"Completed"
, or"Error"
.dlvCheckPerformed
indicates whether or not the request was made yet for a dlv request. Theresult
object you see within the response is populated asynchronously when a response is received from the license's state. ThereforedlvCheckPerformed
serves as an indicator of whether or notresult
can be expected to be populated.- The
result
object within this response consists of the actual state results we compile from the state on the license.status
indlv.result
can beApproved
orNot Approved
and indicates whether the driver's license details are fully matched. If at least one field appears underfieldMatchesFailed
, or if a state is unsupported, you will get aNot Approved
result.source
field can begovernmental
ornonGovernmental
and indicates whether we used a government based or a proprietary data source.wasCheckPerformed
indicates whether or not a successful response was received from the state. Note that this can be false while the abovedlvCheckPerformed
is true. See an example scenario below where the state is unsupported.
Other Scenarios
Here are example scenarios with different combinations of results and their meanings.
"result": {
"dlv": {
"dlvStatusMessage": "Pending",
"dlvCheckPerformed": false,
"dlvEnabled": true,
"result": null
}
}
In the above scenario, the dlv
feature was enabled for the job, but the job is Pending and therefore the check has not been performed and the result is null.
"result": {
"dlv": {
"dlvStatusMessage": "In Progress",
"dlvCheckPerformed": false,
"dlvEnabled": true,
"result": null
}
}
In the above scenario, the dlv
feature was enabled for the job, but the job is In Progress and therefore the check has not been performed and the result is null.
"result": {
"dlv": {
"dlvStatusMessage": "Error",
"dlvCheckPerformed": false,
"dlvEnabled": true,
"result": null
}
}
In the above scenario, the dlv
feature was enabled for the job and the status is Error, therefore the check was not performed and the result is null. This can be for multiple reasons, including issues extracting data from the license and the provided document being unsupported, but state service outages are usually the cause.
"result": {
"dlv": {
"dlvStatusMessage": "Not Applicable",
"dlvCheckPerformed": false,
"dlvEnabled": false,
"result": null
}
}
In the above scenario, the dlv
feature was not enabled for the job and the status is Not Applicable, therefore the check was not performed and the result is null.
"result": {
"dlv": {
"dlvStatusMessage": "Completed",
"dlvCheckPerformed": true,
"dlvEnabled": true,
"result": {
"stateSupported": false,
"checkPerformedAt": '',
"wasCheckPerformed": false,
"status": 'Not Approved',
"source": '',
"fieldMatchesAvailable": [],
"fieldMatchesSucceeded": [],
"fieldMatchesFailed": [],
"fieldMatchesUnavailable": [],
}
}
}
In the above scenario, the state of the license is unsupported for dlv checks.
Dashboard:
The DLV tab within your dashboard jobs responses contains all the information, example:
Job Status and Check Performed refer to the results of dlvStatusMessage
and wasCheckPerformed
respectively from the JSON response above.
Updated 4 months ago