From 3d2dea19ad99fc896bb21f44d92362069e253af4 Mon Sep 17 00:00:00 2001 From: Roberto Alves Date: Thu, 29 Oct 2026 12:40:32 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20Adiciona=20endere=C3=A7o=20do=20evento?= =?UTF-8?q?=20eConf=20(110750/110751)=20da=20NFC-e=20de=20GO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pela NT 2024.002, o evento de Conciliação Financeira da NFC-e (modelo 65) vai para o webservice de eventos da própria UF, o mesmo do cancelamento. GO tem autorizador próprio e não tinha esse endereço mapeado: uma NFC-e de GO não encontrava URL para o evento. Com a IN 1608/2025-GSE, que exige vincular o pagamento eletrônico ao documento fiscal, os contribuintes de GO passam a precisar desse evento. - Enderecador: registra RecepcaoEventoConciliacaoFinanceiraNFe e RecepcaoEventoCancConciliacaoFinanceiraNFe para GO/NFC-e em homologação e produção (NFeRecepcaoEvento4). A linha fica no loop externo, como a do cancelamento de NFC-e, e não afeta a NF-e de GO, que continua na SVRS. - EnderecadorTestes: testes das URLs de GO/NFC-e nos dois ambientes e teste que garante que a NF-e de GO continua indo para a SVRS. --- NFe.Utils.Testes/EnderecadorTestes.cs | 20 ++++++++++++++++++++ NFe.Utils/Enderecos/Enderecador.cs | 2 ++ 2 files changed, 22 insertions(+) diff --git a/NFe.Utils.Testes/EnderecadorTestes.cs b/NFe.Utils.Testes/EnderecadorTestes.cs index b6377b46c..4c50240ae 100644 --- a/NFe.Utils.Testes/EnderecadorTestes.cs +++ b/NFe.Utils.Testes/EnderecadorTestes.cs @@ -58,6 +58,26 @@ public void DeveUrlSpEstarCorretaParaNFeAutorizacaoVersao4() TipoAmbiente.Producao, ModeloDocumento.NFe, TipoEmissao.teNormal); Assert.Equal("https://nfe.fazenda.sp.gov.br/ws/nfeautorizacao4.asmx", url); } + + [Theory(DisplayName = "NFCe -> GO -> Conciliação Financeira (ECONF) -> WS de eventos próprio da UF")] + [InlineData(ServicoNFe.RecepcaoEventoConciliacaoFinanceiraNFe, TipoAmbiente.Producao, "https://nfe.sefaz.go.gov.br/nfe/services/NFeRecepcaoEvento4?wsdl")] + [InlineData(ServicoNFe.RecepcaoEventoCancConciliacaoFinanceiraNFe, TipoAmbiente.Producao, "https://nfe.sefaz.go.gov.br/nfe/services/NFeRecepcaoEvento4?wsdl")] + [InlineData(ServicoNFe.RecepcaoEventoConciliacaoFinanceiraNFe, TipoAmbiente.Homologacao, "https://homolog.sefaz.go.gov.br/nfe/services/NFeRecepcaoEvento4?wsdl")] + [InlineData(ServicoNFe.RecepcaoEventoCancConciliacaoFinanceiraNFe, TipoAmbiente.Homologacao, "https://homolog.sefaz.go.gov.br/nfe/services/NFeRecepcaoEvento4?wsdl")] + public void DeveUrlGoEstarCorretaParaConciliacaoFinanceiraNFCe(ServicoNFe servico, TipoAmbiente tipoAmbiente, string urlEsperada) + { + var url = Enderecador.ObterUrlServico(servico, VersaoServico.Versao100, Estado.GO, + tipoAmbiente, ModeloDocumento.NFCe, TipoEmissao.teNormal); + Assert.Equal(urlEsperada, url); + } + + [Fact] + public void DeveConciliacaoFinanceiraNFeDeGoContinuarNaSvrs() + { + var url = Enderecador.ObterUrlServico(ServicoNFe.RecepcaoEventoConciliacaoFinanceiraNFe, VersaoServico.Versao100, Estado.GO, + TipoAmbiente.Producao, ModeloDocumento.NFe, TipoEmissao.teNormal); + Assert.Equal("https://nfe.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx", url); + } } public class EstadosData : TheoryData diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index 9f6bb5b91..f3bfed91a 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -446,6 +446,7 @@ private static List CarregarEnderecosServicos() if (emissao != TipoEmissao.teEPEC) addServico(eventoCceCanc, versao1, hom, emissao, Estado.GO, nfe, "https://homolog.sefaz.go.gov.br/nfe/services/v2/RecepcaoEvento?wsdl"); addServico(new[] { ServicoNFe.RecepcaoEventoCancelmento }, versao1, hom, emissao, Estado.GO, nfce, "https://homolog.sefaz.go.gov.br/nfe/services/v2/RecepcaoEvento?wsdl"); + addServico(new[] { ServicoNFe.RecepcaoEventoConciliacaoFinanceiraNFe, ServicoNFe.RecepcaoEventoCancConciliacaoFinanceiraNFe }, versao1, hom, emissao, Estado.GO, nfce, "https://homolog.sefaz.go.gov.br/nfe/services/NFeRecepcaoEvento4?wsdl"); foreach (var modelo in todosOsModelos) { @@ -478,6 +479,7 @@ private static List CarregarEnderecosServicos() if (emissao != TipoEmissao.teEPEC) addServico(eventoCceCanc, versao1, prod, emissao, Estado.GO, nfe, "https://nfe.sefaz.go.gov.br/nfe/services/v2/RecepcaoEvento?wsdl"); addServico(new[] { ServicoNFe.RecepcaoEventoCancelmento }, versao1, prod, emissao, Estado.GO, nfce, "https://nfe.sefaz.go.gov.br/nfe/services/v2/RecepcaoEvento?wsdl"); + addServico(new[] { ServicoNFe.RecepcaoEventoConciliacaoFinanceiraNFe, ServicoNFe.RecepcaoEventoCancConciliacaoFinanceiraNFe }, versao1, prod, emissao, Estado.GO, nfce, "https://nfe.sefaz.go.gov.br/nfe/services/NFeRecepcaoEvento4?wsdl"); foreach (var modelo in todosOsModelos) {