OpenAC.Net.NFSe.Nacional
1.5.0.3
Prefix Reserved
dotnet add package OpenAC.Net.NFSe.Nacional --version 1.5.0.3
NuGet\Install-Package OpenAC.Net.NFSe.Nacional -Version 1.5.0.3
<PackageReference Include="OpenAC.Net.NFSe.Nacional" Version="1.5.0.3" />
<PackageVersion Include="OpenAC.Net.NFSe.Nacional" Version="1.5.0.3" />
<PackageReference Include="OpenAC.Net.NFSe.Nacional" />
paket add OpenAC.Net.NFSe.Nacional --version 1.5.0.3
#r "nuget: OpenAC.Net.NFSe.Nacional, 1.5.0.3"
#:package OpenAC.Net.NFSe.Nacional@1.5.0.3
#addin nuget:?package=OpenAC.Net.NFSe.Nacional&version=1.5.0.3
#tool nuget:?package=OpenAC.Net.NFSe.Nacional&version=1.5.0.3
OpenAC.Net.NFSe.Nacional
Biblioteca .NET multiplataforma para geração, assinatura, validação, transmissão e consulta de NFS-e (Nota Fiscal de Serviço Eletrônica) Padrão Nacional.
Desenvolvida pelo time OpenAC .Net, a biblioteca adere às especificações oficiais do Sistema Nacional da NFS-e (Sefin / Receita Federal) e suporta múltiplos provedores e layouts.
🚀 Funcionalidades
- Emissão e Transmissão de DPS (Documento de Prestação de Serviços):
- Emissão Síncrona e Assíncrona.
- Envio e consulta de lote de DPS (quando suportado pelo provedor).
- Eventos da NFS-e:
- Cancelamento e Solicitação de Cancelamento.
- Cancelamento por Substituição.
- Confirmação pelo Prestador, Tomador e Intermediário.
- Rejeição pelo Prestador, Tomador e Intermediário.
- Bloqueio e Desbloqueio de Ofício.
- Consultas e Distribuição (ADN):
- Consulta de DF-e por NSU (Número Sequencial Único).
- Consulta de DF-e por Chave de Acesso.
- Consulta de Chave de Acesso por Id da DPS.
- Verificação de existência da DPS.
- Consulta de situação de lote de DPS.
- Download do DANFSe:
- Obtenção do DANFSe em formato PDF (via webservice).
- Assinatura e Validação Digital:
- Assinatura digital XML com suporte a certificados A1 e A3 (
DFeSignature). - Validação contra os schemas oficiais XSD.
- Assinatura digital XML com suporte a 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 aos novos layouts:
- Schemas v1.00 e v1.01.
- Suporte ao formato de CNPJ Alfanumérico.
- Campos da Reforma Tributária (IBS / CBS).
🏛️ Provedores Suportados
A biblioteca abstrai a comunicação com diferentes provedores e sistemas de integração da NFS-e Nacional:
- Nacional (Ambiente Nacional / API REST & ADN)
- Fiorilli
- ISSNet
- SimplISS
- Tiplan
📦 Instalação
Adicione o pacote via NuGet Package Manager ou CLI:
.NET CLI:
dotnet add package OpenAC.Net.NFSe.Nacional
Package Manager Console:
Install-Package OpenAC.Net.NFSe.Nacional
PackageReference:
<PackageReference Include="OpenAC.Net.NFSe.Nacional" Version="1.4.8" />
🛠️ Como Usar
1. Inicializando e Configurando o Componente
using System.Security.Cryptography.X509Certificates;
using OpenAC.Net.DFe.Core.Common;
using OpenAC.Net.NFSe.Nacional;
using OpenAC.Net.NFSe.Nacional.Common.Types;
var nfse = new OpenNFSeNacional();
// Configurações Gerais
nfse.Configuracoes.Geral.Ambiente = DFeTipoAmbiente.Homologacao;
nfse.Configuracoes.Geral.VersaoDps = VersaoNFSe.Ve101; // ou Ve100
nfse.Configuracoes.Geral.RetirarAcentos = true;
nfse.Configuracoes.Geral.Salvar = true;
nfse.Configuracoes.Geral.CodigoMunicipio = 3550308; // Código IBGE do município
// Configurações de Arquivos/Diretórios
nfse.Configuracoes.Arquivos.PathSalvar = @"C:\NFSe\Salvar";
nfse.Configuracoes.Arquivos.PathSchemas = @"C:\NFSe\Schemas";
// Configurações do Certificado Digital (exemplo com arquivo PFX)
nfse.Configuracoes.Certificados.Certificado = @"C:\Certificados\certificado.pfx";
nfse.Configuracoes.Certificados.Senha = "123456";
2. Criando e Emitindo uma DPS
using OpenAC.Net.NFSe.Nacional.Common.Model;
using OpenAC.Net.NFSe.Nacional.Common.Types;
var dps = new Dps
{
Versao = VersaoNFSe.Ve101,
Informacoes = new InfDps
{
TipoAmbiente = DFeTipoAmbiente.Homologacao,
DhEmissao = DateTime.Now,
LocalidadeEmitente = "3550308",
Serie = "1",
NumeroDps = "100",
Competencia = DateTime.Today,
TipoEmitente = EmitenteDps.Prestador,
Prestador = new PrestadorDps
{
CNPJ = "12345678000195",
Email = "prestador@empresa.com",
Regime = new RegimeTributario
{
OptanteSimplesNacional = OptanteSimplesNacional.NaoOptante,
RegimeEspecial = RegimeEspecial.Nenhum
}
},
Tomador = new InfoPessoaNFSe
{
CNPJ = "98765432000100",
Nome = "Cliente Tomador de Servicos Ltda",
Endereco = new EnderecoNFSe
{
Logradouro = "Avenida Brasil",
Numero = "1500",
Bairro = "Centro",
Municipio = new MunicipioNacional
{
CodMunicipio = "3550308",
CEP = "01001000"
}
}
},
Servico = new ServicoNFSe
{
Localidade = new LocalidadeNFSe
{
CodMunicipioPrestacao = "3550308"
},
Informacoes = new InformacoesServico
{
CodTributacaoNacional = "010101",
CodTributacaoMunicipio = "001",
Descricao = "Prestação de serviços de desenvolvimento de software."
}
},
Valores = new ValoresDps
{
ValoresServico = new ValoresServico
{
Valor = 1500.00m
},
Tributos = new TributosNFSe
{
Municipal = new TributoMunicipal
{
ISSQN = TributoISSQN.OperacaoTributavel,
TipoRetencaoISSQN = TipoRetencaoISSQN.NaoRetido
}
}
}
}
};
// Assinar e Enviar
dps.Assinar(nfse.Configuracoes);
var retorno = await nfse.EnviarAsync(dps);
if (retorno.Sucesso)
{
Console.WriteLine($"NFS-e emitida com sucesso! Chave: {retorno.Resultado?.ChaveAcesso}");
}
else
{
Console.WriteLine($"Erro ao emitir NFS-e: {retorno.Erros}");
}
3. Consultas e Download do DANFSe
// Consulta de DF-e pela chave de acesso
var respostaConsulta = await nfse.ConsultaChaveAsync("35230912345678000195560010000000010012345678");
// Download do DANFSe em PDF
byte[] pdfBytes = await nfse.DownloadDANFSeAsync("35230912345678000195560010000000010012345678");
await File.WriteAllBytesAsync(@"C:\NFSe\Danfse.pdf", pdfBytes);
// Consulta por NSU
var respostaNsu = await nfse.ConsultaNsuAsync(1234);
4. Cancelamento de NFS-e (Registro de Evento)
var evento = new PedidoRegistroEvento
{
Versao = VersaoNFSe.Ve100,
Informacoes = new InfPedReg
{
TipoAmbiente = DFeTipoAmbiente.Homologacao,
DhEvento = DateTime.Now,
ChaveAcesso = "35230912345678000195560010000000010012345678",
Autor = new AutorEvento { CNPJ = "12345678000195" },
Evento = new EventoCancelamento
{
CodigoMotivo = MotivoCancelamento.ErroEmissao,
DescricaoMotivo = "Erro na descrição do serviço."
}
}
};
evento.Assinar(nfse.Configuracoes);
var retornoEvento = await nfse.EnviarEventoAsync(evento);
⚙️ Gerenciador de Municípios
A biblioteca conta com uma base interna de municípios integrados (Municipios.nfse), gerenciada pela classe NFSeServiceManager. É possível consultar ou registrar novos provedores e URLs em tempo de execução:
var manager = NFSeServiceManager.Instance;
var provedor = manager.GetProvider(nfse.Configuracoes);
🤝 Como Contribuir
Contribuições são muito bem-vindas! Se você deseja relatar um problema, sugerir melhorias ou enviar uma contribuição:
- Faça um Fork do repositório.
- Crie uma Branch para a sua feature (
git checkout -b feature/nova-funcionalidade). - Faça o commit das suas alterações (
git commit -m 'Adiciona suporte a novo provedor'). - Envie para o GitHub (
git push origin feature/nova-funcionalidade). - Abra um Pull Request.
💖 Ajude o Projeto OpenAC .Net
Se o OpenAC.Net.NFSe.Nacional é útil para o seu negócio ou projeto open source e você deseja apoiar o desenvolvimento contínuo, considere fazer uma contribuição:
📄 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 was computed. 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 was computed. 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 is compatible. 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 was computed. 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.3)
- System.Net.Http (>= 4.3.4)
- System.Net.Http.Json (>= 10.0.11)
- System.ServiceModel.Http (>= 10.0.652802)
- System.ServiceModel.Primitives (>= 10.0.652802)
-
.NETFramework 4.8
- OpenAC.Net.Core (>= 1.6.0)
- OpenAC.Net.DFe.Core (>= 1.7.0.3)
- System.Net.Http (>= 4.3.4)
- System.Net.Http.Json (>= 10.0.11)
- System.ServiceModel.Http (>= 10.0.652802)
- System.ServiceModel.Primitives (>= 10.0.652802)
-
.NETStandard 2.0
- OpenAC.Net.Core (>= 1.6.0)
- OpenAC.Net.DFe.Core (>= 1.7.0.3)
- System.Net.Http.Json (>= 10.0.11)
- System.ServiceModel.Http (>= 10.0.652802)
- System.ServiceModel.Primitives (>= 10.0.652802)
-
net10.0
- OpenAC.Net.Core (>= 1.6.0)
- OpenAC.Net.DFe.Core (>= 1.7.0.3)
-
net8.0
- OpenAC.Net.Core (>= 1.6.0)
- OpenAC.Net.DFe.Core (>= 1.7.0.3)
- System.Net.Http.Json (>= 10.0.11)
-
net9.0
- OpenAC.Net.Core (>= 1.6.0)
- OpenAC.Net.DFe.Core (>= 1.7.0.3)
- System.Net.Http.Json (>= 10.0.11)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on OpenAC.Net.NFSe.Nacional:
| Package | Downloads |
|---|---|
|
OpenAC.Net.NFSe.Nacional.DANFSe.PDFSharp
Biblioteca para geração e impressão de DANFSe (Documento Auxiliar da NFS-e Nacional) em PDF usando PDFsharp (100% Open Source / MIT). |
|
|
OpenAC.Net.NFSe.Nacional.Web
Integração da OpenAC.Net.NFSe.Nacional com DI, logging e serviços do ASP.NET Core. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.5.0.3 | 2,856 | 9/11/2026 |
| 1.5.0.2 | 510 | 9/2/2026 |
| 1.5.0.1 | 180 | 8/31/2026 |
| 1.5.0 | 497 | 8/21/2026 |
| 1.4.8 | 966 | 8/8/2026 |
| 1.4.7 | 273 | 7/28/2026 |
| 1.4.6 | 2,423 | 6/17/2026 |
| 1.4.5 | 960 | 4/9/2026 |
| 1.4.4 | 1,294 | 2/24/2026 |
| 1.4.3 | 2,228 | 1/22/2026 |
| 1.4.2 | 310 | 1/13/2026 |
| 1.4.0 | 793 | 1/2/2026 |
| 1.3.3 | 186 | 12/31/2025 |
| 1.3.2 | 190 | 12/27/2025 |
| 1.3.1 | 658 | 12/15/2025 |
| 1.3.0 | 630 | 12/10/2025 |
| 1.2.0 | 257 | 12/5/2025 |
| 1.1.0 | 445 | 11/21/2025 |
| 1.0.0 | 9,571 | 6/22/2025 |