Validador de RFC (México)
Valida RFC en lote: estructura, fecha y dígito verificador del SAT.
Los RFC se validan en tu navegador — no se envían a ningún ladoVerifica la estructura, la fecha y el dígito verificador del SAT — en lote
Qué revisa este validador y qué no puede confirmar
El RFC —Registro Federal de Contribuyentes— es la clave que el SAT asigna a cada persona y empresa en México, y capturarlo mal tiene costo real: una factura (CFDI) con el RFC del receptor equivocado no timbra, y una base de clientes con RFC inválidos falla en la conciliación. Este validador revisa uno o cientos de RFC a la vez —pégalos uno por línea— y te dice exactamente qué tiene de malo cada uno: longitud, formato, fecha o dígito verificador.
La estructura es fija. Una persona física tiene 13 caracteres: 4 letras tomadas de los apellidos y el nombre, 6 dígitos con la fecha de nacimiento (AAMMDD) y 3 caracteres de homoclave que asigna el SAT. Una persona moral tiene 12: 3 letras de la razón social, la fecha de constitución y la homoclave. En ambos casos el último carácter de la homoclave es un dígito verificador —un número del 0 al 9 o la letra A— que se calcula con un algoritmo módulo 11 sobre el resto de la clave, igual que el dígito final de una tarjeta bancaria.
Esa es la parte que este validador comprueba de verdad, en tres capas: que la estructura sea válida (letras donde van letras, incluidas Ñ y &, dígitos donde van dígitos), que la fecha exista en el calendario (un mes 13 o un 30 de febrero delatan un RFC inventado o mal capturado), y que el dígito verificador coincida con el que produce el algoritmo del SAT — la prueba que detecta la inmensa mayoría de los errores de dedo, porque cambiar un solo carácter casi siempre rompe el dígito.
Lo que ninguna herramienta puede confirmar desde fuera es que el RFC esté efectivamente inscrito en el SAT: un RFC puede ser estructuralmente perfecto y aun así no existir en el padrón, o estar cancelado. Para eso está la verificación oficial del SAT (la consulta de situación fiscal en su portal). Piensa en este validador como el primer filtro barato y masivo —limpia la captura antes de facturar o de cargar una base— y en el SAT como la fuente de la verdad final.
Hay un detalle que muchos validadores hacen mal: los RFC genéricos XAXX010101000 (público en general) y XEXX010101000 (residentes en el extranjero) son claves oficiales que se usan todos los días en facturación… y no cumplen el algoritmo del dígito verificador. Un validador ingenuo los rechaza; este los reconoce y los marca como lo que son. Todo corre en tu navegador: los RFC que pegues —que son datos fiscales reales— no se envían a ningún servidor.
La estructura del RFC, pieza por pieza
| Tipo | Largo | Composición | Ejemplo |
|---|---|---|---|
| Persona física | 13 | 4 letras (apellidos y nombre) + fecha de nacimiento AAMMDD + homoclave de 3 (los 2 primeros los asigna el SAT; el 3.º es el dígito verificador) | GODE561231GR8 |
| Persona moral | 12 | 3 letras de la razón social + fecha de constitución AAMMDD + homoclave de 3 | EKU9003173C9 |
| Genérico — público en general | 13 | Clave fija oficial para ventas al público sin RFC | XAXX010101000 |
| Genérico — extranjeros | 13 | Clave fija oficial para residentes en el extranjero | XEXX010101000 |
Las letras pueden incluir la Ñ y el signo & (común en razones sociales como "AT&T"). La fecha no lleva siglo: 561231 puede ser 1956; por eso un validador solo puede exigir que el mes y el día existan en el calendario, y un 29 de febrero se acepta porque algún siglo lo hace bisiesto. EKU9003173C9 es, por cierto, el RFC de prueba oficial que el propio SAT usa en su documentación de facturación.
El dígito verificador, explicado con un ejemplo
El último carácter del RFC no es aleatorio: se calcula a partir de los 12 anteriores (11 en personas morales, que se rellenan con un espacio inicial). Cada carácter recibe un valor de una tabla oficial (0–9 valen su cifra; A=10 … N=23, &=24, O=25 … Z=36, espacio=37, Ñ=38), cada valor se multiplica por un peso descendente de 13 a 2, se suman los productos y se toma el residuo de dividir entre 11: si es 0 el dígito es 0; si no, el dígito es 11 menos el residuo, y cuando esa resta da 10 se escribe la letra A.
RFC: GODE561231GR + dígito
G=16×13 O=25×12 D=13×11 E=14×10
5=5×9 6=6×8 1=1×7 2=2×6
3=3×5 1=1×4 G=16×3 R=28×2
Suma = 1026
1026 mod 11 = 3
11 − 3 = 8 → GODE561231GR8Por eso el dígito verificador es tan buen detector de errores de dedo: cambia una sola letra o un solo número y la suma cambia, así que el dígito esperado casi siempre deja de coincidir. Y por eso también los RFC genéricos son la excepción que hay que conocer: XAXX010101000 produce un 4 con esta fórmula, no un 0 — el SAT los definió como claves fijas, no como resultado del algoritmo, y un validador correcto los acepta como caso especial.
Validar RFC en Excel, Google Sheets y SQL
Para limpiar una columna de RFC en tus propias herramientas, la expresión regular del formato es el primer filtro. No sustituye al dígito verificador —eso requiere el algoritmo completo, que esta página ejecuta en lote— pero descarta al instante lo que ni siquiera tiene forma de RFC.
Google Sheets (A2 = RFC):
=REGEXMATCH(A2; "^[A-ZÑ&]{3,4}[0-9]{6}[A-Z0-9]{3}$")
Excel 365 (2024 en adelante):
=REGEXTEST(A2, "^[A-ZÑ&]{3,4}[0-9]{6}[A-Z0-9]{3}$")
Normaliza antes de validar (mayúsculas y sin espacios):
=MAYUSC(SUSTITUIR(A2, " ", ""))-- PostgreSQL
SELECT rfc FROM clientes
WHERE rfc !~ '^[A-ZÑ&]{3,4}[0-9]{6}[A-Z0-9]{3}$';
-- MySQL 8
SELECT rfc FROM clientes
WHERE rfc NOT REGEXP '^[A-ZÑ&]{3,4}[0-9]{6}[A-Z0-9]{3}$';
-- SQL Server: sin regex nativo — filtra por longitud como primer paso
SELECT rfc FROM clientes
WHERE LEN(rfc) NOT IN (12, 13);Preguntas frecuentes
¿Este validador confirma que el RFC existe en el SAT?
No, y ninguna herramienta externa puede hacerlo. Aquí se valida la estructura, la fecha y el dígito verificador — suficiente para detectar errores de captura y claves inventadas. Para confirmar que un RFC está inscrito y activo en el padrón, usa la consulta oficial del SAT en su portal (verificación de situación fiscal). Lo eficiente es limpiar primero en lote con este validador y consultar al SAT solo lo que pasó el filtro.
¿Por qué XAXX010101000 sale como válido si falla el algoritmo?
Porque es un RFC genérico oficial: XAXX010101000 se usa para facturar al público en general y XEXX010101000 para residentes en el extranjero, y ninguno de los dos cumple el algoritmo del dígito verificador. Son excepciones definidas por el propio SAT, así que este validador los reconoce como casos especiales y los etiqueta como genéricos, en vez de rechazarlos como haría un validador que solo aplica la fórmula.
¿Es seguro pegar RFC reales de mis clientes?
Sí. La validación corre completamente en tu navegador con JavaScript: los RFC nunca se envían a ningún servidor, no hay cuentas ni registro, y puedes comprobarlo desconectando el internet después de cargar la página — la herramienta sigue funcionando. Para datos fiscales de terceros, esa es exactamente la garantía que quieres antes de usar una herramienta en línea.