Dashboard / CNPJ
CNPJ
Ferramenta gratuita para validar e gerar números de CNPJ (Cadastro Nacional da Pessoa Jurídica). Valide a estrutura matemática do documento instantaneamente.
Como funciona?
O CNPJ é composto por 14 algarismos, divididos em três blocos: a inscrição (8 dígitos), a indicação de matriz ou filial (4 dígitos) e os dígitos verificadores (2 dígitos). Algoritmo de Validação (Módulo 11): O cálculo dos dígitos verificadores utiliza pesos específicos. Para o primeiro dígito, os pesos são 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2. Para o segundo, os pesos são 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2.
- Multiplica-se cada dígito pelo seu peso correspondente.
- Soma-se os resultados e divide-se por 11.
- O resto da divisão define o dígito: se for menor que 2, o dígito é 0. Caso contrário, subtrai-se o resto de 11.
Implementação
def validar_cnpj(cnpj: str) -> bool:
cnpj = "".join(filter(str.isdigit, cnpj))
if len(cnpj) != 14 or len(set(cnpj)) == 1:
return False
def calcular_digito(fatia, pesos):
soma = sum(int(a) * b for a, b in zip(fatia, pesos))
resto = soma % 11
return "0" if resto < 2 else str(11 - resto)
pesos1 = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
pesos2 = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
digito1 = calcular_digito(cnpj[:12], pesos1)
digito2 = calcular_digito(cnpj[:13], pesos2)
return cnpj[-2:] == digito1 + digito2