diff --git a/nfelib/nfcom/__init__.py b/nfelib/nfcom/__init__.py
new file mode 100644
index 0000000..0883de7
--- /dev/null
+++ b/nfelib/nfcom/__init__.py
@@ -0,0 +1,6 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+# nothing here
diff --git a/nfelib/nfcom/bindings/__init__.py b/nfelib/nfcom/bindings/__init__.py
new file mode 100644
index 0000000..0883de7
--- /dev/null
+++ b/nfelib/nfcom/bindings/__init__.py
@@ -0,0 +1,6 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+# nothing here
diff --git a/nfelib/nfcom/bindings/v1_0/__init__.py b/nfelib/nfcom/bindings/v1_0/__init__.py
new file mode 100644
index 0000000..09643d5
--- /dev/null
+++ b/nfelib/nfcom/bindings/v1_0/__init__.py
@@ -0,0 +1,174 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+from nfelib.nfcom.bindings.v1_0.cons_sit_nfcom_tipos_basico_v1_00 import (
+ ProcEventoNfcomVersao,
+ ProtNfcomVersao,
+ TconsSitNfcom,
+ TretConsSitNfcom,
+)
+from nfelib.nfcom.bindings.v1_0.cons_sit_nfcom_v1_00 import ConsSitNfcom
+from nfelib.nfcom.bindings.v1_0.cons_stat_serv_nfcom_tipos_basico_v1_00 import (
+ TconsStatServ,
+ TretConsStatServ,
+)
+from nfelib.nfcom.bindings.v1_0.cons_stat_serv_nfcom_v1_00 import (
+ ConsStatServNfcom,
+)
+from nfelib.nfcom.bindings.v1_0.ev_canc_nfcom_v1_00 import (
+ EvCancNfcom,
+ EvCancNfcomDescEvento,
+)
+from nfelib.nfcom.bindings.v1_0.evento_nfcom_tipos_basico_v1_00 import (
+ Tevento,
+ TprocEvento,
+ TretEvento,
+)
+from nfelib.nfcom.bindings.v1_0.evento_nfcom_v1_00 import EventoNfcom
+from nfelib.nfcom.bindings.v1_0.nfcom_tipos_basico_v1_00 import (
+ CofinsCst,
+ GProcRefIndDevolucao,
+ Icms00Cst,
+ Icms20Cst,
+ Icms40Cst,
+ Icms51Cst,
+ Icms90Cst,
+ IcmssnCst,
+ IcmssnIndSn,
+ IdeIndCessaoMeiosRede,
+ IdeIndNotaEntrada,
+ IdeIndPrePago,
+ ImpostoIndSemCst,
+ PisCst,
+ ProdIndDevolucao,
+ Tassinante,
+ Tcrt,
+ TempresaSoft,
+ TendeDest,
+ TendeEmi,
+ Tendereco,
+ TenviNfcom,
+ TfatNfcom,
+ TfinNfcom,
+ Timp,
+ TindIedest,
+ TmodNfpapel,
+ TmotSub,
+ Tnfcom,
+ Tprocesso,
+ TprotNfcom,
+ TrespTec,
+ Tressarcimento,
+ TretEnviNfcom,
+ TretNfcom,
+ TtpEmis,
+ TumedItem,
+ Tutilizacao,
+)
+from nfelib.nfcom.bindings.v1_0.nfcom_v1_00 import Nfcom
+from nfelib.nfcom.bindings.v1_0.proc_evento_nfcom_v1_00 import ProcEventoNfcom
+from nfelib.nfcom.bindings.v1_0.proc_nfcom_v1_00 import NfcomProc
+from nfelib.nfcom.bindings.v1_0.ret_cons_sit_nfcom_v1_00 import RetConsSitNfcom
+from nfelib.nfcom.bindings.v1_0.ret_cons_stat_serv_nfcom_v1_00 import (
+ RetConsStatServNfcom,
+)
+from nfelib.nfcom.bindings.v1_0.ret_evento_nfcom_v1_00 import RetEventoNfcom
+from nfelib.nfcom.bindings.v1_0.ret_nfcom_v1_00 import RetNfcom
+from nfelib.nfcom.bindings.v1_0.tipos_geral_nfcom_v1_00 import (
+ Tamb,
+ TcodUfIbge,
+ TcorgaoIbge,
+ TmodNfcom,
+ Tuf,
+)
+from nfelib.nfcom.bindings.v1_0.xmldsig_core_schema_v1_01 import (
+ KeyInfoType,
+ ReferenceType,
+ Signature,
+ SignatureType,
+ SignatureValueType,
+ SignedInfoType,
+ TransformsType,
+ TransformType,
+ TtransformUri,
+ X509DataType,
+)
+
+__all__ = [
+ "TconsSitNfcom",
+ "TretConsSitNfcom",
+ "ProcEventoNfcomVersao",
+ "ProtNfcomVersao",
+ "ConsSitNfcom",
+ "TconsStatServ",
+ "TretConsStatServ",
+ "ConsStatServNfcom",
+ "EvCancNfcom",
+ "EvCancNfcomDescEvento",
+ "Tevento",
+ "TprocEvento",
+ "TretEvento",
+ "EventoNfcom",
+ "CofinsCst",
+ "Icms00Cst",
+ "Icms20Cst",
+ "Icms40Cst",
+ "Icms51Cst",
+ "Icms90Cst",
+ "IcmssnCst",
+ "IcmssnIndSn",
+ "PisCst",
+ "Tassinante",
+ "Tcrt",
+ "TempresaSoft",
+ "TendeDest",
+ "TendeEmi",
+ "Tendereco",
+ "TenviNfcom",
+ "TfatNfcom",
+ "TfinNfcom",
+ "Timp",
+ "TindIedest",
+ "TmodNfpapel",
+ "TmotSub",
+ "Tnfcom",
+ "Tprocesso",
+ "TprotNfcom",
+ "TrespTec",
+ "Tressarcimento",
+ "TretEnviNfcom",
+ "TretNfcom",
+ "TumedItem",
+ "Tutilizacao",
+ "TtpEmis",
+ "GProcRefIndDevolucao",
+ "IdeIndCessaoMeiosRede",
+ "IdeIndNotaEntrada",
+ "IdeIndPrePago",
+ "ImpostoIndSemCst",
+ "ProdIndDevolucao",
+ "Nfcom",
+ "ProcEventoNfcom",
+ "NfcomProc",
+ "RetConsSitNfcom",
+ "RetConsStatServNfcom",
+ "RetEventoNfcom",
+ "RetNfcom",
+ "Tamb",
+ "TcorgaoIbge",
+ "TcodUfIbge",
+ "TmodNfcom",
+ "Tuf",
+ "KeyInfoType",
+ "ReferenceType",
+ "Signature",
+ "SignatureType",
+ "SignatureValueType",
+ "SignedInfoType",
+ "TtransformUri",
+ "TransformType",
+ "TransformsType",
+ "X509DataType",
+]
diff --git a/nfelib/nfcom/bindings/v1_0/cons_sit_nfcom_tipos_basico_v1_00.py b/nfelib/nfcom/bindings/v1_0/cons_sit_nfcom_tipos_basico_v1_00.py
new file mode 100644
index 0000000..71835f7
--- /dev/null
+++ b/nfelib/nfcom/bindings/v1_0/cons_sit_nfcom_tipos_basico_v1_00.py
@@ -0,0 +1,221 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+from dataclasses import dataclass, field
+from enum import Enum
+from typing import List, Optional
+
+from nfelib import CommonMixin
+from nfelib.nfcom.bindings.v1_0.tipos_geral_nfcom_v1_00 import (
+ Tamb,
+ TcodUfIbge,
+)
+
+__NAMESPACE__ = "http://www.portalfiscal.inf.br/nfcom"
+
+
+class ProcEventoNfcomVersao(Enum):
+ VALUE_1_00 = "1.00"
+
+
+class ProtNfcomVersao(Enum):
+ VALUE_1_00 = "1.00"
+
+
+@dataclass
+class TconsSitNfcom(CommonMixin):
+ """
+ Tipo Pedido de Consulta da Situação Atual da NFCom.
+
+ :ivar tpAmb: Identificação do Ambiente: 1 - Produção; 2 -
+ Homologação;
+ :ivar xServ: Serviço Solicitado
+ :ivar chNFCom: Chaves de acesso do NFCom
+ :ivar versao:
+ """
+
+ class Meta:
+ name = "TConsSitNFCom"
+
+ tpAmb: Optional[Tamb] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ xServ: str = field(
+ init=False,
+ default="CONSULTAR",
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ chNFCom: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "max_length": 44,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{44}",
+ },
+ )
+ versao: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "pattern": r"1\.00",
+ },
+ )
+
+
+@dataclass
+class TretConsSitNfcom(CommonMixin):
+ """
+ Tipo Retorno de Pedido de Consulta da Situação Atual de NFCom.
+
+ :ivar tpAmb: Identificação do Ambiente: 1 - Produção 2 - Homologação
+ :ivar verAplic: Versão do Aplicativo que processou o NFCom
+ :ivar cStat: Código do status da mensagem enviada.
+ :ivar xMotivo: Descrição literal do status do serviço solicitado.
+ :ivar cUF: código da UF de atendimento
+ :ivar protNFCom:
+ :ivar procEventoNFCom:
+ :ivar versao:
+ """
+
+ class Meta:
+ name = "TRetConsSitNFCom"
+
+ tpAmb: Optional[Tamb] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ verAplic: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 20,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ cStat: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{3}",
+ },
+ )
+ xMotivo: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 255,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ cUF: Optional[TcodUfIbge] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ protNFCom: Optional["TretConsSitNfcom.ProtNfcom"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ procEventoNFCom: List["TretConsSitNfcom.ProcEventoNfcom"] = field(
+ default_factory=list,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ versao: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "pattern": r"1\.00",
+ },
+ )
+
+ @dataclass
+ class ProtNfcom(CommonMixin):
+ """
+ :ivar any_element: Retornar protNFCom da versão correspondente
+ da NFCom autorizada
+ :ivar versao:
+ """
+
+ any_element: Optional[object] = field(
+ default=None,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##any",
+ "process_contents": "skip",
+ },
+ )
+ versao: Optional[ProtNfcomVersao] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "white_space": "preserve",
+ },
+ )
+
+ @dataclass
+ class ProcEventoNfcom(CommonMixin):
+ """
+ :ivar any_element: Retornar procEventoNFCom da versão
+ correspondente do evento NFCom autorizado
+ :ivar versao:
+ """
+
+ any_element: Optional[object] = field(
+ default=None,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##any",
+ "process_contents": "skip",
+ },
+ )
+ versao: Optional[ProcEventoNfcomVersao] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "white_space": "preserve",
+ },
+ )
diff --git a/nfelib/nfcom/bindings/v1_0/cons_sit_nfcom_v1_00.py b/nfelib/nfcom/bindings/v1_0/cons_sit_nfcom_v1_00.py
new file mode 100644
index 0000000..240ce35
--- /dev/null
+++ b/nfelib/nfcom/bindings/v1_0/cons_sit_nfcom_v1_00.py
@@ -0,0 +1,23 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+from dataclasses import dataclass
+
+from nfelib.nfcom.bindings.v1_0.cons_sit_nfcom_tipos_basico_v1_00 import (
+ TconsSitNfcom,
+)
+
+__NAMESPACE__ = "http://www.portalfiscal.inf.br/nfcom"
+
+
+@dataclass
+class ConsSitNfcom(TconsSitNfcom):
+ """
+ Schema de validação XML dp Pedido de Consulta da Situação Atual da NFCom.
+ """
+
+ class Meta:
+ name = "consSitNFCom"
+ namespace = "http://www.portalfiscal.inf.br/nfcom"
diff --git a/nfelib/nfcom/bindings/v1_0/cons_stat_serv_nfcom_tipos_basico_v1_00.py b/nfelib/nfcom/bindings/v1_0/cons_stat_serv_nfcom_tipos_basico_v1_00.py
new file mode 100644
index 0000000..57aafd0
--- /dev/null
+++ b/nfelib/nfcom/bindings/v1_0/cons_stat_serv_nfcom_tipos_basico_v1_00.py
@@ -0,0 +1,177 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+from dataclasses import dataclass, field
+from typing import Optional
+
+from nfelib import CommonMixin
+from nfelib.nfcom.bindings.v1_0.tipos_geral_nfcom_v1_00 import (
+ Tamb,
+ TcodUfIbge,
+)
+
+__NAMESPACE__ = "http://www.portalfiscal.inf.br/nfcom"
+
+
+@dataclass
+class TconsStatServ(CommonMixin):
+ """
+ Tipo Pedido de Consulta do Status do Serviço NFCom.
+
+ :ivar tpAmb: Identificação do Ambiente: 1 - Produção 2 - Homologação
+ :ivar xServ: Serviço Solicitado
+ :ivar versao:
+ """
+
+ class Meta:
+ name = "TConsStatServ"
+
+ tpAmb: Optional[Tamb] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ xServ: str = field(
+ init=False,
+ default="STATUS",
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ versao: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "pattern": r"1\.00",
+ },
+ )
+
+
+@dataclass
+class TretConsStatServ(CommonMixin):
+ """
+ Tipo Resultado da Consulta do Status do Serviço NFCom.
+
+ :ivar tpAmb: Identificação do Ambiente: 1 - Produção 2 - Homologação
+ :ivar verAplic: Versão do Aplicativo que processou a NFCom
+ :ivar cStat: Código do status da mensagem enviada.
+ :ivar xMotivo: Descrição literal do status do serviço solicitado.
+ :ivar cUF: Código da UF responsável pelo serviço
+ :ivar dhRecbto: AAAA-MM-DDTHH:MM:SS TZD
+ :ivar tMed: Tempo médio de resposta do serviço (em segundos) dos
+ últimos 5 minutos
+ :ivar dhRetorno: AAAA-MM-DDTHH:MM:SS TZD. Deve ser preenchida com
+ data e hora previstas para o retorno dos serviços prestados.
+ :ivar xObs: Campo observação utilizado para incluir informações ao
+ contribuinte
+ :ivar versao:
+ """
+
+ class Meta:
+ name = "TRetConsStatServ"
+
+ tpAmb: Optional[Tamb] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ verAplic: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 20,
+ "white_space": "collapse",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ cStat: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{3}",
+ },
+ )
+ xMotivo: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 255,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ cUF: Optional[TcodUfIbge] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ dhRecbto: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))T(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d([\-,\+](0[0-9]|10|11):00|([\+](12):00))",
+ },
+ )
+ tMed: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "pattern": r"[0-9]{1,4}",
+ },
+ )
+ dhRetorno: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))T(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d([\-,\+](0[0-9]|10|11):00|([\+](12):00))",
+ },
+ )
+ xObs: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 1,
+ "max_length": 255,
+ "white_space": "collapse",
+ },
+ )
+ versao: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "pattern": r"1\.00",
+ },
+ )
diff --git a/nfelib/nfcom/bindings/v1_0/cons_stat_serv_nfcom_v1_00.py b/nfelib/nfcom/bindings/v1_0/cons_stat_serv_nfcom_v1_00.py
new file mode 100644
index 0000000..69fa3c6
--- /dev/null
+++ b/nfelib/nfcom/bindings/v1_0/cons_stat_serv_nfcom_v1_00.py
@@ -0,0 +1,23 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+from dataclasses import dataclass
+
+from nfelib.nfcom.bindings.v1_0.cons_stat_serv_nfcom_tipos_basico_v1_00 import (
+ TconsStatServ,
+)
+
+__NAMESPACE__ = "http://www.portalfiscal.inf.br/nfcom"
+
+
+@dataclass
+class ConsStatServNfcom(TconsStatServ):
+ """
+ Schema XML de validação do Pedido de Consulta do Status do Serviço NFCom.
+ """
+
+ class Meta:
+ name = "consStatServNFCom"
+ namespace = "http://www.portalfiscal.inf.br/nfcom"
diff --git a/nfelib/nfcom/bindings/v1_0/ev_canc_nfcom_v1_00.py b/nfelib/nfcom/bindings/v1_0/ev_canc_nfcom_v1_00.py
new file mode 100644
index 0000000..694f1cb
--- /dev/null
+++ b/nfelib/nfcom/bindings/v1_0/ev_canc_nfcom_v1_00.py
@@ -0,0 +1,60 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+from dataclasses import dataclass, field
+from enum import Enum
+from typing import Optional
+
+from nfelib import CommonMixin
+
+__NAMESPACE__ = "http://www.portalfiscal.inf.br/nfcom"
+
+
+class EvCancNfcomDescEvento(Enum):
+ CANCELAMENTO = "Cancelamento"
+
+
+@dataclass
+class EvCancNfcom(CommonMixin):
+ """
+ Schema XML de validação do evento do cancelamento 110111.
+
+ :ivar descEvento: Descrição do Evento - “Cancelamento”
+ :ivar nProt: Número do Protocolo de Status da NFCom
+ :ivar xJust: Justificativa do Cancelamento
+ """
+
+ class Meta:
+ name = "evCancNFCom"
+ namespace = "http://www.portalfiscal.inf.br/nfcom"
+
+ descEvento: Optional[EvCancNfcomDescEvento] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "required": True,
+ "white_space": "preserve",
+ },
+ )
+ nProt: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{16}",
+ },
+ )
+ xJust: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "required": True,
+ "min_length": 15,
+ "max_length": 255,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
diff --git a/nfelib/nfcom/bindings/v1_0/evento_nfcom_tipos_basico_v1_00.py b/nfelib/nfcom/bindings/v1_0/evento_nfcom_tipos_basico_v1_00.py
new file mode 100644
index 0000000..ce01fcb
--- /dev/null
+++ b/nfelib/nfcom/bindings/v1_0/evento_nfcom_tipos_basico_v1_00.py
@@ -0,0 +1,425 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+from dataclasses import dataclass, field
+from typing import Optional
+
+from nfelib import CommonMixin
+from nfelib.nfcom.bindings.v1_0.tipos_geral_nfcom_v1_00 import (
+ Tamb,
+ TcorgaoIbge,
+)
+from nfelib.nfcom.bindings.v1_0.xmldsig_core_schema_v1_01 import Signature
+
+__NAMESPACE__ = "http://www.portalfiscal.inf.br/nfcom"
+
+
+@dataclass
+class Tevento(CommonMixin):
+ """
+ Tipo Evento.
+ """
+
+ class Meta:
+ name = "TEvento"
+
+ infEvento: Optional["Tevento.InfEvento"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ signature: Optional[Signature] = field(
+ default=None,
+ metadata={
+ "name": "Signature",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ versao: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"1\.00",
+ },
+ )
+
+ @dataclass
+ class InfEvento(CommonMixin):
+ """
+ :ivar cOrgao: Código do órgão de recepção do Evento.
+ :ivar tpAmb: Identificação do Ambiente: 1 - Produção 2 -
+ Homologação
+ :ivar CNPJ: CNPJ do emissor do evento
+ :ivar chNFCom: Chave de Acesso da NFCom vinculada ao evento
+ :ivar dhEvento: Data e Hora do Evento, formato UTC (AAAA-MM-
+ DDThh:mm:ssTZD)
+ :ivar tpEvento: Tipo do Evento
+ :ivar nSeqEvento: Seqüencial do evento para o mesmo tipo de
+ evento. Para maioria dos eventos será 1, nos casos em que
+ possa existir mais de um evento o autor do evento deve
+ numerar de forma seqüencial.
+ :ivar detEvento: Detalhamento do evento específico
+ :ivar Id: Identificador da TAG a ser assinada, a regra de
+ formação do Id é: “ID” + tpEvento + chave da NF-3e +
+ nSeqEvento (preencher com zeros a esquerda para compor 3
+ digitos)
+ """
+
+ cOrgao: Optional[TcorgaoIbge] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ tpAmb: Optional[Tamb] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ CNPJ: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{14}",
+ },
+ )
+ chNFCom: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "max_length": 44,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{44}",
+ },
+ )
+ dhEvento: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))T(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d([\-,\+](0[0-9]|10|11):00|([\+](12):00))",
+ },
+ )
+ tpEvento: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{6}",
+ },
+ )
+ nSeqEvento: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,3}",
+ },
+ )
+ detEvento: Optional["Tevento.InfEvento.DetEvento"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ Id: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "pattern": r"ID[0-9]{53}",
+ },
+ )
+
+ @dataclass
+ class DetEvento(CommonMixin):
+ """
+ :ivar any_element: XML do evento Insira neste local o XML
+ específico do tipo de evento (cancelamento,
+ encerramento, registro de passagem).
+ :ivar versaoEvento:
+ """
+
+ any_element: Optional[object] = field(
+ default=None,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##any",
+ "process_contents": "skip",
+ },
+ )
+ versaoEvento: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"1\.(0[0-9]|[1-9][0-9])",
+ },
+ )
+
+
+@dataclass
+class TretEvento(CommonMixin):
+ """
+ Tipo retorno do Evento.
+ """
+
+ class Meta:
+ name = "TRetEvento"
+
+ infEvento: Optional["TretEvento.InfEvento"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ signature: Optional[Signature] = field(
+ default=None,
+ metadata={
+ "name": "Signature",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ )
+ versao: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"1\.00",
+ },
+ )
+
+ @dataclass
+ class InfEvento(CommonMixin):
+ """
+ :ivar tpAmb: Identificação do Ambiente: 1 - Produção 2 -
+ Homologação
+ :ivar verAplic: Versão do Aplicativo que recebeu o Evento
+ :ivar cOrgao: Código do órgão de recepção do Evento. Utilizar a
+ Tabela do IBGE extendida, utilizar 90 para identificar
+ SUFRAMA
+ :ivar cStat: Código do status da registro do Evento
+ :ivar xMotivo: Descrição literal do status do registro do Evento
+ :ivar chNFCom: Chave de Acesso NFCom vinculada
+ :ivar tpEvento: Tipo do Evento vinculado
+ :ivar xEvento: Descrição do Evento
+ :ivar nSeqEvento: Seqüencial do evento
+ :ivar dhRegEvento: Data e Hora de do recebimento do evento ou do
+ registro do evento formato AAAA-MM-DDThh:mm:ssTZD
+ :ivar nProt: Número do protocolo de registro do evento
+ :ivar Id:
+ """
+
+ tpAmb: Optional[Tamb] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ verAplic: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 20,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ cOrgao: Optional[TcorgaoIbge] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ cStat: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{3}",
+ },
+ )
+ xMotivo: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 255,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ chNFCom: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "max_length": 44,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{44}",
+ },
+ )
+ tpEvento: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{6}",
+ },
+ )
+ xEvento: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 4,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ nSeqEvento: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,3}",
+ },
+ )
+ dhRegEvento: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))T(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d([\-,\+](0[0-9]|10|11):00|([\+](12):00))",
+ },
+ )
+ nProt: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{16}",
+ },
+ )
+ Id: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "pattern": r"ID[0-9]{16}",
+ },
+ )
+
+
+@dataclass
+class TprocEvento(CommonMixin):
+ """
+ Tipo procEvento.
+
+ :ivar eventoNFCom:
+ :ivar retEventoNFCom:
+ :ivar versao:
+ :ivar ipTransmissor: IP do transmissor do documento fiscal para o
+ ambiente autorizador
+ :ivar nPortaCon: Porta de origem utilizada na conexão (De 0 a 65535)
+ :ivar dhConexao: Data e Hora da Conexão de Origem
+ """
+
+ class Meta:
+ name = "TProcEvento"
+
+ eventoNFCom: Optional[Tevento] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ retEventoNFCom: Optional[TretEvento] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ versao: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"1\.00",
+ },
+ )
+ ipTransmissor: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "white_space": "preserve",
+ "pattern": r"(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])",
+ },
+ )
+ nPortaCon: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "pattern": r"[0-9]{1,5}",
+ },
+ )
+ dhConexao: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "white_space": "preserve",
+ "pattern": r"(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))T(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d([\-,\+](0[0-9]|10|11):00|([\+](12):00))",
+ },
+ )
diff --git a/nfelib/nfcom/bindings/v1_0/evento_nfcom_v1_00.py b/nfelib/nfcom/bindings/v1_0/evento_nfcom_v1_00.py
new file mode 100644
index 0000000..207b988
--- /dev/null
+++ b/nfelib/nfcom/bindings/v1_0/evento_nfcom_v1_00.py
@@ -0,0 +1,21 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+from dataclasses import dataclass
+
+from nfelib.nfcom.bindings.v1_0.evento_nfcom_tipos_basico_v1_00 import Tevento
+
+__NAMESPACE__ = "http://www.portalfiscal.inf.br/nfcom"
+
+
+@dataclass
+class EventoNfcom(Tevento):
+ """
+ Schema XML de validação do Pedido de Registro de Evento da NFCom.
+ """
+
+ class Meta:
+ name = "eventoNFCom"
+ namespace = "http://www.portalfiscal.inf.br/nfcom"
diff --git a/nfelib/nfcom/bindings/v1_0/nfcom_tipos_basico_v1_00.py b/nfelib/nfcom/bindings/v1_0/nfcom_tipos_basico_v1_00.py
new file mode 100644
index 0000000..04a6b16
--- /dev/null
+++ b/nfelib/nfcom/bindings/v1_0/nfcom_tipos_basico_v1_00.py
@@ -0,0 +1,3992 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+from dataclasses import dataclass, field
+from enum import Enum
+from typing import List, Optional
+
+from nfelib import CommonMixin
+from nfelib.nfcom.bindings.v1_0.tipos_geral_nfcom_v1_00 import (
+ Tamb,
+ TcodUfIbge,
+ TmodNfcom,
+ Tuf,
+)
+from nfelib.nfcom.bindings.v1_0.xmldsig_core_schema_v1_01 import Signature
+
+__NAMESPACE__ = "http://www.portalfiscal.inf.br/nfcom"
+
+
+class CofinsCst(Enum):
+ VALUE_01 = "01"
+ VALUE_02 = "02"
+ VALUE_06 = "06"
+ VALUE_07 = "07"
+ VALUE_08 = "08"
+ VALUE_09 = "09"
+ VALUE_49 = "49"
+
+
+class Icms00Cst(Enum):
+ VALUE_00 = "00"
+
+
+class Icms20Cst(Enum):
+ VALUE_20 = "20"
+
+
+class Icms40Cst(Enum):
+ VALUE_40 = "40"
+ VALUE_41 = "41"
+
+
+class Icms51Cst(Enum):
+ VALUE_51 = "51"
+
+
+class Icms90Cst(Enum):
+ VALUE_90 = "90"
+
+
+class IcmssnCst(Enum):
+ VALUE_90 = "90"
+
+
+class IcmssnIndSn(Enum):
+ VALUE_1 = "1"
+
+
+class PisCst(Enum):
+ VALUE_01 = "01"
+ VALUE_02 = "02"
+ VALUE_06 = "06"
+ VALUE_07 = "07"
+ VALUE_08 = "08"
+ VALUE_09 = "09"
+ VALUE_49 = "49"
+
+
+class Tassinante(Enum):
+ """
+ Tipo assinante.
+ """
+
+ VALUE_1 = "1"
+ VALUE_2 = "2"
+ VALUE_3 = "3"
+ VALUE_4 = "4"
+ VALUE_5 = "5"
+ VALUE_6 = "6"
+ VALUE_7 = "7"
+ VALUE_8 = "8"
+ VALUE_99 = "99"
+
+
+class Tcrt(Enum):
+ """
+ Tipo Código Regime Tributário.
+ """
+
+ VALUE_1 = "1"
+ VALUE_2 = "2"
+ VALUE_3 = "3"
+
+
+@dataclass
+class TempresaSoft(CommonMixin):
+ """
+ Tipo Dados da Empresa de Software.
+
+ :ivar CNPJ: CNPJ da pessoa jurídica desenvolvedora do sistema
+ utilizado na emissão do documento fiscal eletrônico Informar o
+ CNPJ da pessoa jurídica desenvolvedora do sistema utilizado na
+ emissão do documento fiscal eletrônico.
+ :ivar CPF: CPF da pessoa física desenvolvedora do sistema utilizado
+ na emissão do documento fiscal eletrônico No caso de pessoa
+ física, informar o CPF do desenvolvedor do sistema utilizado na
+ emissão do documento fiscal eletrônico.
+ :ivar xContato: Nome da pessoa a ser contatada Informar o nome da
+ pessoa a ser contatada na empresa desenvolvedora do sistema
+ utilizado na emissão do documento fiscal eletrônico. No caso de
+ pessoa física, informar o respectivo nome.
+ :ivar email: Email da pessoa jurídica/física a ser contatada
+ :ivar fone: Telefone da pessoa jurídica/física a ser contatada
+ Preencher com o Código DDD + número do telefone.
+ """
+
+ class Meta:
+ name = "TEmpresaSoft"
+
+ CNPJ: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{14}",
+ },
+ )
+ CPF: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{11}",
+ },
+ )
+ xContato: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 2,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ email: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[^@]+@[^\.]+\..+",
+ },
+ )
+ fone: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{7,12}",
+ },
+ )
+
+
+class TfatNfcom(Enum):
+ """
+ Tipo de Faturamento da NFCom.
+ """
+
+ VALUE_0 = "0"
+ VALUE_1 = "1"
+ VALUE_2 = "2"
+
+
+class TfinNfcom(Enum):
+ """
+ Finalidade da NFCom.
+ """
+
+ VALUE_0 = "0"
+ VALUE_3 = "3"
+ VALUE_4 = "4"
+
+
+@dataclass
+class Timp(CommonMixin):
+ """
+ Tipo Dados do Imposto NFCom.
+ """
+
+ class Meta:
+ name = "TImp"
+
+
+class TindIedest(Enum):
+ """
+ Tipo indicador da IE do Destinatário.
+ """
+
+ VALUE_1 = "1"
+ VALUE_2 = "2"
+ VALUE_9 = "9"
+
+
+class TmodNfpapel(Enum):
+ """
+ Tipo Modelo NF papel.
+ """
+
+ VALUE_21 = "21"
+ VALUE_22 = "22"
+
+
+class TmotSub(Enum):
+ """
+ Tipo Motivo Substituição.
+ """
+
+ VALUE_01 = "01"
+ VALUE_02 = "02"
+ VALUE_03 = "03"
+ VALUE_04 = "04"
+ VALUE_05 = "05"
+
+
+class Tprocesso(Enum):
+ """
+ Tipo de processo judicial.
+ """
+
+ VALUE_0 = "0"
+ VALUE_1 = "1"
+ VALUE_2 = "2"
+
+
+@dataclass
+class TrespTec(CommonMixin):
+ """
+ Tipo Dados da Responsável Técnico.
+
+ :ivar CNPJ: CNPJ da pessoa jurídica responsável técnica pelo sistema
+ utilizado na emissão do documento fiscal eletrônico Informar o
+ CNPJ da pessoa jurídica desenvolvedora do sistema utilizado na
+ emissão do documento fiscal eletrônico.
+ :ivar xContato: Nome da pessoa a ser contatada Informar o nome da
+ pessoa a ser contatada na empresa desenvolvedora do sistema
+ utilizado na emissão do documento fiscal eletrônico. No caso de
+ pessoa física, informar o respectivo nome.
+ :ivar email: Email da pessoa jurídica a ser contatada
+ :ivar fone: Telefone da pessoa jurídica a ser contatada Preencher
+ com o Código DDD + número do telefone.
+ :ivar idCSRT: Identificador do código de segurança do responsável
+ técnico Identificador do CSRT utilizado para geração do hash
+ :ivar hashCSRT: Hash do token do código de segurança do responsável
+ técnico O hashCSRT é o resultado das funções SHA-1 e base64 do
+ token CSRT fornecido pelo fisco + chave de acesso do DF-e.
+ (Implementação em futura NT) Observação: 28 caracteres são
+ representados no schema como 20 bytes do tipo base64Binary
+ """
+
+ class Meta:
+ name = "TRespTec"
+
+ CNPJ: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{14}",
+ },
+ )
+ xContato: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 2,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ email: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[^@]+@[^\.]+\..+",
+ },
+ )
+ fone: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{7,12}",
+ },
+ )
+ idCSRT: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "pattern": r"[0-9]{3}",
+ },
+ )
+ hashCSRT: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "length": 20,
+ "format": "base64",
+ },
+ )
+
+
+class Tressarcimento(Enum):
+ """
+ Tipo de Ressarcimento.
+ """
+
+ VALUE_1 = "1"
+ VALUE_2 = "2"
+ VALUE_99 = "99"
+
+
+class TumedItem(Enum):
+ """
+ Tipo da unidade básica de medida.
+ """
+
+ VALUE_1 = "1"
+ VALUE_2 = "2"
+ VALUE_3 = "3"
+ VALUE_4 = "4"
+
+
+class Tutilizacao(Enum):
+ """
+ Tipo utilizacao.
+ """
+
+ VALUE_1 = "1"
+ VALUE_2 = "2"
+ VALUE_3 = "3"
+ VALUE_4 = "4"
+ VALUE_5 = "5"
+ VALUE_6 = "6"
+ VALUE_7 = "7"
+ VALUE = ""
+
+
+class TtpEmis(Enum):
+ """
+ Tipo de emissão da NFCom.
+ """
+
+ VALUE_1 = "1"
+ VALUE_2 = "2"
+
+
+class GProcRefIndDevolucao(Enum):
+ VALUE_1 = "1"
+
+
+class IdeIndCessaoMeiosRede(Enum):
+ VALUE_1 = "1"
+
+
+class IdeIndNotaEntrada(Enum):
+ VALUE_1 = "1"
+
+
+class IdeIndPrePago(Enum):
+ VALUE_1 = "1"
+
+
+class ImpostoIndSemCst(Enum):
+ VALUE_1 = "1"
+
+
+class ProdIndDevolucao(Enum):
+ VALUE_1 = "1"
+
+
+@dataclass
+class TendeDest(CommonMixin):
+ """
+ Tipo Dados do Endereço Destinatario.
+
+ :ivar xLgr: Logradouro
+ :ivar nro: Número
+ :ivar xCpl: Complemento
+ :ivar xBairro: Bairro
+ :ivar cMun: Código do município (utilizar a tabela do IBGE)
+ :ivar xMun: Nome do município
+ :ivar CEP: CEP Informar zeros não significativos
+ :ivar UF: Sigla da UF
+ :ivar cPais: Código do país Utilizar a tabela do BACEN
+ :ivar xPais: Nome do país
+ :ivar fone: Telefone
+ :ivar email: Endereço de E-mail
+ """
+
+ class Meta:
+ name = "TEndeDest"
+
+ xLgr: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 2,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ nro: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ xCpl: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ xBairro: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 2,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ cMun: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{7}",
+ },
+ )
+ xMun: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 2,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ CEP: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{8}",
+ },
+ )
+ UF: Optional[Tuf] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ cPais: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,4}",
+ },
+ )
+ xPais: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 2,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ fone: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{7,12}",
+ },
+ )
+ email: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[^@]+@[^\.]+\..+",
+ },
+ )
+
+
+@dataclass
+class TendeEmi(CommonMixin):
+ """
+ Tipo Dados do Endereço.
+
+ :ivar xLgr: Logradouro
+ :ivar nro: Número
+ :ivar xCpl: Complemento
+ :ivar xBairro: Bairro
+ :ivar cMun: Código do município (utilizar a tabela do IBGE)
+ :ivar xMun: Nome do município
+ :ivar CEP: CEP Informar zeros não significativos
+ :ivar UF: Sigla da UF
+ :ivar fone: Telefone
+ :ivar email: Endereço de E-mail
+ """
+
+ class Meta:
+ name = "TEndeEmi"
+
+ xLgr: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 2,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ nro: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ xCpl: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ xBairro: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 2,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ cMun: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{7}",
+ },
+ )
+ xMun: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 2,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ CEP: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{8}",
+ },
+ )
+ UF: Optional[Tuf] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ fone: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{7,12}",
+ },
+ )
+ email: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[^@]+@[^\.]+\..+",
+ },
+ )
+
+
+@dataclass
+class Tendereco(CommonMixin):
+ """
+ Tipo Dados do Endereço.
+
+ :ivar xLgr: Logradouro
+ :ivar nro: Número
+ :ivar xCpl: Complemento
+ :ivar xBairro: Bairro
+ :ivar cMun: Código do município (utilizar a tabela do IBGE),
+ informar 9999999 para operações com o exterior.
+ :ivar xMun: Nome do município, informar EXTERIOR para operações com
+ o exterior.
+ :ivar CEP: CEP Informar os zeros não significativos
+ :ivar UF: Sigla da UF, informar EX para operações com o exterior.
+ :ivar cPais: Código do país Utilizar a tabela do BACEN
+ :ivar xPais: Nome do país
+ :ivar fone: Telefone
+ :ivar email: Endereço de E-mail
+ """
+
+ class Meta:
+ name = "TEndereco"
+
+ xLgr: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 255,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ nro: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ xCpl: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ xBairro: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ cMun: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{7}",
+ },
+ )
+ xMun: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ CEP: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{8}",
+ },
+ )
+ UF: Optional[Tuf] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ cPais: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,4}",
+ },
+ )
+ xPais: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ fone: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{7,12}",
+ },
+ )
+ email: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[^@]+@[^\.]+\..+",
+ },
+ )
+
+
+@dataclass
+class TprotNfcom(CommonMixin):
+ """
+ Tipo Protocolo de status resultado do processamento da NFCom (Modelo 66)
+
+ :ivar infProt: Dados do protocolo de status
+ :ivar infFisco: Mensagem do Fisco
+ :ivar signature:
+ :ivar versao:
+ """
+
+ class Meta:
+ name = "TProtNFCom"
+
+ infProt: Optional["TprotNfcom.InfProt"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ infFisco: Optional["TprotNfcom.InfFisco"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ signature: Optional[Signature] = field(
+ default=None,
+ metadata={
+ "name": "Signature",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ )
+ versao: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"1\.00",
+ },
+ )
+
+ @dataclass
+ class InfProt(CommonMixin):
+ """
+ :ivar tpAmb: Identificação do Ambiente: 1 - Produção 2 -
+ Homologação
+ :ivar verAplic: Versão do Aplicativo que processou a NFCom
+ :ivar chNFCom: Chave de acesso da NFCom
+ :ivar dhRecbto: Data e hora de processamento, no formato AAAA-
+ MM-DDTHH:MM:SS TZD.
+ :ivar nProt: Número do Protocolo de Status da NFCom.
+ :ivar digVal: Digest Value da NFCom processado. Utilizado para
+ conferir a integridade da NFCom original.
+ :ivar cStat: Código do status da NFCom.
+ :ivar xMotivo: Descrição literal do status da NFCom.
+ :ivar Id:
+ """
+
+ tpAmb: Optional[Tamb] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ verAplic: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 20,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ chNFCom: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "max_length": 44,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{44}",
+ },
+ )
+ dhRecbto: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))T(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d([\-,\+](0[0-9]|10|11):00|([\+](12):00))",
+ },
+ )
+ nProt: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{16}",
+ },
+ )
+ digVal: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "format": "base64",
+ },
+ )
+ cStat: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{3}",
+ },
+ )
+ xMotivo: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 255,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ Id: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ },
+ )
+
+ @dataclass
+ class InfFisco(CommonMixin):
+ """
+ :ivar cMsg: Código do status da mensagem do fisco
+ :ivar xMsg: Mensagem do Fisco
+ """
+
+ cMsg: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{3}",
+ },
+ )
+ xMsg: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 255,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+
+
+@dataclass
+class TretEnviNfcom(CommonMixin):
+ """
+ Tipo Retorno do recibo de envio do lote de NFCom (Modelo 66)
+
+ :ivar tpAmb: Identificação do Ambiente: 1 - Produção 2 - Homologação
+ :ivar cUF: Identificação da UF
+ :ivar verAplic: Versão do Aplicativo que processou a NFCom
+ :ivar cStat: código do status do retorno da consulta.
+ :ivar xMotivo: Descrição literal do status do do retorno da
+ consulta.
+ :ivar infRec: Dados do Recibo do Lote
+ :ivar versao:
+ """
+
+ class Meta:
+ name = "TRetEnviNFCom"
+
+ tpAmb: Optional[Tamb] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ cUF: Optional[TcodUfIbge] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ verAplic: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 20,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ cStat: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{3}",
+ },
+ )
+ xMotivo: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 255,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ infRec: Optional["TretEnviNfcom.InfRec"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ versao: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"1\.00",
+ },
+ )
+
+ @dataclass
+ class InfRec(CommonMixin):
+ """
+ :ivar nRec: Número do Recibo
+ :ivar dhRecbto: Data e hora do recebimento, no formato AAAA-MM-
+ DDTHH:MM:SS TZD
+ :ivar tMed: Tempo médio de resposta do serviço (em segundos) dos
+ últimos 5 minutos
+ """
+
+ nRec: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{16}",
+ },
+ )
+ dhRecbto: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))T(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d([\-,\+](0[0-9]|10|11):00|([\+](12):00))",
+ },
+ )
+ tMed: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "pattern": r"[0-9]{1,4}",
+ },
+ )
+
+
+@dataclass
+class Tnfcom(CommonMixin):
+ """
+ Tipo Nota Fiscal Fatura de Comunicação.
+
+ :ivar infNFCom: Informações da NFCom
+ :ivar infNFComSupl: Informações suplementares da NFCom
+ :ivar signature:
+ """
+
+ class Meta:
+ name = "TNFCom"
+
+ infNFCom: Optional["Tnfcom.InfNfcom"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ infNFComSupl: Optional["Tnfcom.InfNfcomSupl"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ signature: Optional[Signature] = field(
+ default=None,
+ metadata={
+ "name": "Signature",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+
+ @dataclass
+ class InfNfcom(CommonMixin):
+ """
+ :ivar ide: Identificação da NFCom
+ :ivar emit: Identificação do Emitente do documento fiscal
+ :ivar dest: Identificação do destinatário / assinante
+ :ivar assinante: Dados do assinante
+ :ivar gSub: Grupo de informações da substituição
+ :ivar gCofat: Grupo de Informações do Cofaturamento
+ :ivar det: Detalhamento de Produtos e Serviços
+ :ivar total: Dados dos totais da NFCom
+ :ivar gFidelidade: Grupo de informações do programa de
+ fidelidade do assinante
+ :ivar gFat: Grupo de informações de controle da Fatura
+ :ivar gFatCentral: Grupo de informações do Faturamento
+ Centralizado
+ :ivar autXML: Autorizados para download do XML do DF-e Informar
+ CNPJ ou CPF. Preencher os zeros não significativos.
+ :ivar infAdic: Informações Adicionais
+ :ivar gRespTec: Informações do Responsável Técnico pela emissão
+ do DF-e
+ :ivar versao: Versão do leiaute
+ :ivar Id: Identificador da tag a ser assinada Informar a chave
+ de acesso da NFCom e precedida do literal "NFCom"
+ """
+
+ ide: Optional["Tnfcom.InfNfcom.Ide"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ emit: Optional["Tnfcom.InfNfcom.Emit"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ dest: Optional["Tnfcom.InfNfcom.Dest"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ assinante: Optional["Tnfcom.InfNfcom.Assinante"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ gSub: Optional["Tnfcom.InfNfcom.GSub"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ gCofat: Optional["Tnfcom.InfNfcom.GCofat"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ det: List["Tnfcom.InfNfcom.Det"] = field(
+ default_factory=list,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_occurs": 1,
+ "max_occurs": 9990,
+ },
+ )
+ total: Optional["Tnfcom.InfNfcom.Total"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ gFidelidade: Optional["Tnfcom.InfNfcom.GFidelidade"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ gFat: Optional["Tnfcom.InfNfcom.GFat"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ gFatCentral: Optional["Tnfcom.InfNfcom.GFatCentral"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ autXML: List["Tnfcom.InfNfcom.AutXml"] = field(
+ default_factory=list,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "max_occurs": 10,
+ },
+ )
+ infAdic: Optional["Tnfcom.InfNfcom.InfAdic"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ gRespTec: Optional[TrespTec] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ versao: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"1\.00",
+ },
+ )
+ Id: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "pattern": r"NFCom[0-9]{44}",
+ },
+ )
+
+ @dataclass
+ class Ide(CommonMixin):
+ """
+ :ivar cUF: Código da UF de emissão e autorização da NFCom
+ Código da UF de emissão e autorização do Documento
+ Fiscal. Utilizar a Tabela do IBGE de código de unidades
+ da federação.
+ :ivar tpAmb: Tipo do Ambiente 1 - Produção; 2 - Homologação
+ :ivar mod: Modelo da NFCom Utilizar o código 62 para
+ identificação da NFCom
+ :ivar serie: Série do documento fiscal Informar a série do
+ documento fiscal (informar zero para série única).
+ :ivar nNF: Número do documento fiscal Número que identifica
+ o documento fiscal 1 a 999999999.
+ :ivar cNF: Código numérico que compõe a Chave de Acesso.
+ Código aleatório gerado pelo emitente, com o objetivo de
+ evitar acessos indevidos ao documento.
+ :ivar cDV: Digito verificador da chave de acesso Informar o
+ dígito de controle da chave de acesso documento fiscal,
+ que deve ser calculado com a aplicação do algoritmo
+ módulo 11 (base 2,9) da chave de acesso.
+ :ivar dhEmi: Data e hora de emissão do documento fiscal
+ Formato AAAA-MM-DDTHH:MM:DD TZD
+ :ivar tpEmis: Forma de emissão do Documento Fiscal 1 -
+ Normal ; 2 - Contingência
+ :ivar nSiteAutoriz: Identificação do número do Site do
+ Autorizador de recepção da NFCom Se o autorizador da
+ NFCom possuir apenas um site deverá ser informado com
+ Zero (0), em caso de Autorizador trabalhar com múltiplos
+ sites indicar o número do site para qual foi endereçada
+ a NFCOM (1 a 9). Observação: o ambiente autorizador que
+ trabalhar com mais de um Site deverá divulgar para cada
+ endereço de site qual número correspondente de
+ nSiteAutoriz o contribuinte pode usar
+ :ivar cMunFG: Código do município de ocorrência do fato
+ gerador
+ :ivar finNFCom: Finalidade de emissão da NFCom 0- NFCom
+ Normal; 3 - NFCom de Substituição; 4 - NFCom de Ajuste;
+ :ivar tpFat: Tipo de Faturamento da NFCom 0- Faturamento
+ Normal; 1 - Faturamento centralizado; 2 - Cofaturamento
+ :ivar verProc: Versão do processo de emissão Informar a
+ versão do aplicativo emissor de NFCom.
+ :ivar indPrePago: Indicador de serviço pré-pago 1 – Serviço
+ pré-pago (informar a tag somente se a nota for referente
+ a um serviço exclusivamente pré-pago)
+ :ivar indCessaoMeiosRede: Indicador de Sessão de Meios de
+ Rede. Uma vez informado (valor = 1), essa tag dispensa
+ geração do grupo Fatura. Apenas para notas dos tipos
+ Normal e Substituição com tipo de faturamento normal
+ :ivar indNotaEntrada: Indicador de nota de entrada 1 –
+ Informar quando for nota de ajuste e possuir itens com
+ CFOP de entrada
+ :ivar dhCont: Data e Hora da entrada em contingência
+ Informar a data e hora no formato AAAA-MM-DDTHH:MM:SS
+ :ivar xJust: Justificativa da entrada em contingência
+ """
+
+ cUF: Optional[TcodUfIbge] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ tpAmb: Optional[Tamb] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ mod: Optional[TmodNfcom] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ serie: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|[1-9]{1}[0-9]{0,2}",
+ },
+ )
+ nNF: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[1-9]{1}[0-9]{0,8}",
+ },
+ )
+ cNF: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{7}",
+ },
+ )
+ cDV: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1}",
+ },
+ )
+ dhEmi: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))T(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d([\-,\+](0[0-9]|10|11):00|([\+](12):00))",
+ },
+ )
+ tpEmis: Optional[TtpEmis] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ nSiteAutoriz: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1}",
+ },
+ )
+ cMunFG: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{7}",
+ },
+ )
+ finNFCom: Optional[TfinNfcom] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ tpFat: Optional[TfatNfcom] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ verProc: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 20,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ indPrePago: Optional[IdeIndPrePago] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ },
+ )
+ indCessaoMeiosRede: Optional[IdeIndCessaoMeiosRede] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ },
+ )
+ indNotaEntrada: Optional[IdeIndNotaEntrada] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ },
+ )
+ dhCont: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))T(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d([\-,\+](0[0-9]|10|11):00|([\+](12):00))",
+ },
+ )
+ xJust: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 15,
+ "max_length": 256,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+
+ @dataclass
+ class Emit(CommonMixin):
+ """
+ :ivar CNPJ: CNPJ do emitente Informar zeros não
+ significativos
+ :ivar IE: Inscrição Estadual do emitente
+ :ivar IEUFDest: Inscrição Estadual Virtual do emitente na UF
+ de Destino da partilha (IE Virtual)
+ :ivar CRT: Código do Regime Tributário Informar: 1=Simples
+ Nacional; 2=Simples Nacional, excesso sublimite de
+ receita bruta; 3=Regime Normal.
+ :ivar xNome: Razão social ou Nome do emitente
+ :ivar xFant: Nome fantasia do emitente
+ :ivar enderEmit: Endereço do emitente
+ """
+
+ CNPJ: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{14}",
+ },
+ )
+ IE: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{2,14}",
+ },
+ )
+ IEUFDest: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{2,14}",
+ },
+ )
+ CRT: Optional[Tcrt] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ xNome: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 2,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ xFant: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ enderEmit: Optional[TendeEmi] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+
+ @dataclass
+ class Dest(CommonMixin):
+ """
+ :ivar xNome: Razão social ou Nome do destinatário
+ :ivar CNPJ: Número do CNPJ Informar os zeros não
+ significativos.
+ :ivar CPF: Número do CPF Informar os zeros não
+ significativos.
+ :ivar idOutros: Identificação do destinatário outros
+ Identificação do destinatário não obrigado a inscrição
+ do CPF tais como estrangeiro, indígena e quilombola; Em
+ caso de não contar CPF do assinante, informar o RG
+ :ivar indIEDest: Indicador da IE do Destinatário 1 -
+ Contribuinte ICMS (informar a IE do destinatário); 2 -
+ Contribuinte isento de Inscrição no cadastro de
+ Contribuintes do ICMS; 9 - Não Contribuinte, que pode ou
+ não possuir Inscrição Estadual no Cadastro de
+ Contribuintes do ICMS. Nota: No caso de Contribuinte
+ Isento de Inscrição (indIEDest=2) informar a tag IE do
+ destinatário com o literal ISENTO.
+ :ivar IE: Inscrição Estadual do destinatário
+ :ivar IM: Inscrição Municipal
+ :ivar enderDest: Endereço do destinatário / assinante
+ """
+
+ xNome: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 2,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ CNPJ: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{0}|[0-9]{14}",
+ },
+ )
+ CPF: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{11}",
+ },
+ )
+ idOutros: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 2,
+ "max_length": 20,
+ "white_space": "preserve",
+ "pattern": r"([!-ÿ]{0}|[!-ÿ]{2,20})?",
+ },
+ )
+ indIEDest: Optional[TindIedest] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ IE: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{0,14}|ISENTO",
+ },
+ )
+ IM: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 1,
+ "max_length": 15,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ enderDest: Optional[TendeDest] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+
+ @dataclass
+ class Assinante(CommonMixin):
+ """
+ :ivar iCodAssinante: Código único de Identificação do
+ assinante
+ :ivar tpAssinante: Tipo de assinante 1-Comercial;
+ 2-Industrial; 3-Residencial/Pessoa Física; 4-Produtor
+ Rural; 5-Órgão da administração pública estadual direta
+ e suas fundações e autarquias, quando mantidas pelo
+ poder público estadual e regidas por normas de direito
+ público, nos termos do Convênio ICMS 107/95; 6-Prestador
+ de serviço de telecomunicação responsável pelo
+ recolhimento do imposto incidente sobre a cessão dos
+ meios de rede do prestador do serviço ao usuário final,
+ nos termos do Convênio ICMS 17/13 ; 7-Missões
+ Diplomáticas, Repartições Consulares e Organismos
+ Internacionais, nos termos do Convênio ICMS 158/94 ;
+ 8-Igrejas e Templos de qualquer natureza ; 99-Outros não
+ especificados anteriormente
+ :ivar tpServUtil: Tipo de serviço utilizado 1-Telefonia;
+ 2-Comunicação de dados; 3-TV por Assinatura;4 -
+ Provimento de acesso à Internet; 5-Multimídia; 6-Outros;
+ 7-Varios;
+ :ivar nContrato: Número do Contrato do assinante
+ :ivar dContratoIni: Data de início do contrato Formato AAAA-
+ MM-DD
+ :ivar dContratoFim: Data de término do contrato Formato
+ AAAA-MM-DD
+ :ivar NroTermPrinc: Número do Terminal Principal do serviço
+ contratado Em se tratando de plano de prestação de
+ serviço telefônico corporativo, familiar ou similares,
+ informar o número do terminal telefônico principal do
+ plano.
+ :ivar cUFPrinc: Código da UF de habilitação do terminal
+ Utilizar a Tabela do IBGE de código de unidades da
+ federação.
+ :ivar NroTermAdic: Número dos Terminais adicionais do
+ serviço contratado
+ :ivar cUFAdic: Código da UF de habilitação do terminal
+ """
+
+ iCodAssinante: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 30,
+ "white_space": "preserve",
+ "pattern": r"([!-ÿ]{0}|[!-ÿ]{1,30})?",
+ },
+ )
+ tpAssinante: Optional[Tassinante] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ tpServUtil: Optional[Tutilizacao] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ nContrato: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 1,
+ "max_length": 20,
+ "white_space": "preserve",
+ "pattern": r"([!-ÿ]{0}|[!-ÿ]{1,15})?",
+ },
+ )
+ dContratoIni: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"((((20|19|18)(([02468][048])|([13579][26]))-02-29))|((20|19|18)[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))",
+ },
+ )
+ dContratoFim: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"((((20|19|18)(([02468][048])|([13579][26]))-02-29))|((20|19|18)[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))",
+ },
+ )
+ NroTermPrinc: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{7,12}",
+ },
+ )
+ cUFPrinc: Optional[TcodUfIbge] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ NroTermAdic: List[str] = field(
+ default_factory=list,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{7,12}",
+ },
+ )
+ cUFAdic: List[TcodUfIbge] = field(
+ default_factory=list,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+
+ @dataclass
+ class AutXml(CommonMixin):
+ """
+ :ivar CNPJ: CNPJ do autorizado Informar zeros não
+ significativos
+ :ivar CPF: CPF do autorizado Informar zeros não
+ significativos
+ """
+
+ CNPJ: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{14}",
+ },
+ )
+ CPF: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{11}",
+ },
+ )
+
+ @dataclass
+ class InfAdic(CommonMixin):
+ """
+ :ivar infAdFisco: Informações adicionais de interesse do
+ Fisco Norma referenciada, informações complementares,
+ etc
+ :ivar infCpl: Informações complementares de interesse do
+ Contribuinte
+ """
+
+ infAdFisco: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 1,
+ "max_length": 2000,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ infCpl: List[str] = field(
+ default_factory=list,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "max_occurs": 5,
+ "min_length": 1,
+ "max_length": 3000,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+
+ @dataclass
+ class GSub(CommonMixin):
+ """
+ :ivar chNFCom: Chave de acesso da NFCom original
+ :ivar gNF: Informação da NF modelo 21/22 referenciada
+ :ivar motSub: Motivo da substituição 01 – Erro de Preço 02 –
+ Erro Cadastral 03 – Decisão Judicial 04 - Erro de
+ Tributação 05 - Descontinuidade do Serviço
+ """
+
+ chNFCom: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "max_length": 44,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{44}",
+ },
+ )
+ gNF: Optional["Tnfcom.InfNfcom.GSub.GNf"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ motSub: Optional[TmotSub] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+
+ @dataclass
+ class GNf(CommonMixin):
+ """
+ :ivar CNPJ: CNPJ do Emitente Informar o CNPJ do emitente
+ do Documento Fiscal
+ :ivar mod: Modelo do documento 21 ou 22
+ :ivar serie: Serie do documento fiscal
+ :ivar nNF: Número do documento fiscal
+ :ivar CompetEmis: Ano e mês da emissão da NF (AAAAMM)
+ :ivar hash115: Hash do registro no arquivo do convênio
+ 115 Campo poderá ser exigido a critério da UF –
+ campo 36 do arquivo MESTRE DE DOCUMENTO FISCAL
+ (Anexo Único, item 5 do Conv. 115/03)
+ """
+
+ CNPJ: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{14}",
+ },
+ )
+ mod: Optional[TmodNfpapel] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ serie: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 3,
+ "max_length": 3,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ nNF: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[1-9]{1}[0-9]{0,8}",
+ },
+ )
+ CompetEmis: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 6,
+ "max_length": 6,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,6}",
+ },
+ )
+ hash115: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 32,
+ "max_length": 32,
+ "format": "base64",
+ },
+ )
+
+ @dataclass
+ class GCofat(CommonMixin):
+ """
+ :ivar chNFComLocal: Chave de acesso da NFCom emitida pela
+ Operadora Local
+ """
+
+ chNFComLocal: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "max_length": 44,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{44}",
+ },
+ )
+
+ @dataclass
+ class Det(CommonMixin):
+ """
+ :ivar prod: Dados do Produto ou Serviço
+ :ivar imposto: Tributos incidentes no Produto ou Serviço
+ :ivar gProcRef: Grupo Processo referenciado Este grupo
+ somente deverá ser preenchido quando houver processo
+ judicial ou administrativo que altere valores.
+ :ivar gRessarc: Grupo de Informações detalhadas de item de
+ cClass de Ressarcimento
+ :ivar infAdProd: Informações adicionais do produto (norma
+ referenciada, informações complementares, etc)
+ :ivar nItem: Número do item da NFCom
+ :ivar chNFComAnt: Chave de Acesso da NFCom anterior Informar
+ chave de acesso de referencia anterior TAG OPCIONAL,
+ DEVE SER INFORMADA APENAS NOS CASOS PREVISTOS DE NOTA
+ ANTERIOR REFERENCIADA
+ :ivar nItemAnt: Número do item da NFCom anterior Informar
+ nro do item da chave de acesso de referencia anterior
+ TAG OPCIONAL, DEVE SER INFORMADA APENAS NOS CASOS
+ PREVISTOS DE NOTA ANTERIOR REFERENCIADA
+ """
+
+ prod: Optional["Tnfcom.InfNfcom.Det.Prod"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ imposto: Optional["Tnfcom.InfNfcom.Det.Imposto"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ gProcRef: Optional["Tnfcom.InfNfcom.Det.GProcRef"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ gRessarc: Optional["Tnfcom.InfNfcom.Det.GRessarc"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ infAdProd: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 1,
+ "max_length": 500,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ nItem: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[1-9]{1}[0-9]{0,3}",
+ },
+ )
+ chNFComAnt: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "max_length": 44,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{44}",
+ },
+ )
+ nItemAnt: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "white_space": "preserve",
+ "pattern": r"[1-9]{1}[0-9]{0,3}",
+ },
+ )
+
+ @dataclass
+ class Prod(CommonMixin):
+ """
+ :ivar cProd: Código do produto ou serviço.
+ :ivar xProd: Descrição do produto ou serviço
+ :ivar cClass: Código de classificação Tabela de
+ Classificação de Item da NFCom (validar por RV)
+ :ivar CFOP: CFOP Utilizar Tabela de CFOP.
+ :ivar CNPJLD: CNPJ da operadora LD Informar o CNPJ da
+ operadora LD que irá lançar o item de cofaturamento
+ em nota do tipo faturamento 2
+ :ivar uMed: Unidade Básica de Medida 1=Minuto ; 2=MB;
+ 3=GB; 4=UN
+ :ivar qFaturada: Quantidade Faturada Informar a
+ quantidade de comercialização do produto .
+ :ivar vItem: Valor unitário do item
+ :ivar vDesc: Valor do Desconto
+ :ivar vOutro: Outras despesas acessórias
+ :ivar vProd: Valor total do item
+ :ivar dExpiracao: Data de expiração de crédito Formato
+ AAAA-MM-DD.
+ :ivar indDevolucao: Indicador de devolução do valor do
+ item 1 – Devolução do valor do item
+ """
+
+ cProd: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ xProd: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 120,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ cClass: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 7,
+ "max_length": 7,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{7}",
+ },
+ )
+ CFOP: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[123567][0-9]([0-9][1-9]|[1-9][0-9])",
+ },
+ )
+ CNPJLD: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"[0-9]{14}",
+ },
+ )
+ uMed: Optional[TumedItem] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ qFaturada: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,11}(\.[0-9]{2,4})?",
+ },
+ )
+ vItem: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,13}(\.[0-9]{2,8})?",
+ },
+ )
+ vDesc: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vOutro: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vProd: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,13}(\.[0-9]{2,8})?",
+ },
+ )
+ dExpiracao: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"((((20|19|18)(([02468][048])|([13579][26]))-02-29))|((20|19|18)[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))",
+ },
+ )
+ indDevolucao: Optional[ProdIndDevolucao] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ },
+ )
+
+ @dataclass
+ class Imposto(Timp):
+ """
+ :ivar ICMS00: Prestação sujeito à tributação normal do
+ ICMS Tributada integralmente
+ :ivar ICMS20: Prestação sujeito à tributação com redução
+ de BC do ICMS
+ :ivar ICMS40: Tributação Isenta, Não tributada
+ :ivar ICMS51: Tributação com Diferimento A exigência do
+ preenchimento das informações do ICMS diferido fica
+ a critério de cada UF
+ :ivar ICMS90: ICMS Outros
+ :ivar ICMSSN: Simples Nacional
+ :ivar ICMSUFDest: Informações do ICMS de partilha com a
+ UF destinatária
+ :ivar indSemCST: Sem Situação Tributária para o ICMS
+ Informar para itens que não tenham nenhuma relação
+ com o ICMS. Quando informado o item NÃO PODE ter
+ CFOP informado Se informado esse grupo o schema não
+ permite informar nenhum dos grupos de ICMSXX
+ :ivar PIS: Dados do PIS
+ :ivar COFINS: Dados do COFINS
+ :ivar FUST: Dados do FUST
+ :ivar FUNTTEL: Dados do FUNTTEL
+ :ivar retTrib: Grupo de informações de retenção de
+ tributos federais
+ """
+
+ ICMS00: Optional["Tnfcom.InfNfcom.Det.Imposto.Icms00"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ ICMS20: Optional["Tnfcom.InfNfcom.Det.Imposto.Icms20"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ ICMS40: Optional["Tnfcom.InfNfcom.Det.Imposto.Icms40"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ ICMS51: Optional["Tnfcom.InfNfcom.Det.Imposto.Icms51"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ ICMS90: Optional["Tnfcom.InfNfcom.Det.Imposto.Icms90"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ ICMSSN: Optional["Tnfcom.InfNfcom.Det.Imposto.Icmssn"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ ICMSUFDest: List[
+ "Tnfcom.InfNfcom.Det.Imposto.Icmsufdest"
+ ] = field(
+ default_factory=list,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ indSemCST: Optional[ImpostoIndSemCst] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ },
+ )
+ PIS: Optional["Tnfcom.InfNfcom.Det.Imposto.Pis"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ COFINS: Optional["Tnfcom.InfNfcom.Det.Imposto.Cofins"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ FUST: Optional["Tnfcom.InfNfcom.Det.Imposto.Fust"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ FUNTTEL: Optional[
+ "Tnfcom.InfNfcom.Det.Imposto.Funttel"
+ ] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ retTrib: Optional[
+ "Tnfcom.InfNfcom.Det.Imposto.RetTrib"
+ ] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+
+ @dataclass
+ class Pis(CommonMixin):
+ """
+ :ivar CST: classificação Tributária do PIS 01 –
+ Tributável com alíquota básica 02 – Tributável
+ com alíquota diferenciada 06 – Tributável com
+ alíquota zero 07 – Operação isenta de
+ contribuição 08 – Operação sem incidência da
+ contribuição 09 – Operação com suspensão da
+ contribuição 49 – Outras operações de saída
+ :ivar vBC: Valor da BC do PIS
+ :ivar pPIS: Alíquota do PIS (em percentual)
+ :ivar vPIS: Valor do PIS
+ """
+
+ CST: Optional[PisCst] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ },
+ )
+ vBC: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ pPIS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2,4}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2,4})?",
+ },
+ )
+ vPIS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+
+ @dataclass
+ class Cofins(CommonMixin):
+ """
+ :ivar CST: classificação Tributária do COFINS 01 –
+ Tributável com alíquota básica 02 – Tributável
+ com alíquota diferenciada 06 – Tributável com
+ alíquota zero 07 – Operação isenta de
+ contribuição 08 – Operação sem incidência da
+ contribuição 09 – Operação com suspensão da
+ contribuição 49 – Outras operações de saída
+ :ivar vBC: Valor da BC do COFINS
+ :ivar pCOFINS: Alíquota do COFINS (em percentual)
+ :ivar vCOFINS: Valor do COFINS
+ """
+
+ CST: Optional[CofinsCst] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ },
+ )
+ vBC: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ pCOFINS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2,4}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2,4})?",
+ },
+ )
+ vCOFINS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+
+ @dataclass
+ class Fust(CommonMixin):
+ """
+ :ivar vBC: Valor da BC do FUST
+ :ivar pFUST: Alíquota do FUST (em percentual)
+ :ivar vFUST: Valor do FUST
+ """
+
+ vBC: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ pFUST: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2,4}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2,4})?",
+ },
+ )
+ vFUST: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+
+ @dataclass
+ class Funttel(CommonMixin):
+ """
+ :ivar vBC: Valor da BC do FUNTTEL
+ :ivar pFUNTTEL: Alíquota do FUNTTEL (em percentual)
+ :ivar vFUNTTEL: Valor do FUNTEL
+ """
+
+ vBC: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ pFUNTTEL: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2,4}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2,4})?",
+ },
+ )
+ vFUNTTEL: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+
+ @dataclass
+ class RetTrib(CommonMixin):
+ """
+ :ivar vRetPIS: Valor do PIS retido
+ :ivar vRetCofins: Valor do COFNS retido
+ :ivar vRetCSLL: Valor da CSLL retida
+ :ivar vBCIRRF: Base de cálculo do IRRF
+ :ivar vIRRF: Valor do IRRF retido
+ """
+
+ vRetPIS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,13}(\.[0-9]{2,8})?",
+ },
+ )
+ vRetCofins: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,13}(\.[0-9]{2,8})?",
+ },
+ )
+ vRetCSLL: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,13}(\.[0-9]{2,8})?",
+ },
+ )
+ vBCIRRF: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,13}(\.[0-9]{2,8})?",
+ },
+ )
+ vIRRF: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,13}(\.[0-9]{2,8})?",
+ },
+ )
+
+ @dataclass
+ class Icmsufdest(CommonMixin):
+ """
+ :ivar vBCUFDest: Valor da BC do ICMS na UF de
+ destino
+ :ivar pFCPUFDest: Percentual do ICMS relativo ao
+ Fundo de Combate à pobreza (FCP) na UF de
+ destino Alíquota adotada nas operações internas
+ na UF do destinatário
+ :ivar pICMSUFDest: Alíquota interna da UF de destino
+ Alíquota adotada nas operações internas na UF do
+ destinatário
+ :ivar vFCPUFDest: Valor do ICMS relativo ao Fundo de
+ Combate á Pobreza (FCP) da UF de destino
+ :ivar vICMSUFDest: Valor do ICMS de partilha para a
+ UF de destino
+ :ivar vICMSUFEmi: Valor do ICMS de partilha para a
+ UF de emissão
+ :ivar cBenefUFDest: Código de Benefício Fiscal na UF
+ destino aplicado ao item Código de Benefício
+ Fiscal utilizado pela UF, aplicado ao item.
+ :ivar cUFDest:
+ """
+
+ vBCUFDest: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ pFCPUFDest: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?",
+ },
+ )
+ pICMSUFDest: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?",
+ },
+ )
+ vFCPUFDest: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vICMSUFDest: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vICMSUFEmi: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ cBenefUFDest: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "max_length": 10,
+ "white_space": "preserve",
+ },
+ )
+ cUFDest: Optional[TcodUfIbge] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ },
+ )
+
+ @dataclass
+ class Icms00(CommonMixin):
+ """
+ :ivar CST: classificação Tributária do Serviço 00 -
+ tributação normal ICMS
+ :ivar vBC: Valor da BC do ICMS
+ :ivar pICMS: Alíquota do ICMS
+ :ivar vICMS: Valor do ICMS
+ :ivar pFCP: Percentual de ICMS relativo ao Fundo de
+ Combate à Pobreza (FCP).
+ :ivar vFCP: Valor do ICMS relativo ao Fundo de
+ Combate à Pobreza (FCP).
+ """
+
+ CST: Optional[Icms00Cst] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ },
+ )
+ vBC: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ pICMS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?",
+ },
+ )
+ vICMS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ pFCP: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0\.[0-9]{2,4}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2,4})?",
+ },
+ )
+ vFCP: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+
+ @dataclass
+ class Icms20(CommonMixin):
+ """
+ :ivar CST: Classificação Tributária do serviço 20 -
+ tributação com BC reduzida do ICMS
+ :ivar pRedBC: Percentual de redução da BC
+ :ivar vBC: Valor da BC do ICMS
+ :ivar pICMS: Alíquota do ICMS
+ :ivar vICMS: Valor do ICMS
+ :ivar vICMSDeson: Valor do ICMS de desoneração
+ :ivar cBenef: Código de Benefício Fiscal na UF
+ aplicado ao item Código de Benefício Fiscal
+ utilizado pela UF, aplicado ao item.
+ :ivar pFCP: Percentual de ICMS relativo ao Fundo de
+ Combate à Pobreza (FCP).
+ :ivar vFCP: Valor do ICMS relativo ao Fundo de
+ Combate à Pobreza (FCP).
+ """
+
+ CST: Optional[Icms20Cst] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ },
+ )
+ pRedBC: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?",
+ },
+ )
+ vBC: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ pICMS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?",
+ },
+ )
+ vICMS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vICMSDeson: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ cBenef: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "max_length": 10,
+ "white_space": "preserve",
+ },
+ )
+ pFCP: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0\.[0-9]{2,4}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2,4})?",
+ },
+ )
+ vFCP: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+
+ @dataclass
+ class Icms40(CommonMixin):
+ """
+ :ivar CST: Classificação Tributária do serviço
+ 40=Isenta; 41=Não tributada;
+ :ivar vICMSDeson: Valor do ICMS de desoneração
+ :ivar cBenef: Código de Benefício Fiscal na UF
+ aplicado ao item Código de Benefício Fiscal
+ utilizado pela UF, aplicado ao item.
+ """
+
+ CST: Optional[Icms40Cst] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ },
+ )
+ vICMSDeson: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ cBenef: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "max_length": 10,
+ "white_space": "preserve",
+ },
+ )
+
+ @dataclass
+ class Icms51(CommonMixin):
+ """
+ :ivar CST: Classificação Tributária do serviço
+ Tributação pelo ICMS 51 - Diferimento
+ :ivar vICMSDeson: Valor do ICMS de desoneração
+ :ivar cBenef: Código de Benefício Fiscal na UF
+ aplicado ao item Código de Benefício Fiscal
+ utilizado pela UF, aplicado ao item.
+ """
+
+ CST: Optional[Icms51Cst] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ },
+ )
+ vICMSDeson: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ cBenef: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "max_length": 10,
+ "white_space": "preserve",
+ },
+ )
+
+ @dataclass
+ class Icms90(CommonMixin):
+ """
+ :ivar CST: Classificação Tributária do Serviço 90 -
+ ICMS outros
+ :ivar vBC: Valor da BC do ICMS
+ :ivar pICMS: Alíquota do ICMS
+ :ivar vICMS: Valor do ICMS
+ :ivar vICMSDeson: Valor do ICMS de desoneração
+ :ivar cBenef: Código de Benefício Fiscal na UF
+ aplicado ao item Código de Benefício Fiscal
+ utilizado pela UF, aplicado ao item.
+ :ivar pFCP: Percentual de ICMS relativo ao Fundo de
+ Combate à Pobreza (FCP).
+ :ivar vFCP: Valor do ICMS relativo ao Fundo de
+ Combate à Pobreza (FCP).
+ """
+
+ CST: Optional[Icms90Cst] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ },
+ )
+ vBC: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ pICMS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?",
+ },
+ )
+ vICMS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vICMSDeson: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ cBenef: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "max_length": 10,
+ "white_space": "preserve",
+ },
+ )
+ pFCP: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0\.[0-9]{2,4}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2,4})?",
+ },
+ )
+ vFCP: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+
+ @dataclass
+ class Icmssn(CommonMixin):
+ """
+ :ivar CST: Classificação Tributária do Serviço 90 -
+ Outros SN
+ :ivar indSN: Indica se o contribuinte é Simples
+ Nacional 1=Sim
+ """
+
+ CST: Optional[IcmssnCst] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ },
+ )
+ indSN: Optional[IcmssnIndSn] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ },
+ )
+
+ @dataclass
+ class GProcRef(CommonMixin):
+ """
+ :ivar vItem: Valor unitário do item Informar o valor sem
+ a influência da decisão judicial/administrativa.
+ :ivar qFaturada: Quantidade Faturada Informar a
+ quantidade de comercialização do produto .
+ :ivar vProd: Valor total do item
+ :ivar vDesc: Valor do Desconto
+ :ivar vOutro: Outras despesas acessórias
+ :ivar indDevolucao: Indicador de devolução do valor do
+ item 1 – Devolução do valor do item
+ :ivar vBC: Valor da BC do ICMS
+ :ivar pICMS: Alíquota do ICMS
+ :ivar vICMS: Valor do ICMS
+ :ivar vPIS: Valor do PIS
+ :ivar vCOFINS: Valor do COFINS
+ :ivar vFCP: Valor do Fundo de Combate à Pobreza (FCP).
+ :ivar gProc: Grupo identificador do Processo
+ """
+
+ vItem: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,13}(\.[0-9]{2,8})?",
+ },
+ )
+ qFaturada: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,11}(\.[0-9]{2,4})?",
+ },
+ )
+ vProd: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,13}(\.[0-9]{2,8})?",
+ },
+ )
+ vDesc: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vOutro: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ indDevolucao: Optional[GProcRefIndDevolucao] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ },
+ )
+ vBC: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ pICMS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?",
+ },
+ )
+ vICMS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vPIS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vCOFINS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vFCP: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ gProc: List["Tnfcom.InfNfcom.Det.GProcRef.GProc"] = field(
+ default_factory=list,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_occurs": 1,
+ "max_occurs": 10,
+ },
+ )
+
+ @dataclass
+ class GProc(CommonMixin):
+ """
+ :ivar tpProc: Tipo de Processo 0 - SEFAZ; 1 -
+ Justiça Federal; 2 - Justiça Estadual
+ :ivar nProcesso: Número do Processo
+ """
+
+ tpProc: Optional[Tprocesso] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ nProcesso: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+
+ @dataclass
+ class GRessarc(CommonMixin):
+ """
+ :ivar tpRessarc: Tipo de Ressarcimento 1 - Cobrança
+ Indevida 2 - Interrupção 99 - Outros
+ :ivar dRef: Data de referencia Formato AAAA-MM-DD
+ :ivar nProcesso: Número do Processo
+ :ivar nProtReclama: Número do protocolo de reclamação
+ :ivar xObs: Observações sobre o processo de
+ ressarcimento
+ """
+
+ tpRessarc: Optional[Tressarcimento] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ dRef: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"((((20|19|18)(([02468][048])|([13579][26]))-02-29))|((20|19|18)[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))",
+ },
+ )
+ nProcesso: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ nProtReclama: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 1,
+ "max_length": 60,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ xObs: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 15,
+ "max_length": 100,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+
+ @dataclass
+ class Total(CommonMixin):
+ """
+ :ivar vProd: Valor Total dos produtos e serviços
+ :ivar ICMSTot: Totais referentes ao ICMS
+ :ivar vCOFINS: Valor do COFINS
+ :ivar vPIS: Valor do PIS
+ :ivar vFUNTTEL: Valor do FUNTTEL
+ :ivar vFUST: Valor do FUST
+ :ivar vRetTribTot: Total da retenção de tributos federais
+ :ivar vDesc: Valor Total do Desconto
+ :ivar vOutro: Outras Despesas acessórias
+ :ivar vNF: Valor Total da NFCom
+ """
+
+ vProd: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ ICMSTot: Optional["Tnfcom.InfNfcom.Total.Icmstot"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ vCOFINS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vPIS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vFUNTTEL: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vFUST: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vRetTribTot: Optional["Tnfcom.InfNfcom.Total.VRetTribTot"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ vDesc: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vOutro: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vNF: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+
+ @dataclass
+ class Icmstot(CommonMixin):
+ """
+ :ivar vBC: BC do ICMS
+ :ivar vICMS: Valor Total do ICMS
+ :ivar vICMSDeson: Valor Total do ICMS desonerado
+ :ivar vFCP: Valor Total do FCP (Fundo de Combate à
+ Pobreza).
+ """
+
+ vBC: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vICMS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vICMSDeson: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vFCP: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+
+ @dataclass
+ class VRetTribTot(CommonMixin):
+ """
+ :ivar vRetPIS: Valor do PIS retido
+ :ivar vRetCofins: Valor do COFNS retido
+ :ivar vRetCSLL: Valor da CSLL retida
+ :ivar vIRRF: Valor do IRRF retido
+ """
+
+ vRetPIS: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vRetCofins: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vRetCSLL: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+ vIRRF: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?",
+ },
+ )
+
+ @dataclass
+ class GFidelidade(CommonMixin):
+ """
+ :ivar qtdSaldoPts: Saldo de pontos do cliente na data de
+ referência
+ :ivar dRefSaldoPts: Data de aferição do saldo de pontos
+ Formato AAAA-MM-DD
+ :ivar qtdPtsResg: Qtd de pontos resgatados na data de
+ referência
+ :ivar dRefResgPts: Data de resgate dos pontos Formato AAAA-
+ MM-DD
+ """
+
+ qtdSaldoPts: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 20,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,20}",
+ },
+ )
+ dRefSaldoPts: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"((((20|19|18)(([02468][048])|([13579][26]))-02-29))|((20|19|18)[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))",
+ },
+ )
+ qtdPtsResg: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 20,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,20}",
+ },
+ )
+ dRefResgPts: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"((((20|19|18)(([02468][048])|([13579][26]))-02-29))|((20|19|18)[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))",
+ },
+ )
+
+ @dataclass
+ class GFat(CommonMixin):
+ """
+ :ivar CompetFat: Ano e mês referência do faturamento
+ (AAAAMM)
+ :ivar dVencFat: Data de vencimento da fatura Formato AAAA-
+ MM-DD
+ :ivar dPerUsoIni: Período de uso inicial Formato AAAA-MM-DD.
+ :ivar dPerUsoFim: Período de uso final Formato AAAA-MM-DD.
+ :ivar codBarras: Linha digitável do código de barras
+ :ivar codDebAuto: Código de autorização débito em conta
+ :ivar codBanco: Número do banco para débito em conta
+ :ivar codAgencia: Número da agência bancária para débito em
+ conta
+ :ivar enderCorresp: Endereço de entrega da fatura. Informar
+ se diferente do endereço do destinatário
+ :ivar gPIX: Grupo de informações do PIX
+ """
+
+ CompetFat: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 6,
+ "max_length": 6,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,6}",
+ },
+ )
+ dVencFat: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"((((20|19|18)(([02468][048])|([13579][26]))-02-29))|((20|19|18)[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))",
+ },
+ )
+ dPerUsoIni: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"((((20|19|18)(([02468][048])|([13579][26]))-02-29))|((20|19|18)[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))",
+ },
+ )
+ dPerUsoFim: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "white_space": "preserve",
+ "pattern": r"((((20|19|18)(([02468][048])|([13579][26]))-02-29))|((20|19|18)[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))",
+ },
+ )
+ codBarras: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 48,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,48}",
+ },
+ )
+ codDebAuto: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 1,
+ "max_length": 20,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,20}",
+ },
+ )
+ codBanco: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 3,
+ "max_length": 5,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ codAgencia: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_length": 1,
+ "max_length": 10,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ enderCorresp: Optional[TendeEmi] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ gPIX: Optional["Tnfcom.InfNfcom.GFat.GPix"] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+
+ @dataclass
+ class GPix(CommonMixin):
+ """
+ :ivar urlQRCodePIX: URL do QRCode do PIX que será
+ apresentado na fatura
+ """
+
+ urlQRCodePIX: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 2,
+ "max_length": 2000,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+
+ @dataclass
+ class GFatCentral(CommonMixin):
+ """
+ :ivar CNPJ: CNPJ do Emitente centralizador Informar o CNPJ
+ do emitente do Documento Fiscal
+ :ivar cUF: Código da UF do emitente centralizador Código da
+ UF do emitente do Documento Fiscal. Utilizar a Tabela do
+ IBGE de código de unidades da federação.
+ """
+
+ CNPJ: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{14}",
+ },
+ )
+ cUF: Optional[TcodUfIbge] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+
+ @dataclass
+ class InfNfcomSupl(CommonMixin):
+ """
+ :ivar qrCodNFCom: Texto com o QR-Code para consulta da NFCom
+ """
+
+ qrCodNFCom: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 50,
+ "max_length": 1000,
+ "white_space": "preserve",
+ "pattern": r"((HTTPS?|https?)://.*\?chNFCom=[0-9]{44}&tpAmb=[1-2](&sign=[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1})?)",
+ },
+ )
+
+
+@dataclass
+class TretNfcom(CommonMixin):
+ """
+ Tipo Retorno do Pedido de Autorização de NFCom (Modelo 66)
+
+ :ivar tpAmb: Identificação do Ambiente: 1 - Produção 2 - Homologação
+ :ivar cUF: Identificação da UF
+ :ivar verAplic: Versão do Aplicativo que processou a NFCom
+ :ivar cStat: código do status do retorno da consulta.
+ :ivar xMotivo: Descrição literal do status do do retorno da
+ consulta.
+ :ivar protNFCom: Reposta ao processamento da NFCom
+ :ivar versao:
+ """
+
+ class Meta:
+ name = "TRetNFCom"
+
+ tpAmb: Optional[Tamb] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ cUF: Optional[TcodUfIbge] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ },
+ )
+ verAplic: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 20,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ cStat: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{3}",
+ },
+ )
+ xMotivo: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "min_length": 1,
+ "max_length": 255,
+ "white_space": "preserve",
+ "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}",
+ },
+ )
+ protNFCom: Optional[TprotNfcom] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ },
+ )
+ versao: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"1\.00",
+ },
+ )
+
+
+@dataclass
+class TenviNfcom(CommonMixin):
+ """
+ Tipo Pedido de Concessão de Autorização de NFCom.
+ """
+
+ class Meta:
+ name = "TEnviNFCom"
+
+ idLote: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"[0-9]{1,15}",
+ },
+ )
+ NFCom: List[Tnfcom] = field(
+ default_factory=list,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.portalfiscal.inf.br/nfcom",
+ "min_occurs": 1,
+ "max_occurs": 50,
+ },
+ )
+ versao: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"1\.00",
+ },
+ )
diff --git a/nfelib/nfcom/bindings/v1_0/nfcom_v1_00.py b/nfelib/nfcom/bindings/v1_0/nfcom_v1_00.py
new file mode 100644
index 0000000..3cb55d9
--- /dev/null
+++ b/nfelib/nfcom/bindings/v1_0/nfcom_v1_00.py
@@ -0,0 +1,21 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+from dataclasses import dataclass
+
+from nfelib.nfcom.bindings.v1_0.nfcom_tipos_basico_v1_00 import Tnfcom
+
+__NAMESPACE__ = "http://www.portalfiscal.inf.br/nfcom"
+
+
+@dataclass
+class Nfcom(Tnfcom):
+ """
+ Nota Fiscal Fatura de Comunicação Eletrônica.
+ """
+
+ class Meta:
+ name = "NFCom"
+ namespace = "http://www.portalfiscal.inf.br/nfcom"
diff --git a/nfelib/nfcom/bindings/v1_0/proc_evento_nfcom_v1_00.py b/nfelib/nfcom/bindings/v1_0/proc_evento_nfcom_v1_00.py
new file mode 100644
index 0000000..16a89ed
--- /dev/null
+++ b/nfelib/nfcom/bindings/v1_0/proc_evento_nfcom_v1_00.py
@@ -0,0 +1,23 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+from dataclasses import dataclass
+
+from nfelib.nfcom.bindings.v1_0.evento_nfcom_tipos_basico_v1_00 import (
+ TprocEvento,
+)
+
+__NAMESPACE__ = "http://www.portalfiscal.inf.br/nfcom"
+
+
+@dataclass
+class ProcEventoNfcom(TprocEvento):
+ """
+ Pedido de Registro de Evento de NFCom processado.
+ """
+
+ class Meta:
+ name = "procEventoNFCom"
+ namespace = "http://www.portalfiscal.inf.br/nfcom"
diff --git a/nfelib/nfcom/bindings/v1_0/proc_nfcom_v1_00.py b/nfelib/nfcom/bindings/v1_0/proc_nfcom_v1_00.py
new file mode 100644
index 0000000..0a1acf1
--- /dev/null
+++ b/nfelib/nfcom/bindings/v1_0/proc_nfcom_v1_00.py
@@ -0,0 +1,81 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+from dataclasses import dataclass, field
+from typing import Optional
+
+from nfelib import CommonMixin
+from nfelib.nfcom.bindings.v1_0.nfcom_tipos_basico_v1_00 import (
+ Tnfcom,
+ TprotNfcom,
+)
+
+__NAMESPACE__ = "http://www.portalfiscal.inf.br/nfcom"
+
+
+@dataclass
+class NfcomProc(CommonMixin):
+ """
+ NFCom processada.
+
+ :ivar NFCom:
+ :ivar protNFCom:
+ :ivar versao:
+ :ivar ipTransmissor: IP do transmissor do documento fiscal para o
+ ambiente autorizador
+ :ivar nPortaCon: Porta de origem utilizada na conexão (De 0 a 65535)
+ :ivar dhConexao: Data e Hora da Conexão de Origem
+ """
+
+ class Meta:
+ name = "nfcomProc"
+ namespace = "http://www.portalfiscal.inf.br/nfcom"
+
+ NFCom: Optional[Tnfcom] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "required": True,
+ },
+ )
+ protNFCom: Optional[TprotNfcom] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "required": True,
+ },
+ )
+ versao: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "white_space": "preserve",
+ "pattern": r"1\.00",
+ },
+ )
+ ipTransmissor: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "white_space": "preserve",
+ "pattern": r"(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])",
+ },
+ )
+ nPortaCon: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "pattern": r"[0-9]{1,5}",
+ },
+ )
+ dhConexao: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "white_space": "preserve",
+ "pattern": r"(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))T(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d([\-,\+](0[0-9]|10|11):00|([\+](12):00))",
+ },
+ )
diff --git a/nfelib/nfcom/bindings/v1_0/ret_cons_sit_nfcom_v1_00.py b/nfelib/nfcom/bindings/v1_0/ret_cons_sit_nfcom_v1_00.py
new file mode 100644
index 0000000..b35453d
--- /dev/null
+++ b/nfelib/nfcom/bindings/v1_0/ret_cons_sit_nfcom_v1_00.py
@@ -0,0 +1,23 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+from dataclasses import dataclass
+
+from nfelib.nfcom.bindings.v1_0.cons_sit_nfcom_tipos_basico_v1_00 import (
+ TretConsSitNfcom,
+)
+
+__NAMESPACE__ = "http://www.portalfiscal.inf.br/nfcom"
+
+
+@dataclass
+class RetConsSitNfcom(TretConsSitNfcom):
+ """
+ Schema XML de validação do retorno da consulta da situação atual da NFCom.
+ """
+
+ class Meta:
+ name = "retConsSitNFCom"
+ namespace = "http://www.portalfiscal.inf.br/nfcom"
diff --git a/nfelib/nfcom/bindings/v1_0/ret_cons_stat_serv_nfcom_v1_00.py b/nfelib/nfcom/bindings/v1_0/ret_cons_stat_serv_nfcom_v1_00.py
new file mode 100644
index 0000000..6d13449
--- /dev/null
+++ b/nfelib/nfcom/bindings/v1_0/ret_cons_stat_serv_nfcom_v1_00.py
@@ -0,0 +1,23 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+from dataclasses import dataclass
+
+from nfelib.nfcom.bindings.v1_0.cons_stat_serv_nfcom_tipos_basico_v1_00 import (
+ TretConsStatServ,
+)
+
+__NAMESPACE__ = "http://www.portalfiscal.inf.br/nfcom"
+
+
+@dataclass
+class RetConsStatServNfcom(TretConsStatServ):
+ """
+ Schema XML de validação do Resultado da Consulta do Status do Serviço de NFCom.
+ """
+
+ class Meta:
+ name = "retConsStatServNFCom"
+ namespace = "http://www.portalfiscal.inf.br/nfcom"
diff --git a/nfelib/nfcom/bindings/v1_0/ret_evento_nfcom_v1_00.py b/nfelib/nfcom/bindings/v1_0/ret_evento_nfcom_v1_00.py
new file mode 100644
index 0000000..3b2b1a5
--- /dev/null
+++ b/nfelib/nfcom/bindings/v1_0/ret_evento_nfcom_v1_00.py
@@ -0,0 +1,23 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+from dataclasses import dataclass
+
+from nfelib.nfcom.bindings.v1_0.evento_nfcom_tipos_basico_v1_00 import (
+ TretEvento,
+)
+
+__NAMESPACE__ = "http://www.portalfiscal.inf.br/nfcom"
+
+
+@dataclass
+class RetEventoNfcom(TretEvento):
+ """
+ Schema XML de validação do retorno Pedido de Evento da NFCom.
+ """
+
+ class Meta:
+ name = "retEventoNFCom"
+ namespace = "http://www.portalfiscal.inf.br/nfcom"
diff --git a/nfelib/nfcom/bindings/v1_0/ret_nfcom_v1_00.py b/nfelib/nfcom/bindings/v1_0/ret_nfcom_v1_00.py
new file mode 100644
index 0000000..7f0f2dd
--- /dev/null
+++ b/nfelib/nfcom/bindings/v1_0/ret_nfcom_v1_00.py
@@ -0,0 +1,21 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+from dataclasses import dataclass
+
+from nfelib.nfcom.bindings.v1_0.nfcom_tipos_basico_v1_00 import TretNfcom
+
+__NAMESPACE__ = "http://www.portalfiscal.inf.br/nfcom"
+
+
+@dataclass
+class RetNfcom(TretNfcom):
+ """
+ Schema XML de validação do retorno do NFCom.
+ """
+
+ class Meta:
+ name = "retNFCom"
+ namespace = "http://www.portalfiscal.inf.br/nfcom"
diff --git a/nfelib/nfcom/bindings/v1_0/tipos_geral_nfcom_v1_00.py b/nfelib/nfcom/bindings/v1_0/tipos_geral_nfcom_v1_00.py
new file mode 100644
index 0000000..c3b56ff
--- /dev/null
+++ b/nfelib/nfcom/bindings/v1_0/tipos_geral_nfcom_v1_00.py
@@ -0,0 +1,132 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+from enum import Enum
+
+__NAMESPACE__ = "http://www.portalfiscal.inf.br/nfcom"
+
+
+class Tamb(Enum):
+ """
+ Tipo Ambiente.
+ """
+
+ VALUE_1 = "1"
+ VALUE_2 = "2"
+
+
+class TcorgaoIbge(Enum):
+ """
+ Tipo Código de orgão (UF da tabela do IBGE + 90 SUFRAMA + 91 RFB + 92 BRId)
+ """
+
+ VALUE_11 = "11"
+ VALUE_12 = "12"
+ VALUE_13 = "13"
+ VALUE_14 = "14"
+ VALUE_15 = "15"
+ VALUE_16 = "16"
+ VALUE_17 = "17"
+ VALUE_21 = "21"
+ VALUE_22 = "22"
+ VALUE_23 = "23"
+ VALUE_24 = "24"
+ VALUE_25 = "25"
+ VALUE_26 = "26"
+ VALUE_27 = "27"
+ VALUE_28 = "28"
+ VALUE_29 = "29"
+ VALUE_31 = "31"
+ VALUE_32 = "32"
+ VALUE_33 = "33"
+ VALUE_35 = "35"
+ VALUE_41 = "41"
+ VALUE_42 = "42"
+ VALUE_43 = "43"
+ VALUE_50 = "50"
+ VALUE_51 = "51"
+ VALUE_52 = "52"
+ VALUE_53 = "53"
+ VALUE_90 = "90"
+ VALUE_91 = "91"
+ VALUE_92 = "92"
+ VALUE_93 = "93"
+
+
+class TcodUfIbge(Enum):
+ """
+ Tipo Código da UF da tabela do IBGE.
+ """
+
+ VALUE_11 = "11"
+ VALUE_12 = "12"
+ VALUE_13 = "13"
+ VALUE_14 = "14"
+ VALUE_15 = "15"
+ VALUE_16 = "16"
+ VALUE_17 = "17"
+ VALUE_21 = "21"
+ VALUE_22 = "22"
+ VALUE_23 = "23"
+ VALUE_24 = "24"
+ VALUE_25 = "25"
+ VALUE_26 = "26"
+ VALUE_27 = "27"
+ VALUE_28 = "28"
+ VALUE_29 = "29"
+ VALUE_31 = "31"
+ VALUE_32 = "32"
+ VALUE_33 = "33"
+ VALUE_35 = "35"
+ VALUE_41 = "41"
+ VALUE_42 = "42"
+ VALUE_43 = "43"
+ VALUE_50 = "50"
+ VALUE_51 = "51"
+ VALUE_52 = "52"
+ VALUE_53 = "53"
+
+
+class TmodNfcom(Enum):
+ """
+ Tipo Modelo NFCom.
+ """
+
+ VALUE_62 = "62"
+
+
+class Tuf(Enum):
+ """
+ Tipo Sigla da UF.
+ """
+
+ AC = "AC"
+ AL = "AL"
+ AM = "AM"
+ AP = "AP"
+ BA = "BA"
+ CE = "CE"
+ DF = "DF"
+ ES = "ES"
+ GO = "GO"
+ MA = "MA"
+ MG = "MG"
+ MS = "MS"
+ MT = "MT"
+ PA = "PA"
+ PB = "PB"
+ PE = "PE"
+ PI = "PI"
+ PR = "PR"
+ RJ = "RJ"
+ RN = "RN"
+ RO = "RO"
+ RR = "RR"
+ RS = "RS"
+ SC = "SC"
+ SE = "SE"
+ SP = "SP"
+ TO = "TO"
+ EX = "EX"
diff --git a/nfelib/nfcom/bindings/v1_0/xmldsig_core_schema_v1_01.py b/nfelib/nfcom/bindings/v1_0/xmldsig_core_schema_v1_01.py
new file mode 100644
index 0000000..34ce621
--- /dev/null
+++ b/nfelib/nfcom/bindings/v1_0/xmldsig_core_schema_v1_01.py
@@ -0,0 +1,269 @@
+"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:28:03
+
+Generator: DataclassGenerator
+See: https://xsdata.readthedocs.io/
+"""
+from dataclasses import dataclass, field
+from enum import Enum
+from typing import List, Optional
+
+from nfelib import CommonMixin
+
+__NAMESPACE__ = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass
+class SignatureValueType(CommonMixin):
+ value: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "required": True,
+ "format": "base64",
+ },
+ )
+ Id: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ },
+ )
+
+
+class TtransformUri(Enum):
+ HTTP_WWW_W3_ORG_2000_09_XMLDSIG_ENVELOPED_SIGNATURE = (
+ "http://www.w3.org/2000/09/xmldsig#enveloped-signature"
+ )
+ HTTP_WWW_W3_ORG_TR_2001_REC_XML_C14N_20010315 = (
+ "http://www.w3.org/TR/2001/REC-xml-c14n-20010315"
+ )
+
+
+@dataclass
+class X509DataType(CommonMixin):
+ X509Certificate: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ "format": "base64",
+ },
+ )
+
+
+@dataclass
+class KeyInfoType(CommonMixin):
+ X509Data: Optional[X509DataType] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ Id: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass
+class TransformType(CommonMixin):
+ XPath: List[str] = field(
+ default_factory=list,
+ metadata={
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ )
+ Algorithm: Optional[TtransformUri] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ },
+ )
+
+
+@dataclass
+class TransformsType(CommonMixin):
+ transform: List[TransformType] = field(
+ default_factory=list,
+ metadata={
+ "name": "Transform",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "min_occurs": 2,
+ "max_occurs": 2,
+ },
+ )
+
+
+@dataclass
+class ReferenceType(CommonMixin):
+ transforms: Optional[TransformsType] = field(
+ default=None,
+ metadata={
+ "name": "Transforms",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ digestMethod: Optional["ReferenceType.DigestMethod"] = field(
+ default=None,
+ metadata={
+ "name": "DigestMethod",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ digestValue: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "DigestValue",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ "format": "base64",
+ },
+ )
+ Id: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ },
+ )
+ URI: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ "min_length": 2,
+ },
+ )
+ Type_value: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Type",
+ "type": "Attribute",
+ },
+ )
+
+ @dataclass
+ class DigestMethod(CommonMixin):
+ Algorithm: str = field(
+ init=False,
+ default="http://www.w3.org/2000/09/xmldsig#sha1",
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ },
+ )
+
+
+@dataclass
+class SignedInfoType(CommonMixin):
+ canonicalizationMethod: Optional[
+ "SignedInfoType.CanonicalizationMethod"
+ ] = field(
+ default=None,
+ metadata={
+ "name": "CanonicalizationMethod",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ signatureMethod: Optional["SignedInfoType.SignatureMethod"] = field(
+ default=None,
+ metadata={
+ "name": "SignatureMethod",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ reference: Optional[ReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "Reference",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ Id: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ },
+ )
+
+ @dataclass
+ class CanonicalizationMethod(CommonMixin):
+ Algorithm: str = field(
+ init=False,
+ default="http://www.w3.org/TR/2001/REC-xml-c14n-20010315",
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ },
+ )
+
+ @dataclass
+ class SignatureMethod(CommonMixin):
+ Algorithm: str = field(
+ init=False,
+ default="http://www.w3.org/2000/09/xmldsig#rsa-sha1",
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ },
+ )
+
+
+@dataclass
+class SignatureType(CommonMixin):
+ signedInfo: Optional[SignedInfoType] = field(
+ default=None,
+ metadata={
+ "name": "SignedInfo",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ signatureValue: Optional[SignatureValueType] = field(
+ default=None,
+ metadata={
+ "name": "SignatureValue",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ keyInfo: Optional[KeyInfoType] = field(
+ default=None,
+ metadata={
+ "name": "KeyInfo",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ Id: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass
+class Signature(SignatureType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
diff --git a/nfelib/nfcom/schemas/v1_0/consSitNFComTiposBasico_v1.00.xsd b/nfelib/nfcom/schemas/v1_0/consSitNFComTiposBasico_v1.00.xsd
new file mode 100644
index 0000000..11a48e3
--- /dev/null
+++ b/nfelib/nfcom/schemas/v1_0/consSitNFComTiposBasico_v1.00.xsd
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+ Tipo Pedido de Consulta da Situação Atual da NFCom
+
+
+
+
+ Identificação do Ambiente:
+1 - Produção;
+2 - Homologação;
+
+
+
+
+ Serviço Solicitado
+
+
+
+
+ Chaves de acesso do NFCom
+
+
+
+
+
+
+
+ Tipo Retorno de Pedido de Consulta da Situação Atual de NFCom
+
+
+
+
+ Identificação do Ambiente:
+1 - Produção
+2 - Homologação
+
+
+
+
+ Versão do Aplicativo que processou o NFCom
+
+
+
+
+ Código do status da mensagem enviada.
+
+
+
+
+ Descrição literal do status do serviço solicitado.
+
+
+
+
+ código da UF de atendimento
+
+
+
+
+
+
+
+ Retornar protNFCom da versão correspondente da NFCom autorizada
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Retornar procEventoNFCom da versão correspondente do evento NFCom autorizado
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo Versão do Consulta situação de NFCom - 1.00
+
+
+
+
+
+
diff --git a/nfelib/nfcom/schemas/v1_0/consSitNFCom_v1.00.xsd b/nfelib/nfcom/schemas/v1_0/consSitNFCom_v1.00.xsd
new file mode 100644
index 0000000..58e93a8
--- /dev/null
+++ b/nfelib/nfcom/schemas/v1_0/consSitNFCom_v1.00.xsd
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+ Schema de validação XML dp Pedido de Consulta da Situação Atual da NFCom.
+
+
+
diff --git a/nfelib/nfcom/schemas/v1_0/consStatServNFComTiposBasico_v1.00.xsd b/nfelib/nfcom/schemas/v1_0/consStatServNFComTiposBasico_v1.00.xsd
new file mode 100644
index 0000000..4130b59
--- /dev/null
+++ b/nfelib/nfcom/schemas/v1_0/consStatServNFComTiposBasico_v1.00.xsd
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+ Tipo Pedido de Consulta do Status do Serviço NFCom
+
+
+
+
+ Identificação do Ambiente:
+1 - Produção
+2 - Homologação
+
+
+
+
+ Serviço Solicitado
+
+
+
+
+
+
+
+ Tipo Resultado da Consulta do Status do Serviço NFCom
+
+
+
+
+ Identificação do Ambiente:
+1 - Produção
+2 - Homologação
+
+
+
+
+ Versão do Aplicativo que processou a NFCom
+
+
+
+
+
+
+
+
+
+ Código do status da mensagem enviada.
+
+
+
+
+ Descrição literal do status do serviço solicitado.
+
+
+
+
+ Código da UF responsável pelo serviço
+
+
+
+
+ AAAA-MM-DDTHH:MM:SS TZD
+
+
+
+
+ Tempo médio de resposta do serviço (em segundos) dos últimos 5 minutos
+
+
+
+
+
+
+
+
+
+ AAAA-MM-DDTHH:MM:SS TZD. Deve ser preenchida com data e hora previstas para o retorno dos serviços prestados.
+
+
+
+
+ Campo observação utilizado para incluir informações ao contribuinte
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo Versão do Consulta do Status do Serviço NFCom
+
+
+
+
+
+
diff --git a/nfelib/nfcom/schemas/v1_0/consStatServNFCom_v1.00.xsd b/nfelib/nfcom/schemas/v1_0/consStatServNFCom_v1.00.xsd
new file mode 100644
index 0000000..9c621a2
--- /dev/null
+++ b/nfelib/nfcom/schemas/v1_0/consStatServNFCom_v1.00.xsd
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+ Schema XML de validação do Pedido de Consulta do Status do Serviço NFCom
+
+
+
diff --git a/nfelib/nfcom/schemas/v1_0/evCancNFCom_v1.00.xsd b/nfelib/nfcom/schemas/v1_0/evCancNFCom_v1.00.xsd
new file mode 100644
index 0000000..38af926
--- /dev/null
+++ b/nfelib/nfcom/schemas/v1_0/evCancNFCom_v1.00.xsd
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ Schema XML de validação do evento do cancelamento
+110111
+
+
+
+
+
+ Descrição do Evento - “Cancelamento”
+
+
+
+
+
+
+
+
+
+
+ Número do Protocolo de Status da NFCom
+
+
+
+
+ Justificativa do Cancelamento
+
+
+
+
+
+
diff --git a/nfelib/nfcom/schemas/v1_0/eventoNFComTiposBasico_v1.00.xsd b/nfelib/nfcom/schemas/v1_0/eventoNFComTiposBasico_v1.00.xsd
new file mode 100644
index 0000000..32ffefe
--- /dev/null
+++ b/nfelib/nfcom/schemas/v1_0/eventoNFComTiposBasico_v1.00.xsd
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+ Tipo Evento
+
+
+
+
+
+
+
+ Código do órgão de recepção do Evento.
+
+
+
+
+ Identificação do Ambiente:
+1 - Produção
+2 - Homologação
+
+
+
+
+ CNPJ do emissor do evento
+
+
+
+
+ Chave de Acesso da NFCom vinculada ao evento
+
+
+
+
+ Data e Hora do Evento, formato UTC (AAAA-MM-DDThh:mm:ssTZD)
+
+
+
+
+ Tipo do Evento
+
+
+
+
+
+
+
+
+
+
+ Seqüencial do evento para o mesmo tipo de evento. Para maioria dos eventos será 1, nos casos em que possa existir mais de um evento o autor do evento deve numerar de forma seqüencial.
+
+
+
+
+
+
+
+
+
+
+ Detalhamento do evento específico
+
+
+
+
+
+ XML do evento
+Insira neste local o XML específico do tipo de evento (cancelamento, encerramento, registro de passagem).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Identificador da TAG a ser assinada, a regra de formação do Id é:
+“ID” + tpEvento + chave da NF-3e + nSeqEvento (preencher com zeros a esquerda para compor 3 digitos)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo retorno do Evento
+
+
+
+
+
+
+
+ Identificação do Ambiente:
+1 - Produção
+2 - Homologação
+
+
+
+
+ Versão do Aplicativo que recebeu o Evento
+
+
+
+
+ Código do órgão de recepção do Evento. Utilizar a Tabela do IBGE extendida, utilizar 90 para identificar SUFRAMA
+
+
+
+
+ Código do status da registro do Evento
+
+
+
+
+ Descrição literal do status do registro do Evento
+
+
+
+
+ Chave de Acesso NFCom vinculada
+
+
+
+
+ Tipo do Evento vinculado
+
+
+
+
+
+
+
+
+
+
+ Descrição do Evento
+
+
+
+
+
+
+
+
+
+
+ Seqüencial do evento
+
+
+
+
+
+
+
+
+
+
+ Data e Hora de do recebimento do evento ou do registro do evento formato AAAA-MM-DDThh:mm:ssTZD
+
+
+
+
+ Número do protocolo de registro do evento
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo procEvento
+
+
+
+
+
+
+
+
+ IP do transmissor do documento fiscal para o ambiente autorizador
+
+
+
+
+ Porta de origem utilizada na conexão (De 0 a 65535)
+
+
+
+
+
+
+
+
+
+ Data e Hora da Conexão de Origem
+
+
+
+
+
+ Tipo Versão do Evento
+
+
+
+
+
+
+
diff --git a/nfelib/nfcom/schemas/v1_0/eventoNFCom_v1.00.xsd b/nfelib/nfcom/schemas/v1_0/eventoNFCom_v1.00.xsd
new file mode 100644
index 0000000..8fbd1a3
--- /dev/null
+++ b/nfelib/nfcom/schemas/v1_0/eventoNFCom_v1.00.xsd
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+ Schema XML de validação do Pedido de Registro de Evento da NFCom
+
+
+
diff --git a/nfelib/nfcom/schemas/v1_0/nfcomTiposBasico_v1.00.xsd b/nfelib/nfcom/schemas/v1_0/nfcomTiposBasico_v1.00.xsd
new file mode 100644
index 0000000..35199c6
--- /dev/null
+++ b/nfelib/nfcom/schemas/v1_0/nfcomTiposBasico_v1.00.xsd
@@ -0,0 +1,2909 @@
+
+
+
+
+
+
+
+ Tipo Nota Fiscal Fatura de Comunicação
+
+
+
+
+ Informações da NFCom
+
+
+
+
+
+ Identificação da NFCom
+
+
+
+
+
+ Código da UF de emissão e autorização da NFCom
+ Código da UF de emissão e autorização do Documento Fiscal. Utilizar a
+Tabela do IBGE de código de unidades da federação.
+
+
+
+
+ Tipo do Ambiente
+ 1 - Produção;
+2 - Homologação
+
+
+
+
+ Modelo da NFCom
+ Utilizar o código 62 para identificação da NFCom
+
+
+
+
+ Série do documento fiscal
+ Informar a série do documento fiscal (informar zero para série única).
+
+
+
+
+ Número do documento fiscal
+ Número que identifica o documento fiscal 1 a 999999999.
+
+
+
+
+ Código numérico que compõe a Chave de Acesso.
+ Código aleatório gerado pelo emitente, com o objetivo de evitar acessos indevidos ao documento.
+
+
+
+
+
+
+
+
+
+
+ Digito verificador da chave de acesso
+ Informar o dígito de controle da chave de acesso documento fiscal, que deve ser calculado com a aplicação do algoritmo módulo 11 (base 2,9) da chave de acesso.
+
+
+
+
+
+
+
+
+
+
+ Data e hora de emissão do documento fiscal
+ Formato AAAA-MM-DDTHH:MM:DD TZD
+
+
+
+
+ Forma de emissão do Documento Fiscal
+ 1 - Normal
+; 2 - Contingência
+
+
+
+
+ Identificação do número do Site do Autorizador de recepção da NFCom
+ Se o autorizador da NFCom possuir apenas um site deverá ser informado com Zero (0), em caso de Autorizador trabalhar com múltiplos sites indicar o número do site para qual foi endereçada a NFCOM (1 a 9).
+
+Observação: o ambiente autorizador que trabalhar com mais de um Site deverá divulgar para cada endereço de site qual número correspondente de nSiteAutoriz o contribuinte pode usar
+
+
+
+
+
+
+
+
+
+
+ Código do município de ocorrência do fato gerador
+
+
+
+
+ Finalidade de emissão da NFCom
+ 0- NFCom Normal;
+3 - NFCom de Substituição;
+4 - NFCom de Ajuste;
+
+
+
+
+ Tipo de Faturamento da NFCom
+ 0- Faturamento Normal; 1 - Faturamento centralizado; 2 - Cofaturamento
+
+
+
+
+ Versão do processo de emissão
+ Informar a versão do aplicativo emissor de NFCom.
+
+
+
+
+
+
+
+
+
+
+ Indicador de serviço pré-pago
+ 1 – Serviço pré-pago (informar a tag somente se a nota for referente a um serviço exclusivamente pré-pago)
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicador de Sessão de Meios de Rede.
+ Uma vez informado (valor = 1), essa tag dispensa geração do grupo Fatura.
+Apenas para notas dos tipos Normal e Substituição com tipo de faturamento normal
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicador de nota de entrada
+ 1 – Informar quando for nota de ajuste e possuir itens com CFOP de entrada
+
+
+
+
+
+
+
+
+
+
+
+
+ Informar apenas
+para tpEmis diferente de 1
+
+
+
+ Data e Hora da entrada em contingência
+ Informar a data e hora no formato AAAA-MM-DDTHH:MM:SS
+
+
+
+
+ Justificativa da entrada em contingência
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Identificação do Emitente do documento fiscal
+
+
+
+
+
+ CNPJ do emitente
+ Informar zeros não significativos
+
+
+
+
+ Inscrição Estadual do emitente
+
+
+
+
+ Inscrição Estadual Virtual do emitente na UF de Destino da partilha (IE Virtual)
+
+
+
+
+
+
+
+ Código do Regime Tributário
+ Informar: 1=Simples Nacional;
+2=Simples Nacional, excesso sublimite de receita bruta;
+3=Regime Normal.
+
+
+
+
+
+ Razão social ou Nome do emitente
+
+
+
+
+
+
+
+
+
+
+ Nome fantasia do emitente
+
+
+
+
+
+
+
+
+
+
+ Endereço do emitente
+
+
+
+
+
+
+
+ Identificação do destinatário / assinante
+
+
+
+
+
+ Razão social ou Nome do destinatário
+
+
+
+
+
+
+
+
+
+
+
+ Número do CNPJ
+ Informar os zeros não significativos.
+
+
+
+
+ Número do CPF
+ Informar os zeros não significativos.
+
+
+
+
+ Identificação do destinatário outros
+ Identificação do destinatário não obrigado a inscrição do CPF tais como estrangeiro, indígena e quilombola;
+Em caso de não contar CPF do assinante, informar o RG
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicador da IE do Destinatário
+ 1 - Contribuinte ICMS (informar a IE do destinatário);
+
+2 - Contribuinte isento de Inscrição no cadastro de Contribuintes do ICMS;
+
+ 9 - Não Contribuinte, que pode ou não possuir Inscrição Estadual no Cadastro de Contribuintes do ICMS.
+
+Nota: No caso de Contribuinte Isento de Inscrição (indIEDest=2) informar a tag IE do destinatário com o literal ISENTO.
+
+
+
+
+
+ Inscrição Estadual do destinatário
+
+
+
+
+ Inscrição Municipal
+
+
+
+
+
+
+
+
+
+
+ Endereço do destinatário / assinante
+
+
+
+
+
+
+
+ Dados do assinante
+
+
+
+
+
+ Código único de Identificação do assinante
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo de assinante
+ 1-Comercial;
+2-Industrial;
+3-Residencial/Pessoa Física;
+4-Produtor Rural;
+5-Órgão da administração pública estadual direta e suas fundações e autarquias, quando mantidas pelo poder público estadual e regidas por normas de direito público, nos termos do Convênio ICMS 107/95;
+6-Prestador de serviço de telecomunicação responsável pelo recolhimento do imposto incidente sobre a cessão dos meios de rede do prestador do serviço ao usuário final, nos termos do Convênio ICMS 17/13 ;
+7-Missões Diplomáticas, Repartições Consulares e Organismos Internacionais, nos termos do Convênio ICMS 158/94 ;
+8-Igrejas e Templos de qualquer natureza ;
+99-Outros não especificados anteriormente
+
+
+
+
+ Tipo de serviço utilizado
+ 1-Telefonia; 2-Comunicação de dados; 3-TV por Assinatura;4 - Provimento de acesso à Internet; 5-Multimídia; 6-Outros; 7-Varios;
+
+
+
+
+ Número do Contrato do assinante
+
+
+
+
+
+
+
+
+
+
+
+
+ Data de início do contrato
+ Formato AAAA-MM-DD
+
+
+
+
+ Data de término do contrato
+ Formato AAAA-MM-DD
+
+
+
+
+ Identifica o terminal principal do contrato
+Sequencia XML
+
+
+
+ Número do Terminal Principal do serviço contratado
+ Em se tratando de plano de prestação de serviço telefônico corporativo, familiar ou similares, informar o número do terminal telefônico principal do plano.
+
+
+
+
+
+
+
+
+
+
+ Código da UF de habilitação do terminal
+ Utilizar a
+Tabela do IBGE de código de unidades da federação.
+
+
+
+
+
+ Identifica os terminais adicionais do contrato
+Sequencia XML
+
+
+
+ Número dos Terminais adicionais do serviço contratado
+
+
+
+
+
+
+
+
+
+
+
+ Código da UF de habilitação do terminal
+
+
+
+
+
+
+
+
+ Conjunto de informações da NFCom
+
+
+
+ Grupo de informações da substituição
+
+
+
+
+
+
+ Chave de acesso da NFCom original
+
+
+
+
+ Informação da NF modelo 21/22 referenciada
+
+
+
+
+
+ CNPJ do Emitente
+ Informar o CNPJ do emitente do Documento Fiscal
+
+
+
+
+ Modelo do documento
+ 21 ou 22
+
+
+
+
+ Serie do documento fiscal
+
+
+
+
+
+
+
+
+
+
+ Número do documento fiscal
+
+
+
+
+ Ano e mês da emissão da NF (AAAAMM)
+
+
+
+
+ Hash do registro no arquivo do convênio 115
+ Campo poderá ser exigido a critério da UF – campo 36 do arquivo MESTRE DE DOCUMENTO FISCAL (Anexo Único, item 5 do Conv. 115/03)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Motivo da substituição
+ 01 – Erro de Preço
+02 – Erro Cadastral
+03 – Decisão Judicial
+04 - Erro de Tributação
+05 - Descontinuidade do Serviço
+
+
+
+
+
+
+
+ Grupo de Informações do Cofaturamento
+
+
+
+
+
+ Chave de acesso da NFCom emitida pela Operadora Local
+
+
+
+
+
+
+
+ Detalhamento de Produtos e Serviços
+
+
+
+
+
+ Dados do Produto ou Serviço
+
+
+
+
+
+ Código do produto ou serviço.
+
+
+
+
+
+
+
+
+
+
+ Descrição do produto ou serviço
+
+
+
+
+
+
+
+
+
+
+ Código de classificação
+ Tabela de Classificação de Item da NFCom (validar por RV)
+
+
+
+
+
+
+
+
+
+
+
+
+ CFOP
+ Utilizar Tabela de CFOP.
+
+
+
+
+ CNPJ da operadora LD
+ Informar o CNPJ da operadora LD que irá lançar o item de cofaturamento em nota do tipo faturamento 2
+
+
+
+
+ Unidade Básica de Medida
+ 1=Minuto
+; 2=MB;
+3=GB;
+4=UN
+
+
+
+
+ Quantidade Faturada
+ Informar a quantidade de comercialização do produto .
+
+
+
+
+ Valor unitário do item
+
+
+
+
+
+
+
+ Valor do Desconto
+
+
+
+
+ Outras despesas acessórias
+
+
+
+
+ Valor total do item
+
+
+
+
+
+
+
+ Data de expiração de crédito
+ Formato AAAA-MM-DD.
+
+
+
+
+ Indicador de devolução do valor do item
+ 1 – Devolução do valor do item
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tributos incidentes no Produto ou Serviço
+
+
+
+
+
+
+
+
+
+
+ Prestação sujeito à tributação normal do ICMS
+ Tributada integralmente
+
+
+
+
+
+ classificação Tributária do Serviço
+ 00 - tributação normal ICMS
+
+
+
+
+
+
+
+
+
+
+ Valor da BC do ICMS
+
+
+
+
+ Alíquota do ICMS
+
+
+
+
+ Valor do ICMS
+
+
+
+
+ Sequencia XML
+
+
+
+ Percentual de ICMS relativo ao Fundo de Combate à Pobreza (FCP).
+
+
+
+
+ Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
+
+
+
+
+
+
+
+
+ Prestação sujeito à tributação com redução de BC do ICMS
+
+
+
+
+
+ Classificação Tributária do serviço
+ 20 - tributação com BC reduzida do ICMS
+
+
+
+
+
+
+
+
+
+
+ Percentual de redução da BC
+
+
+
+
+ Valor da BC do ICMS
+
+
+
+
+ Alíquota do ICMS
+
+
+
+
+ Valor do ICMS
+
+
+
+
+ Sequencia XML
+
+
+
+ Valor do ICMS de desoneração
+
+
+
+
+ Código de Benefício Fiscal na UF aplicado ao item
+ Código de Benefício Fiscal utilizado pela UF, aplicado ao
+ item.
+
+
+
+
+
+
+
+
+
+
+
+
+ Sequencia XML
+
+
+
+ Percentual de ICMS relativo ao Fundo de Combate à Pobreza (FCP).
+
+
+
+
+ Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
+
+
+
+
+
+
+
+
+ Tributação Isenta, Não tributada
+
+
+
+
+
+ Classificação Tributária do serviço
+ 40=Isenta; 41=Não tributada;
+
+
+
+
+
+
+
+
+
+
+
+
+ Sequencia XML
+
+
+
+ Valor do ICMS de desoneração
+
+
+
+
+ Código de Benefício Fiscal na UF aplicado ao item
+ Código de Benefício Fiscal utilizado pela UF, aplicado ao
+item.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tributação com Diferimento
+ A exigência do preenchimento das informações do ICMS diferido fica a critério de cada UF
+
+
+
+
+
+ Classificação Tributária do serviço
+ Tributação pelo ICMS 51 - Diferimento
+
+
+
+
+
+
+
+
+
+
+ Sequencia XML
+
+
+
+ Valor do ICMS de desoneração
+
+
+
+
+ Código de Benefício Fiscal na UF aplicado ao item
+ Código de Benefício Fiscal utilizado pela UF, aplicado ao
+item.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICMS Outros
+
+
+
+
+
+ Classificação Tributária do Serviço
+ 90 - ICMS outros
+
+
+
+
+
+
+
+
+
+
+ Sequência XML
+
+
+
+ Valor da BC do ICMS
+
+
+
+
+ Alíquota do ICMS
+
+
+
+
+ Valor do ICMS
+
+
+
+
+
+ Sequencia XML
+
+
+
+ Valor do ICMS de desoneração
+
+
+
+
+ Código de Benefício Fiscal na UF aplicado ao item
+ Código de Benefício Fiscal utilizado pela UF, aplicado ao
+item.
+
+
+
+
+
+
+
+
+
+
+
+
+ Sequencia XML
+
+
+
+ Percentual de ICMS relativo ao Fundo de Combate à Pobreza (FCP).
+
+
+
+
+ Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
+
+
+
+
+
+
+
+
+ Simples Nacional
+
+
+
+
+
+ Classificação Tributária do Serviço
+ 90 - Outros SN
+
+
+
+
+
+
+
+
+
+
+ Indica se o contribuinte é Simples Nacional 1=Sim
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Informações do ICMS de partilha com a UF destinatária
+
+
+
+
+
+ Valor da BC do ICMS na UF de destino
+
+
+
+
+ Percentual do ICMS relativo ao Fundo de Combate à pobreza (FCP) na UF de destino
+ Alíquota adotada nas operações internas na UF do destinatário
+
+
+
+
+ Alíquota interna da UF de destino
+ Alíquota adotada nas operações internas na UF do destinatário
+
+
+
+
+ Valor do ICMS relativo ao Fundo de Combate á Pobreza (FCP) da UF de destino
+
+
+
+
+ Valor do ICMS de partilha para a UF de destino
+
+
+
+
+ Valor do ICMS de partilha para a UF de emissão
+
+
+
+
+ Código de Benefício Fiscal na UF destino aplicado ao item
+ Código de Benefício Fiscal utilizado pela UF, aplicado ao
+item.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sem Situação Tributária para o ICMS
+ Informar para itens que não tenham nenhuma relação com o ICMS.
+Quando informado o item NÃO PODE ter CFOP informado
+
+Se informado esse grupo o schema não permite informar nenhum dos grupos de ICMSXX
+
+
+
+
+
+
+
+
+
+
+
+ Dados do PIS
+
+
+
+
+
+ classificação Tributária do PIS
+ 01 – Tributável com alíquota básica
+02 – Tributável com alíquota diferenciada
+06 – Tributável com alíquota zero
+07 – Operação isenta de contribuição
+08 – Operação sem incidência da contribuição
+09 – Operação com suspensão da contribuição
+49 – Outras operações de saída
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Valor da BC do PIS
+
+
+
+
+ Alíquota do PIS (em percentual)
+
+
+
+
+ Valor do PIS
+
+
+
+
+
+
+
+ Dados do COFINS
+
+
+
+
+
+ classificação Tributária do COFINS
+ 01 – Tributável com alíquota básica
+02 – Tributável com alíquota diferenciada
+06 – Tributável com alíquota zero
+07 – Operação isenta de contribuição
+08 – Operação sem incidência da contribuição
+09 – Operação com suspensão da contribuição
+49 – Outras operações de saída
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Valor da BC do COFINS
+
+
+
+
+ Alíquota do COFINS (em percentual)
+
+
+
+
+ Valor do COFINS
+
+
+
+
+
+
+
+ Dados do FUST
+
+
+
+
+
+ Valor da BC do FUST
+
+
+
+
+ Alíquota do FUST (em percentual)
+
+
+
+
+ Valor do FUST
+
+
+
+
+
+
+
+ Dados do FUNTTEL
+
+
+
+
+
+ Valor da BC do FUNTTEL
+
+
+
+
+ Alíquota do FUNTTEL (em percentual)
+
+
+
+
+ Valor do FUNTEL
+
+
+
+
+
+
+
+ Grupo de informações de retenção de tributos federais
+
+
+
+
+
+ Valor do PIS retido
+
+
+
+
+ Valor do COFNS retido
+
+
+
+
+ Valor da CSLL retida
+
+
+
+
+ Base de cálculo do IRRF
+
+
+
+
+ Valor do IRRF retido
+
+
+
+
+
+
+
+
+
+
+
+
+ Grupo Processo referenciado
+ Este grupo somente deverá ser preenchido quando houver processo judicial ou administrativo que altere valores.
+
+
+
+
+
+ Valor unitário do item
+ Informar o valor sem a influência da decisão judicial/administrativa.
+
+
+
+
+
+
+
+ Quantidade Faturada
+ Informar a quantidade de comercialização do produto .
+
+
+
+
+ Valor total do item
+
+
+
+
+
+
+
+ Valor do Desconto
+
+
+
+
+ Outras despesas acessórias
+
+
+
+
+ Indicador de devolução do valor do item
+ 1 – Devolução do valor do item
+
+
+
+
+
+
+
+
+
+
+
+
+ Valor da BC do ICMS
+
+
+
+
+ Alíquota do ICMS
+
+
+
+
+ Valor do ICMS
+
+
+
+
+ Valor do PIS
+
+
+
+
+ Valor do COFINS
+
+
+
+
+ Valor do Fundo de Combate à Pobreza (FCP).
+
+
+
+
+ Grupo identificador do Processo
+
+
+
+
+
+ Tipo de Processo
+ 0 - SEFAZ; 1 - Justiça Federal; 2 - Justiça Estadual
+
+
+
+
+ Número do Processo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Grupo de Informações detalhadas de item de cClass de Ressarcimento
+
+
+
+
+
+ Tipo de Ressarcimento
+ 1 - Cobrança Indevida
+2 - Interrupção
+99 - Outros
+
+
+
+
+ Data de referencia
+ Formato AAAA-MM-DD
+
+
+
+
+ Número do Processo
+
+
+
+
+
+
+
+
+
+
+ Número do protocolo de reclamação
+
+
+
+
+
+
+
+
+
+
+ Observações sobre o processo de ressarcimento
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Informações adicionais do produto (norma referenciada, informações complementares, etc)
+
+
+
+
+
+
+
+
+
+
+
+ Número do item da NFCom
+
+
+
+
+
+
+
+
+
+
+ Chave de Acesso da NFCom anterior
+ Informar chave de acesso de referencia anterior
+TAG OPCIONAL, DEVE SER INFORMADA APENAS NOS CASOS PREVISTOS DE NOTA ANTERIOR REFERENCIADA
+
+
+
+
+ Número do item da NFCom anterior
+ Informar nro do item da chave de acesso de referencia anterior
+
+TAG OPCIONAL, DEVE SER INFORMADA APENAS NOS CASOS PREVISTOS DE NOTA ANTERIOR REFERENCIADA
+
+
+
+
+
+
+
+
+
+
+
+
+ Dados dos totais da NFCom
+
+
+
+
+
+ Valor Total dos produtos e serviços
+
+
+
+
+ Totais referentes ao ICMS
+
+
+
+
+
+ BC do ICMS
+
+
+
+
+ Valor Total do ICMS
+
+
+
+
+ Valor Total do ICMS desonerado
+
+
+
+
+ Valor Total do FCP (Fundo de Combate à Pobreza).
+
+
+
+
+
+
+
+ Valor do COFINS
+
+
+
+
+ Valor do PIS
+
+
+
+
+ Valor do FUNTTEL
+
+
+
+
+ Valor do FUST
+
+
+
+
+ Total da retenção de tributos federais
+
+
+
+
+
+ Valor do PIS retido
+
+
+
+
+ Valor do COFNS retido
+
+
+
+
+ Valor da CSLL retida
+
+
+
+
+ Valor do IRRF retido
+
+
+
+
+
+
+
+ Valor Total do Desconto
+
+
+
+
+ Outras Despesas acessórias
+
+
+
+
+ Valor Total da NFCom
+
+
+
+
+
+
+
+ Grupo de informações do programa de fidelidade do assinante
+
+
+
+
+
+ Saldo de pontos do cliente na data de referência
+
+
+
+
+
+
+
+
+
+
+
+
+ Data de aferição do saldo de pontos
+ Formato AAAA-MM-DD
+
+
+
+
+ Qtd de pontos resgatados na data de referência
+
+
+
+
+
+
+
+
+
+
+
+
+ Data de resgate dos pontos
+ Formato AAAA-MM-DD
+
+
+
+
+
+
+
+
+ Grupo de informações de controle da Fatura
+
+
+
+
+
+ Ano e mês referência do faturamento (AAAAMM)
+
+
+
+
+ Data de vencimento da fatura
+ Formato AAAA-MM-DD
+
+
+
+
+ Sequencia XML
+
+
+
+ Período de uso inicial
+ Formato AAAA-MM-DD.
+
+
+
+
+ Período de uso final
+ Formato AAAA-MM-DD.
+
+
+
+
+
+ Linha digitável do código de barras
+
+
+
+
+
+
+
+
+
+
+
+
+ Código de autorização débito em conta
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Número do banco para débito em conta
+
+
+
+
+
+
+
+
+
+
+ Número da agência bancária para débito em conta
+
+
+
+
+
+
+
+
+
+
+
+ Endereço de entrega da fatura.
+ Informar se diferente do endereço do destinatário
+
+
+
+
+ Grupo de informações do PIX
+
+
+
+
+
+ URL do QRCode do PIX que será apresentado na fatura
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Grupo de informações do Faturamento Centralizado
+
+
+
+
+
+ CNPJ do Emitente centralizador
+ Informar o CNPJ do emitente do Documento Fiscal
+
+
+
+
+ Código da UF do emitente centralizador
+ Código da UF do emitente do Documento Fiscal. Utilizar a
+Tabela do IBGE de código de unidades da federação.
+
+
+
+
+
+
+
+
+
+ Autorizados para download do XML do DF-e
+ Informar CNPJ ou CPF. Preencher os zeros não significativos.
+
+
+
+
+
+
+ CNPJ do autorizado
+ Informar zeros não significativos
+
+
+
+
+ CPF do autorizado
+ Informar zeros não significativos
+
+
+
+
+
+
+
+
+ Informações Adicionais
+
+
+
+
+ Sequencia XML
+
+
+
+ Informações adicionais de interesse do Fisco
+ Norma referenciada, informações complementares, etc
+
+
+
+
+
+
+
+
+
+
+ Informações complementares de interesse do Contribuinte
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Informações do Responsável Técnico pela emissão do DF-e
+
+
+
+
+
+ Versão do leiaute
+
+
+
+
+ Identificador da tag a ser assinada
+ Informar a chave de acesso da NFCom e precedida do literal "NFCom"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Informações suplementares da NFCom
+
+
+
+
+
+ Texto com o QR-Code para consulta da NFCom
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo Pedido de Concessão de Autorização de NFCom
+
+
+
+
+
+
+
+
+
+ Tipo Dados do Endereço
+
+
+
+
+ Logradouro
+
+
+
+
+
+
+
+
+
+
+ Número
+
+
+
+
+
+
+
+
+
+
+ Complemento
+
+
+
+
+
+
+
+
+
+
+ Bairro
+
+
+
+
+
+
+
+
+
+
+ Código do município (utilizar a tabela do IBGE)
+
+
+
+
+ Nome do município
+
+
+
+
+
+
+
+
+
+
+ CEP
+ Informar zeros não significativos
+
+
+
+
+
+
+
+
+
+
+ Sigla da UF
+
+
+
+
+ Telefone
+
+
+
+
+
+
+
+
+
+
+ Endereço de E-mail
+
+
+
+
+
+
+ Tipo Dados do Endereço Destinatario
+
+
+
+
+ Logradouro
+
+
+
+
+
+
+
+
+
+
+ Número
+
+
+
+
+
+
+
+
+
+
+ Complemento
+
+
+
+
+
+
+
+
+
+
+ Bairro
+
+
+
+
+
+
+
+
+
+
+ Código do município (utilizar a tabela do IBGE)
+
+
+
+
+ Nome do município
+
+
+
+
+
+
+
+
+
+
+ CEP
+ Informar zeros não significativos
+
+
+
+
+
+
+
+
+
+
+ Sigla da UF
+
+
+
+
+ Código do país
+ Utilizar a tabela do BACEN
+
+
+
+
+
+
+
+
+
+
+ Nome do país
+
+
+
+
+
+
+
+
+
+
+ Telefone
+
+
+
+
+
+
+
+
+
+
+ Endereço de E-mail
+
+
+
+
+
+
+ Tipo Dados do Endereço
+
+
+
+
+ Logradouro
+
+
+
+
+
+
+
+
+
+
+ Número
+
+
+
+
+
+
+
+
+
+
+ Complemento
+
+
+
+
+
+
+
+
+
+
+ Bairro
+
+
+
+
+
+
+
+
+
+
+ Código do município (utilizar a tabela do IBGE), informar 9999999 para operações com o exterior.
+
+
+
+
+ Nome do município, informar EXTERIOR para operações com o exterior.
+
+
+
+
+
+
+
+
+
+
+ CEP
+ Informar os zeros não significativos
+
+
+
+
+
+
+
+
+
+
+ Sigla da UF, informar EX para operações com o exterior.
+
+
+
+
+ Código do país
+ Utilizar a tabela do BACEN
+
+
+
+
+
+
+
+
+
+
+ Nome do país
+
+
+
+
+
+
+
+
+
+
+ Telefone
+
+
+
+
+
+
+
+
+
+
+ Endereço de E-mail
+
+
+
+
+
+
+ Tipo Protocolo de status resultado do processamento da NFCom (Modelo 66)
+
+
+
+
+ Dados do protocolo de status
+
+
+
+
+
+ Identificação do Ambiente:
+1 - Produção
+2 - Homologação
+
+
+
+
+ Versão do Aplicativo que processou a NFCom
+
+
+
+
+ Chave de acesso da NFCom
+
+
+
+
+ Data e hora de processamento, no formato AAAA-MM-DDTHH:MM:SS TZD.
+
+
+
+
+ Número do Protocolo de Status da NFCom.
+
+
+
+
+ Digest Value da NFCom processado. Utilizado para conferir a integridade da NFCom original.
+
+
+
+
+ Código do status da NFCom.
+
+
+
+
+
+
+
+ Descrição literal do status da NFCom.
+
+
+
+
+
+
+
+
+ Mensagem do Fisco
+
+
+
+
+
+ Código do status da mensagem do fisco
+
+
+
+
+
+
+
+ Mensagem do Fisco
+
+
+
+
+
+
+
+
+
+
+
+ Tipo Retorno do Pedido de Autorização de NFCom (Modelo 66)
+
+
+
+
+ Identificação do Ambiente:
+1 - Produção
+2 - Homologação
+
+
+
+
+ Identificação da UF
+
+
+
+
+ Versão do Aplicativo que processou a NFCom
+
+
+
+
+ código do status do retorno da consulta.
+
+
+
+
+ Descrição literal do status do do retorno da consulta.
+
+
+
+
+ Reposta ao processamento da NFCom
+
+
+
+
+
+
+
+ Tipo Retorno do recibo de envio do lote de NFCom (Modelo 66)
+
+
+
+
+ Identificação do Ambiente:
+1 - Produção
+2 - Homologação
+
+
+
+
+ Identificação da UF
+
+
+
+
+ Versão do Aplicativo que processou a NFCom
+
+
+
+
+ código do status do retorno da consulta.
+
+
+
+
+ Descrição literal do status do do retorno da consulta.
+
+
+
+
+ Dados do Recibo do Lote
+
+
+
+
+
+ Número do Recibo
+
+
+
+
+ Data e hora do recebimento, no formato AAAA-MM-DDTHH:MM:SS TZD
+
+
+
+
+ Tempo médio de resposta do serviço (em segundos) dos últimos 5 minutos
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo Dados do Imposto NFCom
+
+
+
+
+ Tipo Dados da Empresa de Software
+
+
+
+
+
+ CNPJ da pessoa jurídica desenvolvedora do sistema utilizado na emissão do documento fiscal eletrônico
+ Informar o CNPJ da pessoa jurídica desenvolvedora do sistema utilizado na emissão do documento fiscal eletrônico.
+
+
+
+
+ CPF da pessoa física desenvolvedora do sistema utilizado na emissão do documento fiscal eletrônico
+ No caso de pessoa física, informar o CPF do desenvolvedor do sistema utilizado na emissão do documento fiscal eletrônico.
+
+
+
+
+
+ Nome da pessoa a ser contatada
+ Informar o nome da pessoa a ser contatada na empresa desenvolvedora do sistema utilizado na emissão do documento fiscal eletrônico. No caso de pessoa física, informar o respectivo nome.
+
+
+
+
+
+
+
+
+
+
+ Email da pessoa jurídica/física a ser contatada
+
+
+
+
+ Telefone da pessoa jurídica/física a ser contatada
+ Preencher com o Código DDD + número do telefone.
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo Dados da Responsável Técnico
+
+
+
+
+ CNPJ da pessoa jurídica responsável técnica pelo sistema utilizado na emissão do documento fiscal eletrônico
+ Informar o CNPJ da pessoa jurídica desenvolvedora do sistema utilizado na emissão do documento fiscal eletrônico.
+
+
+
+
+ Nome da pessoa a ser contatada
+ Informar o nome da pessoa a ser contatada na empresa desenvolvedora do sistema utilizado na emissão do documento fiscal eletrônico. No caso de pessoa física, informar o respectivo nome.
+
+
+
+
+
+
+
+
+
+
+ Email da pessoa jurídica a ser contatada
+
+
+
+
+ Telefone da pessoa jurídica a ser contatada
+ Preencher com o Código DDD + número do telefone.
+
+
+
+
+
+
+
+
+
+
+ Sequencia XML
+
+
+
+ Identificador do código de segurança do responsável técnico
+ Identificador do CSRT utilizado para geração do hash
+
+
+
+
+
+
+
+
+
+ Hash do token do código de segurança do responsável técnico
+ O hashCSRT é o resultado das funções SHA-1 e base64 do token CSRT fornecido pelo fisco + chave de acesso do DF-e. (Implementação em futura NT)
+
+Observação: 28 caracteres são representados no schema como 20 bytes do tipo base64Binary
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo processo de emissão do NFCom
+
+
+
+
+
+
+
+
+
+ Tipo assinante
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo Identificador de controle do envio do lote. Número seqüencial auto-incremental, de controle correspondente ao identificador único do lote enviado. A responsabilidade de gerar e controlar esse número é do próprio contribuinte.
+
+
+
+
+
+
+
+
+ Tipo Versão da NFCom
+
+
+
+
+
+
+
+
+ Tipo da unidade básica de medida
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo hora
+
+
+
+
+
+
+
+
+ Tipo Email
+
+
+
+
+
+
+
+
+
+
+ Finalidade da NFCom
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo de Faturamento da NFCom
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo de Documento de Identificação
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo CFOP
+
+
+
+
+
+
+
+
+ Tipo indicador da IE do Destinatário
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo Código Regime Tributário
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo de emissão da NFCom
+
+
+
+
+
+
+
+
+
+
+
+ Tipo utilizacao
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo Competência
+
+
+
+
+
+
+
+
+
+
+ Tipo Modelo NF papel
+
+
+
+
+
+
+
+
+
+
+
+ Tipo Motivo Substituição
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo do ajuste na NFCom anterior
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo do ajuste na NFCom anterior
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo do Motivo de Ajuste
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo de tarifa de aplicação
+
+
+
+
+
+
+
+
+
+
+
+ Tipo de processo judicial
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo de Ressarcimento
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo componente da fatura
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/nfelib/nfcom/schemas/v1_0/nfcom_v1.00.xsd b/nfelib/nfcom/schemas/v1_0/nfcom_v1.00.xsd
new file mode 100644
index 0000000..7052817
--- /dev/null
+++ b/nfelib/nfcom/schemas/v1_0/nfcom_v1.00.xsd
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+ Nota Fiscal Fatura de Comunicação Eletrônica
+
+
+
diff --git a/nfelib/nfcom/schemas/v1_0/procEventoNFCom_v1.00.xsd b/nfelib/nfcom/schemas/v1_0/procEventoNFCom_v1.00.xsd
new file mode 100644
index 0000000..e2c2279
--- /dev/null
+++ b/nfelib/nfcom/schemas/v1_0/procEventoNFCom_v1.00.xsd
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+ Pedido de Registro de Evento de NFCom processado
+
+
+
diff --git a/nfelib/nfcom/schemas/v1_0/procNFCom_v1.00.xsd b/nfelib/nfcom/schemas/v1_0/procNFCom_v1.00.xsd
new file mode 100644
index 0000000..d81a7f2
--- /dev/null
+++ b/nfelib/nfcom/schemas/v1_0/procNFCom_v1.00.xsd
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ NFCom processada
+
+
+
+
+
+
+
+
+
+ IP do transmissor do documento fiscal para o ambiente autorizador
+
+
+
+
+ Porta de origem utilizada na conexão (De 0 a 65535)
+
+
+
+
+
+
+
+
+
+ Data e Hora da Conexão de Origem
+
+
+
+
+
diff --git a/nfelib/nfcom/schemas/v1_0/retConsSitNFCom_v1.00.xsd b/nfelib/nfcom/schemas/v1_0/retConsSitNFCom_v1.00.xsd
new file mode 100644
index 0000000..bf728bd
--- /dev/null
+++ b/nfelib/nfcom/schemas/v1_0/retConsSitNFCom_v1.00.xsd
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+ Schema XML de validação do retorno da consulta da situação atual da NFCom.
+
+
+
diff --git a/nfelib/nfcom/schemas/v1_0/retConsStatServNFCom_v1.00.xsd b/nfelib/nfcom/schemas/v1_0/retConsStatServNFCom_v1.00.xsd
new file mode 100644
index 0000000..acf72a8
--- /dev/null
+++ b/nfelib/nfcom/schemas/v1_0/retConsStatServNFCom_v1.00.xsd
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+ Schema XML de validação do Resultado da Consulta do Status do Serviço de NFCom
+
+
+
diff --git a/nfelib/nfcom/schemas/v1_0/retEventoNFCom_v1.00.xsd b/nfelib/nfcom/schemas/v1_0/retEventoNFCom_v1.00.xsd
new file mode 100644
index 0000000..f894773
--- /dev/null
+++ b/nfelib/nfcom/schemas/v1_0/retEventoNFCom_v1.00.xsd
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+ Schema XML de validação do retorno Pedido de Evento da NFCom
+
+
+
diff --git a/nfelib/nfcom/schemas/v1_0/retNFCom_v1.00.xsd b/nfelib/nfcom/schemas/v1_0/retNFCom_v1.00.xsd
new file mode 100644
index 0000000..13148df
--- /dev/null
+++ b/nfelib/nfcom/schemas/v1_0/retNFCom_v1.00.xsd
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+ Schema XML de validação do retorno do NFCom
+
+
+
diff --git a/nfelib/nfcom/schemas/v1_0/tiposGeralNFCom_v1.00.xsd b/nfelib/nfcom/schemas/v1_0/tiposGeralNFCom_v1.00.xsd
new file mode 100644
index 0000000..ee5baca
--- /dev/null
+++ b/nfelib/nfcom/schemas/v1_0/tiposGeralNFCom_v1.00.xsd
@@ -0,0 +1,720 @@
+
+
+
+
+
+ Data e Hora, formato UTC (AAAA-MM-DDThh:mm:ssTZD, onde TZD = +hh:mm ou -hh:mm)
+
+
+
+
+
+
+
+
+ Tipo Código da UF da tabela do IBGE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo Código do Município da tabela do IBGE
+
+
+
+
+
+
+
+
+ Tipo Código de orgão (UF da tabela do IBGE + 90 SUFRAMA + 91 RFB + 92 BRId)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo Código da UF da tabela do IBGE + 99 para Exterior
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo Chave de Documento Fiscal Eletrônico
+
+
+
+
+
+
+
+
+
+ Tipo Segundo Codigo Barra
+
+
+
+
+
+
+
+ Tipo Número do Protocolo de Status
+
+
+
+
+
+
+
+
+ Tipo Número do Recibo do envio de lote de DF-e
+
+
+
+
+
+
+
+
+ Tipo Código da Mensagem enviada
+
+
+
+
+
+
+
+
+ Tipo Número do CNPJ
+
+
+
+
+
+
+
+
+ Tipo Número do CNPJ tamanho varíavel (3-14)
+
+
+
+
+
+
+
+
+ Tipo Número do CNPJ Opcional
+
+
+
+
+
+
+
+
+ Tipo Número do CPF
+
+
+
+
+
+
+
+
+ Tipo Número do CPF de tamanho variável (3-11)
+
+
+
+
+
+
+
+
+ Tipo Decimal com 5 dígitos, sendo 3 inteiros e 2 decimais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 5 dígitos, sendo 3 inteiros e 2 decimais, utilizado em tags opcionais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 6 dígitos, sendo 3 inteiros e 3 decimais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 6 dígitos, sendo 3 inteiros e 3 decimais usado em tags opcionais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 6 ou 5 dígitos, sendo 3 inteiros e 3 ou 2 decimais
+
+
+
+
+
+
+
+
+ Tipo Decimal com até 3 dígitos inteiros, podendo ter de 2 até 4 decimais
+
+
+
+
+
+
+
+
+ Tipo Decimal com até 3 dígitos inteiros e 2 até 4 decimais. Utilizados em TAGs opcionais, não aceita valor zero.
+
+
+
+
+
+
+
+
+ Tipo Decimal com 3 inteiros (no máximo 100), com até 4 decimais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 4 dígitos inteiros e 2 a 8 casas decimais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 8 dígitos, sendo 5 inteiros e 3 decimais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 11 dígitos, sendo 8 inteiros e 3 decimais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 11 dígitos, sendo 8 inteiros e 3 decimais utilizado em tags opcionais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 12 dígitos, sendo 8 inteiros e 4 decimais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 12 dígitos, sendo 8 inteiros e 4 decimais, utilizado em tags opcionais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 15 dígitos, sendo 9 inteiros e 6 decimais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 15 dígitos, sendo 9 inteiros e 6 decimais, utilizado em tags opcionais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 15 dígitos, sendo 9 inteiros e 8 decimais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 15 dígitos, sendo 9 inteiros e 8 decimais, utilizado em tags opcionais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 15 dígitos, sendo 11 inteiros e 4 decimais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 15 dígitos, sendo 11 inteiros e 4 decimais, utilizado em tags opcionais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 11 dígitos inteiros e 0 a 4 casas decimais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 15 dígitos, sendo 12 inteiros e 3 decimais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 15 dígitos, sendo 12 inteiros e 3 decimais, utilizado em tags opcionais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 16 dígitos, sendo 12 de corpo e 4 decimais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 16 dígitos, sendo 12 inteiros e 4 decimais, utilizado em tags opcionais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 15 dígitos, sendo 13 inteiros e 2 decimais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 15 dígitos, sendo 13 inteiros e 2 decimais, utilizado em tags opcionais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 13 dígitos inteiros e 2 a 6 casas decimais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 13 dígitos inteiros e 2 a 8 casas decimais
+
+
+
+
+
+
+
+
+ Tipo Decimal com 13 dígitos inteiros e 2 a 4 casas decimais
+
+
+
+
+
+
+
+
+ Tipo Inscrição Estadual do Destinatário
+
+
+
+
+
+
+
+
+ Tipo Modelo NFCom
+
+
+
+
+
+
+
+
+ Tipo Inscrição Estadual do Emitente
+
+
+
+
+
+
+
+
+ Tipo Número do Documento Fiscal
+
+
+
+
+
+
+
+
+ Tipo Série do Documento Fiscal
+
+
+
+
+
+
+
+
+ Tipo Sigla da UF
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo Sigla da UF - Sem Exterior
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo Ambiente
+
+
+
+
+
+
+
+
+
+ Tipo Versão do Aplicativo
+
+
+
+
+
+
+
+
+ Tipo Motivo
+
+
+
+
+
+
+
+
+ Tipo Justificativa
+
+
+
+
+
+
+
+
+ Tipo Serviço solicitado
+
+
+
+
+
+ Tipo ano
+
+
+
+
+
+
+
+
+ Tipo temp médio em segundos
+
+
+
+
+
+
+
+
+ Tipo string genérico
+
+
+
+
+
+
+
+
+ Tipo data AAAA-MM-DD
+
+
+
+
+
+
+
+
+ Coordenada geográfica Latitude
+
+
+
+
+
+
+
+ Coordenada geográfica Longitude
+
+
+
+
+
+
+
+ Tipo número sequencial único do AN
+
+
+
+
+
+
+
+ Tipo IP versão 4
+
+
+
+
+
+
+
diff --git a/nfelib/nfcom/schemas/v1_0/xmldsig-core-schema_v1.01.xsd b/nfelib/nfcom/schemas/v1_0/xmldsig-core-schema_v1.01.xsd
new file mode 100644
index 0000000..6e9063c
--- /dev/null
+++ b/nfelib/nfcom/schemas/v1_0/xmldsig-core-schema_v1.01.xsd
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+