Cómo Funcionan los Algoritmos del CPF y CNPJ
El CPF y el CNPJ no son secuencias aleatorias de números — poseen dígitos verificadores calculados por un algoritmo matemático basado en módulo 11. Entender este algoritmo es fundamental para implementar validaciones correctas en su código.
La estructura del CPF
El CPF está compuesto por 11 dígitos en el formato NNN.NNN.NNN-DV, donde los 9 primeros son el número base y los 2 últimos son los dígitos verificadores. CPFs con todos los dígitos iguales son inválidos por definición.
El noveno dígito del CPF indica el estado de origen del registro: 1 para DF, GO, MS, MT y TO; 2 para AC, AM, AP, PA, RO, RR y TO; 3 para CE, MA y PI; 4 para AL, PB, PE y RN; 5 para BA y SE; 6 para MG; 7 para ES y RJ; 8 para SP; 9 para PR y SC; 0 para RS.
Calculando el primer dígito verificador del CPF
Para calcular el primer dígito verificador: multiplique cada uno de los 9 primeros dígitos por los pesos 10, 9, 8, 7, 6, 5, 4, 3 y 2. Sume todos los resultados. Calcule el resto de la división por 11. Si el resto es menor que 2, el dígito es 0. Si es mayor o igual a 2, el dígito es 11 menos el resto.
Ejemplo con el CPF 123.456.789-XX: (1×10) + (2×9) + (3×8) + (4×7) + (5×6) + (6×5) + (7×4) + (8×3) + (9×2) = 210. Resto de 210 por 11 = 1. Como 1 < 2, el primer dígito verificador es 0.
La estructura del CNPJ
El CNPJ posee 14 dígitos en el formato XX.XXX.XXX/XXXX-DV. Los 8 primeros identifican la empresa (raíz), los 4 siguientes identifican la sucursal (0001 para la matriz) y los 2 últimos son dígitos verificadores. A partir de julio de 2026, la Receita Federal implementará el CNPJ alfanumérico.
Así como el CPF, CNPJs con todos los dígitos iguales son inválidos. El proceso de validación es similar al del CPF, pero usa dos conjuntos diferentes de pesos.
Calculando los dígitos verificadores del CNPJ
Para el primer dígito verificador del CNPJ, use los pesos 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3 y 2 aplicados a los 12 primeros dígitos. Sume los productos, divida por 11 y aplique la misma regla del CPF.
Para el segundo dígito, use los pesos 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3 y 2 aplicados a los 12 primeros dígitos más el primer verificador calculado.
¿Por qué existen estos algoritmos?
Los dígitos verificadores existen para detectar errores de digitación — que son la causa más común de documentos inválidos en formularios. El algoritmo de módulo 11 fue elegido por ser matemáticamente eficiente y tener una tasa baja de colisiones.
Para desarrolladores, implementar la validación de CPF y CNPJ en el frontend mejora la experiencia del usuario y reduce carga en el backend. Implementar también en el backend garantiza que datos malformados no entren en la base de datos. Help4Dev ofrece tanto generadores como validadores.