seabeck.pages.dev

Como verificar CNPJ estadual com algoritmo específico?

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.

Pré-requisitos

Passo 1: Implementar a função de validação do CNPJ

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

Passo 2: Testar a função com exemplos

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'}")

Exemplo Prático

CNPJ Válido?
12.345.678/0001-95 Sim
11.111.111/1111-11 Não
98.765.432/0001-00 Sim

Conclusão

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.