Como Validar CNPJ em Python (Script Simples)

Aprenda a criar uma função de validação de CNPJ em Python. Entenda o cálculo dos dígitos verificadores.

Introdução

O CNPJ (Cadastro Nacional da Pessoa Jurídica) possui um algoritmo de validação específico. Este tutorial mostra como implementar essa verificação em Python.

O Algoritmo

O algoritmo utiliza pesos de 2 a 9 para calcular os dois dígitos verificadores. A soma é dividida por 11 e o resto determina o dígito.

Implementação em Python

cnpj.pypython
import re

def validate_cnpj(cnpj: str) -> bool:
    cnpj = re.sub(r'[^0-9]', '', cnpj)

    if len(cnpj) != 14 or len(set(cnpj)) == 1:
        return False

    # Validação do primeiro dígito
    weights = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
    sum_val = sum(int(cnpj[i]) * weights[i] for i in range(12))
    remainder = sum_val % 11
    digit_1 = 0 if remainder < 2 else 11 - remainder

    if int(cnpj[12]) != digit_1:
        return False

    # Validação do segundo dígito
    weights = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
    sum_val = sum(int(cnpj[i]) * weights[i] for i in range(13))
    remainder = sum_val % 11
    digit_2 = 0 if remainder < 2 else 11 - remainder

    return int(cnpj[13]) == digit_2

O código remove caracteres não numéricos e verifica o tamanho. Em seguida, aplica os pesos definidos pela Receita Federal para validar cada um dos dois dígitos finais.

Não quer escrever código?

Use nossa ferramenta online gratuita para processar CNPJ instantaneamente. Perfeito para testes rápidos.

Usar Ferramenta de CNPJ Online