Como Validar Chave de Acesso NF-e em Python

Aprenda o algoritmo Módulo 11 usado para validar chaves de Nota Fiscal Eletrônica (NF-e).

Introdução

A Chave de Acesso da NF-e é composta por 44 dígitos que contêm informações como UF, Data, CNPJ e Modelo. O último dígito é o verificador (DV).

O Algoritmo

O DV é calculado usando o Módulo 11 com pesos de 2 a 9. Se o resto for 0 ou 1, o DV é 0. Caso contrário, é 11 menos o resto.

Implementação em Python

nfe-generator.pypython
def validate_access_key(key: str) -> bool:
    if len(key) != 44 or not key.isdigit():
        return False
    
    # Validação do DV (Dígito Verificador)
    base_key = key[:43]
    weights = [2, 3, 4, 5, 6, 7, 8, 9]
    total = 0
    weight_index = 0
    
    # Percorre de trás para frente
    for digit in reversed(base_key):
        total += int(digit) * weights[weight_index]
        weight_index = (weight_index + 1) % 8
        
    remainder = total % 11
    dv = 0 if remainder < 2 else 11 - remainder
    
    return int(key[43]) == dv

A função verifica se a chave tem 44 dígitos numéricos. Em seguida, percorre os primeiros 43 dígitos de trás para frente, multiplicando por pesos de 2 a 9 (ciclicamente). O DV calculado é comparado com o último dígito da chave.

Não quer escrever código?

Use nossa ferramenta online gratuita para processar NFE-GENERATOR instantaneamente. Perfeito para testes rápidos.

Usar Ferramenta de NFE-GENERATOR Online