Volver al blog

API INE Frente y Reverso: Referencia Técnica de CIC, OCR y Número Vertical

Referencia técnica de la API para leer el frente y el reverso de la credencial INE/IFE en una sola petición: qué campos salen de cada lado, formatos de envío, JSON de respuesta, validaciones y errores.

Extraer Datos de INE
API INE frente y reversoAPI reverso INEleer reverso INE APICIC OCR INE APIMRZ INE APIextraer CIC credencial INE

Esta página es una referencia técnica, no un artículo introductorio: describe exactamente qué hace el endpoint /api/v1/extract de Extraer Datos de INE cuando recibe el frente y el reverso de una credencial para votar. Si buscas la documentación completa de la API (autenticación, SDKs, todos los lenguajes), está en /docs.

Resumen

ConceptoValor
EndpointPOST https://extraerdatosdeine.com/api/v1/extract
AutenticaciónHeader X-API-Key (clave generada en el panel)
Imágenesimage_front (obligatoria) e image_back (opcional)
Métodos de envíomultipart/form-data, JSON con base64, URL remota, binario directo (solo frente)
FormatosJPEG, PNG o WebP, máximo 10 MB por imagen
CredencialesINE e IFE; misma forma de respuesta para todas las versiones
SalidaUn solo objeto JSON con los campos de ambos lados
Costo1 token por credencial, con o sin reverso (entre $0.60 y $0.99 MXN según el paquete)
Prueba20 extracciones gratis al crear la cuenta

Qué aporta cada lado

Con solo el frente obtienes los datos del titular. Al agregar el reverso, la respuesta incluye además los identificadores del documento físico.

Campo (JSON)Qué esFormatoLado
nombre, apellidoPaterno, apellidoMaternoNombre del titularTextoFrente
curpCURP18 caracteres: [A-Z]{4}\d{6}[HM][A-Z]{5}[A-Z0-9]\dFrente
claveElectorClave de elector18 caracteres: [A-Z]{6}\d{8}[HM]\d{3}Frente
fechaNacimientoFecha de nacimientoDD/MM/AAAAFrente
sexoSexoH o MFrente
domicilio, calle, colonia, codigoPostal, municipio, estadoDomicilio completo y desglosadoTexto; código postal de 5 dígitosFrente
seccionSección electoral4 dígitosFrente
anioRegistroAño de registro4 dígitosFrente
vigenciaAño de vigencia4 dígitosFrente
emisionNúmero de emisión2 dígitosSegún modelo
cicCódigo de Identificación de la Credencial9 dígitosReverso
ocrCódigo OCR13 caracteresReverso
numeroVerticalNúmero verticalDígitosReverso

Si la credencial no muestra un campo (por ejemplo, un modelo IFE antiguo sin CIC), ese campo no se inventa: queda vacío. La diferencia entre CIC, OCR y clave de elector está explicada en CIC, OCR y clave de elector, y qué trae cada versión de la credencial en versiones de la credencial INE/IFE.

Sobre la MRZ: la API no devuelve las líneas crudas de la zona de lectura mecánica del reverso. Devuelve, ya separados en campos propios, los identificadores que te interesan de ese lado: cic, ocr y numeroVertical.

Petición

multipart/form-data

curl -X POST https://extraerdatosdeine.com/api/v1/extract \
  -H "X-API-Key: ine_tu_api_key" \
  -F "image_front=@./ine_frente.jpg" \
  -F "image_back=@./ine_reverso.jpg"

JSON con base64

curl -X POST https://extraerdatosdeine.com/api/v1/extract \
  -H "X-API-Key: ine_tu_api_key" \
  -H "Content-Type: application/json" \
  -d "{\"image_front\": \"$(base64 -i ine_frente.jpg)\", \"image_back\": \"$(base64 -i ine_reverso.jpg)\"}"

El prefijo data URL (data:image/jpeg;base64,) es opcional.

URL remota

{
  "image_front_url": "https://storage.example.com/ine_frente.jpg",
  "image_back_url": "https://storage.example.com/ine_reverso.jpg"
}

El envío como binario directo (Content-Type: image/jpeg con la imagen como cuerpo) acepta una sola imagen, así que no sirve para frente y reverso.

Respuesta

{
  "success": true,
  "extraction_id": "clx1234567890",
  "data": {
    "nombre": "JUAN",
    "apellidoPaterno": "PEREZ",
    "apellidoMaterno": "GARCIA",
    "curp": "PEGJ850101HDFRRL09",
    "claveElector": "PRGRJN85010109H100",
    "fechaNacimiento": "01/01/1985",
    "sexo": "H",
    "domicilio": "CALLE EJEMPLO 123",
    "colonia": "CENTRO",
    "codigoPostal": "06000",
    "municipio": "CUAUHTEMOC",
    "estado": "CIUDAD DE MEXICO",
    "seccion": "1234",
    "vigencia": "2029",
    "numeroVertical": "1234567890123",
    "ocr": "1234567890123",
    "cic": "123456789",
    "emision": "01"
  },
  "tokens_remaining": 19,
  "upload_method": "multipart"
}

Los nombres de campo son los mismos para una IFE que para la INE más reciente: tu código no necesita ramificar por modelo.

Cómo se protege la lectura del frente cuando envías el reverso

El reverso de la credencial tiene su propia zona de lectura mecánica, llena de letras y dígitos parecidos a los de la CURP y la clave de elector. Leer ambos lados juntos puede contaminar esos dos campos del frente. Por eso, cuando mandas el reverso, la API hace dos lecturas en paralelo: una de ambos lados (de la que salen los campos del reverso y el resto del frente) y otra solo del frente, que es la fuente preferida para la CURP y la clave de elector. Enviar el reverso te da más campos sin degradar los del frente.

Además, antes de responder:

  1. CURP y clave de elector se validan contra su formato fijo (las expresiones de la tabla de arriba). Confusiones típicas de OCR en posiciones que solo admiten letras o solo dígitos (O0) se corrigen únicamente si el resultado cumple el formato.
  2. Se cruzan campos entre sí. La fecha de nacimiento contenida en la clave de elector se contrasta con la de la CURP y con la fecha impresa, y las letras de la CURP que salen del nombre se contrastan con el nombre impreso.
  3. CURP y clave de elector son obligatorios. Si ninguno de los dos se puede leer, la API no te entrega un registro a medias: responde 422 LOW_IMAGE_QUALITY y el token se reembolsa.

Errores relevantes

HTTPCódigoCuándo
400MISSING_IMAGENo se envió image_front
400INVALID_IMAGE_FORMATLa imagen no es JPEG, PNG ni WebP
400IMAGE_TOO_LARGEUna imagen supera los 10 MB
401INVALID_API_KEYAPI key ausente o inválida
402INSUFFICIENT_TOKENSNo quedan tokens en la cuenta
422LOW_IMAGE_QUALITYNo se pudo leer CURP o clave de elector; el token se reembolsa
429RATE_LIMITEDDemasiadas peticiones seguidas

La tabla completa de errores está en la documentación.

Costo

Frente y reverso son una sola extracción: se descuenta 1 token por credencial, no por imagen. Cada extracción cuesta entre $0.60 y $0.99 MXN según el paquete, sin suscripción, y los tokens no expiran. Los paquetes vigentes están en precios.

Probarlo

Crea una cuenta, genera tu API key en el panel y manda el frente y el reverso de una credencial con el curl de arriba. Las primeras 20 extracciones son gratis.

¿Necesitas extraer datos de INE automáticamente?

Prueba nuestra API con 20 extracciones gratis. Integración en minutos, resultados en segundos.

Comenzar gratis