From a4ebcb60ed08831dd86b8dd9c78c902f735210a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Fri, 5 Apr 2024 08:32:49 -0300 Subject: [PATCH] add NFcom 1.00 - NT2024001 --- nfelib/nfcom/__init__.py | 6 + nfelib/nfcom/bindings/__init__.py | 6 + nfelib/nfcom/bindings/v1_0/__init__.py | 174 + .../v1_0/cons_sit_nfcom_tipos_basico_v1_00.py | 221 + .../bindings/v1_0/cons_sit_nfcom_v1_00.py | 23 + ...cons_stat_serv_nfcom_tipos_basico_v1_00.py | 177 + .../v1_0/cons_stat_serv_nfcom_v1_00.py | 23 + .../bindings/v1_0/ev_canc_nfcom_v1_00.py | 60 + .../v1_0/evento_nfcom_tipos_basico_v1_00.py | 425 ++ .../nfcom/bindings/v1_0/evento_nfcom_v1_00.py | 21 + .../bindings/v1_0/nfcom_tipos_basico_v1_00.py | 3992 +++++++++++++++++ nfelib/nfcom/bindings/v1_0/nfcom_v1_00.py | 21 + .../bindings/v1_0/proc_evento_nfcom_v1_00.py | 23 + .../nfcom/bindings/v1_0/proc_nfcom_v1_00.py | 81 + .../bindings/v1_0/ret_cons_sit_nfcom_v1_00.py | 23 + .../v1_0/ret_cons_stat_serv_nfcom_v1_00.py | 23 + .../bindings/v1_0/ret_evento_nfcom_v1_00.py | 23 + nfelib/nfcom/bindings/v1_0/ret_nfcom_v1_00.py | 21 + .../bindings/v1_0/tipos_geral_nfcom_v1_00.py | 132 + .../v1_0/xmldsig_core_schema_v1_01.py | 269 ++ .../v1_0/consSitNFComTiposBasico_v1.00.xsd | 112 + .../nfcom/schemas/v1_0/consSitNFCom_v1.00.xsd | 10 + .../consStatServNFComTiposBasico_v1.00.xsd | 105 + .../schemas/v1_0/consStatServNFCom_v1.00.xsd | 10 + .../nfcom/schemas/v1_0/evCancNFCom_v1.00.xsd | 36 + .../v1_0/eventoNFComTiposBasico_v1.00.xsd | 244 + .../nfcom/schemas/v1_0/eventoNFCom_v1.00.xsd | 10 + .../schemas/v1_0/nfcomTiposBasico_v1.00.xsd | 2909 ++++++++++++ nfelib/nfcom/schemas/v1_0/nfcom_v1.00.xsd | 10 + .../schemas/v1_0/procEventoNFCom_v1.00.xsd | 10 + nfelib/nfcom/schemas/v1_0/procNFCom_v1.00.xsd | 37 + .../schemas/v1_0/retConsSitNFCom_v1.00.xsd | 10 + .../v1_0/retConsStatServNFCom_v1.00.xsd | 10 + .../schemas/v1_0/retEventoNFCom_v1.00.xsd | 10 + nfelib/nfcom/schemas/v1_0/retNFCom_v1.00.xsd | 10 + .../schemas/v1_0/tiposGeralNFCom_v1.00.xsd | 720 +++ .../v1_0/xmldsig-core-schema_v1.01.xsd | 98 + 37 files changed, 10095 insertions(+) create mode 100644 nfelib/nfcom/__init__.py create mode 100644 nfelib/nfcom/bindings/__init__.py create mode 100644 nfelib/nfcom/bindings/v1_0/__init__.py create mode 100644 nfelib/nfcom/bindings/v1_0/cons_sit_nfcom_tipos_basico_v1_00.py create mode 100644 nfelib/nfcom/bindings/v1_0/cons_sit_nfcom_v1_00.py create mode 100644 nfelib/nfcom/bindings/v1_0/cons_stat_serv_nfcom_tipos_basico_v1_00.py create mode 100644 nfelib/nfcom/bindings/v1_0/cons_stat_serv_nfcom_v1_00.py create mode 100644 nfelib/nfcom/bindings/v1_0/ev_canc_nfcom_v1_00.py create mode 100644 nfelib/nfcom/bindings/v1_0/evento_nfcom_tipos_basico_v1_00.py create mode 100644 nfelib/nfcom/bindings/v1_0/evento_nfcom_v1_00.py create mode 100644 nfelib/nfcom/bindings/v1_0/nfcom_tipos_basico_v1_00.py create mode 100644 nfelib/nfcom/bindings/v1_0/nfcom_v1_00.py create mode 100644 nfelib/nfcom/bindings/v1_0/proc_evento_nfcom_v1_00.py create mode 100644 nfelib/nfcom/bindings/v1_0/proc_nfcom_v1_00.py create mode 100644 nfelib/nfcom/bindings/v1_0/ret_cons_sit_nfcom_v1_00.py create mode 100644 nfelib/nfcom/bindings/v1_0/ret_cons_stat_serv_nfcom_v1_00.py create mode 100644 nfelib/nfcom/bindings/v1_0/ret_evento_nfcom_v1_00.py create mode 100644 nfelib/nfcom/bindings/v1_0/ret_nfcom_v1_00.py create mode 100644 nfelib/nfcom/bindings/v1_0/tipos_geral_nfcom_v1_00.py create mode 100644 nfelib/nfcom/bindings/v1_0/xmldsig_core_schema_v1_01.py create mode 100644 nfelib/nfcom/schemas/v1_0/consSitNFComTiposBasico_v1.00.xsd create mode 100644 nfelib/nfcom/schemas/v1_0/consSitNFCom_v1.00.xsd create mode 100644 nfelib/nfcom/schemas/v1_0/consStatServNFComTiposBasico_v1.00.xsd create mode 100644 nfelib/nfcom/schemas/v1_0/consStatServNFCom_v1.00.xsd create mode 100644 nfelib/nfcom/schemas/v1_0/evCancNFCom_v1.00.xsd create mode 100644 nfelib/nfcom/schemas/v1_0/eventoNFComTiposBasico_v1.00.xsd create mode 100644 nfelib/nfcom/schemas/v1_0/eventoNFCom_v1.00.xsd create mode 100644 nfelib/nfcom/schemas/v1_0/nfcomTiposBasico_v1.00.xsd create mode 100644 nfelib/nfcom/schemas/v1_0/nfcom_v1.00.xsd create mode 100644 nfelib/nfcom/schemas/v1_0/procEventoNFCom_v1.00.xsd create mode 100644 nfelib/nfcom/schemas/v1_0/procNFCom_v1.00.xsd create mode 100644 nfelib/nfcom/schemas/v1_0/retConsSitNFCom_v1.00.xsd create mode 100644 nfelib/nfcom/schemas/v1_0/retConsStatServNFCom_v1.00.xsd create mode 100644 nfelib/nfcom/schemas/v1_0/retEventoNFCom_v1.00.xsd create mode 100644 nfelib/nfcom/schemas/v1_0/retNFCom_v1.00.xsd create mode 100644 nfelib/nfcom/schemas/v1_0/tiposGeralNFCom_v1.00.xsd create mode 100644 nfelib/nfcom/schemas/v1_0/xmldsig-core-schema_v1.01.xsd 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +