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 FieldSupported in 41 StatesSupported in California
Driver’s License NumberVV
License Type (ie. Commercial)V
Last NameVV
Date of BirthVV
Expiration DateV
StateVV



Turning on the Feature

  1. 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]).
  2. Once set on the Vouched side, the feature is live, and Driver's License Validation checks will be added to your candidates' validations.
  3. 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 with verification: { 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. The result object you see within the response is populated asynchronously when a response is received from the license's state. Therefore dlvCheckPerformed serves as an indicator of whether or not result 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 in dlv.result can be Approved or Not Approved and indicates whether the driver's license details are fully matched. If at least one field appears under fieldMatchesFailed, or if a state is unsupported, you will get a Not Approved result.
    • source field can be governmental or nonGovernmental 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 above dlvCheckPerformed 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.