OpenAC.Net.NFSe
1.8.0
Prefix Reserved
dotnet add package OpenAC.Net.NFSe --version 1.8.0
NuGet\Install-Package OpenAC.Net.NFSe -Version 1.8.0
<PackageReference Include="OpenAC.Net.NFSe" Version="1.8.0" />
<PackageVersion Include="OpenAC.Net.NFSe" Version="1.8.0" />
<PackageReference Include="OpenAC.Net.NFSe" />
paket add OpenAC.Net.NFSe --version 1.8.0
#r "nuget: OpenAC.Net.NFSe, 1.8.0"
#:package OpenAC.Net.NFSe@1.8.0
#addin nuget:?package=OpenAC.Net.NFSe&version=1.8.0
#tool nuget:?package=OpenAC.Net.NFSe&version=1.8.0
OpenAC.Net.NFSe
Biblioteca .NET multiplataforma para geração, assinatura, transmissão, consulta e impressão de NFS-e (Nota Fiscal de Serviço Eletrônica) para centenas de municípios brasileiros.
Desenvolvida pelo time OpenAC .Net, a biblioteca abstrai as particularidades dos diversos provedores municipais e padrões existentes (ABRASF 1.0, ABRASF 2.0x, DSF, Ginfes, SigISS, Betha, IPM, Governos próprios, entre outros).
🚀 Funcionalidades
- Emissão e Transmissão de RPS / NFS-e:
- Emissão Síncrona e Assíncrona.
- Envio de RPS individual ou em lote.
- Substituição de NFS-e / RPS.
- Cancelamento de NFS-e:
- Cancelamento por código de motivo, justificativa ou pedido assinado.
- Consultas:
- Consulta de Situação do Lote.
- Consulta de Lote de RPS.
- Consulta de NFS-e por RPS.
- Consulta de NFS-e por período / faixa de datas.
- Consulta de Link da NFS-e.
- Impressão do DANFSe em PDF:
- Motor de impressão
OpenAC.Net.NFSe.DANFSe.PDFSharpbaseado em PDFsharp 6.x e QRCoder. - 100% Open Source / MIT, sem custos de licença ou marcas d'água de terceiros.
- Native AOT Safe & Multiplataforma: Fontes TrueType embutidas, pronto para Docker, Linux (Alpine/Debian/Ubuntu), Windows e macOS.
- Suporte à customização de cabeçalhos, logos da prefeitura e do prestador, discriminação de itens em tabela ou texto livre e criptografia por senha.
- Motor de impressão
- Assinatura e Validação Digital:
- Assinatura digital XML com certificados A1 e A3 (
DFeSignature). - Validação de esquemas XML / Schemas XSD oficiais.
- Assinatura digital XML com certificados A1 e A3 (
- Alta Performance:
- Serialização e desserialização XML baseada em Source Generators (
OpenAC.Net.DFe.Core).
- Serialização e desserialização XML baseada em Source Generators (
- Suporte à Reforma Tributária (IBS / CBS):
- Estruturas prontas para os novos tributos municipais e federais.
🏛️ Provedores e Padrões Suportados
A biblioteca suporta os principais padrões de mercado e provedores municipais:
| Padrão / Provedor | Padrão / Provedor | Padrão / Provedor |
|---|---|---|
| ABRASF v1.00 | ABRASF v2.00 a v2.04 | Abaco |
| ABase | Agili | Assessor Público |
| Betha (v1 e v2) | BHISS (Belo Horizonte) | Citta |
| Conam | Coplan | DBSeller |
| DSF / ISSDSF | Equiplano | FintelISS |
| Fiorilli | Fisco | FissLex |
| GIAP | Ginfes | GISS / SigISS |
| GovBR | IPM (v1 e v2) | ISSCampinas |
| ISSCuritiba | ISSGoiania | ISSIntegra |
| ISSNet | ISSPortoVelho | ISSRecife |
| ISSRio (Nota Carioca) | ISSSJP | ISSSaoPaulo (Paulistana) |
| ISSVitoria | ISSe | Megasoft |
| MetropolisWeb | Mitra | NFe Cidades (GovDigital) |
| Prodata | Pronim (v1, v2, v203) | RLZ Informática |
| SiapNet | Sigep | SigissWeb |
| SimplISS (v1 e v2) | Sintese | SmarAPD |
| SpeedGov | SystemPro | Thema |
| Tinus | Tiplan (v1 e v2) | WebISS (v1 e v2) |
📦 Instalação
Adicione os pacotes via NuGet:
1. Componente Principal (NFS-e)
dotnet add package OpenAC.Net.NFSe
Install-Package OpenAC.Net.NFSe
2. Componente de Impressão (DANFSe em PDF via PDFsharp)
dotnet add package OpenAC.Net.NFSe.DANFSe.PDFSharp
Install-Package OpenAC.Net.NFSe.DANFSe.PDFSharp
🛠️ Como Usar
1. Inicializando e Configurando o Componente
using OpenAC.Net.DFe.Core.Common;
using OpenAC.Net.NFSe;
var openNFSe = new OpenNFSe();
// Configurações Gerais
openNFSe.Configuracoes.Geral.RetirarAcentos = true;
openNFSe.Configuracoes.Geral.Salvar = true;
// Configurações dos WebServices / Cidade
openNFSe.Configuracoes.WebServices.Ambiente = DFeTipoAmbiente.Homologacao;
openNFSe.Configuracoes.WebServices.CodigoMunicipio = 3550308; // Código IBGE (Ex: São Paulo - SP)
openNFSe.Configuracoes.WebServices.Usuario = "usuario_ws";
openNFSe.Configuracoes.WebServices.Senha = "senha_ws";
// Configurações dos Arquivos
openNFSe.Configuracoes.Arquivos.PathSalvar = @"C:\NFSe\Arquivos";
openNFSe.Configuracoes.Arquivos.PathSchemas = @"C:\NFSe\Schemas";
// Configurações do Certificado Digital
openNFSe.Configuracoes.Certificados.Certificado = @"C:\Certificados\certificado.pfx";
openNFSe.Configuracoes.Certificados.Senha = "123456";
// Dados do Prestador Padrão
openNFSe.Configuracoes.PrestadorPadrao.CpfCnpj = "12345678000195";
openNFSe.Configuracoes.PrestadorPadrao.InscricaoMunicipal = "12345678";
2. Criando e Emitindo uma Nota Fiscal de Serviço (RPS)
using System;
using OpenAC.Net.NFSe.Nota;
// Limpa notas anteriores
openNFSe.NotasServico.Clear();
// Adiciona um novo RPS
var nota = openNFSe.NotasServico.AddNew();
// Identificação do RPS
nota.IdentificacaoRps.Numero = "100";
nota.IdentificacaoRps.Serie = "1";
nota.IdentificacaoRps.Tipo = TipoRps.RPS;
nota.IdentificacaoRps.DataEmissao = DateTime.Now;
// Regime Tributário
nota.RegimeEspecialTributacao = RegimeEspecialTributacao.SimplesNacional;
nota.OptanteSimplesNacional = NFSeSimNao.Sim;
nota.IncentivadorCultural = NFSeSimNao.Nao;
// Prestador
nota.Prestador.CpfCnpj = "12345678000195";
nota.Prestador.InscricaoMunicipal = "12345678";
nota.Prestador.RazaoSocial = "EMPRESA PRESTADORA DE SERVICOS LTDA";
// Tomador
nota.Tomador.CpfCnpj = "98765432000100";
nota.Tomador.RazaoSocial = "CLIENTE TOMADOR DE SERVICOS S/A";
nota.Tomador.Endereco.Logradouro = "AVENIDA PAULISTA";
nota.Tomador.Endereco.Numero = "1000";
nota.Tomador.Endereco.Bairro = "BELA VISTA";
nota.Tomador.Endereco.Municipio = "SAO PAULO";
nota.Tomador.Endereco.Uf = "SP";
nota.Tomador.Endereco.Cep = "01310100";
nota.Tomador.DadosContato.Email = "financeiro@cliente.com.br";
// Serviço
nota.Servico.ItemListaServico = "01.07";
nota.Servico.Discriminacao = "Desenvolvimento e manutenção de software sob medida.";
nota.Servico.Valores.ValorServicos = 2500.00M;
nota.Servico.Valores.BaseCalculo = 2500.00M;
nota.Servico.Valores.Aliquota = 2.00M;
nota.Servico.Valores.ValorIss = 50.00M;
nota.Servico.Valores.ValorLiquidoNfse = 2450.00M;
// Envio do Lote de RPS
var retorno = openNFSe.Enviar(lote: 1, sincronico: false);
if (retorno.Sucesso)
{
Console.WriteLine($"Sucesso! Protocolo: {retorno.Protocolo}");
}
else
{
foreach (var alerta in retorno.Alertas)
Console.WriteLine($"Alerta: {alerta.Codigo} - {alerta.Descricao}");
foreach (var erro in retorno.Erros)
Console.WriteLine($"Erro: {erro.Codigo} - {erro.Descricao}");
}
3. Gerando e Imprimindo o DANFSe em PDF
Utilizando o pacote OpenAC.Net.NFSe.DANFSe.PDFSharp:
using OpenAC.Net.NFSe.DANFSe.PDFSharp.Extensions;
// 1. Exportar diretamente para arquivo PDF
openNFSe.ImprimirPDF(@"C:\NFSe\Danfse.pdf", opt =>
{
opt.CabecalhoLinha1 = "PREFEITURA MUNICIPAL DE SÃO PAULO";
opt.CabecalhoLinha2 = "SECRETARIA MUNICIPAL DA FAZENDA";
opt.ExibirQRCode = true;
opt.Homologacao = false;
});
// 2. Exportar para uma Stream (ex: download em API Web / ASP.NET Core)
using var ms = new MemoryStream();
openNFSe.ImprimirPDF(ms);
var bytes = ms.ToArray();
// 3. Obter os bytes do PDF diretamente
byte[] pdfBytes = openNFSe.GerarPDF();
// 4. Imprimir / Visualizar na tela
openNFSe.Imprimir(opt => opt.MostrarPreview = true);
Proteção e Criptografia do PDF com Senha:
openNFSe.ImprimirPDF(@"C:\NFSe\Danfse_Protegido.pdf", opt =>
{
opt.Seguranca.SenhaUsuario = "123456"; // Senha exigida para abrir o PDF
opt.Seguranca.SenhaProprietario = "adminMaster"; // Senha do proprietário
opt.Seguranca.PermitirImpressao = true;
opt.Seguranca.PermitirModificacao = false;
opt.Seguranca.PermitirCopiarConteudo = false;
});
4. Consultas
// Consulta de NFS-e por Número do RPS
var retornoRps = openNFSe.ConsultarNFSePorRps(numeroRps: 100, serieRps: "1", tipoRps: TipoRps.RPS);
// Consulta de Situação do Lote
var retornoSituacao = openNFSe.ConsultarSituacaoLoteRps(protocolo: "123456789", lote: 1);
// Consulta de Lote de RPS
var retornoLote = openNFSe.ConsultarLoteRps(protocolo: "123456789", lote: 1);
5. Cancelamento de NFS-e
var retornoCancelamento = openNFSe.CancelarNFSe(
codigoCancelamento: "1",
numeroNFSe: "202600000000100",
motivo: "Erro na discriminação dos serviços."
);
if (retornoCancelamento.Sucesso)
{
Console.WriteLine("NFS-e cancelada com sucesso!");
}
📁 Estrutura da Solução
OpenAC.Net.NFSe: Biblioteca principal contendo o core, provedores municipais, webservices, serializadores e modelos de dados.OpenAC.Net.NFSe.DANFSe.PDFSharp: Gerador e impressor do DANFSe em PDF via PDFsharp 6.x e QRCoder (100% MIT / Open Source).OpenAC.Net.NFSe.Demo: Aplicativo de demonstração Windows Forms completo com exemplos de preenchimento, testes de cidades e impressão.OpenAC.Net.NFSe.Test: Suíte de testes unitários e de integração com xUnit.
📚 Documentação e Guias
- 📖 Guia Completo do DANFSe PDFSharp: Arquitetura, opções de layout, marcas d'água, logos e criptografia.
- 🔄 Guia de Migração para PDFSharp: Como migrar do QuestPDF / FastReport para o PDFSharp sem complicações.
- 🏛️ Referência de Provedores e Cidades: Lista de provedores, cidades atendidas e resolução automática de municípios.
🤝 Como Contribuir
Contribuições são muito bem-vindas! Para contribuir:
- Faça um Fork do projeto.
- Crie uma Branch para a sua feature (
git checkout -b feature/novo-provedor). - Commit suas alterações (
git commit -m 'feat: adiciona suporte ao provedor XYZ'). - Push para a branch (
git push origin feature/novo-provedor). - Abra um Pull Request.
💖 Apoie o Projeto OpenAC .Net
Se o OpenAC.Net.NFSe é útil para você ou sua empresa e você deseja apoiar a continuidade e evolução da biblioteca:
- Participe da nossa comunidade no Discord.
- Deixe uma estrela ⭐ no GitHub.
- Compartilhe com outros desenvolvedores da comunidade .NET.
📄 Licença
Este projeto é distribuído sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 is compatible. net471 was computed. net472 was computed. net48 is compatible. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.2
- OpenAC.Net.Core (>= 1.6.0)
- OpenAC.Net.DFe.Core (>= 1.7.0.1)
- System.Net.Http (>= 4.3.4)
- System.Security.Cryptography.Xml (>= 10.0.11)
-
.NETFramework 4.7
- OpenAC.Net.Core (>= 1.6.0)
- OpenAC.Net.DFe.Core (>= 1.7.0.1)
- System.Net.Http (>= 4.3.4)
- System.Security.Cryptography.Xml (>= 10.0.11)
-
.NETFramework 4.8
- OpenAC.Net.Core (>= 1.6.0)
- OpenAC.Net.DFe.Core (>= 1.7.0.1)
- System.Net.Http (>= 4.3.4)
- System.Security.Cryptography.Xml (>= 10.0.11)
-
.NETStandard 2.0
- OpenAC.Net.Core (>= 1.6.0)
- OpenAC.Net.DFe.Core (>= 1.7.0.1)
- System.Net.Http (>= 4.3.4)
- System.Security.Cryptography.Xml (>= 10.0.11)
-
net6.0
- OpenAC.Net.Core (>= 1.6.0)
- OpenAC.Net.DFe.Core (>= 1.7.0.1)
- System.Drawing.Common (>= 10.0.11)
- System.Security.Cryptography.Xml (>= 10.0.11)
- System.ServiceModel.Http (>= 10.0.652802)
- System.ServiceModel.Primitives (>= 10.0.652802)
-
net7.0
- OpenAC.Net.Core (>= 1.6.0)
- OpenAC.Net.DFe.Core (>= 1.7.0.1)
- System.Drawing.Common (>= 10.0.11)
- System.Security.Cryptography.Xml (>= 10.0.11)
- System.ServiceModel.Http (>= 10.0.652802)
- System.ServiceModel.Primitives (>= 10.0.652802)
-
net8.0
- OpenAC.Net.Core (>= 1.6.0)
- OpenAC.Net.DFe.Core (>= 1.7.0.1)
- System.Drawing.Common (>= 10.0.11)
- System.Security.Cryptography.Xml (>= 10.0.11)
- System.ServiceModel.Http (>= 10.0.652802)
- System.ServiceModel.Primitives (>= 10.0.652802)
-
net9.0
- OpenAC.Net.Core (>= 1.6.0)
- OpenAC.Net.DFe.Core (>= 1.7.0.1)
- System.Drawing.Common (>= 10.0.11)
- System.Security.Cryptography.Xml (>= 10.0.11)
- System.ServiceModel.Http (>= 10.0.652802)
- System.ServiceModel.Primitives (>= 10.0.652802)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on OpenAC.Net.NFSe:
| Package | Downloads |
|---|---|
|
OpenAC.Net.NFSe.DANFSe.QuestPdf
Biblioteca de impressão de DANFSe usando o QuestPdf. |
|
|
OpenAC.Net.NFSe.DANFSe.FastReport.OpenSource
Biblioteca de impressão de DANFSe usando o FastReport OpenSource. |
|
|
OpenAC.Net.NFSe.DANFSe.PDFSharp
Biblioteca para geração e impressão de DANFSe (Documento Auxiliar da NFS-e) em PDF usando PDFsharp (100% Open Source / MIT). |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.8.0 | 0 | 8/21/2026 |
| 1.7.6 | 142 | 8/8/2026 |
| 1.7.5 | 954 | 6/16/2026 |
| 1.7.4 | 172 | 6/9/2026 |
| 1.7.3 | 464 | 5/18/2026 |
| 1.7.2 | 258 | 5/8/2026 |
| 1.7.1 | 2,790 | 2/7/2026 |
| 1.7.0 | 287 | 1/17/2026 |
| 1.6.4 | 822 | 12/15/2025 |
| 1.6.3 | 412 | 11/7/2025 |
| 1.6.2 | 13,735 | 6/14/2025 |
| 1.6.1 | 2,387 | 3/22/2025 |
| 1.6.0.1 | 14,635 | 9/24/2024 |
| 1.5.1 | 2,543 | 8/16/2024 |
| 1.5.0.2 | 1,009 | 3/13/2024 |
| 1.5.0.1 | 428 | 2/6/2024 |
| 1.5.0 | 4,876 | 2/12/2023 |
| 1.5.0-rc.2 | 379 | 4/27/2022 |
| 1.5.0-rc.1 | 291 | 4/26/2022 |
| 1.5.0-preview.3 | 287 | 4/5/2022 |