Skip to main content

United States โ€” Driver License Barcode Cross-Check

The United States Driver License Cross-Check API combats physical document fraud and synthetic identity fabrication by mathematically correlating data from the physical front of an ID with the encoded AAMVA PDF417 2D barcode on the reverse side.

In identity fraud schemes, bad actors frequently alter visual front-side text or photos while leaving the reverse barcode untouched, or fabricate mismatched barcodes. This service performs subfield-by-subfield matching across license number, full name, date of birth, issuing jurisdiction, and expiration date, producing deterministic field match scores, discrepancy alerts, and an overall authenticity verdict.


API Referenceโ€‹

Endpointโ€‹

POST https://api.verifik.co/v2/usa/driver-license/cross-check

Cross-examine user-supplied or front-OCR identity fields against the cryptographic and structured payload of the rear AAMVA barcode.

Headersโ€‹

NameValueDescription
Content-Typeapplication/jsonRequest payload format
Acceptapplication/jsonResponse format
AuthorizationBearer <token>Client JWT authentication token

Parametersโ€‹

ParameterTypeRequiredDescription
licenseNumberstringYesLicense or document number printed on front of card (e.g., D1234567).
firstNamestringYesSubject first name (e.g., JOHN).
lastNamestringYesSubject last name or surname (e.g., DOE).
backImagestringConditionalBase64-encoded image or public HTTPS URL of rear barcode. Required if rawBarcode is omitted.
rawBarcodestringConditionalRaw ANSI/AAMVA PDF417 barcode text payload. Required if backImage is omitted.
dateOfBirthstringNoDate of birth in YYYY-MM-DD format (e.g., 1990-01-15).
statestringNoExpected two-letter US state abbreviation (e.g., CA).

Requestโ€‹

import axios from "axios";

const options = {
method: "POST",
url: "https://api.verifik.co/v2/usa/driver-license/cross-check",
data: {
licenseNumber: "D1234567",
firstName: "JOHN",
lastName: "DOE",
dateOfBirth: "1990-01-15",
state: "CA",
backImage: "https://cdn.example.com/id-back-california.jpg",
},
headers: {
"Content-Type": "application/json",
Accept: "application/json",
Authorization: "Bearer <your_token>",
},
};

try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error.response ? error.response.data : error.message);
}

Responseโ€‹

{
"data": {
"verdict": "confirmed",
"isAuthentic": true,
"matchScore": 1.0,
"fieldScores": {
"licenseNumber": 1.0,
"firstName": 1.0,
"lastName": 1.0,
"dateOfBirth": 1.0,
"state": 1.0
},
"discrepancies": [],
"barcodeData": {
"iin": "636014",
"issuerName": "California",
"licenseNumber": "D1234567",
"firstName": "JOHN",
"lastName": "DOE",
"dateOfBirth": "1990-01-15",
"expirationDate": "2028-01-15",
"isExpired": false,
"isRealIdCompliant": true
}
},
"signature": {
"dateTime": "October 31, 2026 12:00 AM",
"message": "Certified by Verifik.co"
}
}

Notesโ€‹

  • Fraud & Tampering Defense: Attackers often alter front card details (such as names or birth years to bypass age restrictions) using photo editing software without re-encoding the complex 2D barcode on the reverse side. Cross-checking catches 100% of these front-only alterations.
  • Verdict Classifications: The verdict property evaluates to "confirmed" when all critical fields meet high-confidence thresholds, "discrepancy" when one or more key fields diverge, or "invalid_barcode" if the reverse barcode payload is malformed or unreadable.
  • Deterministic Field Scoring: fieldScores provides granular confidence values from 0.0 (complete mismatch) to 1.0 (exact canonical match) for each compared identifier.