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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OpenAC.Net.NFSe.Nacional" Version="1.5.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OpenAC.Net.NFSe.Nacional" Version="1.5.0.3" />
                    
Directory.Packages.props
<PackageReference Include="OpenAC.Net.NFSe.Nacional" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add OpenAC.Net.NFSe.Nacional --version 1.5.0.3
                    
#r "nuget: OpenAC.Net.NFSe.Nacional, 1.5.0.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package OpenAC.Net.NFSe.Nacional@1.5.0.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=OpenAC.Net.NFSe.Nacional&version=1.5.0.3
                    
Install as a Cake Addin
#tool nuget:?package=OpenAC.Net.NFSe.Nacional&version=1.5.0.3
                    
Install as a Cake Tool

OpenAC.Net.NFSe.Nacional

NuGet Version NuGet Downloads Discord License: MIT Target Frameworks Target Frameworks

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.
  • Alta Performance:
    • Serialização e desserialização XML baseada em Source Generators (OpenAC.Net.DFe.Core).
  • 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:

  1. Faça um Fork do repositório.
  2. Crie uma Branch para a sua feature (git checkout -b feature/nova-funcionalidade).
  3. Faça o commit das suas alterações (git commit -m 'Adiciona suporte a novo provedor').
  4. Envie para o GitHub (git push origin feature/nova-funcionalidade).
  5. 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:

  • Participe da nossa comunidade no Discord.
  • Contribua com código, testes e documentação no GitHub.

📄 Licença

Este projeto é distribuído sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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