Validar vs. Verificar una CURP: Formato Correcto no es CURP Registrada
Una CURP puede pasar el dígito verificador y no existir, o estar dada de baja. Qué revisa la validación, qué solo responde RENAPO y cuándo usar cada una.
"Validamos la CURP" es una frase que en muchos procesos de alta significa algo más débil de lo que parece. Casi siempre quiere decir que alguien comprobó el formato: 18 caracteres, la forma correcta, el dígito verificador. Eso es útil, pero no responde la pregunta que suele importar: ¿esta CURP existe y sigue vigente?
Son dos preguntas distintas, con respuestas distintas y fuentes distintas:
- Validar es comprobar que la CURP esté bien formada. Se resuelve con la propia cadena, en milisegundos, sin consultar a nadie.
- Verificar es comprobar que la CURP consta en el registro de RENAPO y cuál es su estatus. Eso solo lo responde el registro.
Qué revisa una validación de formato
Una validación completa revisa cuatro cosas, en este orden:
- Longitud y forma. 18 caracteres: cuatro letras, seis dígitos de fecha,
HoMpara el sexo, dos letras de entidad, tres consonantes, un carácter diferenciador y un dígito final. Solo letras de la A a la Z: RENAPO escribe la Ñ comoX, así que una Ñ nunca forma parte de una CURP bien escrita. - La entidad. Las posiciones 12 y 13 deben ser una de las 32 claves de entidad (
DFsigue siendo la de la Ciudad de México) oNE, nacido en el extranjero. - La fecha. Las posiciones 5 a 10 deben ser un día real del calendario, y aquí hay un detalle que muchas implementaciones pasan por alto (lo vemos abajo).
- El dígito verificador. La posición 18 debe ser el dígito que producen las primeras 17.
El dígito verificador es aritmética pública
El cálculo es conocido: cada carácter vale su lugar en la secuencia 0–9 y luego A–Z con la Ñ entre la N y la O; se multiplica por un peso que baja de 18 a 2; se suman los productos, y el dígito es lo que le falta a la suma para llegar a la siguiente decena.
Eso tiene una consecuencia que conviene tener clara: el dígito verificador detecta errores de captura, no CURP inventadas. Si alguien teclea mal un carácter, el dígito deja de cuadrar y la validación lo atrapa. Pero cualquiera puede tomar 17 caracteres inventados y calcularles el dígito correcto. Esta CURP ficticia es perfectamente válida:
ROLF900315MJCSPR02
Pasa las cuatro revisiones: mujer, nacida el 15 de marzo de 1990 en Jalisco. No sabemos si pertenece a alguien. La validación tampoco.
La posición 17 decide el siglo
La fecha de la CURP tiene año de dos dígitos. El siglo lo da la posición 17: un dígito significa nacimiento antes de 2000; una letra, 2000 o después.
Importa más de lo que parece, porque cambia qué fechas existen. 000229 con letra en la posición 17 es el 29 de febrero de 2000, un día real. Con dígito, es el 29 de febrero de 1900, que no existió: 1900 no fue bisiesto. Una validación que ignora la posición 17 acepta la segunda o rechaza la primera.
Lo que la validación no puede saber
Una CURP que pasa todo lo anterior puede estar en cualquiera de estas situaciones, y ninguna se distingue mirando la cadena:
| Situación | ¿Pasa la validación? | ¿Quién lo sabe? |
|---|---|---|
| Registrada y activa | Sí | RENAPO |
| Nunca registrada (inventada o mal copiada con dígito correcto) | Sí | RENAPO |
| Dada de baja | Sí | RENAPO |
| Registrada en el extranjero | Sí | RENAPO |
La baja es la que más sorprende. Una CURP puede darse de baja por defunción, por duplicidad (a una persona se le asignaron dos y una se elimina), por resolución judicial o porque el documento con el que se tramitó resultó apócrifo. En todos los casos la cadena sigue siendo impecable: mismas letras, mismo dígito. Lo único que cambió es el registro.
Del otro lado, no todo código de estatus distinto de "alta" es malo. El registro marca como cambio las CURP cuyo registro se corrigió en algún momento, y esas siguen vigentes igual que un alta normal. Leer esos códigos como baja rechaza a personas reales.
Cuándo basta validar y cuándo hay que verificar
La validación es el primer filtro, y es barata: no cuesta una consulta, no depende de que ningún servicio responda y detecta el error más común, el de captura. Úsala siempre, en el propio formulario, antes de que la persona termine de escribir.
La verificación hace falta cuando la CURP sostiene una decisión:
- Onboarding y KYC. Abrir una cuenta, otorgar un crédito o firmar un contrato con una CURP que no existe o que está dada de baja es exactamente el caso que el proceso de identificación debía evitar.
- Altas de personal. Una CURP mal registrada en nómina se descubre meses después, en el trámite que la rechaza.
- Cualquier expediente que alguien auditará. "La validamos" y "la verificamos en RENAPO" no son la misma evidencia.
Para un caso suelto, la consulta pública de gob.mx responde. Para un flujo con volumen, o que tiene que dejar constancia de cuándo se verificó y con qué resultado, hace falta integrarlo.
Las dos cosas en una llamada
Nuestra API hace los dos pasos en la misma petición. El paso 1 valida la CURP y, si envías los datos que ya tienes de la persona, la coteja contra ellos; responde al instante. El paso 2, opcional, la consulta en el registro de RENAPO y te entrega el estatus (activa, dada de baja, registrada en el extranjero o no encontrada) y los datos registrados en tu webhook, correo o Telegram, normalmente en segundos. Si el registro no responde, reintentamos, y si los reintentos se agotan, una persona de nuestro equipo la resuelve a mano: la verificación está garantizada. Los dos pasos cuestan 1 token.
- Prueba la validación gratis, sin cuenta, en el validador de CURP: corre en tu navegador y la CURP no sale de él.
- La referencia de la API, con la verificación y el formato de la respuesta, está en la documentación, y los paquetes de tokens, en precios.
¿Necesitas verificar CURP automáticamente?
Valida, coteja y verifica CURP en el registro de RENAPO con una sola petición a la API.
Comenzar gratis