INE · Lista Nominal

Validar una credencial de elector, contra la Lista Nominal del INE.

Prueba gratis la validación estructural aquí mismo. Cuando necesites saber si la credencial está vigente en el padrón —o si fue reportada como robada o extraviada— el API te lo responde en una sola llamada, con el estatus oficial del INE.

estatus oficial del INEalerta de robo o extravíocero retención
valida-una-ineGRATIS · EN TU NAVEGADOR

Validación estructural en tu navegador — identificamos el modelo de credencial por sus números, no los enviamos a ningún servidor. La vigencia en la Lista Nominal la responde el API.

Antes de validar

CIC, OCR e Identificador del Ciudadano — todos al reverso.

El número que necesita el API depende del modelo de la credencial. Los tres viven en la zona de lectura mecánica del reverso; la clave de elector va al frente y este servicio no la usa.

Reverso de la credencial de elector: las tres líneas de la zona de lectura mecánica (MRZ) al pie. La primera línea contiene el CIC y el OCR; el Identificador del Ciudadano son los últimos nueve dígitos del OCR. REVERSO DE LA CREDENCIAL MRZ · 3 LÍNEAS DE 30 CARACTERES IDMEX1234567890<<3701987654321 9001011M3012319MEX<05<<12345<6 GOMEZ<GARCIA<<JUAN<<<<<<<<<<<< CIC · 9 dígitos OCR · 13 dígitos Identificador del Ciudadano · 9 — los últimos 9 dígitos del OCR

Esquema propio del reverso (números de ejemplo). La primera línea del MRZ lleva el CIC y el OCR; el Identificador del Ciudadano son los últimos 9 dígitos del OCR. La clave de elector va al frente y este servicio no la usa.

MODELO DCIC + OCRCIC de 9 dígitos y OCR de 13, ambos en el MRZ del reverso. Emitidas hasta 2019; ya no vigentes para votar, pero aún se presentan como identificación.
MODELOS E–JCIC + Identificador del CiudadanoCIC de 9 dígitos e Identificador del Ciudadano de 9 —los últimos del OCR—, en el MRZ del reverso. Son los modelos vigentes (E desde 2014, G/H desde 2019, I/J desde 2026).
MODELOS A–CClave de elector + OCRLos más antiguos usan la clave de elector (18) y el OCR. No vigentes; se validan con la combinación heredada.

En el JSON, estos números viajan con nombres en inglés. Así se relacionan con la credencial:

Puedes enviar los tres: el API distingue cuál usar según lo que reciba, sin que tengas que identificar el modelo de la credencial antes de llamar.

La respuesta del API

No solo "válida": el estatus oficial en la Lista Nominal.

Cada validación confirma si la credencial existe en el padrón del INE y en qué estado está. Ahí vive la detección de fraude: una credencial con datos perfectos puede estar reportada como robada.

VIGENTE Vigente en el padrón Existe en la Lista Nominal y está vigente. Puedes aceptarla como identificación con confianza. type: "VALID_VOTER" · isValid: true
REVISAR No vigente o suspendida Está en el padrón pero no vigente para votar, o suspendida por orden judicial. No la aceptes como identificación válida sin más señales.
type: "INE_NOT_VALID"type: "SUSPENDED_BY_JUDICIAL_ORDER"
ALERTA Robo, extravío o no registrada Reportada como robada o extraviada, o no aparece en el padrón: señal directa de una credencial ajena o falsa. Detente antes de continuar.
type: "REPORTED_AS_STOLEN_OR_LOST"type: "INE_NOT_FOUND"

Y no interpretas códigos: el envelope nombra el caso en el campo typeVALID_VOTER, REPORTED_AS_STOLEN_OR_LOST, SUSPENDED_BY_JUDICIAL_ORDER, MISMATCHED_OCR y más. Además del estatus trae la clave de elector, la geografía electoral (distrito federal y local), los años de registro, emisión y vigencia, y el mensaje oficial del INE.

Cada type, una decisión

Qué significa cada respuesta y qué hace tu código con ella.

El campo type es tu punto de decisión. Tres caminos: avanza si la credencial es válida, analiza a detalle si el dato es ambiguo o pudo capturarse mal, rechaza si hay señal de fraude o invalidez. Un switch sobre type y tu onboarding decide solo.

typeQué significaDecisión
VALID_VOTERVigente en la Lista Nominal: sirve como identificación y para votar.Avanza
VALID_FOREIGN_VOTERVigente para votar desde el extranjero. Credencial válida.Avanza
VALID_AS_ID_ONLYVigente solo como medio de identificación con fotografía (no para votar). Válida como ID.Avanza
MISMATCHED_OCREl OCR no coincide con el CIC en el registro. Suele ser un error de captura — o una alteración.Analiza
INE_NOT_FOUNDLa credencial no aparece en la Lista Nominal. Puede ser captura equivocada o un documento inexistente.Analiza
SUSPENDED_BY_JUDICIAL_ORDERDerechos suspendidos por mandato judicial. No es válida para votar; revísala según tu caso de uso.Rechaza
REPORTED_AS_STOLEN_OR_LOSTReportada como robada o extraviada, con folio de reporte. Señal directa de una credencial ajena.Rechaza
INE_NOT_VALIDNo vigente como identificación ni para votar. Credencial caduca o dada de baja.Rechaza

Aparte de estos casos de negocio, los errores técnicos llegan con status: "ERROR": un CIC u OCR mal formado es INVALID_REQUEST con billable: false (no se cobra), y si el INE no responde en el momento, SERVICE_UNAVAILABLE (reintenta). Nunca pagas por un caso que no se resolvió.

Infraestructura cruda · 100% API REST

Una llamada. El padrón, en vivo.

Consultamos la Lista Nominal del INE en vivo en cada llamada —puede tardar unos segundos, no es un cache—. Mismo envelope que todos los servicios de OrigoID: aprende el contrato una vez y sirve para INE, CURP, RFC, IMSS y más.

Alerta de robo, no solo vigenciaSi la credencial está reportada como robada o extraviada, la respuesta lo dice — con el folio del reporte.
Formato inválido = sin cobroUn CIC u OCR mal formado se rechaza con INVALID_REQUEST y billable: false — no gastas crédito en basura.
Cero retenciónLa consulta se valida, se responde y se descarta. Ni base de datos, ni logs, en ninguna región.
valida-ine
const res = await fetch("https://api.origoid.com/mex/id/v1/voter-list-validations", {
  method: "POST",
  headers: {
    "x-api-key": process.env.ORIGOID_API_KEY,
    "content-type": "application/json",
  },
  body: JSON.stringify({ cic: "123456789", ocr: "0123456789012" }),
});

const result = await res.json();
import os, requests

res = requests.post(
    "https://api.origoid.com/mex/id/v1/voter-list-validations",
    headers={
        "x-api-key": os.environ["ORIGOID_API_KEY"],
        "content-type": "application/json",
    },
    json={"cic": "123456789", "ocr": "0123456789012"},
    timeout=30,
)
result = res.json()
curl -X POST https://api.origoid.com/mex/id/v1/voter-list-validations \
  -H "x-api-key: $ORIGOID_API_KEY" \
  -H "content-type: application/json" \
  -d '{"cic": "123456789", "ocr": "0123456789012"}'
Respuesta con el estatus oficial del INE
{
  "status": "OK",
  "type": "VALID_VOTER",
  "data": {
    "isValid": true,
    "personalInfo": { "electorKey": "GOMEZJ80010112H300" },
    "validity": { "emissionYear": "2023", "validUntilYear": "2033" },
    "validationStatus": { "stolenReport": null, "officialMessage": "Está vigente como medio de identificación y puede votar" }
  },
  "billable": true
}
¿Y la persona que la presenta?

Que la credencial esté vigente no prueba que quien la trae sea su titular. Esa es la otra mitad de la identidad y la responde otro servicio del catálogo: comparación facial entre la selfie y la foto del documento.

Ver Comparación facial
Por qué OrigoID

El dato oficial es el mismo. La diferencia es todo lo demás.

Varios proveedores validan INE. Lo que cambia: si te avisan de una credencial robada, qué pasa con los datos de tu usuario después, y cuánto te cuesta integrarlo.

Datos del padrón, en vivoConsultamos la Lista Nominal del INE en cada llamada: el estatus es el de este momento, no una copia de ayer.
Señal de robo o extravíoNo solo "vigente o no": si la credencial está reportada como robada o extraviada, la respuesta lo dice — con el folio del reporte.
Cero retenciónLa consulta se valida, se responde y se descarta. Ni base de datos, ni logs.
$
Precios publicadosEl precio por validación baja con tu volumen — todo público, sin "contáctanos". Ver precios
Preguntas frecuentes

Lo que suelen preguntarnos.

¿Cómo validar una credencial de elector (INE)?

Dos niveles: la validación estructural (que el CIC tenga 9 dígitos y el OCR 13, en el reverso) se hace sin conexión — la demo de arriba la hace gratis en tu navegador. La validación real contra la Lista Nominal del INE — si está registrada y vigente, o reportada como robada o extraviada — la responde el API en una sola llamada. La consulta al INE es en vivo, por lo que puede tardar unos segundos: es el precio de un dato real, no de un cache.

¿Qué me dice la respuesta del API?

Si está vigente en la Lista Nominal, la clave de elector, la geografía electoral (distrito federal y local), los años de registro, emisión y vigencia, si fue reportada como robada o extraviada (con folio) y el mensaje oficial del INE. El type clasifica el caso —VALID_VOTER, REPORTED_AS_STOLEN_OR_LOST, SUSPENDED_BY_JUDICIAL_ORDER, INE_NOT_FOUND, MISMATCHED_OCR y más— y arriba tienes la tabla completa con la decisión que le toca a cada uno.

¿Qué números necesito: CIC, OCR o clave de elector?

Depende del modelo. Todos usan el CIC (9 dígitos, reverso). El modelo D agrega el OCR (13 dígitos); los modelos E, F, G, H, I y J agregan el Identificador del Ciudadano (9 dígitos, los últimos del OCR). Y no tienes que averiguar el modelo antes de llamar: puedes mandar los tres —CIC, OCR e Identificador del Ciudadano— y el API distingue cuál usar según lo que reciba.

¿Detecta una INE robada o falsa?

La Lista Nominal confirma si la credencial existe y está vigente, y si fue reportada como robada o extraviada. Una que no aparece en el padrón (INE_NOT_FOUND) o cuyo OCR no coincide con el CIC (MISMATCHED_OCR) es señal directa de un documento alterado o ajeno. Para confirmar que la foto corresponde a la persona, se combina con coincidencia facial — otro servicio del catálogo.

¿Puedo combinar esto con comparación facial?

Sí. La Lista Nominal confirma que la credencial es válida; la comparación facial confirma que quien la presenta es la persona de la foto. Son dos servicios del mismo catálogo, con el mismo envelope, y cruzar sus respuestas es un if en tu backend. Ver Comparación facial.

¿Guardan los datos que valido?

No. Cada consulta se valida, se responde y se descarta: sin base de datos de consultas, sin rastro en logs. Cero retención en todas nuestras regiones.

¿Cuánto cuesta?

Empiezas gratis: créditos de cortesía, sin tarjeta. Después el precio por validación baja con tu volumen. Todos los planes publicados, sin "contáctanos". Formato inválido = billable: false, sin cobro.

Empieza gratis, sin tarjeta.

Créditos de cortesía para validar credenciales reales en producción. El acceso se habilita tras una breve validación de tu empresa.

Solicitar acceso