Verificar a validade de um CNPJ estadual pode parecer complexo, mas com o algoritmo correto, o processo se torna simples e confiável. Este método garante a validação dos dígitos verificadores, assegurando que o número esteja em conformidade com as regras estabelecidas pela Receita Federal.
Primeiro, é necessário criar uma função que valide o CNPJ utilizando o algoritmo específico. Esta função irá verificar se o CNPJ possui 14 dígitos e calculará os dígitos verificadores.
def validar_cnpj(cnpj):
cnpj = ''.join(filter(str.isdigit, cnpj))
if len(cnpj) != 14:
return False
cnpj_original = cnpj
cnpj = cnpj[:-2]
pesos = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
soma = sum(int(cnpj[i]) * pesos[i] for i in range(12))
resto = soma % 11
digito1 = 0 if resto < 2 else 11 - resto
cnpj += str(digito1)
pesos = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
soma = sum(int(cnpj[i]) * pesos[i] for i in range(13))
resto = soma % 11
digito2 = 0 if resto < 2 else 11 - resto
cnpj += str(digito2)
return cnpj == cnpj_original
Para garantir que a função está funcionando corretamente, é importante testá-la com alguns exemplos de CNPJ válidos e inválidos.
cnpjs = [
"12.345.678/0001-95", # Válido
"11.111.111/1111-11", # Inválido
"98.765.432/0001-00" # Válido
]
for cnpj in cnpjs:
print(f"{cnpj}: {'Válido' if validar_cnpj(cnpj) else 'Inválido'}")
| CNPJ | Válido? |
|---|---|
| 12.345.678/0001-95 | Sim |
| 11.111.111/1111-11 | Não |
| 98.765.432/0001-00 | Sim |
Com este método, você automatiza a validação de CNPJ estadual em segundos, evitando erros manuais e garantindo a conformidade com as regras da Receita Federal. A implementação do algoritmo específico é a chave para uma verificação rápida e precisa.