From 3cac74dbd5b4b4c94cbccd09a21497c44de82074 Mon Sep 17 00:00:00 2001
From: ewerton336 <65933715+ewerton336@users.noreply.github.com>
Date: Sun, 8 Nov 2026 12:34:38 -0300
Subject: [PATCH] fix: Adiciona eventos 610600 (CT-e Autorizado) e 610601 (CT-e
Cancelado) ao NFeTipoEvento
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
A consulta de protocolo (retConsSitNFe) de uma NF-e referenciada em CT-e
retorna o procEventoNFe com tpEvento 610600, gerado pelo Ambiente Nacional,
e a desserialização falhava com "Instance validation error: '610600' is not
a valid value for NFeTipoEvento". Códigos conforme NT 2013.008.
---
.../Servicos/Tipos/NFeServicosTipos.cs | 14 +++++
.../Consulta/RetConsSitNFeEventosCTeTestes.cs | 58 +++++++++++++++++++
2 files changed, 72 insertions(+)
create mode 100644 NFe.Utils.Testes/Consulta/RetConsSitNFeEventosCTeTestes.cs
diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs
index 57d55dbad..ecccb15c7 100644
--- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs
+++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs
@@ -550,6 +550,20 @@ public enum NFeTipoEvento
[XmlEnum("610131")]
CancelamentoComprovanteEntregaCTe = 610131,
+ ///
+ /// 610600 - CT-e Autorizado (registrado pelo Ambiente Nacional quando um CT-e que referencia a NF-e é autorizado)
+ ///
+ [Description("CT-e Autorizado")]
+ [XmlEnum("610600")]
+ TeNfeCTeAutorizado = 610600,
+
+ ///
+ /// 610601 - CT-e Cancelado (registrado pelo Ambiente Nacional quando o CT-e que referencia a NF-e é cancelado)
+ ///
+ [Description("CT-e Cancelado")]
+ [XmlEnum("610601")]
+ TeNfeCTeCancelado = 610601,
+
///
/// 790700 – Averbação para Exportação
///
diff --git a/NFe.Utils.Testes/Consulta/RetConsSitNFeEventosCTeTestes.cs b/NFe.Utils.Testes/Consulta/RetConsSitNFeEventosCTeTestes.cs
new file mode 100644
index 000000000..e2551e3d9
--- /dev/null
+++ b/NFe.Utils.Testes/Consulta/RetConsSitNFeEventosCTeTestes.cs
@@ -0,0 +1,58 @@
+using NFe.Classes.Servicos.Consulta;
+using NFe.Classes.Servicos.Tipos;
+using NFe.Utils.Consulta;
+using Xunit;
+
+namespace NFe.Utils.Testes.Consulta
+{
+ ///
+ /// Eventos registrados pelo Ambiente Nacional na NF-e quando um CT-e que a referencia é autorizado/cancelado
+ /// (NT 2013.008: 610600 - CT-e Autorizado e 610601 - CT-e Cancelado)
+ ///
+ public class RetConsSitNFeEventosCTeTestes
+ {
+ private const string ChaveNFe = "35240112345678000195550010000000011000000010";
+
+ internal static string MontarRetConsSitNFe(string tpEvento, string descEvento)
+ {
+ return
+ "" +
+ "1SP_NFE_PL009_V4100" +
+ "Autorizado o uso da NF-e35" + ChaveNFe + "" +
+ "" +
+ "" +
+ "91112345678000195" + ChaveNFe + "" +
+ "2024-01-10T10:00:00-03:00" + tpEvento + "" +
+ "11.00" +
+ "" + descEvento + "" +
+ "915AN_1.0.0" +
+ "" +
+ "" +
+ "1AN_1.0.091135" +
+ "Evento registrado e vinculado a NF-e" + ChaveNFe + "" +
+ "" + tpEvento + "" + descEvento + "1" +
+ "2024-01-10T10:00:01-03:00891240000000001" +
+ "" +
+ "" +
+ "";
+ }
+
+ [Theory]
+ [InlineData("610600", "CT-e Autorizado", NFeTipoEvento.TeNfeCTeAutorizado)]
+ [InlineData("610601", "CT-e Cancelado", NFeTipoEvento.TeNfeCTeCancelado)]
+ public void CarregarDeXmlString_ComEventoDeCTeVinculado_DeserializaTipoEvento(string tpEvento, string descEvento, NFeTipoEvento esperado)
+ {
+ // Arrange
+ var xml = MontarRetConsSitNFe(tpEvento, descEvento);
+
+ // Act
+ var retorno = new retConsSitNFe().CarregarDeXmlString(xml);
+
+ // Assert
+ var procEvento = Assert.Single(retorno.procEventoNFe);
+ Assert.Equal(esperado, procEvento.evento.infEvento.tpEvento);
+ Assert.Equal(esperado, procEvento.retEvento.infEvento.tpEvento);
+ Assert.Equal(descEvento, procEvento.retEvento.infEvento.xEvento);
+ }
+ }
+}