Como Validar Chave de Acesso CT-e em Python

Aprenda a validar chaves de Conhecimento de Transporte Eletrônico (CT-e) com este script Python.

Introdução

O CT-e (modelo 57) utiliza a mesma lógica de validação da NF-e. A chave de acesso possui 44 posições e garante a autenticidade do documento.

O Algoritmo

O dígito verificador é calculado via Módulo 11 (pesos 2-9). O resto da divisão por 11 determina o dígito final.

Implementação em Python

cte-generator.pypython
def validate_cte_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

O algoritmo verifica o tamanho da chave e calcula o dígito verificador. Se o dígito calculado for igual ao informado, a chave é matematicamente válida.

Não quer escrever código?

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

Usar Ferramenta de CTE-GENERATOR Online