DFe.NET
Biblioteca para Geração de NFe(2.0, 3.10 e 4.0) e NFCe(3.10 e 4.0) e consumo dos serviços necessários à sua manutenção, conforme descritos em http://www.nfe.fazenda.gov.br/portal/principal.aspx
Install / Use
/learn @ZeusAutomacao/DFe.NETREADME
Biblioteca em C# para emissão e impressão de NFe, NFCe, MDF-e e CT-e
DFe.NET
Biblioteca gratuita para Geração de NFe 3.10/4.00, NFCe 3.10/4.00, MDF-e 3.0 e CT-e 3.0/4.0 e consumo dos serviços necessários à sua manutenção, conforme descritos em http://www.nfe.fazenda.gov.br/portal/principal.aspx, https://mdfe-portal.sefaz.rs.gov.br e www.cte.fazenda.gov.br/portal.
A biblioteca foi desenvolvida em C# utilizando Visual Studio Community 2022 com os SDKs net462, netstandard2.0 e net6.0 instalados.
Versões suportadas:
| Escopos | Frameworks Suportados | | ------------------- | ------------------- | | NFe, NFCe, CTe, MDFe | .NET 4.6.2, .NET 4.7, .NET 4.7.1, .NET 4.7.2, .NET 4.8, .NetStandard 2.0, .NET 6.0 .NET 7.0 .NET 8.0 | | Impressões com OpenFastReport (NFe, NFCe, CTe, MDFe) | ..NET 4.6.2, .NET 4.7, .NET 4.7.1, .NET 4.7.2, .NET 4.8, .NetStandard 2.0, .NET 6.0(windows+linux) .NET 7.0+(windows) | | Impressões com FastReport(versão paga) (NFe, NFCe, CTe, MDFe) | .NET 4.6.2, .NET 4.7, .NET 4.7.1, .NET 4.7.2, .NET 4.8 .NetStandard 2.0, .NET 6.0 .NET 7.0+(windows) | | Impressões com FastReport.Skia(versão paga) (NFe) | .NET 7.0+(windows+linux+mobile) |
Não temos suporte para .NetFramework 4.5.2 ou 4.5 ou menor. A Biblioteca irá seguir o ciclo de vida de versões da microsoft, sendo retirado a compatibilidade de versoes específicas e antigas do .Net caso a microsoft retire seu suporte.
Licenciada sobre a LGPL (https://pt.wikipedia.org/wiki/GNU_Lesser_General_Public_License).
Pacotes Nugets
A melhor maneira de você ter a última versão do Zeus em seu projeto é utilizando os pacotes Nugets abaixo
O que a biblioteca faz:
O projeto traz classes construídas de forma manual que extraem a complexidade dos XSDs. Com isso é possível preencher objetos nativos em .NET e gerar o XML na estrutura exigida para seu DFe, assim como o processo inverso de ler um XML de um DFe e obter objetos nativos em .NET.
Além da serialização e desserialização, o projeto também conta com os métodos de consumo dos webservices (consultar, transmitir, cancelar, inutilizar, etc.), ou seja, com a biblioteca você preenche um objeto nativo em .NET e transmite o seu DFe de forma totalmente transparente, sem se preocupar coma serialização e consumo do webservice.
A bibliteca também conta com a impressão dos DFes suportados, onde basicamente basta fazer a desserialização (ou preencher manualmente o(s) objeto(s) do DFe em questão) e chamar seu projeto de impressão.
Exemplo:
var proc = new nfeProc().CarregarDeArquivoXml(Caminho_do_arquivo_XML);
var danfe = new DanfeFrNfce(proc, new ConfiguracaoDanfeNfce(NfceDetalheVendaNormal.UmaLinha, NfceDetalheVendaContigencia.UmaLinha, null/*Logomarca em byte[]*/), "00001", "XXXXXXXXXXXXXXXXXXXXXXXXXX");
danfe.Visualizar();
//danfe.Imprimir();
//danfe.ExibirDesign();
Reforma tributária
A biblioteca está em processo de adequação à Reforma Tributária do Consumo, que impacta diretamente documentos fiscais eletrônicos.
A partir do Pull Request #1649 e da versão 2025.10.03.1855 do pacote NuGet, a biblioteca passa a atender parcialmente os requisitos estabelecidos pela reforma para NFe e NFCe.
O acompanhamento do suporte à reforma pode ser realizado na issue #1615.
Além disso, o suporte para CTe e MDFe será tratado futuramente nas issues:
Contribuições da comunidade são muito bem-vindas para acelerar a implementação completa dessas mudanças. 🚀
Contribuindo com a biblioteca
Para saber como contribuir com o projeto, consulte as Diretrizes de Contribuição. Desde já agradecemos sua contribuição e esperamos que você aproveite e colabore com o desenvolvimento do projeto DFe.NET!
Como usar a ferramenta:
Antes de qualquer coisa leia os manuais e conheça a fundo o(s) projetos que pretende usar, entenda o que é um DFe (documento fiscal eletrônico), o que é um certificado, como funciona um webservice, o que é obrigatório ser informado no DFe que pretende emitir, entre outras informações. Isso vai ajudar na construção do seu software e na integração com a biblioteca.
Com o conhecimento prévio adquirido, agora você precisa estudar a biblioteca. A linguagem utilizada é C#, logo um conhecimento basico da linguagem pode te ajudar bastante, mesmo que você use apenas as dlls com VB.Net ou outra linguagem compatível.
Para facilitar o seus estudos a biblioteca oferece projetos do tipo DEMO, sendo eles (por ordem alfabética):
- CTe.AppTeste: Projeto em WPF para demonstração de uso do CTe;
- CTe.AppTeste.NetCore: Projeto em Console para demonstração de uso do CTe em .NET6;
- CTe.Dacte.AppTeste: Projeto em Winforms para demonstração de uso da impressão do CTe (necessita do FastReport.Net¹);
- MDFe.AppTeste: Projeto em WPF para demonstração de uso do MDFe;
- MDFe.Damdfe.AppTeste: Projeto em Winforms para demonstração de uso da impressão do MDFe (necessita do FastReport.Net¹);
- NFe.AppTeste: Projeto em WPF para demonstração de uso do NFe;
- NFe.AppTeste.NetCore: Projeto em Console para demonstração de uso do NFe e NFCe em .NET6;
- NFe.Danfe.AppTeste.Fast: Projeto em WPF para demonstração de uso da impressão da NFe e NFCe (A NFe e NFCe estão disponíveis em FastReport.Net¹. A NFC-e também está disponível de forma nativa, entretanto para O DEMO é necessária as DLLs do FastReport.Net¹. A utilização do DANFe da NFCe de forma nativa fora do DEMO não depende do FastReports.Net);
- NFe.Danfe.AppTeste.OpenFast: Projeto em Console em .NET6 para demonstração de uso de impressão da NFe, NFCe, como DANFE de xml não registrado e registrado ou Eventos como carta de correção e cancelamento.(A NFe utiliza o FastReport.OpenSource (https://github.com/FastReports/FastReport). Não é necessário nenhuma DLL externa, tudo está incluído no pacote nuget.);
Impressão (FastReport):
- Exemplo no Projeto NFe.Danfe.AppTeste.Fast.
- A impressão de forma nativa (sem dependências de bibliotecas de terceiros) está disponível somente para a NFCe¹.
- O projeto conta também com a impressão em FastReport.Net¹ (https://www.fast-report.com/pt/product/fast-report-net/) para NFe, NFCe² (térmica), CTe (modal rodoviário) e MDFe.
¹ As dlls do FastReport.Net disponibilizadas na biblioteca são da versão de demonstração³ do mesmo. A versão de demonstração coloca uma marca d'água "DEMO VERSION" na impressão do relatório. Se você possui licença FastReport.Net, substitua as dlls do FastReport.Net nos projetos NFe.Danfe.Fast\Dll, CTe.Dacte.Fast\DLLs e MDFe.Damdfe.Fast\Dlls pelas dlls de sua versão licenciada, antes de compilar sua aplicação para distribuição.
² Obs: Visando abranger o maior número possível de impressoras térmicas, a impressão é feita via spooler do windows. A impressão térmica via spooler, dependendo da impressora, pode sair com má qualidade. Para sanar isso, no relatório são utilizadas duas fontes condensadas que possuem boa legibilidade em tamanho pequeno, a saber a OpenSans e UbuntuCondensed, ambas de uso livre podendo ser obtidas em https://www.google.com/fonts; As fontes estão anexadas ao projeto em Shared.NFe.Danfe.Base\Fontes_; Instale as fontes informadas no PC que for imprimir o DANFE da NFCe_;
Impressão (OpenFastReport):
- Exemplos no Projeto NFe.Danfe.AppTeste.OpenFast.
- A impressão da NFe utiliza o FastReport.OpenSource (https://github.com/FastReports/FastReport), sendo ele instalado automatico ao utilizar o pacote nuget do Zeus.
- A impressão requer que o arquivo .frx seja indicado, ou seja, ao publicar os binarios de
