OCR Credencial de elector
Recibe la imagen del frente y del reverso de una Credencial para Votar codificadas en base64 y devuelve los datos extraídos por OCR: clave de elector, CIC, identificador del ciudadano, CURP, nombre completo, dirección, fecha de nacimiento, género y modelo de credencial. Detecta automáticamente el tipo de credencial (C, D, E, F, G o H) y reporta inconsistencias entre ambas caras.
Endpoint
https://api.datosnonstop.com/v1/ine/ocrParámetros
{
"files": [
{
"name": "front",
"base64": "iVBORw0KGgoAAAANSCdvCcIcIAYZAA..."
},
{
"name": "back",
"base64": "iVBORw0KGgoAAAANSUhEUgAABNwAAA..."
}
]
}filesarraySíArreglo con exactamente dos elementos: la imagen del frente y la del reverso de la credencial.files[].namestringSíCara de la credencial. Debe ser front o back.files[].base64stringSíImagen de la cara correspondiente codificada en base64 (sin el prefijo data:image/...).Ejemplo rápido
Coloca tu API key en el header x-api-key y agrega el header Content-Type: application/json para enviar el body como JSON.
curl -X POST https://api.datosnonstop.com/v1/ine/ocr \
-H "x-api-key: tu_api_key" \
-H "Content-Type: application/json" \
-d '{"files":[{"name":"front","base64":"iVBORw0KGgoAAAANSCdvCcIcIAYZAA..."},{"name":"back","base64":"iVBORw0KGgoAAAANSUhEUgAABNwAAA..."}]}'Tip
¿Sabías que al pegar un cURL en Postman te crea automáticamente la llamada con todos los elementos?
Token
Cada consulta consume tokens. Lo que no uses, lo conservas — tu saldo se acumula sin fecha de vencimiento ni reinicios. Puedes consultarlo en cualquier momento desde el dashboard o directamente en el header de cada respuesta x-tokens-remaining.
Respuesta
{
"id": "66e373f0ffc913d5a03455c6",
"status": "found",
"tipo": "e",
"claveElector": "GOMV760705MOLMLR01",
"cic": "183657717",
"identificadorCiudadano": "116375842",
"curp": "GOVS760705MOLMLR01",
"nombreCompleto": "JUAN PEREZ PEREZ",
"direccion": "CALLE SIEMPRE VIVA COL LAGUNILLA 09820 CDMX",
"fechaNacimiento": "1976-07-05",
"genero": "M",
"mensajesValidacion": []
}Respuestas en error
{
"error": "empty_field",
"message": "El campo 'files' es requerido y debe contener las imágenes de frente y reverso",
"field": "files"
}Campos
Campos de entrada
filesarrayArreglo con exactamente dos elementos correspondientes a las dos caras de la credencial.files[].namestringCara de la credencial. Acepta dos valores: front (anverso) y back (reverso).files[].base64stringImagen de la cara correspondiente codificada en base64. No debe incluir el prefijo data:image/jpeg;base64,. Se recomienda enviar imágenes con buena iluminación, sin reflejos y sin recortes para maximizar la precisión del OCR.Campos de respuesta
idstringIdentificador interno de la consulta, útil para soporte y trazabilidad.tipostringModelo de la credencial detectado a partir de las imágenes. Ver catálogo Modelo de credencial.claveElectorstringClave de elector de 18 caracteres extraída del frente. Solo está presente cuando status es found.cicstringClave de Identificación del Ciudadano extraída del reverso. Toma el valor No encontrado cuando el OCR no pudo leerla del reverso. Solo está presente cuando status es found.identificadorCiudadanostringIdentificador del Ciudadano extraído del reverso. Toma el valor No encontrado cuando el OCR no pudo leerlo. Solo está presente cuando status es found.curpstringCURP impresa en la credencial. Toma el valor No encontrado si el OCR no pudo leerla. Solo está presente cuando status es found.nombreCompletostringNombre completo extraído del frente. Toma el valor No encontrado si el OCR no pudo leerlo. Solo está presente cuando status es found.direccionstringDomicilio impreso al reverso. Toma el valor No encontrado si el OCR no pudo leerlo. Solo está presente cuando status es found.fechaNacimientostringFecha de nacimiento en formato ISO YYYY-MM-DD. Toma el valor No encontrado si el OCR no pudo leerla. Solo está presente cuando status es found.generostringGénero impreso en la credencial: M (mujer) o H (hombre). Toma el valor No encontrado si el OCR no pudo leerlo. Solo está presente cuando status es found.mensajesValidacionarrayLista de advertencias detectadas durante la validación cruzada entre el frente y el reverso. Vacía cuando ambas caras son consistentes. Solo está presente cuando status es found. Ver catálogo Mensajes de validación.messagestringDetalle del motivo cuando status es not_found. Solo está presente en respuestas not_found. Ver catálogo Mensajes not_found.Catálogos
Tablas de referencia para los valores de los campos enumerados en la sección anterior.
Status
Valores posibles del campo status.
foundEl OCR pudo extraer al menos los campos principales de las imágenes enviadas. Los campos que no se pudieron leer toman el valor No encontrado y, si las dos caras tienen inconsistencias, mensajesValidacion incluye el detalle.not_foundNo se pudo extraer información útil de las imágenes (orientación incorrecta, calidad insuficiente o caras irreconocibles). La respuesta incluye el campo message con el detalle.Modelo de credencial
Modelos de la Credencial para Votar que el OCR puede detectar. Útil para encadenar la consulta con la API de Validación en la Lista Nominal.
cCredenciales emitidas hasta 2013 por el IFE.dCredenciales emitidas entre 2014 y 2019 por el INE.eCredenciales emitidas a partir de 2019 por el INE.fVariante posterior del modelo E.gVariante posterior del modelo E.hVariante vigente del modelo E.Mensajes de validación
Mensajes posibles que pueden aparecer en mensajesValidacion cuando el OCR detecta inconsistencias entre el frente y el reverso.
El nombre en el frente y en el reverso no coinciden.El nombre extraído del frente no coincide con el del reverso. Suele ocurrir cuando se envían imágenes de credenciales distintas o ambas son del mismo lado.La orientación de la INE es incorrecta.Las imágenes están rotadas o invertidas. Reenvía las fotografías derechas para mejorar la extracción.Mensajes not_found
Mensajes posibles del campo message cuando status es not_found.
La orientación de la INE es incorrecta. El nombre en el frente y en el reverso no coinciden.Ninguna cara pudo procesarse correctamente. Verifica la orientación, calidad y que se hayan enviado el frente y el reverso de la misma credencial.Histórico
Endpoint
https://api.datosnonstop.com/v1/ine/ocr/historico/{id}El {id} corresponde al campo id devuelto en la respuesta de la consulta principal.
Si necesitas la lista completa de elementos almacenados, accede a tu dashboard.
La respuesta está sujeta al tiempo de almacenamiento de tu plan. Si requieres más tiempo, cambia de plan en tu dashboard.
Respuesta
{
"id": "66e373f0ffc913d5a03455c6",
"status": "found",
"tipo": "e",
"claveElector": "GOMV760705MOLMLR01",
"cic": "183657717",
"identificadorCiudadano": "116375842",
"curp": "GOVS760705MOLMLR01",
"nombreCompleto": "JUAN PEREZ PEREZ",
"direccion": "CALLE SIEMPRE VIVA COL LAGUNILLA 09820 CDMX",
"fechaNacimiento": "1976-07-05",
"genero": "M",
"mensajesValidacion": []
}Respuestas en error
{
"error": "not found",
"message": "el id no fue encontrado en el historico"
}Sandbox
Endpoint
https://sandbox.api.datosnonstop.com/v1/ine/ocrPara llamar al sandbox necesitas una API key de sandbox que puedes generar en el dashboard.
curl -X POST https://sandbox.api.datosnonstop.com/v1/ine/ocr \
-H "x-api-key: tu_api_key_sandbox" \
-H "Content-Type: application/json" \
-d '{"files":[{"name":"front","base64":"iVBORw0KGgoAAAANSCdvCcIcIAYZAA..."},{"name":"back","base64":"iVBORw0KGgoAAAANSUhEUgAABNwAAA..."}]}'Casos de prueba
Si envías un valor que no esté en la lista, el sandbox devuelve automáticamente una respuesta exitosa con la misma estructura que la de sandbox-tipo-e-completo.
files[].base64sandbox-tipo-e-completofiles[].base64sandbox-tipo-e-parcialfiles[].base64sandbox-imagenes-inconsistentesfiles[].base64sandbox-orientacion-incorrectafiles[].base64sandbox-empty-fieldfiles[].base64sandbox-invalid-formatfiles[].base64sandbox-sin-tokensfiles[].base64sandbox-error-internofiles[].base64sandbox-unavailable-serviceEndpoint histórico
https://sandbox.api.datosnonstop.com/v1/ine/ocr/historico/{id}Para llamar al sandbox necesitas una API key de sandbox que puedes generar en el dashboard.
curl https://sandbox.api.datosnonstop.com/v1/ine/ocr/historico/66e373f0ffc913d5a03455c6 \ -H "x-api-key: tu_api_key_sandbox"
Casos de prueba histórico
Si envías un valor de id que no esté en la lista, el sandbox devuelve automáticamente una respuesta exitosa con la misma estructura que la de 66e373f0ffc913d5a03455c6.
66e373f0ffc913d5a03455c60000000000000000ffffffff1111111111111111aaaaaaaa2222222222222222bbbbbbbb