Estados Unidos — Verificación Cruzada de Licencia (Frente vs Reverso)
La API de Verificación Cruzada de Licencia de Conducir de EE. UU. de Verifik implementa una defensa anti-fraude de dos factores documentales. Compara de forma estricta los datos demográficos y de identificación visualizados en el anverso de la credencial contra la carga de datos cifrada y codificada en el código de barras bidimensional AAMVA PDF417 del reverso.
Esta técnica detecta de inmediato intentos comunes de falsificación (tampering), tales como la superposición de fotografías o alteración de nombres y fechas de nacimiento en el frente mientras el código de barras conserva los datos del titular original o de otra tarjeta.
Casos de Uso
- Prevención de Suplantación de Identidad: Detección de identificaciones manipuladas donde el nombre o fecha de nacimiento visible fue modificado digitalmente o mediante pegatinas.
- Auditoría Forense de Documentos KYC: Acreditación de autenticidad documental previa a la apertura de cuentas bancarias o transacciones de alto valor.
- Automatización de Decisiones de Riesgo: Generación de un veredicto definitivo (
confirmedomismatch) con puntaje ponderado de coincidencia (matchScore).
Endpoint
POST https://api.verifik.co/v2/usa/driver-license/cross-check
Headers
| Nombre | Valor | Requerido | Descripción |
|---|---|---|---|
Accept | application/json | Sí | Formato de respuesta JSON |
Content-Type | application/json | Sí | Formato de envío JSON |
Authorization | Bearer <token> | Sí | Token JWT de autenticación en Verifik |
Parameters
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
licenseNumber | string | Sí | Número de licencia extraído u observado en el frente de la credencial (ej. D1234567). |
firstName | string | Sí | Nombre(s) de pila del titular tal como aparece en el frente de la credencial (ej. JOHN). |
lastName | string | Sí | Apellido(s) del titular tal como aparece en el frente de la credencial (ej. DOE). |
backImage | string | Condicional | Imagen del reverso de la licencia con el código de barras PDF417 en Base64 o URL HTTPS. Requerido si no se envía rawBarcode. |
rawBarcode | string | Condicional | Cadena de texto del código de barras si ya fue decodificada previamente. Requerido si no se envía backImage. |
dateOfBirth | string | No | Fecha de nacimiento en formato YYYY-MM-DD (ej. 1990-05-15). |
state | string | No | Código de 2 letras del estado emisor (ej. CA, FL, TX). |
Request
- Node.js (JavaScript)
- Python
- cURL
import axios from "axios";
const options = {
method: "POST",
url: "https://api.verifik.co/v2/usa/driver-license/cross-check",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
Authorization: "Bearer <tu_token>",
},
data: {
licenseNumber: "D1234567",
firstName: "JOHN",
lastName: "DOE",
dateOfBirth: "1990-05-15",
state: "CA",
backImage: "data:image/jpeg;base64,/9j/4AAQSkZJRg...",
},
};
try {
const { data } = await axios.request(options);
console.log(JSON.stringify(data, null, 2));
} catch (error) {
console.error("Error al verificar concordancia de licencia:", error.response?.data || error.message);
}
import requests
url = "https://api.verifik.co/v2/usa/driver-license/cross-check"
headers = {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": "Bearer <tu_token>"
}
payload = {
"licenseNumber": "D1234567",
"firstName": "JOHN",
"lastName": "DOE",
"dateOfBirth": "1990-05-15",
"state": "CA",
"backImage": "data:image/jpeg;base64,/9j/4AAQSkZJRg..."
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
curl -X POST "https://api.verifik.co/v2/usa/driver-license/cross-check" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <tu_token>" \
-d '{
"licenseNumber": "D1234567",
"firstName": "JOHN",
"lastName": "DOE",
"dateOfBirth": "1990-05-15",
"state": "CA",
"backImage": "data:image/jpeg;base64,/9j/4AAQSkZJRg..."
}'
Response
- 200 (Auténtico / Coincidencia Total)
- 200 (Discrepancia / Posible Alteración)
- 409 (Faltan Parámetros)
{
"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-05-15",
"expirationDate": "2028-05-15",
"isRealIdCompliant": true
}
},
"signature": {
"dateTime": "2026-10-31 00:00:00",
"message": "Certified by Verifik.co"
}
}
{
"data": {
"verdict": "mismatch",
"isAuthentic": false,
"matchScore": 0.5,
"fieldScores": {
"licenseNumber": 0.0,
"firstName": 1.0,
"lastName": 1.0,
"dateOfBirth": 1.0,
"state": 1.0
},
"discrepancies": [
{
"field": "licenseNumber",
"frontValue": "D1234567",
"barcodeValue": "D9999999",
"reason": "El número de licencia no coincide entre el frente y el código de barras"
}
],
"barcodeData": {
"iin": "636014",
"issuerName": "California",
"licenseNumber": "D9999999",
"firstName": "JOHN",
"lastName": "DOE",
"dateOfBirth": "1990-05-15"
}
},
"signature": {
"dateTime": "2026-10-31 00:00:00",
"message": "Certified by Verifik.co"
}
}
{
"code": "MissingParameter",
"message": "licenseNumber, firstName, lastName, and either backImage or rawBarcode are required"
}
Perfiles de Prueba Sandbox
| Datos del Frente | Entrada del Reverso | Veredicto Esperado |
|---|---|---|
licenseNumber: "D1234567", firstName: "JOHN", lastName: "DOE" | Código de barras concordante con D1234567 | verdict: "confirmed", isAuthentic: true, matchScore: 1.0 |
licenseNumber: "D1234567", firstName: "JOHN", lastName: "DOE" | Código de barras con titular diferente (D9999999) | verdict: "mismatch", isAuthentic: false, discrepancies: [...] |