México — OCR INE
Flujo en un solo request para una INE mexicana (Credencial para Votar):
- OCR Gemini de Verifik extrae campos del frente (y opcionalmente el reverso)
- Verifik arma los identificadores a partir de esa extracción
- Validación Nexcar corre solo con números (sin OCR de imágenes del proveedor)
- La respuesta incluye
ocr,validationyvalidateParamsUsed
Envía JSON con:
front(requerido) — URL pública o imagen en base64 del frenteback(opcional) — URL pública o base64 del reverso; muy recomendado para CIC, OCR y MRZ
Para validar solo con números (sin imágenes), usa México — Validación INE (GET v2/mx/ine). Para CURP, usa Ciudadano mexicano (CURP) (v2/mx/curp).
Referencia de la API
Endpoint
https://api.verifik.co/v2/mx/ine/ocr
Envía imágenes del frente (y opcionalmente del reverso). Verifik optimiza el tamaño, ejecuta Gemini OCR y valida los identificadores con Nexcar. Usa timeouts de cliente de al menos 60 segundos.
Headers
| Name | Value |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer <token> |
Parameters
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
front | string | Yes | Imagen del frente como URL pública o base64. | https://example.com/ine-front.jpg |
back | string | No | Imagen del reverso como URL pública o base64. | https://example.com/ine-back.jpg |
Request
- Node.js
- Python
import axios from "axios";
const { data } = await axios.post(
"https://api.verifik.co/v2/mx/ine/ocr",
{
front: "https://example.com/ine-front.jpg",
back: "https://example.com/ine-back.jpg",
},
{
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.VERIFIK_TOKEN}`,
},
}
);
console.log(data);
import os, requests
url = "https://api.verifik.co/v2/mx/ine/ocr"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {os.getenv('VERIFIK_TOKEN')}",
}
payload = {
"front": "https://example.com/ine-front.jpg",
"back": "https://example.com/ine-back.jpg",
}
r = requests.post(url, headers=headers, json=payload)
print(r.json())
Response
- 200
- 404
- 409
{
"data": {
"ocr": {
"birthDate": "11/06/1976",
"cic": "187639699",
"citizenIdentifier": "031206745",
"curp": "MAFC760611MYNRLR03",
"documentType": "INE",
"electorKey": "CSFTGV76061131H400",
"firstName": "CARLA ISABEL",
"fullName": "CARLA ISABEL MARTINEZ FERNANDEZ",
"ocr": "0276031206745",
"subType": "E",
"type": "INE",
"validity": "2029"
},
"validation": {
"cic": "187639699",
"documentNumber": "187639699",
"documentType": "INE",
"electorKey": "CSFTGV76061131H400",
"ocr": "0276031206745",
"status": "OK",
"validity": "31 de diciembre de 2030"
},
"validateParamsUsed": {
"documentType": "INE",
"documentNumber": "187639699",
"ocr": "0276031206745",
"citizenIdentifier": "031206745",
"model": "E"
}
},
"signature": {
"dateTime": "July 14, 2026 10:00 AM",
"message": "Certified by Verifik.co"
}
}
{
"code": "NotFound",
"message": "Record not found."
}
{
"code": "MissingParameter",
"message": "front is required"
}
Notes
- Se cobra
mexico_api_ine_ocruna vez por el shot combinado (Gemini OCR + validación Nexcar). frontes requerido;backes opcional pero recomendado.- Las imágenes se redimensionan/comprimen antes de Gemini.
- Si el OCR no obtiene un identificador usable, responde 409 y no llama a Nexcar.
- Sandbox: cualquier
frontválido devuelve el fixture anidado; si contiene404, responde 404. - Relacionado: México — Validación INE, Ciudadano mexicano (CURP).