Como Faz Distribuição Eletrônica - Distribuição eletrônica: como se faz, regras - Manual da Química
Distribuição eletrônica: como se faz, regras - Manual da Química

O que é e como funciona na prática

Distribuição eletrônica de documentos fiscais no Brasil envolve baixar os XMLs das NF-e, NFC-e, CT-e e NFS-e diretamente dos serviços da SEFAZ. O método mais usado é o webservice DistribuicaoDFeUltima, mas ele tem limitações que pouca gente explica. A primeira coisa que você precisa saber: esse serviço só devolve a última nota de cada tipo por CPF ou CNPJ. Se você precisa de histórico, tem que usar o DistribuicaoDFePorChave, passando as chaves de acesso uma a uma, ou recorrer ao ambiente nacional da SEFAZ quando disponível. Na prática, o fluxo funciona assim. Você monta a requisição SOAP com o CNPJ da empresa, o tipo de documento (1 para NF-e, 4 para CT-e, etc.), e opcionalmente a data inicial. O webservice responde com um XML contendo a nota mais recente. Para recuperar documentos antigos, você consulta manualmente pela chave de acesso ou usa os relatórios do ambiente nacional, que permitem filtrar por período, emissão, destino e remessa.

como faz distribuição eletrônica passo a passo

O primeiro passo é configurar a conexão com a SEFAZ. Você precisa do certificado digital A1 ou A3 da empresa, instalar a biblioteca SOAP adequada ao seu ambiente (PHP, Python, Java, C#), e fazer a chamada ao webservice com os dados corretos. Os endereços mudam conforme o estado e o tipo de documento. Para NF-e, o serviço padrão é https://www1.fazenda.gov.br/consultanfce/consulta.php no ambiente nacional, ou os links estaduais para a consulta individual. A resposta vem em XML e contém o documento completo. O que muita gente não percebe é que o XML da SEFAZ pode ser diferente do XML que foi enviado originalmente. Campos como infNFe, ide, e emiss são padronizados, mas informações adicionais podem variar. Sempre valide com a schema XML da SEFAZ antes de processar.

Depois de baixar, o próximo passo é salvar, indexar e integrar ao sistema. Armazene os XMLs em pasta organizadas por ano-mês, renomeie com a chave de acesso como identificador único, e insira os dados no banco. O índice por chave de acesso é essencial. Sem ele, você perde tempo procurando depois. Use também o campo nNF e a serie como indices secundários, mas a chave de acesso deve ser a primária.

👉 Clique no botão abaixo para saber mais sobre o assunto!

problemas comuns e soluções que funcionam

Eu já lidava com uma empresa que tinha mais de 12 mil NF-e espalhadas por cinco anos, sem controle centralizado. O webservice DistribuicaoDFePorChave só permite consultar uma chave por vez, então a solução foi criar um script batch que lia um arquivo CSV com todas as chaves e fazia as requisições em sequência, com delays de dois segundos entre cada uma para não violar a cota do webservice. O processo inteiro levou cerca de três dias rodando em paralelo, mas funcionou. Sem a planilha com as chaves, seria praticamente impossível reconstruir o histórico. Outro problema frequente: a SEFAZ retorna o erro Documento não encontrado mesmo quando a nota existe. Isso acontece quando a nota foi cancelada, Inutilizada, ou quando a consulta é feita por CPF errado. A regra prática é sempre confirmar o CNPJ do emitente no XML baixado antes de confiar no resultado. Nota cancelada ainda aparece na resposta, mas o campo situacao indica o status. Trate como documento inativo, não como erro de sistema.

Um detalhe que ninguém menciona: o webservice DistribuicaoDFeUltima so funciona para documentos dos ultimos cinco anos. Acima disso, voce precisa acessar o Ambiente Nacional de Distribuicao de Documentos Fiscais Eletronicos, disponivel em https://www1.fazenda.gov.br/consultaNF-e/, onde o filtro por data funciona de forma mais confiavel. O downside é que o ambiente nacional pode estar fora do ar por manutenções nao previstas, e o tempo de resposta varia entre 30 segundos e varios minutos dependendo da carga.

alternativas quando o webservice nao basta

Quando o volume de documentos e grande, ou quando voce precisa de integracao em tempo real, a solucao mais usada e contratar um serviço de armazenamento em nuvem especializado, como o Sankhya, Bling, ou plataformas similares que oferecem API própria para distribuicao. Eles centralizam os XMLs e fornecem acesso programatico. O custo varia, mas geralmente compensa quando a equipe interna gasta mais de dez horas por mes apenas baixando e organizando documentos. Para quem prefere manter tudo interno, uma abordagem viavel é um serviço rodando em cron job que consulta periodicamente a SEFAZ e armazena localmente, com logica de deduplicacao por chave de acesso. Isso elimina requisições redundantes e reduz o tempo de processamento inicial de horas para minutos após a primeira sincronizacao completa.

A distribicao eletrônica é funcional mas tem limitacoes reais. O webservice é sensivel a erros de conexao, a cota de consultas e validacoes inconsistentes entre estados. Se voce trabalha com alto volume, planeje infraestrutura de retry e fallback para o ambiente nacional desde o inicio. O que funciona hoje pode nao funcionar amanha se a SEFAZ alterar o schema sem aviso previo.