dfe
Documentos Fiscais Eletrônicos Brasileiros — crate Rust para integração com os webservices da SEFAZ.
Cobre o ciclo fiscal de NF-e e NFC-e — emissão, eventos, assinatura, validação, DANFE e impressão — em
uma única biblioteca Rust async, com roteamento para as 27 UFs.
Características
- API
asyncem Rust. Cada operação é um builder fluente que retorna a resposta da SEFAZ tipada. - Roteamento multi-UF. Seleciona o webservice a partir da UF do documento (autorizadores próprios e compartilhados), em produção e homologação, para as 27 UFs.
- Certificado A1 (.pfx). Assinatura XML-DSig (RSA-SHA1) e TLS mútuo resolvidos internamente. Não
depende de OpenSSL;
libxml2é linkado estaticamente. - Validação XSD. Schemas oficiais da SEFAZ embutidos no binário, sem arquivos externos.
- Erros tipados. Todas as operações retornam
Result<T, DfeError>; o caminho de request não dápanic. - Build modular. As camadas de DANFE, ESC/POS e distribuição são features opcionais (ligadas por padrão) — veja Features de compilação.
Funcionalidades
Documentos e eventos fiscais
| Funcionalidade | Descrição |
|---|---|
| Emissão NF-e / NFC-e | Autorização via SOAP (modelos 55 e 65), com totais calculados automaticamente |
| Cancelamento | Evento 110111 (NF-e e NFC-e) |
| Cancelamento por substituição | Evento 110112 para NFC-e (NT 2018.004) |
| Carta de Correção (CC-e) | Evento 110110, com nSeqEvento acumulativo |
| Manifestação do destinatário | Ciência, confirmação, desconhecimento e operação não realizada |
| Distribuição de DF-e | Consulta ao Ambiente Nacional por NSU ou chave de acesso |
| Status do webservice | Disponibilidade por UF e ambiente |
Fiscal, impressão e infraestrutura
| Funcionalidade | Descrição |
|---|---|
| Roteamento multi-UF | 27 UFs (autorizadores próprios e compartilhados), produção e homologação |
| IBS/CBS (Reforma Tributária) | Grupo IBS/CBS por item e nos totais (omitido quando não aplicável) |
| CNPJ alfanumérico | Suporte ao novo formato de CNPJ (letras e dígitos) |
| DANFE em PDF | A4 e 80mm, NF-e e NFC-e, com suporte a logotipo |
| ESC/POS | EscPosBuilder (layout livre) e EscPosNFCeBuilder (NFC-e pronto) |
| Validação XSD | Schemas oficiais da SEFAZ embutidos no binário |
| Validação CNPJ/CPF | Dígito verificador (inclui CNPJ alfanumérico) |
| Extração de XML | Leitura de campos de XML autorizado |
Início rápido
[]
= "0.6"
use ;
use ;
async
Windows: antes de compilar, leia docs/instalacao.md — é necessário configurar o vcpkg para linking estático do
libxml2. OpenSSL não é uma dependência.
Features de compilação
Todas as features são ligadas por padrão. Para reduzir o build e as dependências, desligue as que não usar:
| Feature | Liga | Padrão |
|---|---|---|
danfe |
Geração de DANFE em PDF | ✅ |
escpos |
Impressão ESC/POS | ✅ |
distribuicao |
Distribuição de DF-e + manifestação | ✅ |
# Só emissão/cancelamento + DANFE, sem ESC/POS nem distribuição:
= { = "0.6", = false, = ["danfe"] }
O núcleo — emissão, cancelamento, substituição, carta de correção, status, extração de XML, assinatura e validação — está sempre disponível, independente das features.
Documentação
| Seção | Descrição |
|---|---|
| Instalação | Plataformas suportadas, libxml2/vcpkg (linking estático no Windows) |
| Emissão NF-e / NFC-e | NFeBuilder, métodos, totais automáticos |
| Cancelamento | CancelarBuilder |
| Manifestação do Destinatário | Ciência, confirmação, desconhecimento, op. não realizada |
| Distribuição de DF-e | Consulta por NSU e chave de acesso |
| DANFE | Geração de PDF A4 e 80mm |
| ESC/POS | EscPosBuilder e EscPosNFCeBuilder |
| Status do Webservice | Consulta de disponibilidade por UF |
| Tratamento de Erros | DfeError — variantes e quando ocorrem |
| ICMS, PIS, COFINS | Tipos de ICMS, IPI, PIS/COFINS e validação CNPJ/CPF |
| Testes | Suites disponíveis e requisitos |
| Notas e Roadmap | Boas práticas e funcionalidades planejadas |
Referência completa dos builders (incluindo SubstituicaoBuilder, CartaCorrecaoBuilder e as
features) em API.md.
Licença
MIT — veja LICENSE.