Generadores de datos de prueba de México
CURP construida con la regla oficial y su dígito verificador, RFC de persona física y moral, CLABE interbancaria con el control de Banxico y NSS del IMSS.
Identidad y contribuyentes
La clave de población y la del SAT, que no son lo mismo.
Banca y seguridad social
CLABE con el control de Banxico y NSS del IMSS.
100 % privado. No hay servidor: los datos se generan en tu navegador y no se envían ni se guardan en ninguna parte.
Cuatro identificadores, cuatro cosas distintas
México es el país que más identificadores distintos pide en un mismo formulario, y se confunden a diario. Antes de escribir una validación conviene tener claro qué es cada uno:
| Clave | Qué identifica | Longitud | ¿Tiene control? |
|---|---|---|---|
| CURP | A una persona, para todo el Estado | 18 caracteres | Sí, calculable |
| RFC | A un contribuyente, ante el SAT | 13 (física) o 12 (moral) | Homoclave no calculable |
| CLABE | A una cuenta bancaria | 18 dígitos | Sí, calculable |
| NSS | A un trabajador, ante el IMSS | 11 dígitos | Sí, Luhn |
La diferencia que más problemas causa está entre la CURP y el RFC. Las dos empiezan por letras sacadas del nombre y la fecha de nacimiento, y a simple vista se parecen, pero la CURP se puede calcular entera y el RFC no: los tres últimos caracteres del RFC son la homoclave, que asigna el SAT con un algoritmo que no publica. Si tu sistema intenta derivar el RFC de alguien a partir de sus datos, va a fallar; solo puede validar el formato.
Las tres reglas de la CURP que casi todo el mundo implementa mal
Las cuatro primeras letras salen del apellido paterno, el materno y el nombre. Parece trivial y no lo es, porque hay tres excepciones que la norma obliga a aplicar y que rara vez aparecen en las implementaciones caseras:
- Las partículas se ignoran. «De la Cruz» toma la inicial de Cruz, no de De. Lo mismo con DEL, LA, LAS, LOS, Y, MC, MAC, VAN y VON. Un apellido como «Mc Gregor» se trata como «Gregor».
- José y María se saltan. Si el primer nombre es José o María y hay un segundo nombre, se usa el segundo. «María Fernanda» aporta la F de Fernanda, no la M de María. En un país donde esos dos nombres son enormemente frecuentes, saltarse esta regla te rompe un porcentaje alto de los casos.
- Las palabras inconvenientes se censuran. Si las cuatro letras forman una palabra malsonante —la norma tiene una lista cerrada con BUEI, CACA, MEON, PENE, RATA y varias decenas más—, la segunda letra se sustituye por X. Alguien apellidado Buendía puede acabar con BXEI en lugar de BUEI.
A eso se añaden dos detalles menores: la Ñ se escribe X en las posiciones de letra, y si no hay apellido materno la tercera posición es una X. El generador de arriba aplica las cinco reglas, y puedes forzar cada caso escribiendo los apellidos a mano.
El carácter que delata el siglo
La posición 17 no es aleatoria: es un dígito para quien nació hasta 1999 y una letra para quien nació a partir del año 2000. Se añadió cuando la fecha de dos cifras dejó de bastar para distinguir 1998 de 2098. Si tu validación espera siempre un dígito ahí, rechazará a cualquier persona nacida en este siglo — y en 2026 eso ya es media plantilla de becarios.
La CLABE y el detalle del dígito de control
La CLABE son 18 dígitos con una estructura fija: 3 de banco, 3 de plaza, 11 de cuenta y 1 de control. El control usa pesos 3-7-1 que se repiten, y ahí está la trampa que rompe la mitad de las implementaciones:
function controlClabe(d17) {
const pesos = [3, 7, 1];
let suma = 0;
for (let i = 0; i < 17; i++) {
suma += (Number(d17[i]) * pesos[i % 3]) % 10; // <-- solo la UNIDAD
}
return (10 - suma % 10) % 10;
}
controlClabe("00201007777777777") // 1 -> 002010077777777771
El % 10 de dentro del bucle no es un adorno: de cada producto se toma
solo la cifra de las unidades, no el número entero. Si sumas los productos
completos, el algoritmo da un resultado distinto y aparentemente plausible, y solo lo
descubres cuando el banco rechaza la cuenta. Verificado con
002010077777777771, el ejemplo canónico de Banxico.
Un aviso sobre para qué sirve esto: una CLABE con el control correcto pasa la validación de tu formulario, que es lo que quieres probar, pero no corresponde a ninguna cuenta abierta. Una transferencia SPEI contra ella será rechazada por el banco receptor.
Qué probar con datos mexicanos sintéticos
- CURP y RFC en el mismo formulario. Comprueba que no validas uno con las reglas del otro: 18 caracteres frente a 13, y homoclave no calculable.
- Persona nacida después del año 2000. Letra en la posición 17 de la CURP. El fallo más frecuente hoy.
- Apellido con partícula. «De la Cruz», «Del Valle», «Mc Gregor». Si tu sistema deriva la CURP, aquí se cae.
- Nombre que empieza por José o María. Un porcentaje enorme de la población mexicana.
- Persona sin apellido materno. Escribe un guion en ese campo del generador: la tercera letra pasa a X.
- CURP de nacido en el extranjero. La clave de entidad es
NE, y muchas validaciones solo aceptan las 32 de los estados. - CLABE con el control cambiado. Los 17 primeros dígitos son impecables; solo lo detecta quien calcula bien el módulo.
- RFC de persona moral. Doce caracteres en vez de trece: rompe cualquier validación de longitud fija.
Preguntas frecuentes
Sobre estos generadores
¿Estas CURP corresponden a personas reales?
No. Se construyen con la regla oficial a partir de nombres y fechas generados al azar, así que tienen el formato y el dígito verificador correctos, pero no identifican a nadie: no están en el registro del RENAPO y una consulta oficial no devolvería nada.
¿Por qué no puedo generar un RFC completo y verificable?
Porque la homoclave —los tres últimos caracteres— la asigna el SAT con un algoritmo que no publica. La raíz del RFC sí se calcula con las letras del nombre y la fecha; la homoclave de esta herramienta es aleatoria: válida en formato, no derivable.
¿Sirven estas CLABE para hacer una transferencia?
No. Pasan la validación del dígito de control, que es lo que comprueba un formulario, pero no corresponden a ninguna cuenta abierta en ningún banco. Un SPEI contra ellas sería rechazado.
¿Qué diferencia hay entre CURP y RFC?
La CURP identifica a la persona ante el Estado y son 18 caracteres calculables por completo. El RFC identifica al contribuyente ante el SAT, son 13 caracteres en persona física y 12 en moral, y su homoclave no se puede calcular. Muchos sistemas los confunden porque ambos empiezan con letras del nombre.
¿Por qué mi validación rechaza una CURP que parece correcta?
Las tres causas habituales son: esperar un dígito en la posición 17 cuando la persona nació a partir del año 2000 y ahí va una letra; no aceptar la clave de entidad NE de nacidos en el extranjero; y no contemplar la X que aparece cuando no hay apellido materno o cuando las cuatro letras formaban una palabra inconveniente.