Como Validar Chave de MDF-e em Python

Script Python para validar chaves de Manifesto Eletrônico de Documentos Fiscais (MDF-e).

Introdução

O MDF-e (modelo 58) é obrigatório no transporte interestadual. Sua chave de acesso segue o padrão nacional de documentos fiscais.

O Algoritmo

A validação consiste em recalcular o último dígito (DV) usando o algoritmo Módulo 11 sobre os 43 dígitos anteriores.

Implementação em Python

mdfe-generator.pypython
def validate_mdfe_key(key: str) -> bool:
    # A lógica é idêntica à da NF-e e CT-e
    if len(key) != 44 or not key.isdigit():
        return False
    
    base_key = key[:43]
    weights = [2, 3, 4, 5, 6, 7, 8, 9]
    total = 0
    weight_index = 0
    
    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 código implementa o algoritmo oficial. Note que o MDF-e se diferencia apenas pelo modelo (58) na composição da chave, mas o cálculo do DV é o mesmo.

Não quer escrever código?

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

Usar Ferramenta de MDFE-GENERATOR Online