diff --git a/nfelib/nf3e/__init__.py b/nfelib/nf3e/__init__.py new file mode 100644 index 00000000..6f4cf469 --- /dev/null +++ b/nfelib/nf3e/__init__.py @@ -0,0 +1,6 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +# nothing here diff --git a/nfelib/nf3e/bindings/__init__.py b/nfelib/nf3e/bindings/__init__.py new file mode 100644 index 00000000..6f4cf469 --- /dev/null +++ b/nfelib/nf3e/bindings/__init__.py @@ -0,0 +1,6 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +# nothing here diff --git a/nfelib/nf3e/bindings/v1_0/__init__.py b/nfelib/nf3e/bindings/v1_0/__init__.py new file mode 100644 index 00000000..361e8623 --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/__init__.py @@ -0,0 +1,226 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from nfelib.nf3e.bindings.v1_0.cons_reci_nf3e_tipos_basico_v1_00 import ( + TconsReciNf3E, + TretConsReciNf3E, +) +from nfelib.nf3e.bindings.v1_0.cons_reci_nf3e_v1_00 import ConsReciNf3E +from nfelib.nf3e.bindings.v1_0.cons_sit_nf3e_tipos_basico_v1_00 import ( + ProcEventoNf3EVersao, + ProtNf3EVersao, + TconsSitNf3E, + TretConsSitNf3E, +) +from nfelib.nf3e.bindings.v1_0.cons_sit_nf3e_v1_00 import ConsSitNf3E +from nfelib.nf3e.bindings.v1_0.cons_stat_serv_nf3e_tipos_basico_v1_00 import ( + TconsStatServ, + TretConsStatServ, +) +from nfelib.nf3e.bindings.v1_0.cons_stat_serv_nf3e_v1_00 import ( + ConsStatServNf3E, +) +from nfelib.nf3e.bindings.v1_0.envi_nf3e_v1_00 import EnviNf3E +from nfelib.nf3e.bindings.v1_0.ev_canc_nf3e_v1_00 import ( + EvCancNf3E, + EvCancNf3EDescEvento, +) +from nfelib.nf3e.bindings.v1_0.evento_nf3e_tipos_basico_v1_00 import ( + Tevento, + TprocEvento, + TretEvento, +) +from nfelib.nf3e.bindings.v1_0.evento_nf3e_v1_00 import EventoNf3E +from nfelib.nf3e.bindings.v1_0.nf3e_tipos_basico_v1_00 import ( + CofinsCst, + DetItemAntIndDevolucao, + GAdBandMotDifBand, + GContabTpLanc, + GProcRefIndDevolucao, + GTarifMotDifTarif, + GTarifUMed, + Icms00Cst, + Icms10Cst, + Icms20Cst, + Icms40Cst, + Icms51Cst, + Icms60Cst, + Icms90Cst, + ImpostoIndSemCst, + PisCst, + ProdIndDevolucao, + ProdIndPrecoAcl, + Tacessante, + TajusteNf3EAnt, + Taneel, + TatoAneel, + Tband, + Tclasse, + TempresaSoft, + TendeEmi, + Tendereco, + TenviNf3E, + Tfase, + TfinNf3E, + TfonteEnergia, + TgrContrat, + TgrMed, + TgrpTensao, + Timp, + TindIedest, + Tmedida, + TmodTar, + TmotAjuste, + TmotNaoLeitura, + TmotSub, + Tnf3E, + TorigemQtd, + TpartComp, + TposTarifCompleto, + TposTarSimples, + Tprocesso, + TprotNf3E, + TrespTec, + TretEnviNf3E, + TretNf3E, + TsubClasse, + Ttarifa, + TtpEmis, + Tumed, + TumedItem, +) +from nfelib.nf3e.bindings.v1_0.nf3e_v1_00 import Nf3E +from nfelib.nf3e.bindings.v1_0.proc_evento_nf3e_v1_00 import ProcEventoNf3E +from nfelib.nf3e.bindings.v1_0.proc_nf3e_v1_00 import Nf3EProc +from nfelib.nf3e.bindings.v1_0.ret_cons_reci_nf3e_v1_00 import RetConsReciNf3E +from nfelib.nf3e.bindings.v1_0.ret_cons_sit_nf3e_v1_00 import RetConsSitNf3E +from nfelib.nf3e.bindings.v1_0.ret_cons_stat_serv_nf3e_v1_00 import ( + RetConsStatServNf3E, +) +from nfelib.nf3e.bindings.v1_0.ret_envi_nf3e_v1_00 import RetEnviNf3E +from nfelib.nf3e.bindings.v1_0.ret_evento_nf3e_v1_00 import RetEventoNf3E +from nfelib.nf3e.bindings.v1_0.ret_nf3e_v1_00 import RetNf3E +from nfelib.nf3e.bindings.v1_0.tipos_geral_nf3e_v1_00 import ( + Tamb, + TcodUfIbge, + TcorgaoIbge, + TmodNf3E, + Tuf, + TufSemEx, +) +from nfelib.nf3e.bindings.v1_0.xmldsig_core_schema_v1_01 import ( + KeyInfoType, + ReferenceType, + Signature, + SignatureType, + SignatureValueType, + SignedInfoType, + TransformsType, + TransformType, + TtransformUri, + X509DataType, +) + +__all__ = [ + "TconsReciNf3E", + "TretConsReciNf3E", + "ConsReciNf3E", + "TconsSitNf3E", + "TretConsSitNf3E", + "ProcEventoNf3EVersao", + "ProtNf3EVersao", + "ConsSitNf3E", + "TconsStatServ", + "TretConsStatServ", + "ConsStatServNf3E", + "EnviNf3E", + "EvCancNf3E", + "EvCancNf3EDescEvento", + "Tevento", + "TprocEvento", + "TretEvento", + "EventoNf3E", + "CofinsCst", + "Icms00Cst", + "Icms10Cst", + "Icms20Cst", + "Icms40Cst", + "Icms51Cst", + "Icms60Cst", + "Icms90Cst", + "PisCst", + "Taneel", + "Tacessante", + "TajusteNf3EAnt", + "TatoAneel", + "Tband", + "Tclasse", + "TempresaSoft", + "TendeEmi", + "Tendereco", + "TenviNf3E", + "Tfase", + "TfinNf3E", + "TfonteEnergia", + "TgrContrat", + "TgrMed", + "TgrpTensao", + "Timp", + "TindIedest", + "Tmedida", + "TmodTar", + "TmotAjuste", + "TmotNaoLeitura", + "TmotSub", + "Tnf3E", + "TorigemQtd", + "TpartComp", + "TposTarSimples", + "TposTarifCompleto", + "Tprocesso", + "TprotNf3E", + "TrespTec", + "TretEnviNf3E", + "TretNf3E", + "TsubClasse", + "Ttarifa", + "Tumed", + "TumedItem", + "TtpEmis", + "DetItemAntIndDevolucao", + "GAdBandMotDifBand", + "GContabTpLanc", + "GProcRefIndDevolucao", + "GTarifMotDifTarif", + "GTarifUMed", + "ImpostoIndSemCst", + "ProdIndDevolucao", + "ProdIndPrecoAcl", + "Nf3E", + "ProcEventoNf3E", + "Nf3EProc", + "RetConsReciNf3E", + "RetConsSitNf3E", + "RetConsStatServNf3E", + "RetEnviNf3E", + "RetEventoNf3E", + "RetNf3E", + "Tamb", + "TcorgaoIbge", + "TcodUfIbge", + "TmodNf3E", + "Tuf", + "TufSemEx", + "KeyInfoType", + "ReferenceType", + "Signature", + "SignatureType", + "SignatureValueType", + "SignedInfoType", + "TtransformUri", + "TransformType", + "TransformsType", + "X509DataType", +] diff --git a/nfelib/nf3e/bindings/v1_0/cons_reci_nf3e_tipos_basico_v1_00.py b/nfelib/nf3e/bindings/v1_0/cons_reci_nf3e_tipos_basico_v1_00.py new file mode 100644 index 00000000..f8a74d4d --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/cons_reci_nf3e_tipos_basico_v1_00.py @@ -0,0 +1,156 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from dataclasses import dataclass, field +from typing import List, Optional + +from nfelib import CommonMixin +from nfelib.nf3e.bindings.v1_0.nf3e_tipos_basico_v1_00 import TprotNf3E +from nfelib.nf3e.bindings.v1_0.tipos_geral_nf3e_v1_00 import ( + Tamb, + TcodUfIbge, +) + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +@dataclass +class TconsReciNf3E(CommonMixin): + """ + Tipo Pedido de Consulta do Recibo da NF-3e. + + :ivar tpAmb: Identificação do Ambiente: 1 - Produção 2 - Homologação + :ivar nRec: Número do Recibo do arquivo a ser consultado + :ivar versao: + """ + + class Meta: + name = "TConsReciNF3e" + + tpAmb: Optional[Tamb] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + nRec: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{16}", + }, + ) + versao: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "white_space": "preserve", + "pattern": r"1\.00", + }, + ) + + +@dataclass +class TretConsReciNf3E(CommonMixin): + """ + Tipo Retorno do Pedido de Consulta do Recibo da NF-3e. + + :ivar tpAmb: Identificação do Ambiente: 1 - Produção 2 - Homologação + :ivar verAplic: Versão do Aplicativo que processou a NF-3e + :ivar nRec: Número do Recibo Consultado + :ivar cStat: código do status do retorno da consulta. + :ivar xMotivo: Descrição literal do status do do retorno da + consulta. + :ivar cUF: Idntificação da UF + :ivar protNF3e: Resultado do processamento do NF-3e + :ivar versao: + """ + + class Meta: + name = "TRetConsReciNF3e" + + tpAmb: Optional[Tamb] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + verAplic: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "min_length": 1, + "max_length": 20, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + nRec: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{16}", + }, + ) + cStat: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + }, + ) + protNF3e: List[TprotNf3E] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e/bindings/v1_0/cons_reci_nf3e_v1_00.py b/nfelib/nf3e/bindings/v1_0/cons_reci_nf3e_v1_00.py new file mode 100644 index 00000000..c790a15b --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/cons_reci_nf3e_v1_00.py @@ -0,0 +1,23 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from dataclasses import dataclass + +from nfelib.nf3e.bindings.v1_0.cons_reci_nf3e_tipos_basico_v1_00 import ( + TconsReciNf3E, +) + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +@dataclass +class ConsReciNf3E(TconsReciNf3E): + """ + Schema XML de validação do Pedido de Consulta de NF-3e. + """ + + class Meta: + name = "consReciNF3e" + namespace = "http://www.portalfiscal.inf.br/nf3e" diff --git a/nfelib/nf3e/bindings/v1_0/cons_sit_nf3e_tipos_basico_v1_00.py b/nfelib/nf3e/bindings/v1_0/cons_sit_nf3e_tipos_basico_v1_00.py new file mode 100644 index 00000000..3bc61271 --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/cons_sit_nf3e_tipos_basico_v1_00.py @@ -0,0 +1,221 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +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.nf3e.bindings.v1_0.tipos_geral_nf3e_v1_00 import ( + Tamb, + TcodUfIbge, +) + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +class ProcEventoNf3EVersao(Enum): + VALUE_1_00 = "1.00" + + +class ProtNf3EVersao(Enum): + VALUE_1_00 = "1.00" + + +@dataclass +class TconsSitNf3E(CommonMixin): + """ + Tipo Pedido de Consulta da Situação Atual da NF-3e. + + :ivar tpAmb: Identificação do Ambiente: 1 - Produção; 2 - + Homologação; + :ivar xServ: Serviço Solicitado + :ivar chNF3e: Chaves de acesso do NF-3 + :ivar versao: + """ + + class Meta: + name = "TConsSitNF3e" + + tpAmb: Optional[Tamb] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + xServ: str = field( + init=False, + default="CONSULTAR", + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + chNF3e: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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 TretConsSitNf3E(CommonMixin): + """ + Tipo Retorno de Pedido de Consulta da Situação Atual de NF-3e. + + :ivar tpAmb: Identificação do Ambiente: 1 - Produção 2 - Homologação + :ivar verAplic: Versão do Aplicativo que processou o NF-3e + :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 protNF3e: + :ivar procEventoNF3e: + :ivar versao: + """ + + class Meta: + name = "TRetConsSitNF3e" + + tpAmb: Optional[Tamb] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + verAplic: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + }, + ) + protNF3e: Optional["TretConsSitNf3E.ProtNf3E"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + procEventoNF3e: List["TretConsSitNf3E.ProcEventoNf3E"] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + versao: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "pattern": r"1\.00", + }, + ) + + @dataclass + class ProtNf3E(CommonMixin): + """ + :ivar any_element: Retornar protNF3e da versão correspondente da + NF-3e autorizada + :ivar versao: + """ + + any_element: Optional[object] = field( + default=None, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "process_contents": "skip", + }, + ) + versao: Optional[ProtNf3EVersao] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "white_space": "preserve", + }, + ) + + @dataclass + class ProcEventoNf3E(CommonMixin): + """ + :ivar any_element: Retornar procEventoNF3e da versão + correspondente do evento NF-3e autorizado + :ivar versao: + """ + + any_element: Optional[object] = field( + default=None, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "process_contents": "skip", + }, + ) + versao: Optional[ProcEventoNf3EVersao] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "white_space": "preserve", + }, + ) diff --git a/nfelib/nf3e/bindings/v1_0/cons_sit_nf3e_v1_00.py b/nfelib/nf3e/bindings/v1_0/cons_sit_nf3e_v1_00.py new file mode 100644 index 00000000..f11b6461 --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/cons_sit_nf3e_v1_00.py @@ -0,0 +1,23 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from dataclasses import dataclass + +from nfelib.nf3e.bindings.v1_0.cons_sit_nf3e_tipos_basico_v1_00 import ( + TconsSitNf3E, +) + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +@dataclass +class ConsSitNf3E(TconsSitNf3E): + """ + Schema de validação XML dp Pedido de Consulta da Situação Atual da NF-3e. + """ + + class Meta: + name = "consSitNF3e" + namespace = "http://www.portalfiscal.inf.br/nf3e" diff --git a/nfelib/nf3e/bindings/v1_0/cons_stat_serv_nf3e_tipos_basico_v1_00.py b/nfelib/nf3e/bindings/v1_0/cons_stat_serv_nf3e_tipos_basico_v1_00.py new file mode 100644 index 00000000..61163122 --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/cons_stat_serv_nf3e_tipos_basico_v1_00.py @@ -0,0 +1,177 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from dataclasses import dataclass, field +from typing import Optional + +from nfelib import CommonMixin +from nfelib.nf3e.bindings.v1_0.tipos_geral_nf3e_v1_00 import ( + Tamb, + TcodUfIbge, +) + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +@dataclass +class TconsStatServ(CommonMixin): + """ + Tipo Pedido de Consulta do Status do Serviço NF-3e. + + :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/nf3e", + "required": True, + }, + ) + xServ: str = field( + init=False, + default="STATUS", + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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 NF-3e. + + :ivar tpAmb: Identificação do Ambiente: 1 - Produção 2 - Homologação + :ivar verAplic: Versão do Aplicativo que processou a NF-3e + :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/nf3e", + "required": True, + }, + ) + verAplic: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + }, + ) + dhRecbto: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "pattern": r"[0-9]{1,4}", + }, + ) + dhRetorno: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e/bindings/v1_0/cons_stat_serv_nf3e_v1_00.py b/nfelib/nf3e/bindings/v1_0/cons_stat_serv_nf3e_v1_00.py new file mode 100644 index 00000000..78c0ee05 --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/cons_stat_serv_nf3e_v1_00.py @@ -0,0 +1,23 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from dataclasses import dataclass + +from nfelib.nf3e.bindings.v1_0.cons_stat_serv_nf3e_tipos_basico_v1_00 import ( + TconsStatServ, +) + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +@dataclass +class ConsStatServNf3E(TconsStatServ): + """ + Schema XML de validação do Pedido de Consulta do Status do Serviço NF-3e. + """ + + class Meta: + name = "consStatServNF3e" + namespace = "http://www.portalfiscal.inf.br/nf3e" diff --git a/nfelib/nf3e/bindings/v1_0/envi_nf3e_v1_00.py b/nfelib/nf3e/bindings/v1_0/envi_nf3e_v1_00.py new file mode 100644 index 00000000..63762c0b --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/envi_nf3e_v1_00.py @@ -0,0 +1,21 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from dataclasses import dataclass + +from nfelib.nf3e.bindings.v1_0.nf3e_tipos_basico_v1_00 import TenviNf3E + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +@dataclass +class EnviNf3E(TenviNf3E): + """ + Schema XML de validação do Envio de Lote NF-3e para concessão de autorização. + """ + + class Meta: + name = "enviNF3e" + namespace = "http://www.portalfiscal.inf.br/nf3e" diff --git a/nfelib/nf3e/bindings/v1_0/ev_canc_nf3e_v1_00.py b/nfelib/nf3e/bindings/v1_0/ev_canc_nf3e_v1_00.py new file mode 100644 index 00000000..ea9992bf --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/ev_canc_nf3e_v1_00.py @@ -0,0 +1,60 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +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/nf3e" + + +class EvCancNf3EDescEvento(Enum): + CANCELAMENTO = "Cancelamento" + + +@dataclass +class EvCancNf3E(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 NF-3e. + :ivar xJust: Justificativa do Cancelamento + """ + + class Meta: + name = "evCancNF3e" + namespace = "http://www.portalfiscal.inf.br/nf3e" + + descEvento: Optional[EvCancNf3EDescEvento] = 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/nf3e/bindings/v1_0/evento_nf3e_tipos_basico_v1_00.py b/nfelib/nf3e/bindings/v1_0/evento_nf3e_tipos_basico_v1_00.py new file mode 100644 index 00000000..6a0e90e8 --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/evento_nf3e_tipos_basico_v1_00.py @@ -0,0 +1,424 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from dataclasses import dataclass, field +from typing import Optional + +from nfelib import CommonMixin +from nfelib.nf3e.bindings.v1_0.tipos_geral_nf3e_v1_00 import ( + Tamb, + TcorgaoIbge, +) +from nfelib.nf3e.bindings.v1_0.xmldsig_core_schema_v1_01 import Signature + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +@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/nf3e", + "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 chNF3e: Chave de Acesso da NF-3e 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 + """ + + cOrgao: Optional[TcorgaoIbge] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + tpAmb: Optional[Tamb] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + CNPJ: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{14}", + }, + ) + chNF3e: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + }, + ) + Id: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "pattern": r"ID[0-9]{52}|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/nf3e", + "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 chNF3e: Chave de Acesso NF-3e 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/nf3e", + "required": True, + }, + ) + verAplic: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "required": True, + }, + ) + cStat: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "required": True, + "min_length": 1, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + chNF3e: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "white_space": "preserve", + "pattern": r"[0-9]{6}", + }, + ) + xEvento: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "white_space": "preserve", + "pattern": r"[0-9]{1,3}", + }, + ) + dhRegEvento: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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 eventoNF3e: + :ivar retEventoNF3e: + :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" + + eventoNF3e: Optional[Tevento] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + retEventoNF3e: Optional[TretEvento] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e/bindings/v1_0/evento_nf3e_v1_00.py b/nfelib/nf3e/bindings/v1_0/evento_nf3e_v1_00.py new file mode 100644 index 00000000..55438e1c --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/evento_nf3e_v1_00.py @@ -0,0 +1,21 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from dataclasses import dataclass + +from nfelib.nf3e.bindings.v1_0.evento_nf3e_tipos_basico_v1_00 import Tevento + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +@dataclass +class EventoNf3E(Tevento): + """ + Schema XML de validação do Pedido de Registro de Evento da NF-3e. + """ + + class Meta: + name = "eventoNF3e" + namespace = "http://www.portalfiscal.inf.br/nf3e" diff --git a/nfelib/nf3e/bindings/v1_0/nf3e_tipos_basico_v1_00.py b/nfelib/nf3e/bindings/v1_0/nf3e_tipos_basico_v1_00.py new file mode 100644 index 00000000..5f67382f --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/nf3e_tipos_basico_v1_00.py @@ -0,0 +1,5579 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +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.nf3e.bindings.v1_0.tipos_geral_nf3e_v1_00 import ( + Tamb, + TcodUfIbge, + TmodNf3E, + Tuf, + TufSemEx, +) +from nfelib.nf3e.bindings.v1_0.xmldsig_core_schema_v1_01 import Signature + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +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 Icms10Cst(Enum): + VALUE_10 = "10" + + +class Icms20Cst(Enum): + VALUE_20 = "20" + + +class Icms40Cst(Enum): + VALUE_40 = "40" + VALUE_41 = "41" + + +class Icms51Cst(Enum): + VALUE_51 = "51" + + +class Icms60Cst(Enum): + VALUE_60 = "60" + + +class Icms90Cst(Enum): + VALUE_90 = "90" + + +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 Tacessante(Enum): + """ + Tipo acessante. + """ + + VALUE_0 = "0" + 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 = "" + + +class TajusteNf3EAnt(Enum): + """ + Tipo do ajuste na NF-3e anterior. + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + + +class TatoAneel(Enum): + """ + Tipo de ato da ANEEL. + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + + +class Tband(Enum): + """ + Tipo da bandeira tarifária. + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + VALUE_5 = "5" + + +class Tclasse(Enum): + """ + Tipo de Classe. + """ + + VALUE_01 = "01" + VALUE_02 = "02" + VALUE_03 = "03" + VALUE_04 = "04" + VALUE_05 = "05" + VALUE_06 = "06" + VALUE_07 = "07" + VALUE_08 = "08" + + +@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/nf3e", + "white_space": "preserve", + "pattern": r"[0-9]{14}", + }, + ) + CPF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"[0-9]{11}", + }, + ) + xContato: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{7,12}", + }, + ) + + +class Tfase(Enum): + """ + Tipo de Fase. + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + + +class TfinNf3E(Enum): + """ + Finalidade da NF-3e. + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + + +class TfonteEnergia(Enum): + """ + Tipo Fonte Energia. + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + VALUE_5 = "5" + + +class TgrContrat(Enum): + """ + Tipo Grandeza Contratada. + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + + +class TgrMed(Enum): + """ + Tipo Grandeza Medida. + """ + + VALUE_00 = "00" + VALUE_01 = "01" + VALUE_02 = "02" + VALUE_03 = "03" + VALUE_04 = "04" + VALUE_05 = "05" + + +class TgrpTensao(Enum): + """ + Tipo Grupo Tensão. + """ + + VALUE_01 = "01" + VALUE_02 = "02" + VALUE_03 = "03" + VALUE_04 = "04" + VALUE_05 = "05" + VALUE_06 = "06" + VALUE_07 = "07" + VALUE_08 = "08" + VALUE_09 = "09" + VALUE_10 = "10" + VALUE_11 = "11" + VALUE_12 = "12" + VALUE_13 = "13" + VALUE_14 = "14" + + +@dataclass +class Timp(CommonMixin): + """ + Tipo Dados do Imposto NF-3e. + """ + + class Meta: + name = "TImp" + + +class TindIedest(Enum): + """ + Tipo indicador da IE do Destinatário. + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_9 = "9" + + +class TmodTar(Enum): + """ + Tipo Modalidade Tarifária. + """ + + VALUE_01 = "01" + VALUE_02 = "02" + VALUE_03 = "03" + VALUE_04 = "04" + VALUE_05 = "05" + VALUE_06 = "06" + VALUE_07 = "07" + VALUE_08 = "08" + VALUE_09 = "09" + VALUE_10 = "10" + + +class TmotAjuste(Enum): + """ + Tipo do Motivo de Ajuste. + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + VALUE_5 = "5" + + +class TmotNaoLeitura(Enum): + """ + Tipo motivo não leitura. + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + + +class TmotSub(Enum): + """ + Tipo Motivo Substituição. + """ + + VALUE_01 = "01" + VALUE_02 = "02" + VALUE_03 = "03" + VALUE_04 = "04" + VALUE_05 = "05" + + +class TorigemQtd(Enum): + """ + Tipo do indicador de origem da quantidade faturada. + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + VALUE_5 = "5" + VALUE_6 = "6" + + +class TpartComp(Enum): + """ + Tipo Compensação (SCE) + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + VALUE_5 = "5" + + +class TposTarSimples(Enum): + """ + Tipo Posto Tarifário. + """ + + VALUE_0 = "0" + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + + +class TposTarifCompleto(Enum): + """ + Tipo Posto Tarifário Completo. + """ + + VALUE_0 = "0" + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + VALUE_5 = "5" + VALUE_6 = "6" + VALUE_7 = "7" + + +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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "pattern": r"[0-9]{3}", + }, + ) + hashCSRT: Optional[bytes] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "length": 20, + "format": "base64", + }, + ) + + +class TsubClasse(Enum): + """ + Tipo SubClasse. + """ + + VALUE_01 = "01" + VALUE_02 = "02" + VALUE_03 = "03" + VALUE_04 = "04" + VALUE_05 = "05" + VALUE_06 = "06" + VALUE_07 = "07" + VALUE_08 = "08" + VALUE_09 = "09" + VALUE_10 = "10" + VALUE_11 = "11" + VALUE_12 = "12" + VALUE_13 = "13" + VALUE_14 = "14" + VALUE_15 = "15" + VALUE_16 = "16" + VALUE_17 = "17" + VALUE_18 = "18" + VALUE_19 = "19" + VALUE_20 = "20" + 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_99 = "99" + + +class Ttarifa(Enum): + """ + Tipo de tarifa de aplicação. + """ + + VALUE_1 = "1" + VALUE_2 = "2" + + +class Tumed(Enum): + """ + Tipo da unidade básica de medida. + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + + +class TumedItem(Enum): + """ + Tipo da unidade básica de medida. + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + VALUE_5 = "5" + + +class TtpEmis(Enum): + """ + Tipo de emissão da NF-3e. + """ + + VALUE_1 = "1" + VALUE_2 = "2" + + +class DetItemAntIndDevolucao(Enum): + VALUE_1 = "1" + + +class GAdBandMotDifBand(Enum): + VALUE_01 = "01" + VALUE_02 = "02" + VALUE_03 = "03" + VALUE_04 = "04" + + +class GContabTpLanc(Enum): + D = "D" + C = "C" + + +class GProcRefIndDevolucao(Enum): + VALUE_1 = "1" + + +class GTarifMotDifTarif(Enum): + VALUE_01 = "01" + VALUE_02 = "02" + VALUE_03 = "03" + VALUE_04 = "04" + + +class GTarifUMed(Enum): + VALUE_1 = "1" + VALUE_2 = "2" + + +class ImpostoIndSemCst(Enum): + VALUE_1 = "1" + + +class ProdIndDevolucao(Enum): + VALUE_1 = "1" + + +class ProdIndPrecoAcl(Enum): + VALUE_1 = "1" + + +@dataclass +class Taneel(CommonMixin): + """ + :ivar gHistFat: Histórico de Faturamento + """ + + class Meta: + name = "TANEEL" + + gHistFat: List["Taneel.GHistFat"] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_occurs": 1, + "max_occurs": 5, + }, + ) + + @dataclass + class GHistFat(CommonMixin): + """ + :ivar xGrandFat: Nome da grandeza faturada para exibição + Exemplo: Consumo Meses Anteriores + :ivar gGrandFat: Grandezas faturadas + """ + + xGrandFat: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "min_length": 2, + "max_length": 60, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + gGrandFat: List["Taneel.GHistFat.GGrandFat"] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_occurs": 13, + "max_occurs": 13, + }, + ) + + @dataclass + class GGrandFat(CommonMixin): + """ + :ivar CompetFat: Ano e mês referência do faturamento + (AAAAMM) + :ivar vFat: Valor Faturado + :ivar uMed: Unidade Básica de Medida 1=kW; 2=kWh; 3=kVAr; + 4=kVArh + :ivar qtdDias: Quantidade de dias de medição + """ + + CompetFat: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "min_length": 6, + "max_length": 6, + "white_space": "preserve", + "pattern": r"[0-9]{1,6}", + }, + ) + vFat: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,13}(\.[0-9]{2,4})?", + }, + ) + uMed: Optional[Tumed] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + qtdDias: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{2}", + }, + ) + + +@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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{8}", + }, + ) + UF: Optional[TufSemEx] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + fone: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"[0-9]{7,12}", + }, + ) + email: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "white_space": "preserve", + "pattern": r"[0-9]{8}", + }, + ) + UF: Optional[Tuf] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + cPais: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"[0-9]{1,4}", + }, + ) + xPais: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "white_space": "preserve", + "pattern": r"[0-9]{7,12}", + }, + ) + email: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_length": 1, + "max_length": 60, + "white_space": "preserve", + "pattern": r"[^@]+@[^\.]+\..+", + }, + ) + + +@dataclass +class Tmedida(CommonMixin): + """ + :ivar tpGrMed: Tipo de grandeza medida 01 - Demanda; 02 - Demanda + Reativa ; 03 - Energia Ativa; 04 - Energia Ativa injetada ; 05 - + Energia Reativa + :ivar cPosTarif: Tipo de posto tarifário 0 - Único/Não se aplica; 1 + - Ponta; 2 - Fora Ponta; 3 - Intermediário; 4 - Ponta Reservado + ; 5 - Fora ponta Reservado; 6 - Intermediário Reservado ; + 7=Reservado + :ivar uMed: Unidade Básica de Medida 1 - kW ; 2 - kWh; 3 - kVAr; 4 - + kVArh + :ivar vMedAnt: Valor da medição (leitura) anterior + :ivar vMedAtu: Valor da medição (leitura) atual + :ivar vConst: Indicar o fator de multiplicação do medidor + :ivar vMed: Valor da medição (vMedAtu – vMedAnt) * vConst + :ivar pPerdaTran: Perda de Transformação(percentual) + :ivar vMedPerdaTran: Valor medido após perda de transformação vMed * + (1 + pPerdTran/100) + :ivar vMedPerdaTec: Valor medido após perda técnica + """ + + class Meta: + name = "TMedida" + + tpGrMed: Optional[TgrMed] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + cPosTarif: Optional[TposTarifCompleto] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + uMed: Optional[Tumed] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + vMedAnt: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,13}(\.[0-9]{2,4})?", + }, + ) + vMedAtu: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,13}(\.[0-9]{2,4})?", + }, + ) + vConst: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,13}(\.[0-9]{2,6})?", + }, + ) + vMed: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,13}(\.[0-9]{2,4})?", + }, + ) + pPerdaTran: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?", + }, + ) + vMedPerdaTran: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"[0-9]{1,13}(\.[0-9]{2,4})?", + }, + ) + vMedPerdaTec: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"[0-9]{1,13}(\.[0-9]{2,4})?", + }, + ) + + +@dataclass +class TprotNf3E(CommonMixin): + """ + Tipo Protocolo de status resultado do processamento da NF-3e (Modelo 66) + + :ivar infProt: Dados do protocolo de status + :ivar infFisco: Mensagem do Fisco + :ivar signature: + :ivar versao: + """ + + class Meta: + name = "TProtNF3e" + + infProt: Optional["TprotNf3E.InfProt"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + infFisco: Optional["TprotNf3E.InfFisco"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + 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 NF-3e + :ivar chNF3e: Chave de acesso da NF-3e + :ivar dhRecbto: Data e hora de processamento, no formato AAAA- + MM-DDTHH:MM:SS TZD. + :ivar nProt: Número do Protocolo de Status da NF-3e. + :ivar digVal: Digest Value da NF-3e processado. Utilizado para + conferir a integridade da NF-3e original. + :ivar cStat: Código do status da NF-3e. + :ivar xMotivo: Descrição literal do status da NF-3e. + :ivar Id: + """ + + tpAmb: Optional[Tamb] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + verAplic: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "min_length": 1, + "max_length": 20, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + chNF3e: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "white_space": "preserve", + "pattern": r"[0-9]{16}", + }, + ) + digVal: Optional[bytes] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "format": "base64", + }, + ) + cStat: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + "min_length": 1, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class TretEnviNf3E(CommonMixin): + """ + Tipo Retorno do recibo de envio do lote de NF-3e (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 NF-3e + :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 = "TRetEnviNF3e" + + tpAmb: Optional[Tamb] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + cUF: Optional[TcodUfIbge] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + verAplic: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + "min_length": 1, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + infRec: Optional["TretEnviNf3E.InfRec"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + 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/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + "pattern": r"[0-9]{1,4}", + }, + ) + + +@dataclass +class Tnf3E(CommonMixin): + """ + Tipo Nota Fiscal de Energia Elétrica. + + :ivar infNF3e: Informações da NF-3e + :ivar infNF3eSupl: Informações suplementares da NF-3e + :ivar signature: + """ + + class Meta: + name = "TNF3e" + + infNF3e: Optional["Tnf3E.InfNf3E"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + infNF3eSupl: Optional["Tnf3E.InfNf3ESupl"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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 InfNf3E(CommonMixin): + """ + :ivar ide: Identificação da NF-3e + :ivar emit: Identificação do Emitente do documento fiscal + :ivar dest: Identificação do destinatário / acessante + :ivar acessante: Dados do acessante + :ivar gSub: Grupo de informações da substituição + :ivar gJudic: Grupo de informações para referenciar a NF3e + original que foi separada judicialmente + :ivar gGrContrat: Grupo de informações das quantidades + contratadas + :ivar gMed: Grupo de informações dos Medidores + :ivar gSCEE: Grupo dos dados do Sistema de Compensação de + Energia Elétrica + :ivar NFdet: Detalhamento de Produtos e Serviços Quando NF3e + Normal com ajustes, utilizar a ultima nota do detalhamento + para apresentar a fatura do mês atual + :ivar total: Dados dos totais da NF-3e + :ivar gFat: Grupo de informações de controle da Fatura + :ivar gANEEL: Grupo de informações da Agência Nacional de + Energia Eletrica + :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 NF-3e e precedida do literal "NF3e" + """ + + ide: Optional["Tnf3E.InfNf3E.Ide"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + emit: Optional["Tnf3E.InfNf3E.Emit"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + dest: Optional["Tnf3E.InfNf3E.Dest"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + acessante: Optional["Tnf3E.InfNf3E.Acessante"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + gSub: Optional["Tnf3E.InfNf3E.GSub"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + gJudic: Optional["Tnf3E.InfNf3E.GJudic"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + gGrContrat: List["Tnf3E.InfNf3E.GGrContrat"] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "max_occurs": 20, + }, + ) + gMed: List["Tnf3E.InfNf3E.GMed"] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "max_occurs": 20, + }, + ) + gSCEE: Optional["Tnf3E.InfNf3E.GScee"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + NFdet: List["Tnf3E.InfNf3E.Nfdet"] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_occurs": 1, + "max_occurs": 13, + }, + ) + total: Optional["Tnf3E.InfNf3E.Total"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + gFat: Optional["Tnf3E.InfNf3E.GFat"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + gANEEL: Optional[Taneel] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + autXML: List["Tnf3E.InfNf3E.AutXml"] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "max_occurs": 10, + }, + ) + infAdic: Optional["Tnf3E.InfNf3E.InfAdic"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + gRespTec: Optional[TrespTec] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + 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"NF3e[0-9]{44}", + }, + ) + + @dataclass + class Ide(CommonMixin): + """ + :ivar cUF: Código da UF do emitente da NF-3e Código da UF do + emitente 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 NF-3e Utilizar o código 66 para + identificação da NF-3e + :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 Off Line + :ivar nSiteAutoriz: Identificação do número do Site do + Autorizador de recepção da NF3e Se o autorizador da NF3e + 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 NF3e (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 finNF3e: Finalidade de emissão da NF-3e 1 - NF-3e + normal; 2 - NF-3e substituição; 3 - NF-3e normal com + ajuste; + :ivar verProc: Versão do processo de emissão Informar a + versão do aplicativo emissor de NF-3e. + :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/nf3e", + "required": True, + }, + ) + tpAmb: Optional[Tamb] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + mod: Optional[TmodNf3E] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + serie: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + }, + ) + nSiteAutoriz: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{7}", + }, + ) + finNF3e: Optional[TfinNf3E] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + verProc: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "min_length": 1, + "max_length": 20, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + dhCont: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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 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/nf3e", + "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/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{2,14}", + }, + ) + xNome: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + }, + ) + + @dataclass + class Dest(CommonMixin): + """ + :ivar xNome: Razão social ou Nome do destinatário / + acessante + :ivar CNPJ: Número do CNPJ Em caso de empresa não + estabelecida no Brasil, será informado o CNPJ com zeros. + 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 (informar código + do RANI) e quilombola; ou destinatário que a + distribuidora não possui a informação (nestes casos + orienta-se informar "00000"). + :ivar indIEDest: Indicador da IE do Destinatário/Acessante 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 / acessante + :ivar IM: Inscrição Municipal + :ivar cNIS: Número da Identificação Social - NIS + :ivar NB: Número do Benefício + :ivar xNomeAdicional: Nome de destinatário adicional + Exemplo: Nome do Conjuge, Companheira(o) + :ivar enderDest: Endereço do destinatário / acessante + """ + + xNome: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "white_space": "preserve", + "pattern": r"[0-9]{11}", + }, + ) + idOutros: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "required": True, + }, + ) + IE: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "min_length": 1, + "max_length": 15, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + cNIS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_length": 1, + "max_length": 15, + "white_space": "preserve", + "pattern": r"[0-9]{15}", + }, + ) + NB: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_length": 1, + "max_length": 10, + "white_space": "preserve", + "pattern": r"[0-9]{10}", + }, + ) + xNomeAdicional: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_length": 2, + "max_length": 60, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + enderDest: Optional[TendeEmi] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + + @dataclass + class Acessante(CommonMixin): + """ + :ivar idAcesso: Código único de Identificação da Unidade + Consumidora ou Ponto de Acesso adotado pela + distribuidora. + :ivar idCodCliente: Código de Identificação do Cliente para + empresa emitente + :ivar tpAcesso: Tipo de Acessante 0 - Gerador; 1 – Cativo; 2 + – Livre; 3 – Parcialmente Livre; 4 – Consumidor + Especial; 5 – Parcialmente Especial; 6 – Comunhão; 7 – + Suprimento; 8 – Distribuidora. + :ivar xNomeUC: Nome da Unidade Consumidora + :ivar tpClasse: Classe de Consumo da Unidade Consumidora 01 + - Comercial 02 - Consumo Próprio 03 - Iluminação Pública + 04 - Industrial 05 - Poder Público 06 - Residencial 07 - + Rural 08 -Serviço Público. + :ivar tpSubClasse: Subclasse de Consumo da Unidade + Consumidora 01 - Residencial; 02 - Residencial baixa + renda; 03 - Residencial baixa renda indígena; 04 - + Residencial baixa renda quilombola; 05 - Residencial + baixa renda benefício de prestação continuada da + assistência social; 06 - Residencial baixa renda + multifamiliar; 07 - Comercial; 08 - Serviços de + transporte, exceto tração elétrica; 09 - Serviços de + comunicação e telecomunicação; 10 - Associação e + entidades filantrópicas; 11 - Templos religiosos; 12 - + Administração condominial: iluminação e instalações de + uso comum de prédio ou conjunto de edificações; 13 - + Iluminação em rodovias solicitada por quem detenha + concessão ou autorização para administração em rodovias; + 14 - Semáforos, radares e câmeras de monitoramento de + trânsito, solicitados por quem detenha concessão ou + autorização para controle de trânsito; 15 - Outros + serviços e outras atividades da classe comercial; + 16=Agropecuária rural; 17 - Agropecuária urbana; 18 - + Residencial rural; 19 - Cooperativa de eletrificação + rural; 20 - Agroindustrial; 21 - Serviço público de + irrigação rural; 22 - Escola agrotécnica; 23 - + Aquicultura; 24 - Poder público Federal; 25 - Poder + Público Estadual ou Distrital; 26 - Poder público + Municipal; 27 - Tração Elétrica; 28 - Água esgoto ou + saneamento; 99 - Outros. + :ivar tpFase: Tipo de ligação 1 - Monofásico; 2 - Bifásico; + 3 - Trifásico; + :ivar tpGrpTensao: Grupo e Subgrupo de Tensão 01 - A1 - Alta + Tensão (230kV ou mais); 02 - A2 - Alta Tensão (88 a + 138kV); 03 - A3 - Alta Tensão (69kV); 04 - A3a - Alta + Tensão (30kV a 44kV); 05 - A4 - Alta Tensão (2,3kV a + 25kV); 06 - AS - Alta Tensão Subterrâneo; 07 - B1 - + Residencial; 08 - B1 - Residencial Baixa Renda; 09 - B2 + - Rural; 10 - B2 - Cooperativa de Eletrificação Rural; + 11 - B2 - Serviço Público de Irrigação; 12 - B3 - Demais + Classes; 13 - B4a - Iluminação Pública - rede de + distribuição; 14 - B4b - Iluminação Pública - bulbo de + lâmpada. + :ivar tpModTar: Modalidade Tarifária 01 – Convencional + Monômia; 02 – Convencional Binômia; 03 – Horária Azul; + 04 – Horária Azul APE;05 – Horária Verde;06 – Horária + Verde APE; 07 – Horária Branca;08 – Pré-pagamento; 09 – + Geração; 10 – Distribuição. + :ivar latGPS: Latitude do ponto geográfico da localização da + captura + :ivar longGPS: Longitude do ponto geográfico da localização + da captura + :ivar codRoteiroLeitura: Roteiro da Leitura para uso + operacional Nome da unidade consumidora, exclusivamente + para a classe Poder Público, desde que informado + previamente e solicitado pelo consumidor. + """ + + idAcesso: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "min_length": 1, + "max_length": 15, + "white_space": "preserve", + "pattern": r"([!-ÿ]{0}|[!-ÿ]{1,15})?", + }, + ) + idCodCliente: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_length": 2, + "max_length": 20, + "white_space": "preserve", + "pattern": r"([!-ÿ]{0}|[!-ÿ]{2,20})?", + }, + ) + tpAcesso: Optional[Tacessante] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + xNomeUC: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_length": 2, + "max_length": 60, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + tpClasse: Optional[Tclasse] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + tpSubClasse: Optional[TsubClasse] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + tpFase: Optional[Tfase] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + tpGrpTensao: Optional[TgrpTensao] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + tpModTar: Optional[TmodTar] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + latGPS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]\.[0-9]{6}|[1-8][0-9]\.[0-9]{6}|90\.[0-9]{6}|-[0-9]\.[0-9]{6}|-[1-8][0-9]\.[0-9]{6}|-90\.[0-9]{6}", + }, + ) + longGPS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]\.[0-9]{6}|[1-9][0-9]\.[0-9]{6}|1[0-7][0-9]\.[0-9]{6}|180\.[0-9]{6}|-[0-9]\.[0-9]{6}|-[1-9][0-9]\.[0-9]{6}|-1[0-7][0-9]\.[0-9]{6}|-180\.[0-9]{6}", + }, + ) + codRoteiroLeitura: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_length": 2, + "max_length": 100, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + @dataclass + class GSub(CommonMixin): + """ + :ivar chNF3e: Chave de acesso da NF3e referenciada + :ivar gNF: Informação da NF modelo 06 referenciada + :ivar motSub: Motivo da substituição 01 – Erro de Leitura ; + 02 – Erro de Preço ou Erro de Tarifa; 03 – Decisão + Judicial ; 04 – Erro Cadastral; 05 - Erro de Tributação + """ + + chNF3e: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "max_length": 44, + "white_space": "preserve", + "pattern": r"[0-9]{44}", + }, + ) + gNF: Optional["Tnf3E.InfNf3E.GSub.GNf"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + motSub: Optional[TmotSub] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + + @dataclass + class GNf(CommonMixin): + """ + :ivar CNPJ: CNPJ do Emitente Informar o CNPJ do emitente + do Documento Fiscal + :ivar serie: Serie do documento fiscal + :ivar nNF: Número do documento fiscal + :ivar CompetEmis: Ano e mês da emissão da NF mod. 06 + (AAAAMM) + :ivar CompetApur: Ano e mês de apuração (AAAAMM) + :ivar hash115: Hash do registro no arquivo do convênio + 115 Campo poderá ser exigido a critério da UF + """ + + CNPJ: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{14}", + }, + ) + serie: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "min_length": 1, + "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/nf3e", + "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/nf3e", + "required": True, + "min_length": 6, + "max_length": 6, + "white_space": "preserve", + "pattern": r"[0-9]{1,6}", + }, + ) + CompetApur: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "min_length": 32, + "max_length": 32, + "format": "base64", + }, + ) + + @dataclass + class GJudic(CommonMixin): + """ + :ivar chNF3e: Chave de acesso da NF3e referenciada + """ + + chNF3e: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "max_length": 44, + "white_space": "preserve", + "pattern": r"[0-9]{44}", + }, + ) + + @dataclass + class GGrContrat(CommonMixin): + """ + :ivar tpGrContrat: Tipo de grandeza contratada 1 - Demanda; + 2 - Montante de Uso do Sistema de Distribuição; 3 - + Reserva de Capacidade; 4 - Energia Contratada + :ivar tpPosTar: Tipo de Posto Tarifário Contratado 0 - Único + ; 1 - Ponta ; 2 - Fora Ponta + :ivar qUnidContrat: Quantidade Contratada em kW ou kWh + :ivar nContrat: Número de referência para informar nos + produtos a relação com a quantidade contratada + """ + + tpGrContrat: Optional[TgrContrat] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + tpPosTar: Optional[TposTarSimples] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + qUnidContrat: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,13}(\.[0-9]{2,6})?", + }, + ) + nContrat: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "min_length": 2, + "max_length": 2, + "white_space": "preserve", + "pattern": r"(0[1-9]|1[0-9]|20)", + }, + ) + + @dataclass + class GMed(CommonMixin): + """ + :ivar idMedidor: Identificação do medidor + :ivar dMedAnt: Data da leitura anterior Formato AAAA-MM-DD + :ivar dMedAtu: Data da leitura atual Formato AAAA-MM-DD + :ivar nMed: Número de referência para informar nos produtos + a relação com a medição + """ + + idMedidor: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "min_length": 2, + "max_length": 20, + "white_space": "preserve", + "pattern": r"([!-ÿ]{0}|[!-ÿ]{2,20})?", + }, + ) + dMedAnt: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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)))))", + }, + ) + dMedAtu: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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)))))", + }, + ) + nMed: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "min_length": 2, + "max_length": 2, + "white_space": "preserve", + "pattern": r"(0[1-9]|1[0-9]|20)", + }, + ) + + @dataclass + class GScee(CommonMixin): + """ + :ivar tpPartComp: Tipo de participação no sistema de + compensação de energia elétrica 1 - Mini ou microgeração + (somente uma UC); 2 - Múltiplas unidades consumidoras + (condomínio em área definida); 3 - Autoconsumo remoto; 4 + - Geração compartilhada (consórcio ou cooperativa); 5 - + Mista (utilizar quando enquadrado em mais de um tipo de + participação) + :ivar gConsumidor: Participação no SCEE como Consumidor + :ivar gSaldoCred: Saldos de Créditos por posto tarifário + :ivar gTipoSaldo: Agrupador de Saldos para registros de + múltiplos saldos por posto tarifário + """ + + tpPartComp: Optional[TpartComp] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + gConsumidor: List["Tnf3E.InfNf3E.GScee.GConsumidor"] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_occurs": 1, + }, + ) + gSaldoCred: List["Tnf3E.InfNf3E.GScee.GSaldoCred"] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "max_occurs": 3, + }, + ) + gTipoSaldo: List["Tnf3E.InfNf3E.GScee.GTipoSaldo"] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "max_occurs": 10, + }, + ) + + @dataclass + class GConsumidor(CommonMixin): + """ + :ivar idAcessGer: Código Único de identificação da + unidade geradora Informar o Código Único adotado + pela companhia distribuidora para o ponto de acesso + da unidade geradora cuja energia foi destinada a + esta unidade consumidora. + :ivar vPotInst: Potência instalada da micro ou + minigeraçao em kW + :ivar tpFonteEnergia: Tipo da fonte de energia + 1-Hidráulica, 2-Solar, 3-Eólica, 4-Térmica, 5 - + Hibrida + :ivar enerAloc: Energia alocada Quantidade de energia + excedente que é destinado pela unidade geradora a + esta unidade consumidora em kWh. + :ivar tpPosTar: Tipo de Posto Tarifário 0=Único ; + 1=Ponta ; 2=Fora Ponta; 3=Intermediário + """ + + idAcessGer: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "min_length": 2, + "max_length": 20, + "white_space": "preserve", + "pattern": r"([!-ÿ]{0}|[!-ÿ]{2,20})?", + }, + ) + vPotInst: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{3}|[1-9]{1}[0-9]{0,4}(\.[0-9]{3})?", + }, + ) + tpFonteEnergia: Optional[TfonteEnergia] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + enerAloc: List[str] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_occurs": 1, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{3}|[1-9]{1}[0-9]{0,7}(\.[0-9]{3})?", + }, + ) + tpPosTar: List[TposTarSimples] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_occurs": 1, + }, + ) + + @dataclass + class GSaldoCred(CommonMixin): + """ + :ivar tpPosTar: Tipo de Posto Tarifário 0=Único ; + 1=Ponta ; 2=Fora Ponta; 3 = Intermediario + :ivar vSaldAnt: Saldo Anterior de Créditos em kWh + :ivar vCredExpirado: Créditos Expirados + :ivar vSaldAtual: Saldo Atual de Créditos em kWh + :ivar vCredExpirar: Créditos a Expirar Próxima parcela + do saldo atualizado de créditos a expirar + :ivar CompetExpirar: Ciclo de faturamento em que + ocorrerá a expiração (AAAAMM) + """ + + tpPosTar: Optional[TposTarSimples] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + vSaldAnt: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,11}(\.[0-9]{2,4})?", + }, + ) + vCredExpirado: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,11}(\.[0-9]{2,4})?", + }, + ) + vSaldAtual: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,11}(\.[0-9]{2,4})?", + }, + ) + vCredExpirar: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"[0-9]{1,11}(\.[0-9]{2,4})?", + }, + ) + CompetExpirar: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_length": 6, + "max_length": 6, + "white_space": "preserve", + "pattern": r"[0-9]{1,6}", + }, + ) + + @dataclass + class GTipoSaldo(CommonMixin): + """ + :ivar gSaldoCred: Saldos de Créditos por posto tarifário + :ivar nTipoSaldo: Número referente ao agrupador de + saldos por posto tarifário Aceita valores de 01 a + 10. Serve para organizar a informação dos grupos de + saldos. + """ + + gSaldoCred: List[ + "Tnf3E.InfNf3E.GScee.GTipoSaldo.GSaldoCred" + ] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_occurs": 1, + "max_occurs": 3, + }, + ) + nTipoSaldo: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "min_length": 1, + "max_length": 3, + "white_space": "preserve", + "pattern": r"(0[1-9]|10)", + }, + ) + + @dataclass + class GSaldoCred(CommonMixin): + """ + :ivar tpPosTar: Tipo de Posto Tarifário 0=Único ; + 1=Ponta ; 2=Fora Ponta; 3 = Intermediario + :ivar vSaldAnt: Saldo Anterior de Créditos em kWh + :ivar vCredExpirado: Créditos Expirados + :ivar vSaldAtual: Saldo Atual de Créditos em kWh + :ivar vCredExpirar: Créditos a Expirar Próxima + parcela do saldo atualizado de créditos a + expirar + :ivar CompetExpirar: Ciclo de faturamento em que + ocorrerá a expiração (AAAAMM) + """ + + tpPosTar: Optional[TposTarSimples] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + vSaldAnt: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,11}(\.[0-9]{2,4})?", + }, + ) + vCredExpirado: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,11}(\.[0-9]{2,4})?", + }, + ) + vSaldAtual: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,11}(\.[0-9]{2,4})?", + }, + ) + vCredExpirar: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"[0-9]{1,11}(\.[0-9]{2,4})?", + }, + ) + CompetExpirar: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_length": 6, + "max_length": 6, + "white_space": "preserve", + "pattern": r"[0-9]{1,6}", + }, + ) + + @dataclass + class Nfdet(CommonMixin): + """ + :ivar det: Detalhamento de Produtos e Serviços + :ivar chNF3eAnt: Chave de Acesso da NF-3e anterior Informar + apenas para finalidade de Ajuste + :ivar mod6HashAnt: HashCode da Modelo 6 Anterior Informar + apenas para finalidade de Ajuste + """ + + det: List["Tnf3E.InfNf3E.Nfdet.Det"] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_occurs": 1, + "max_occurs": 990, + }, + ) + chNF3eAnt: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "max_length": 44, + "white_space": "preserve", + "pattern": r"[0-9]{44}", + }, + ) + mod6HashAnt: Optional[bytes] = field( + default=None, + metadata={ + "type": "Attribute", + "format": "base64", + }, + ) + + @dataclass + class Det(CommonMixin): + """ + :ivar gAjusteNF3eAnt: Grupo de identificação do ajuste + do item de NF-3e anterior Somente informar no caso + de item relacionado a NF-3e anterior + :ivar detItemAnt: Grupo de informações referentes a item + da NF-3e anterior Este grupo somente deverá ser + preenchido para detalhar item ajustado de nota + anterior nos casos de item alterado ou excluído + :ivar detItem: Grupo de informações referentes a item da + NF-3e + :ivar nItem: Número do item da NF-3e + """ + + gAjusteNF3eAnt: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.GAjusteNf3EAnt" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + detItemAnt: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItemAnt" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + detItem: Optional["Tnf3E.InfNf3E.Nfdet.Det.DetItem"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + nItem: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "white_space": "preserve", + "pattern": r"[1-9]{1}[0-9]{0,1}|[1-8]{1}[0-9]{2}|[9]{1}[0-8]{1}[0-9]{1}|[9]{1}[9]{1}[0]{1}", + }, + ) + + @dataclass + class GAjusteNf3EAnt(CommonMixin): + """ + :ivar tpAjuste: Tipo de ajuste a ser aplicado ao + item 1 - Item a ser substituído (deve informar + detItemAnt); 2 - Item de substituição (nova + imagem do item anterior); 3 - Item a ser + eliminado (deve informar detItemAnt); 4 - Item a + ser incluído referente a NF-3e anterior ; + :ivar motAjuste: Motivo do Ajuste 1 – Erro de + Leitura ; 2 – Erro de Preço ou Erro de Tarifa ; + 3 – Decisão Judicial ; 4 – Erro Cadastral ; 5 - + Erro de Tributação + """ + + tpAjuste: Optional[TajusteNf3EAnt] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + motAjuste: Optional[TmotAjuste] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + + @dataclass + class DetItemAnt(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 cClass: Código de classificação Tabela de + Classificação de Item da NF-3e de Energia + Elétrica (validar por RV) + :ivar vBC: Valor da BC do ICMS + :ivar pICMS: Alíquota do ICMS + :ivar vICMS: Valor do ICMS + :ivar vFCP: Valor do ICMS relativo ao Fundo de + Combate à Pobreza (FCP). + :ivar vBCST: Valor da BC do ICMS ST + :ivar vICMSST: Valor do ICMS ST retido + :ivar vFCPST: Valor do ICMS relativo ao Fundo de + Combate à Pobreza (FCP). + :ivar vPIS: Valor do PIS + :ivar vPISEfet: Valor efetivo do PIS + :ivar vCOFINS: Valor do COFINS + :ivar vCOFINSEfet: Valor Efetivo do COFINS + :ivar retTrib: Grupo de informações de retenção de + tributos federais do item anterior + :ivar indDevolucao: Indicador de devolução do valor + do item 1 – Devolução do valor do item + :ivar nItemAnt: Número do item da NF-3e anterior + """ + + vItem: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,13}(\.[0-9]{2,10})?", + }, + ) + qFaturada: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,13}(\.[0-9]{2,10})?", + }, + ) + cClass: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "min_length": 7, + "max_length": 7, + "white_space": "preserve", + "pattern": r"[0-9]{7}", + }, + ) + vBC: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + vBCST: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + vICMSST: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + vFCPST: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + vPISEfet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + vCOFINSEfet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + retTrib: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItemAnt.RetTrib" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + indDevolucao: Optional[DetItemAntIndDevolucao] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + }, + ) + nItemAnt: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "min_length": 1, + "max_length": 3, + "white_space": "preserve", + "pattern": r"[1-9]{1}[0-9]{0,1}|[1-8]{1}[0-9]{2}|[9]{1}[0-8]{1}[0-9]{1}|[9]{1}[9]{1}[0]{1}", + }, + ) + + @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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,13}(\.[0-9]{2,8})?", + }, + ) + + @dataclass + class DetItem(CommonMixin): + """ + :ivar gTarif: Grupo de Tarifas por Período + :ivar gAdBand: Grupo de Adicional de Bandeira + :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 gContab: Grupo de Informações Contábeis + Informar o número das contas contábeis objeto do + lançamento completo do fato. + :ivar infAdProd: Informações adicionais do produto + (norma referenciada, informações complementares, + etc) + :ivar nItemAnt: Número do item da NF-3e anterior que + este item está substituindo. Deve sempre existir + um detItemAnt que corresponda + """ + + gTarif: List[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.GTarif" + ] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "max_occurs": 6, + }, + ) + gAdBand: List[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.GAdBand" + ] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "max_occurs": 3, + }, + ) + prod: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.Prod" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + imposto: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.Imposto" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + gProcRef: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.GProcRef" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + gContab: List[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.GContab" + ] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "max_occurs": 99, + }, + ) + infAdProd: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_length": 1, + "max_length": 500, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + nItemAnt: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "min_length": 1, + "max_length": 3, + "white_space": "preserve", + "pattern": r"[1-9]{1}[0-9]{0,1}|[1-8]{1}[0-9]{2}|[9]{1}[0-8]{1}[0-9]{1}|[9]{1}[9]{1}[0]{1}", + }, + ) + + @dataclass + class GTarif(CommonMixin): + """ + :ivar dIniTarif: Data de início da aplicação da + tarifa Data de início da aplicação da tarifa + no período considerado para o faturamento ( + Formato AAAA-MM-DD) + :ivar dFimTarif: Data de fim da aplicação da + tarifa Data de fim da aplicação da tarifa no + período considerado para o faturamento + (Formato AAAA-MM-DD) + :ivar tpAto: Tipo de Ato da ANEEL 1 - REH + (Resolução homologatória); 2 - Despacho; 3 - + REN (Resolução Normativa) + :ivar nAto: Número do Ato da ANEEL + :ivar anoAto: Ano do Ato da ANEEL (AAAA) + :ivar tpTarif: Tarifa de aplicação 1 - TE; 2 - + TUSD + :ivar cPosTarif: Tipo de posto tarifário 0 - + Único/Não se aplica; 1 - Ponta; 2 - Fora + Ponta; 3 - Intermediário; 4 - Ponta + Reservado; 5 - Fora ponta Reservado; 6 - + Intermediário Reservado 7 - Reservado + :ivar uMed: Unidade de Medida 1=kW (Aplica-se + somente a TUSD); 2=kWh (Aplica-se tanto a + TUSD quanto TE) + :ivar vTarifHom: Valor da tarifa homologada pela + ANEEL + :ivar vTarifAplic: Valor da tarifa aplicada + :ivar motDifTarif: Motivo da diferença de tarifa + aplicada com a homologada 01 - Decisão + judicial; 02 - Decisão da distribuidora + (tarifa homologada equivale a preço teto); + 03 - Desconto Tarifário; 04 - Reajuste + tarifário + """ + + dIniTarif: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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)))))", + }, + ) + dFimTarif: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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)))))", + }, + ) + tpAto: Optional[TatoAneel] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + nAto: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "min_length": 4, + "max_length": 4, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + anoAto: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "min_length": 4, + "max_length": 4, + "white_space": "preserve", + "pattern": r"[0-9]{4}", + }, + ) + tpTarif: Optional[Ttarifa] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + cPosTarif: Optional[TposTarifCompleto] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + uMed: Optional[GTarifUMed] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + }, + ) + vTarifHom: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{8}|[1-9]{1}[0-9]{0,8}(\.[0-9]{8})?", + }, + ) + vTarifAplic: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{8}|[1-9]{1}[0-9]{0,8}(\.[0-9]{8})?", + }, + ) + motDifTarif: Optional[GTarifMotDifTarif] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + }, + ) + + @dataclass + class GAdBand(CommonMixin): + """ + :ivar dIniAdBand: Data de início da aplicação do + adicional Data de início da aplicação do + adicional de bandeira no período considerado + para o faturamento (Formato AAAA-MM-DD) + :ivar dFimAdBand: Data de fim da aplicação do + adicional Data de fim da aplicação do + adicional de bandeira no período considerado + para o faturamento ( Formato AAAA-MM-DD) + :ivar tpBand: Tipo da bandeira tarifária 1 – + Verde; 2 – Amarela; 3 – Vermelha patamar 1; + 4 – Vermelha patamar 2 ; 5 - Escassez + Hidrica + :ivar vAdBand: Valor do Adicional tarifário + Resultado decorrente da aplicação do + adicional de cada bandeira sobre o consumo + faturado no período considerado entre as + datas de início e fim. Quando for bandeira + verde o campo valor do adicional tarifário + deverá ser preenchido com zero (0.00). + :ivar vAdBandAplic: Valor do adicional tarifário + aplicado + :ivar motDifBand: Motivo da diferença do + adicional aplicado 01 - Decisão judicial; 02 + - Decisão da distribuidora (tarifa + homologada equivale a preço teto); 03 - + Desconto tarifário ; 04 - Alteração de + tarifa + """ + + dIniAdBand: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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)))))", + }, + ) + dFimAdBand: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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)))))", + }, + ) + tpBand: Optional[Tband] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + vAdBand: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,13}(\.[0-9]{2,10})?", + }, + ) + vAdBandAplic: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"[0-9]{1,13}(\.[0-9]{2,10})?", + }, + ) + motDifBand: Optional[GAdBandMotDifBand] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + }, + ) + + @dataclass + class Prod(CommonMixin): + """ + :ivar indOrigemQtd: Indicador da origem da + quantidade faturada 1 - Media; 2 - Medido; 3 + - Contratada; 4 - Calculada; 5 - Custo de + disponibilidade; 6 - Sem quantidade + :ivar gMedicao: Grupo para referenciar qual + medição e medida estão relacionadas ao item + :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 NF-3e de Energia + Elétrica (validar por RV) + :ivar CFOP: CFOP Utilizar Tabela de CFOP. + :ivar uMed: Unidade Básica de Medida 1=kW ; + 2=kWh; 3=kVAr; 4=kVArh; 5=UN + :ivar qFaturada: Quantidade Faturada Informar a + quantidade de comercialização do produto . + :ivar vItem: Valor unitário do item O valor + unitário do item no caso de energia elétrica + corresponde ao valor da tarifa e dos + tributos que devam compor a base de cálculo. + O item pode estar acrescido do adicional da + bandeira tarifária ou o adicional de + bandeira poderá ser lançado como um item + específico. Este campo também corresponde ao + preço médio efetivo relativo ao consumo + ativo do período, quando aplicáveis os + termos do inciso I da clausula primeira do + Convênio ICMS 77/11 (DEVEC). + :ivar vProd: Valor total do item + :ivar indDevolucao: Indicador de devolução do + valor do item 1 – Devolução do valor do item + :ivar indPrecoACL: Preço ACL Valor declarado na + DEVEC de acordo com convênio ICMS 77/11 Deve + informar ICMS10 e não poderá informar grupo + de tarifas aplicadas. + """ + + indOrigemQtd: Optional[TorigemQtd] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + gMedicao: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.Prod.GMedicao" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + cProd: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "white_space": "preserve", + "pattern": r"[123567][0-9]([0-9][1-9]|[1-9][0-9])", + }, + ) + uMed: Optional[TumedItem] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + qFaturada: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,13}(\.[0-9]{2,10})?", + }, + ) + vProd: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,13}(\.[0-9]{2,10})?", + }, + ) + indDevolucao: Optional[ProdIndDevolucao] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + }, + ) + indPrecoACL: Optional[ProdIndPrecoAcl] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + }, + ) + + @dataclass + class GMedicao(CommonMixin): + """ + :ivar nMed: Referência para a medição ao + qual se refere o item + :ivar nContrat: Referência para o grupo de + demanda contratada ao qual se refere o + item + :ivar gMedida: Grupo de medida + :ivar tpMotNaoLeitura: Tipo Motivo da não + leitura 1 - Consumidor; 2 - + Distribuidora; 3 - Independente do + Consumidor e distribuidora; + """ + + nMed: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "min_length": 2, + "max_length": 2, + "white_space": "preserve", + "pattern": r"(0[1-9]|1[0-9]|20)", + }, + ) + nContrat: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_length": 2, + "max_length": 2, + "white_space": "preserve", + "pattern": r"(0[1-9]|1[0-9]|20)", + }, + ) + gMedida: Optional[Tmedida] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + tpMotNaoLeitura: Optional[TmotNaoLeitura] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + + @dataclass + class Imposto(Timp): + """ + :ivar ICMS00: Prestação sujeito à tributação + normal do ICMS Tributada integralmente + :ivar ICMS10: Tributada e com cobrança do ICMS + por substituição tributária + :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 ICMS60: Tributação pelo ICMS 60 - ICMS + cobrado anteriormente por substituição + tributária + :ivar ICMS90: ICMS Outros Será usado no caso da + subvenção ou para NF-3e de ajuste quando for + o caso. + :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 PISEfet: Dados do PIS Efetivo + :ivar COFINS: Dados do COFINS + :ivar COFINSEfet: Dados do COFINS Efetivo + :ivar retTrib: Grupo de informações de retenção + de tributos federais + """ + + ICMS00: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.Imposto.Icms00" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + ICMS10: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.Imposto.Icms10" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + ICMS20: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.Imposto.Icms20" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + ICMS40: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.Imposto.Icms40" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + ICMS51: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.Imposto.Icms51" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + ICMS60: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.Imposto.Icms60" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + ICMS90: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.Imposto.Icms90" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + indSemCST: Optional[ImpostoIndSemCst] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + }, + ) + PIS: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.Imposto.Pis" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + PISEfet: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.Imposto.Pisefet" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + COFINS: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.Imposto.Cofins" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + COFINSEfet: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.Imposto.Cofinsefet" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + retTrib: Optional[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.Imposto.RetTrib" + ] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + + @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 erro 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/nf3e", + "required": True, + "white_space": "preserve", + }, + ) + vBC: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + + @dataclass + class Pisefet(CommonMixin): + """ + :ivar vBCPISEfet: Valor da BC do PIS efetivo + :ivar pPISEfet: Alíquota efetiva do PIS (em + percentual) + :ivar vPISEfet: Valor efetivo do PIS + """ + + vBCPISEfet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + pPISEfet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2,4}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2,4})?", + }, + ) + vPISEfet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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 erro 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/nf3e", + "required": True, + "white_space": "preserve", + }, + ) + vBC: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + + @dataclass + class Cofinsefet(CommonMixin): + """ + :ivar vBCCOFINSEfet: Valor da BC do COFINS + efetivo + :ivar pCOFINSEfet: Alíquota Efetiva do + COFINS (em percentual) + :ivar vCOFINSEfet: Valor Efetivo do COFINS + """ + + vBCCOFINSEfet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + pCOFINSEfet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2,4}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2,4})?", + }, + ) + vCOFINSEfet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,13}(\.[0-9]{2,8})?", + }, + ) + + @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/nf3e", + "required": True, + "white_space": "preserve", + }, + ) + vBC: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + + @dataclass + class Icms10(CommonMixin): + """ + :ivar CST: classificação Tributária do + Serviço 10=Tributada e com cobrança do + ICMS por substituição tributária + :ivar vBCST: Valor da BC do ICMS ST + :ivar pICMSST: Alíquota do ICMS ST + :ivar vICMSST: Valor do ICMS ST retido + :ivar pFCPST: Percentual de ICMS relativo ao + Fundo de Combate à Pobreza (FCP). + :ivar vFCPST: Valor do ICMS relativo ao + Fundo de Combate à Pobreza (FCP). + """ + + CST: Optional[Icms10Cst] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + }, + ) + vBCST: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + pICMSST: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?", + }, + ) + vICMSST: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + pFCPST: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0\.[0-9]{2,4}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2,4})?", + }, + ) + vFCPST: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "required": True, + "white_space": "preserve", + }, + ) + pRedBC: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "max_length": 10, + "white_space": "preserve", + }, + ) + pFCP: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + "white_space": "preserve", + }, + ) + vICMSDeson: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + "white_space": "preserve", + }, + ) + vICMSDeson: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "max_length": 10, + "white_space": "preserve", + }, + ) + + @dataclass + class Icms60(CommonMixin): + """ + :ivar CST: Tributação pelo ICMS 60 - ICMS + cobrado anteriormente por substituição + tributária + :ivar vBCSTRet: Valor da BC do ICMS ST + retido anteriormente + :ivar pICMSSTRet: Aliquota suportada pelo + consumidor final. + :ivar vICMSSubstituto: Valor do ICMS Próprio + do Substituto cobrado em operação + anterior + :ivar vICMSSTRet: Valor do ICMS ST retido + anteriormente + :ivar vBCFCPSTRet: Valor da Base de cálculo + do FCP retido anteriormente por ST. + :ivar pFCPSTRet: Percentual de FCP retido + anteriormente por substituição + tributária. + :ivar vFCPSTRet: Valor do FCP retido por + substituição tributária. + :ivar pRedBCEfet: Percentual de redução da + base de cálculo efetiva. + :ivar vBCEfet: Valor da base de cálculo + efetiva. + :ivar pICMSEfet: Alíquota do ICMS efetiva. + :ivar vICMSEfet: Valor do ICMS efetivo. + :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[Icms60Cst] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + }, + ) + vBCSTRet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + pICMSSTRet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0\.[0-9]{2,4}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2,4})?", + }, + ) + vICMSSubstituto: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + vICMSSTRet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + vBCFCPSTRet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + pFCPSTRet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0\.[0-9]{2,4}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2,4})?", + }, + ) + vFCPSTRet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + pRedBCEfet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0\.[0-9]{2,4}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2,4})?", + }, + ) + vBCEfet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + pICMSEfet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0\.[0-9]{2,4}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2,4})?", + }, + ) + vICMSEfet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + "white_space": "preserve", + }, + ) + vBC: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "max_length": 10, + "white_space": "preserve", + }, + ) + pFCP: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + + @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 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 pFCP: Percentual de ICMS relativo ao Fundo + de Combate à Pobreza (FCP). + :ivar vFCP: Valor do ICMS relativo ao Fundo de + Combate à Pobreza (FCP). + :ivar vBCST: Valor da BC do ICMS ST + :ivar pICMSST: Alíquota do ICMS ST + :ivar vICMSST: Valor do ICMS ST retido + :ivar pFCPST: Percentual de ICMS relativo ao + Fundo de Combate à Pobreza (FCP). + :ivar vFCPST: Valor do ICMS relativo ao Fundo de + Combate à Pobreza (FCP). + :ivar vPIS: Valor do PIS + :ivar vPISEfet: Valor efetivo do PIS + :ivar vCOFINS: Valor do COFINS + :ivar vCOFINSEfet: Valor Efetivo do COFINS + :ivar gProc: Grupo identificador do Processo + """ + + vItem: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,13}(\.[0-9]{2,10})?", + }, + ) + qFaturada: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,13}(\.[0-9]{2,10})?", + }, + ) + indDevolucao: Optional[GProcRefIndDevolucao] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + }, + ) + vBC: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + vBCST: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + pICMSST: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?", + }, + ) + vICMSST: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + pFCPST: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0\.[0-9]{2,4}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2,4})?", + }, + ) + vFCPST: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + vPISEfet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + vCOFINSEfet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + gProc: List[ + "Tnf3E.InfNf3E.Nfdet.Det.DetItem.GProcRef.GProc" + ] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "required": True, + }, + ) + nProcesso: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "min_length": 1, + "max_length": 60, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + @dataclass + class GContab(CommonMixin): + """ + :ivar cContab: Número da Conta Contábil do + lançamento + :ivar xContab: Descrição da conta contábil + :ivar vContab: Valor do lançamento na conta + contábil Informar o valor do lançamento + contábil referente a cada conta a débito e a + crédito. + :ivar tpLanc: Tipo de lançamento contábil + Informar o tipo do lançamento contábil + referente a esta conta (D/C). + """ + + cContab: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "min_length": 9, + "max_length": 13, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + xContab: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "min_length": 1, + "max_length": 100, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + vContab: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + tpLanc: Optional[GContabTpLanc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + }, + ) + + @dataclass + class Total(CommonMixin): + """ + :ivar vProd: Valor Total dos produtos e serviços + :ivar ICMSTot: Totais referentes ao ICMS + :ivar vRetTribTot: Total da retenção de tributos federais + :ivar vCOFINS: Valor do COFINS + :ivar vCOFINSEfet: Total do Valor Efetivo do COFINS + :ivar vPIS: Valor do PIS + :ivar vPISEfet: Total do Valor Efetivo do PIS + :ivar vNF: Valor Total da NF-e + """ + + vProd: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + ICMSTot: Optional["Tnf3E.InfNf3E.Total.Icmstot"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + vRetTribTot: Optional["Tnf3E.InfNf3E.Total.VRetTribTot"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + vCOFINS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + vCOFINSEfet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + vPISEfet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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). + :ivar vBCST: BC do ICMS ST + :ivar vST: Valor Total do ICMS ST + :ivar vFCPST: Valor Total do FCP (Fundo de Combate à + Pobreza) retido por substituição tributária. + """ + + vBC: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + vBCST: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + vST: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + vFCPST: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?", + }, + ) + + @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 dApresFat: Data de apresentação da fatura Formato + AAAA-MM-DD Não obrigatória, conforme item 2.3.2 da Seção + 11.1 do Módulo 11 do PRODIST. + :ivar dProxLeitura: Data prevista próxima leitura Formato + AAAA-MM-DD + :ivar nFat: Número da Fatura + :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/nf3e", + "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/nf3e", + "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)))))", + }, + ) + dApresFat: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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)))))", + }, + ) + dProxLeitura: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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)))))", + }, + ) + nFat: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "min_length": 1, + "max_length": 20, + "white_space": "preserve", + "pattern": r"[0-9]{1,20}", + }, + ) + codBarras: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + "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/nf3e", + }, + ) + gPIX: Optional["Tnf3E.InfNf3E.GFat.GPix"] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + + @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/nf3e", + "required": True, + "min_length": 2, + "max_length": 2000, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + @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/nf3e", + "white_space": "preserve", + "pattern": r"[0-9]{14}", + }, + ) + CPF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "max_occurs": 5, + "min_length": 1, + "max_length": 3000, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + @dataclass + class InfNf3ESupl(CommonMixin): + """ + :ivar qrCodNF3e: Texto com o QR-Code para consulta da NF-3e + """ + + qrCodNF3e: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "min_length": 50, + "max_length": 1000, + "white_space": "preserve", + "pattern": r"((HTTPS?|https?)://.*\?chNF3e=[0-9]{44}&tpAmb=[1-2](&sign=[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1})?)", + }, + ) + + +@dataclass +class TretNf3E(CommonMixin): + """ + Tipo Retorno do Pedido de Autorização de NF-3e (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 NF-3e + :ivar cStat: código do status do retorno da consulta. + :ivar xMotivo: Descrição literal do status do do retorno da + consulta. + :ivar protNF3e: Reposta ao processamento da NF-3e + :ivar versao: + """ + + class Meta: + name = "TRetNF3e" + + tpAmb: Optional[Tamb] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + cUF: Optional[TcodUfIbge] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + }, + ) + verAplic: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e", + "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/nf3e", + "required": True, + "min_length": 1, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + protNF3e: Optional[TprotNf3E] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + }, + ) + versao: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "white_space": "preserve", + "pattern": r"1\.00", + }, + ) + + +@dataclass +class TenviNf3E(CommonMixin): + """ + Tipo Pedido de Concessão de Autorização de NF-3e. + """ + + class Meta: + name = "TEnviNF3e" + + idLote: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,15}", + }, + ) + NF3e: List[Tnf3E] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.portalfiscal.inf.br/nf3e", + "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/nf3e/bindings/v1_0/nf3e_v1_00.py b/nfelib/nf3e/bindings/v1_0/nf3e_v1_00.py new file mode 100644 index 00000000..bafacad0 --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/nf3e_v1_00.py @@ -0,0 +1,21 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from dataclasses import dataclass + +from nfelib.nf3e.bindings.v1_0.nf3e_tipos_basico_v1_00 import Tnf3E + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +@dataclass +class Nf3E(Tnf3E): + """ + Nota Fiscal Eletrônica de Energia Elétrica. + """ + + class Meta: + name = "NF3e" + namespace = "http://www.portalfiscal.inf.br/nf3e" diff --git a/nfelib/nf3e/bindings/v1_0/proc_evento_nf3e_v1_00.py b/nfelib/nf3e/bindings/v1_0/proc_evento_nf3e_v1_00.py new file mode 100644 index 00000000..59189a58 --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/proc_evento_nf3e_v1_00.py @@ -0,0 +1,23 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from dataclasses import dataclass + +from nfelib.nf3e.bindings.v1_0.evento_nf3e_tipos_basico_v1_00 import ( + TprocEvento, +) + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +@dataclass +class ProcEventoNf3E(TprocEvento): + """ + Pedido de Registro de Evento de NF-3e processado. + """ + + class Meta: + name = "procEventoNF3e" + namespace = "http://www.portalfiscal.inf.br/nf3e" diff --git a/nfelib/nf3e/bindings/v1_0/proc_nf3e_v1_00.py b/nfelib/nf3e/bindings/v1_0/proc_nf3e_v1_00.py new file mode 100644 index 00000000..fbe59c00 --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/proc_nf3e_v1_00.py @@ -0,0 +1,81 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from dataclasses import dataclass, field +from typing import Optional + +from nfelib import CommonMixin +from nfelib.nf3e.bindings.v1_0.nf3e_tipos_basico_v1_00 import ( + Tnf3E, + TprotNf3E, +) + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +@dataclass +class Nf3EProc(CommonMixin): + """ + NF-3e processada. + + :ivar NF3e: + :ivar protNF3e: + :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 = "nf3eProc" + namespace = "http://www.portalfiscal.inf.br/nf3e" + + NF3e: Optional[Tnf3E] = field( + default=None, + metadata={ + "type": "Element", + "required": True, + }, + ) + protNF3e: Optional[TprotNf3E] = 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/nf3e/bindings/v1_0/ret_cons_reci_nf3e_v1_00.py b/nfelib/nf3e/bindings/v1_0/ret_cons_reci_nf3e_v1_00.py new file mode 100644 index 00000000..529a82b3 --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/ret_cons_reci_nf3e_v1_00.py @@ -0,0 +1,23 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from dataclasses import dataclass + +from nfelib.nf3e.bindings.v1_0.cons_reci_nf3e_tipos_basico_v1_00 import ( + TretConsReciNf3E, +) + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +@dataclass +class RetConsReciNf3E(TretConsReciNf3E): + """ + Schema XML de validação do retorno do Pedido de Consulta da NF-3e. + """ + + class Meta: + name = "retConsReciNF3e" + namespace = "http://www.portalfiscal.inf.br/nf3e" diff --git a/nfelib/nf3e/bindings/v1_0/ret_cons_sit_nf3e_v1_00.py b/nfelib/nf3e/bindings/v1_0/ret_cons_sit_nf3e_v1_00.py new file mode 100644 index 00000000..a628afe0 --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/ret_cons_sit_nf3e_v1_00.py @@ -0,0 +1,23 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from dataclasses import dataclass + +from nfelib.nf3e.bindings.v1_0.cons_sit_nf3e_tipos_basico_v1_00 import ( + TretConsSitNf3E, +) + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +@dataclass +class RetConsSitNf3E(TretConsSitNf3E): + """ + Schema XML de validação do retorno da consulta da situação atual da NF-3e. + """ + + class Meta: + name = "retConsSitNF3e" + namespace = "http://www.portalfiscal.inf.br/nf3e" diff --git a/nfelib/nf3e/bindings/v1_0/ret_cons_stat_serv_nf3e_v1_00.py b/nfelib/nf3e/bindings/v1_0/ret_cons_stat_serv_nf3e_v1_00.py new file mode 100644 index 00000000..097d0dc8 --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/ret_cons_stat_serv_nf3e_v1_00.py @@ -0,0 +1,23 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from dataclasses import dataclass + +from nfelib.nf3e.bindings.v1_0.cons_stat_serv_nf3e_tipos_basico_v1_00 import ( + TretConsStatServ, +) + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +@dataclass +class RetConsStatServNf3E(TretConsStatServ): + """ + Schema XML de validação do Resultado da Consulta do Status do Serviço de NF-3e. + """ + + class Meta: + name = "retConsStatServNF3e" + namespace = "http://www.portalfiscal.inf.br/nf3e" diff --git a/nfelib/nf3e/bindings/v1_0/ret_envi_nf3e_v1_00.py b/nfelib/nf3e/bindings/v1_0/ret_envi_nf3e_v1_00.py new file mode 100644 index 00000000..5e711450 --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/ret_envi_nf3e_v1_00.py @@ -0,0 +1,21 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from dataclasses import dataclass + +from nfelib.nf3e.bindings.v1_0.nf3e_tipos_basico_v1_00 import TretEnviNf3E + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +@dataclass +class RetEnviNf3E(TretEnviNf3E): + """ + Schema XML de validação do retorno do recibo de envio do lote de NF-3e. + """ + + class Meta: + name = "retEnviNF3e" + namespace = "http://www.portalfiscal.inf.br/nf3e" diff --git a/nfelib/nf3e/bindings/v1_0/ret_evento_nf3e_v1_00.py b/nfelib/nf3e/bindings/v1_0/ret_evento_nf3e_v1_00.py new file mode 100644 index 00000000..a9f594c4 --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/ret_evento_nf3e_v1_00.py @@ -0,0 +1,21 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from dataclasses import dataclass + +from nfelib.nf3e.bindings.v1_0.evento_nf3e_tipos_basico_v1_00 import TretEvento + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +@dataclass +class RetEventoNf3E(TretEvento): + """ + Schema XML de validação do retorno Pedido de Evento da NF-3e. + """ + + class Meta: + name = "retEventoNF3e" + namespace = "http://www.portalfiscal.inf.br/nf3e" diff --git a/nfelib/nf3e/bindings/v1_0/ret_nf3e_v1_00.py b/nfelib/nf3e/bindings/v1_0/ret_nf3e_v1_00.py new file mode 100644 index 00000000..81d63f64 --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/ret_nf3e_v1_00.py @@ -0,0 +1,21 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from dataclasses import dataclass + +from nfelib.nf3e.bindings.v1_0.nf3e_tipos_basico_v1_00 import TretNf3E + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +@dataclass +class RetNf3E(TretNf3E): + """ + Schema XML de validação do retorno do BP-e. + """ + + class Meta: + name = "retNF3e" + namespace = "http://www.portalfiscal.inf.br/nf3e" diff --git a/nfelib/nf3e/bindings/v1_0/tipos_geral_nf3e_v1_00.py b/nfelib/nf3e/bindings/v1_0/tipos_geral_nf3e_v1_00.py new file mode 100644 index 00000000..a0374096 --- /dev/null +++ b/nfelib/nf3e/bindings/v1_0/tipos_geral_nf3e_v1_00.py @@ -0,0 +1,164 @@ +"""This file was generated by xsdata, v24.3.1, on 2024-04-05 08:30:20 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from enum import Enum + +__NAMESPACE__ = "http://www.portalfiscal.inf.br/nf3e" + + +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 TmodNf3E(Enum): + """ + Tipo Modelo NF-3e. + """ + + VALUE_66 = "66" + + +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" + + +class TufSemEx(Enum): + """Tipo Sigla da UF - Sem Exterior""" + + 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" diff --git a/nfelib/nf3e/bindings/v1_0/xmldsig_core_schema_v1_01.py b/nfelib/nf3e/bindings/v1_0/xmldsig_core_schema_v1_01.py new file mode 100644 index 00000000..43e47ab7 --- /dev/null +++ b/nfelib/nf3e/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:30:20 + +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/nf3e/schemas/v1_0/consReciNF3eTiposBasico_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/consReciNF3eTiposBasico_v1.00.xsd new file mode 100644 index 00000000..fdf061fa --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/consReciNF3eTiposBasico_v1.00.xsd @@ -0,0 +1,169 @@ + + + + + + + + Tipo Protocolo de status resultado do processamento da NF-3e + + + + + Dados do protocolo de status + + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou a NF-3e + + + + + Chaves de acesso da NF-3e + + + + + Data e hora de processamento, no formato AAAA-MM-DDTHH:MM:SS TZD. + + + + + + + + Número do Protocolo de Status da NF-3e + + + + + Digest Value da NF-3e processado. Utilizado para conferir a integridade da NF-3e original. + + + + + Código do status da NF-3e. + + + + + + + + Descrição literal do status da NF-3e. + + + + + + + + + Mensagem do Fisco + + + + + + Código do status da mensagem do fisco + + + + + + + + Mensagem do Fisco + + + + + + + + + + + + Tipo Pedido de Consulta do Recibo da NF-3e + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Número do Recibo do arquivo a ser consultado + + + + + + + + Tipo Retorno do Pedido de Consulta do Recibo da NF-3e + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou a NF-3e + + + + + Número do Recibo Consultado + + + + + código do status do retorno da consulta. + + + + + Descrição literal do status do do retorno da consulta. + + + + + Idntificação da UF + + + + + Resultado do processamento do NF-3e + + + + + + + + Tipo Versão do Consulta do Recibo de NF-3e - 1.00 + + + + + + + diff --git a/nfelib/nf3e/schemas/v1_0/consReciNF3e_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/consReciNF3e_v1.00.xsd new file mode 100644 index 00000000..3e76adde --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/consReciNF3e_v1.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do Pedido de Consulta de NF-3e + + + diff --git a/nfelib/nf3e/schemas/v1_0/consSitNF3eTiposBasico_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/consSitNF3eTiposBasico_v1.00.xsd new file mode 100644 index 00000000..5c65f545 --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/consSitNF3eTiposBasico_v1.00.xsd @@ -0,0 +1,112 @@ + + + + + + + + Tipo Pedido de Consulta da Situação Atual da NF-3e + + + + + Identificação do Ambiente: +1 - Produção; +2 - Homologação; + + + + + Serviço Solicitado + + + + + Chaves de acesso do NF-3 + + + + + + + + Tipo Retorno de Pedido de Consulta da Situação Atual de NF-3e + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou o NF-3e + + + + + Código do status da mensagem enviada. + + + + + Descrição literal do status do serviço solicitado. + + + + + código da UF de atendimento + + + + + + + + Retornar protNF3e da versão correspondente da NF-3e autorizada + + + + + + + + + + + + + + + + + + + Retornar procEventoNF3e da versão correspondente do evento NF-3e autorizado + + + + + + + + + + + + + + + + + + + Tipo Versão do Consulta situação de NF-3e - 1.00 + + + + + + diff --git a/nfelib/nf3e/schemas/v1_0/consSitNF3e_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/consSitNF3e_v1.00.xsd new file mode 100644 index 00000000..0231b43e --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/consSitNF3e_v1.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema de validação XML dp Pedido de Consulta da Situação Atual da NF-3e. + + + diff --git a/nfelib/nf3e/schemas/v1_0/consStatServNF3eTiposBasico_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/consStatServNF3eTiposBasico_v1.00.xsd new file mode 100644 index 00000000..3eabc3a2 --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/consStatServNF3eTiposBasico_v1.00.xsd @@ -0,0 +1,105 @@ + + + + + + + Tipo Pedido de Consulta do Status do Serviço NF-3e + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Serviço Solicitado + + + + + + + + Tipo Resultado da Consulta do Status do Serviço NF-3e + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou a NF-3e + + + + + + + + + + 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 NF-3e + + + + + + diff --git a/nfelib/nf3e/schemas/v1_0/consStatServNF3e_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/consStatServNF3e_v1.00.xsd new file mode 100644 index 00000000..d6e459d9 --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/consStatServNF3e_v1.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do Pedido de Consulta do Status do Serviço NF-3e + + + diff --git a/nfelib/nf3e/schemas/v1_0/enviNF3e_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/enviNF3e_v1.00.xsd new file mode 100644 index 00000000..ed75bd42 --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/enviNF3e_v1.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema XML de validação do Envio de Lote NF-3e para concessão de autorização + + + diff --git a/nfelib/nf3e/schemas/v1_0/evCancNF3e_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/evCancNF3e_v1.00.xsd new file mode 100644 index 00000000..b8ef6434 --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/evCancNF3e_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 NF-3e. + + + + + Justificativa do Cancelamento + + + + + + diff --git a/nfelib/nf3e/schemas/v1_0/eventoNF3eTiposBasico_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/eventoNF3eTiposBasico_v1.00.xsd new file mode 100644 index 00000000..536fd22c --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/eventoNF3eTiposBasico_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 NF-3e 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 + + + + + + + + + + + + + + + + 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 NF-3e 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/nf3e/schemas/v1_0/eventoNF3e_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/eventoNF3e_v1.00.xsd new file mode 100644 index 00000000..a4640cd7 --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/eventoNF3e_v1.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema XML de validação do Pedido de Registro de Evento da NF-3e + + + diff --git a/nfelib/nf3e/schemas/v1_0/nf3eTiposBasico_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/nf3eTiposBasico_v1.00.xsd new file mode 100644 index 00000000..d545b558 --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/nf3eTiposBasico_v1.00.xsd @@ -0,0 +1,4005 @@ + + + + + + + + Tipo Nota Fiscal de Energia Elétrica + + + + + Informações da NF-3e + + + + + + Identificação da NF-3e + + + + + + Código da UF do emitente da NF-3e + Código da UF do emitente 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 NF-3e + Utilizar o código 66 para identificação da NF-3e + + + + + 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 Off Line + + + + + Identificação do número do Site do Autorizador de recepção da NF3e + Se o autorizador da NF3e 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 NF3e (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 NF-3e + 1 - NF-3e normal; + +2 - NF-3e substituição; + +3 - NF-3e normal com ajuste; + + + + + Versão do processo de emissão + Informar a versão do aplicativo emissor de NF-3e. + + + + + + + + + + + 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 + + + + + Razão social ou Nome do emitente + + + + + + + + + + + Nome fantasia do emitente + + + + + + + + + + + Endereço do emitente + + + + + + + + Identificação do destinatário / acessante + + + + + + Razão social ou Nome do destinatário / acessante + + + + + + + + + + + + Número do CNPJ + Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros. + 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 (informar código do RANI) e quilombola; ou destinatário que a distribuidora não possui a informação (nestes casos orienta-se informar "00000"). + + + + + + + + + + + + + + Indicador da IE do Destinatário/Acessante + 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 / acessante + + + + + Inscrição Municipal + + + + + + + + + + + + Número da Identificação Social - NIS + + + + + + + + + + + + + Número do Benefício + + + + + + + + + + + + + + Nome de destinatário adicional + Exemplo: Nome do Conjuge, Companheira(o) + + + + + + + + + + + Endereço do destinatário / acessante + + + + + + + + Dados do acessante + + + + + + Código único de Identificação da Unidade Consumidora ou Ponto de Acesso adotado pela distribuidora. + + + + + + + + + + + + + Código de Identificação do Cliente para empresa emitente + + + + + + + + + + + + + Tipo de Acessante + 0 - Gerador; 1 – Cativo; +2 – Livre; + 3 – Parcialmente Livre; +4 – Consumidor Especial; + 5 – Parcialmente Especial; + 6 – Comunhão; +7 – Suprimento; +8 – Distribuidora. + + + + + Nome da Unidade Consumidora + + + + + + + + + + + Classe de Consumo da Unidade Consumidora + 01 - Comercial +02 - Consumo Próprio +03 - Iluminação Pública +04 - Industrial +05 - Poder Público +06 - Residencial +07 - Rural +08 -Serviço Público. + + + + + Subclasse de Consumo da Unidade Consumidora + 01 - Residencial; + +02 - Residencial baixa renda; + +03 - Residencial baixa renda indígena; + +04 - Residencial baixa renda quilombola; + +05 - Residencial baixa renda benefício de prestação continuada da assistência social; + +06 - Residencial baixa renda multifamiliar; + +07 - Comercial; + +08 - Serviços de transporte, exceto tração elétrica; + +09 - Serviços de comunicação e telecomunicação; + +10 - Associação e entidades filantrópicas; + +11 - Templos religiosos; + +12 - Administração condominial: iluminação e instalações de uso comum de prédio ou conjunto de edificações; + + 13 - Iluminação em rodovias solicitada por quem detenha concessão ou autorização para administração em rodovias; + + 14 - Semáforos, radares e câmeras de monitoramento de trânsito, solicitados por quem detenha concessão ou autorização para controle de trânsito; + + 15 - Outros serviços e outras atividades da classe comercial; +16=Agropecuária rural; + +17 - Agropecuária urbana; + + 18 - Residencial rural; + +19 - Cooperativa de eletrificação rural; + +20 - Agroindustrial; + +21 - Serviço público de irrigação rural; + +22 - Escola agrotécnica; + + 23 - Aquicultura; + +24 - Poder público Federal; + +25 - Poder Público Estadual ou Distrital; + + 26 - Poder público Municipal; + + 27 - Tração Elétrica; + +28 - Água esgoto ou saneamento; + + 99 - Outros. + + + + + Tipo de ligação + 1 - Monofásico; + +2 - Bifásico; + + 3 - Trifásico; + + + + + Grupo e Subgrupo de Tensão + 01 - A1 - Alta Tensão (230kV ou mais); + +02 - A2 - Alta Tensão (88 a 138kV); +03 - A3 - Alta Tensão (69kV); +04 - A3a - Alta Tensão (30kV a 44kV); +05 - A4 - Alta Tensão (2,3kV a 25kV); +06 - AS - Alta Tensão Subterrâneo; + 07 - B1 - Residencial; +08 - B1 - Residencial Baixa Renda; + 09 - B2 - Rural; + 10 - B2 - Cooperativa de Eletrificação Rural; +11 - B2 - Serviço Público de Irrigação; +12 - B3 - Demais Classes; + 13 - B4a - Iluminação Pública - rede de distribuição; + 14 - B4b - Iluminação Pública - bulbo de lâmpada. + + + + + Modalidade Tarifária + 01 – Convencional Monômia; 02 – Convencional Binômia; 03 – Horária Azul; 04 – Horária Azul APE;05 – Horária Verde;06 – Horária Verde APE; 07 – Horária Branca;08 – Pré-pagamento; 09 – Geração; 10 – Distribuição. + + + + + Sequencia XML + Localização + + + + Latitude do ponto geográfico da localização da captura + + + + + Longitude do ponto geográfico da localização da captura + + + + + + Roteiro da Leitura para uso operacional + Nome da unidade consumidora, exclusivamente para a classe Poder Público, desde que informado previamente e solicitado pelo consumidor. + + + + + + + + + + + + + + Grupo de informações da substituição + + + + + + + Chave de acesso da NF3e referenciada + + + + + Informação da NF modelo 06 referenciada + + + + + + CNPJ do Emitente + Informar o CNPJ do emitente do Documento Fiscal + + + + + Serie do documento fiscal + + + + + + + + + + + Número do documento fiscal + + + + + Ano e mês da emissão da NF mod. 06 (AAAAMM) + + + + + Ano e mês de apuração (AAAAMM) + + + + + Hash do registro no arquivo do convênio 115 + Campo poderá ser exigido a critério da UF + + + + + + + + + + + + + + + Motivo da substituição + 01 – Erro de Leitura +; 02 – Erro de Preço ou Erro de Tarifa; +03 – Decisão Judicial +; 04 – Erro Cadastral; 05 - Erro de Tributação + + + + + + + + Grupo de informações para referenciar a NF3e original que foi separada judicialmente + + + + + + Chave de acesso da NF3e referenciada + + + + + + + + Grupo de informações das quantidades contratadas + + + + + + Tipo de grandeza contratada + 1 - Demanda; 2 - Montante de Uso do Sistema de Distribuição; +3 - Reserva de Capacidade; 4 - Energia Contratada + + + + + Tipo de Posto Tarifário Contratado + 0 - Único +; 1 - Ponta +; 2 - Fora Ponta + + + + + Quantidade Contratada em kW ou kWh + + + + + + Número de referência para informar nos produtos a relação com a quantidade contratada + + + + + + + + + + + + + + + Grupo de informações dos Medidores + + + + + + Identificação do medidor + + + + + + + + + + + + + Data da leitura anterior + Formato AAAA-MM-DD + + + + + Data da leitura atual + Formato AAAA-MM-DD + + + + + + Número de referência para informar nos produtos a relação com a medição + + + + + + + + + + + + + + + Grupo dos dados do Sistema de Compensação de Energia Elétrica + + + + + + Tipo de participação no sistema de compensação de energia elétrica + 1 - Mini ou microgeração (somente uma UC); 2 - Múltiplas unidades consumidoras (condomínio em área definida); 3 - Autoconsumo remoto; 4 - Geração compartilhada (consórcio ou cooperativa); +5 - Mista (utilizar quando enquadrado em mais de um tipo de participação) + + + + + Participação no SCEE como Consumidor + + + + + + Código Único de identificação da unidade geradora + Informar o Código Único adotado pela companhia distribuidora para o ponto de acesso da unidade geradora cuja energia foi destinada a esta unidade consumidora. + + + + + + + + + + + + + Potência instalada da micro ou minigeraçao em kW + + + + + Tipo da fonte de energia + 1-Hidráulica, +2-Solar, +3-Eólica, + 4-Térmica, 5 - Hibrida + + + + + + + + + + Energia alocada + Quantidade de energia excedente que é destinado pela unidade geradora a esta unidade consumidora em kWh. + + + + + + + + Tipo de Posto Tarifário + 0=Único +; 1=Ponta +; 2=Fora Ponta; 3=Intermediário + + + + + + + + + + Saldos de Créditos por posto tarifário + + + + + + Tipo de Posto Tarifário + 0=Único +; 1=Ponta +; 2=Fora Ponta; 3 = Intermediario + + + + + Saldo Anterior de Créditos em kWh + + + + + Créditos Expirados + + + + + Saldo Atual de Créditos em kWh + + + + + Sequencia XML + + + + Créditos a Expirar + Próxima parcela do saldo atualizado de créditos a expirar + + + + + Ciclo de faturamento em que ocorrerá a expiração (AAAAMM) + + + + + + + + + Agrupador de Saldos para registros de múltiplos saldos por posto tarifário + + + + + + Saldos de Créditos por posto tarifário + + + + + + Tipo de Posto Tarifário + 0=Único +; 1=Ponta +; 2=Fora Ponta; 3 = Intermediario + + + + + Saldo Anterior de Créditos em kWh + + + + + Créditos Expirados + + + + + Saldo Atual de Créditos em kWh + + + + + Sequencia XML + + + + Créditos a Expirar + Próxima parcela do saldo atualizado de créditos a expirar + + + + + Ciclo de faturamento em que ocorrerá a expiração (AAAAMM) + + + + + + + + + + Número referente ao agrupador de saldos por posto tarifário + Aceita valores de 01 a 10. +Serve para organizar a informação dos grupos de saldos. + + + + + + + + + + + + + + + + + + + Detalhamento de Produtos e Serviços + Quando NF3e Normal com ajustes, utilizar a ultima nota do detalhamento para apresentar a fatura do mês atual + + + + + + Detalhamento de Produtos e Serviços + + + + + + Grupo de identificação do ajuste do item de NF-3e anterior + Somente informar no caso de item relacionado a NF-3e anterior + + + + + + Tipo de ajuste a ser aplicado ao item + 1 - Item a ser substituído (deve informar detItemAnt); + +2 - Item de substituição (nova imagem do item anterior); + +3 - Item a ser eliminado (deve informar detItemAnt); +4 - Item a ser incluído referente a NF-3e anterior +; + + + + + Motivo do Ajuste + 1 – Erro de Leitura +; 2 – Erro de Preço ou Erro de Tarifa +; 3 – Decisão Judicial +; 4 – Erro Cadastral +; 5 - Erro de Tributação + + + + + + + + + + Grupo de informações referentes a item da NF-3e anterior + Este grupo somente deverá ser preenchido para detalhar item ajustado de nota anterior nos casos de item alterado ou excluído + + + + + + 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 + + + + + Código de classificação + Tabela de Classificação de Item da NF-3e de Energia Elétrica (validar por RV) + + + + + + + + + + + + + Valor da BC do ICMS + + + + + Alíquota do ICMS + + + + + Valor do ICMS + + + + + Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP). + + + + + Valor da BC do ICMS ST + + + + + Valor do ICMS ST retido + + + + + Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP). + + + + + Valor do PIS + + + + + Valor efetivo do PIS + + + + + Valor do COFINS + + + + + Valor Efetivo do COFINS + + + + + Grupo de informações de retenção de tributos federais do item anterior + + + + + + Valor do PIS retido + + + + + Valor do COFNS retido + + + + + Valor da CSLL retida + + + + + Base de cálculo do IRRF + + + + + Valor do IRRF retido + + + + + + + + Indicador de devolução do valor do item + 1 – Devolução do valor do item + + + + + + + + + + + + + + Número do item da NF-3e anterior + + + + + + + + + + + + + + + Grupo de informações referentes a item da NF-3e + + + + + + Grupo de Tarifas por Período + + + + + + Data de início da aplicação da tarifa + Data de início da aplicação da tarifa no período considerado para o faturamento ( +Formato AAAA-MM-DD) + + + + + Data de fim da aplicação da tarifa + Data de fim da aplicação da tarifa no período considerado para o faturamento + (Formato AAAA-MM-DD) + + + + + Tipo de Ato da ANEEL + 1 - REH (Resolução homologatória); 2 - Despacho; 3 - REN (Resolução Normativa) + + + + + + Número do Ato da ANEEL + + + + + + + + + + + + Ano do Ato da ANEEL (AAAA) + + + + + + + + + + + + + + Tarifa de aplicação + 1 - TE; 2 - TUSD + + + + + + Tipo de posto tarifário + 0 - Único/Não se aplica; +1 - Ponta; +2 - Fora Ponta; +3 - Intermediário; +4 - Ponta Reservado; +5 - Fora ponta Reservado; +6 - Intermediário Reservado +7 - Reservado + + + + + Unidade de Medida + 1=kW (Aplica-se somente a TUSD); 2=kWh (Aplica-se tanto a TUSD quanto TE) + + + + + + + + + + + + + + + Valor da tarifa homologada pela ANEEL + + + + + + + + Sequencia XML + Somente preenchido se a tarifa aplicada for diferente da homologada + + + + Valor da tarifa aplicada + + + + + + + + Motivo da diferença de tarifa aplicada com a homologada + 01 - Decisão judicial; 02 - Decisão da distribuidora (tarifa homologada equivale a preço teto); 03 - Desconto Tarifário; 04 - Reajuste tarifário + + + + + + + + + + + + + + + + + + + + + Grupo de Adicional de Bandeira + + + + + + Data de início da aplicação do adicional + Data de início da aplicação do adicional de bandeira no período considerado para o faturamento (Formato AAAA-MM-DD) + + + + + Data de fim da aplicação do adicional + Data de fim da aplicação do adicional de bandeira no período considerado para o faturamento ( +Formato AAAA-MM-DD) + + + + + Tipo da bandeira tarifária + 1 – Verde; 2 – Amarela; 3 – Vermelha patamar 1; 4 – Vermelha patamar 2 +; 5 - Escassez Hidrica + + + + + Valor do Adicional tarifário + Resultado decorrente da aplicação do adicional de cada bandeira sobre o consumo faturado no período considerado entre as datas de início e fim. +Quando for bandeira verde o campo valor do adicional tarifário deverá ser preenchido com zero (0.00). + + + + + Sequencia XML + Somente preenchido se a tarifa aplicada for diferente da homologada + + + + Valor do adicional tarifário aplicado + + + + + Motivo da diferença do adicional aplicado + 01 - Decisão judicial; 02 - Decisão da distribuidora (tarifa homologada equivale a preço teto); 03 - Desconto tarifário +; 04 - Alteração de tarifa + + + + + + + + + + + + + + + + + + + + Dados do Produto ou Serviço + + + + + + Indicador da origem da quantidade faturada + 1 - Media; 2 - Medido; 3 - Contratada; 4 - Calculada; 5 - Custo de disponibilidade; 6 - Sem quantidade + + + + + + + Grupo para referenciar qual medição e medida estão relacionadas ao item + + + + + + Referência para a medição ao qual se refere o item + + + + + + + + + + + + + + Referência para o grupo de demanda contratada ao qual se refere o item + + + + + + + + + + + + + + + Grupo de medida + + + + + Tipo Motivo da não leitura + 1 - Consumidor; +2 - Distribuidora; +3 - Independente do Consumidor e distribuidora; + + + + + + + + + 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 NF-3e de Energia Elétrica (validar por RV) + + + + + + + + + + + + + CFOP + Utilizar Tabela de CFOP. + + + + + Unidade Básica de Medida + 1=kW +; 2=kWh; +3=kVAr; +4=kVArh; 5=UN + + + + + Quantidade Faturada + Informar a quantidade de comercialização do produto . + + + + + Valor unitário do item + O valor unitário do item no caso de energia elétrica corresponde ao valor da tarifa e dos tributos que devam compor a base de cálculo. O item pode estar acrescido do adicional da bandeira tarifária ou o adicional de bandeira poderá ser lançado como um item específico. +Este campo também corresponde ao preço médio efetivo relativo ao consumo ativo do período, quando aplicáveis os termos do inciso I da clausula primeira do Convênio ICMS 77/11 (DEVEC). + + + + + Valor total do item + + + + + Indicador de devolução do valor do item + 1 – Devolução do valor do item + + + + + + + + + + + + + Preço ACL + Valor declarado na DEVEC de acordo com convênio ICMS 77/11 +Deve informar ICMS10 e não poderá informar grupo de tarifas aplicadas. + + + + + + + + + + + + + + + + + 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). + + + + + + + + + Tributada e com cobrança do ICMS por substituição tributária + + + + + + classificação Tributária do Serviço + 10=Tributada e com cobrança do ICMS por substituição tributária + + + + + + + + + + + Valor da BC do ICMS ST + + + + + Alíquota do ICMS ST + + + + + Valor do ICMS ST retido + + + + + 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. + + + + + + + + + + + + + + + + Tributação pelo ICMS +60 - ICMS cobrado anteriormente por substituição tributária + + + + + + Tributação pelo ICMS +60 - ICMS cobrado anteriormente por substituição tributária + + + + + + + + + + + + Choice referente ao conjunto de tags do ICMS Retido #246 até #253. +Deverá ser informado esse conjunto do ICMS Retido ou o conjunto do ICMS efetivo + + + + + Valor da BC do ICMS ST retido anteriormente + + + + + Aliquota suportada pelo consumidor final. + + + + + Valor do ICMS Próprio do Substituto cobrado em operação anterior + + + + + Valor do ICMS ST retido anteriormente + + + + + + Valor da Base de cálculo do FCP retido anteriormente por ST. + + + + + Percentual de FCP retido anteriormente por substituição tributária. + + + + + Valor do FCP retido por substituição tributária. + + + + + + + Choice referente ao conjunto de tags do ICMS Efetivo +Deverá ser informado esse conjunto do ICMS Efetivo ou o conjunto do ICMS retido + + + + + Percentual de redução da base de cálculo efetiva. + + + + + Valor da base de cálculo efetiva. + + + + + Alíquota do ICMS efetiva. + + + + + Valor do ICMS efetivo. + + + + + + + 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 + Será usado no caso da subvenção ou para NF-3e de ajuste quando for o caso. + + + + + + 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). + + + + + + + + + + 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 erro +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 PIS Efetivo + + + + + + Valor da BC do PIS efetivo + + + + + Alíquota efetiva do PIS (em percentual) + + + + + Valor efetivo 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 erro +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 COFINS Efetivo + + + + + + Valor da BC do COFINS efetivo + + + + + Alíquota Efetiva do COFINS (em percentual) + + + + + Valor Efetivo do COFINS + + + + + + + + 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 + + + + + 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 + + + + + Sequencia XML + + + + Percentual de ICMS relativo ao Fundo de Combate à Pobreza (FCP). + + + + + Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP). + + + + + + + Valor da BC do ICMS ST + + + + + Alíquota do ICMS ST + + + + + Valor do ICMS ST retido + + + + + Sequencia XML + + + + Percentual de ICMS relativo ao Fundo de Combate à Pobreza (FCP). + + + + + Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP). + + + + + + + Valor do PIS + + + + + Valor efetivo do PIS + + + + + Valor do COFINS + + + + + Valor Efetivo do COFINS + + + + + 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 Contábeis + Informar o número das contas contábeis objeto do lançamento completo do fato. + + + + + + Número da Conta Contábil do lançamento + + + + + + + + + + + Descrição da conta contábil + + + + + + + + + + + Valor do lançamento na conta contábil + Informar o valor do lançamento contábil referente a cada conta a débito e a crédito. + + + + + Tipo de lançamento contábil + Informar o tipo do lançamento contábil referente a esta conta (D/C). + + + + + + + + + + + + + + + + + Informações adicionais do produto (norma referenciada, informações complementares, etc) + + + + + + + + + + + + Número do item da NF-3e anterior que este item está substituindo. +Deve sempre existir um detItemAnt que corresponda + + + + + + + + + + + + + + + + + Número do item da NF-3e + + + + + + + + + + + + + + Chave de Acesso da NF-3e anterior + Informar apenas para finalidade de Ajuste + + + + + HashCode da Modelo 6 Anterior + Informar apenas para finalidade de Ajuste + + + + + + + Dados dos totais da NF-3e + + + + + + 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). + + + + + BC do ICMS ST + + + + + Valor Total do ICMS ST + + + + + Valor Total do FCP (Fundo de Combate à Pobreza) retido por substituição tributária. + + + + + + + + Total da retenção de tributos federais + + + + + + Valor do PIS retido + + + + + Valor do COFNS retido + + + + + Valor da CSLL retida + + + + + Valor do IRRF retido + + + + + + + + Valor do COFINS + + + + + Total do Valor Efetivo do COFINS + + + + + Valor do PIS + + + + + Total do Valor Efetivo do PIS + + + + + Valor Total da NF-e + + + + + + + + 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 + + + + + Data de apresentação da fatura + Formato AAAA-MM-DD +Não obrigatória, conforme item 2.3.2 da Seção 11.1 do Módulo 11 do PRODIST. + + + + + Data prevista próxima leitura + Formato AAAA-MM-DD + + + + + Número da Fatura + + + + + + + + + + + + + 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 da Agência Nacional de Energia Eletrica + + + + + 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 NF-3e e precedida do literal "NF3e" + + + + + + + + + + + + + + + + + + + + + + + + + + + + Informações suplementares da NF-3e + + + + + + Texto com o QR-Code para consulta da NF-3e + + + + + + + + + + + + + + + + + + + Tipo Pedido de Concessão de Autorização de NF-3e + + + + + + + + + + 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 + + + + + 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 NF-3e (Modelo 66) + + + + + Dados do protocolo de status + + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou a NF-3e + + + + + Chave de acesso da NF-3e + + + + + Data e hora de processamento, no formato AAAA-MM-DDTHH:MM:SS TZD. + + + + + Número do Protocolo de Status da NF-3e. + + + + + Digest Value da NF-3e processado. Utilizado para conferir a integridade da NF-3e original. + + + + + Código do status da NF-3e. + + + + + + + + Descrição literal do status da NF-3e. + + + + + + + + + Mensagem do Fisco + + + + + + Código do status da mensagem do fisco + + + + + + + + Mensagem do Fisco + + + + + + + + + + + + Tipo Retorno do Pedido de Autorização de NF-3e (Modelo 66) + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Identificação da UF + + + + + Versão do Aplicativo que processou a NF-3e + + + + + código do status do retorno da consulta. + + + + + Descrição literal do status do do retorno da consulta. + + + + + Reposta ao processamento da NF-3e + + + + + + + + Tipo Retorno do recibo de envio do lote de NF-3e (Modelo 66) + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Identificação da UF + + + + + Versão do Aplicativo que processou a NF-3e + + + + + 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 NF-3e + + + + + 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. + + + + + + + + + + + + + + + Histórico de Faturamento + + + + + + Nome da grandeza faturada para exibição + Exemplo: Consumo Meses Anteriores + + + + + + + + + + + Grandezas faturadas + + + + + + Ano e mês referência do faturamento (AAAAMM) + + + + + Valor Faturado + + + + + Unidade Básica de Medida + 1=kW; 2=kWh; 3=kVAr; 4=kVArh + + + + + Quantidade de dias de medição + + + + + + + + + + + + + + + + + + + + + Tipo de grandeza medida + 01 - Demanda; +02 - Demanda Reativa +; 03 - Energia Ativa; +04 - Energia Ativa injetada +; 05 - Energia Reativa + + + + + Tipo de posto tarifário + 0 - Único/Não se aplica; 1 - Ponta; 2 - Fora Ponta; 3 - Intermediário; 4 - Ponta Reservado ; 5 - Fora ponta Reservado; 6 - Intermediário Reservado +; 7=Reservado + + + + + + Unidade Básica de Medida + 1 - kW +; 2 - kWh; +3 - kVAr; +4 - kVArh + + + + + Valor da medição (leitura) anterior + + + + + Valor da medição (leitura) atual + + + + + Indicar o fator de multiplicação do medidor + + + + + Valor da medição + (vMedAtu – vMedAnt) * vConst + + + + + Sequencia XML + + + + Perda de Transformação(percentual) + + + + + Valor medido após perda de transformação + vMed * (1 + pPerdTran/100) + + + + + + Valor medido após perda técnica + + + + + + + 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 NF-3e + + + + + + + + + + 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 NF-3e + + + + + + + + + Tipo hora + + + + + + + + + Tipo Email + + + + + + + + + + + Finalidade da NF-3e + + + + + + + + + + + + + + Tipo de Documento de Identificação + + + + + + + + + + + + + Tipo CFOP + + + + + + + + + Tipo indicador da IE do Destinatário + + + + + + + + + + + + + Tipo de emissão da NF-3e + + + + + + + + + + + + Tipo acessante + + + + + + + + + + + + + + + + + + + + Tipo de Classe + + + + + + + + + + + + + + + + + + Tipo SubClasse + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tipo de Fase + + + + + + + + + + + + + Tipo Grupo Tensão + + + + + + + + + + + + + + + + + + + + + + + + Tipo Modalidade Tarifária + + + + + + + + + + + + + + + + + + + + Tipo Competência + + + + + + + + + + + Tipo Motivo Substituição + + + + + + + + + + + + + + + Tipo Grandeza Contratada + + + + + + + + + + + + + + Tipo Posto Tarifário + + + + + + + + + + + + + + Tipo Posto Tarifário Completo + + + + + + + + + + + + + + + + + + Tipo Compensação (SCE) + + + + + + + + + + + + + + + Tipo Fonte Energia + + + + + + + + + + + + + + + Tipo do ajuste na NF-3e anterior + + + + + + + + + + + + + Tipo do ajuste na NF-3e anterior + + + + + + + + + + + + + + Tipo do Motivo de Ajuste + + + + + + + + + + + + + + + Tipo do indicador de origem da quantidade faturada + + + + + + + + + + + + + + + + Tipo Grandeza Medida + + + + + + + + + + + + + + + + Tipo da unidade básica de medida + + + + + + + + + + + + + + + Tipo da unidade básica de medida + + + + + + + + + + + + + + Tipo da bandeira tarifária + + + + + + + + + + + + + + + Tipo de ato da ANEEL + + + + + + + + + + + + + Tipo de tarifa de aplicação + + + + + + + + + + + + Tipo de processo judicial + + + + + + + + + + + + + Tipo motivo não leitura + + + + + + + + + + + + + Tipo componente da fatura + + + + + + + + + + + + + + + diff --git a/nfelib/nf3e/schemas/v1_0/nf3e_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/nf3e_v1.00.xsd new file mode 100644 index 00000000..35c6c83a --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/nf3e_v1.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Nota Fiscal Eletrônica de Energia Elétrica + + + diff --git a/nfelib/nf3e/schemas/v1_0/procEventoNF3e_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/procEventoNF3e_v1.00.xsd new file mode 100644 index 00000000..b1f738ca --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/procEventoNF3e_v1.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Pedido de Registro de Evento de NF-3e processado + + + diff --git a/nfelib/nf3e/schemas/v1_0/procNF3e_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/procNF3e_v1.00.xsd new file mode 100644 index 00000000..9a9ef41b --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/procNF3e_v1.00.xsd @@ -0,0 +1,37 @@ + + + + + + + NF-3e 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/nf3e/schemas/v1_0/retConsReciNF3e_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/retConsReciNF3e_v1.00.xsd new file mode 100644 index 00000000..5164cd13 --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/retConsReciNF3e_v1.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do retorno do Pedido de Consulta da NF-3e + + + diff --git a/nfelib/nf3e/schemas/v1_0/retConsSitNF3e_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/retConsSitNF3e_v1.00.xsd new file mode 100644 index 00000000..498e9ae0 --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/retConsSitNF3e_v1.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema XML de validação do retorno da consulta da situação atual da NF-3e. + + + diff --git a/nfelib/nf3e/schemas/v1_0/retConsStatServNF3e_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/retConsStatServNF3e_v1.00.xsd new file mode 100644 index 00000000..7693291a --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/retConsStatServNF3e_v1.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do Resultado da Consulta do Status do Serviço de NF-3e + + + diff --git a/nfelib/nf3e/schemas/v1_0/retEnviNF3e_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/retEnviNF3e_v1.00.xsd new file mode 100644 index 00000000..792bd8cc --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/retEnviNF3e_v1.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do retorno do recibo de envio do lote de NF-3e + + + diff --git a/nfelib/nf3e/schemas/v1_0/retEventoNF3e_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/retEventoNF3e_v1.00.xsd new file mode 100644 index 00000000..3f17214c --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/retEventoNF3e_v1.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do retorno Pedido de Evento da NF-3e + + + diff --git a/nfelib/nf3e/schemas/v1_0/retNF3e_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/retNF3e_v1.00.xsd new file mode 100644 index 00000000..9f08629c --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/retNF3e_v1.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do retorno do BP-e + + + diff --git a/nfelib/nf3e/schemas/v1_0/tiposGeralNF3e_v1.00.xsd b/nfelib/nf3e/schemas/v1_0/tiposGeralNF3e_v1.00.xsd new file mode 100644 index 00000000..f46ed583 --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/tiposGeralNF3e_v1.00.xsd @@ -0,0 +1,729 @@ + + + + + + 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 10 casas decimais + + + + + + + + + Tipo Decimal com 13 dígitos inteiros e 2 a 4 casas decimais + + + + + + + + + Tipo Inscrição Estadual do Destinatário + + + + + + + + + Tipo Modelo NF-3e + + + + + + + + + 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/nf3e/schemas/v1_0/xmldsig-core-schema_v1.01.xsd b/nfelib/nf3e/schemas/v1_0/xmldsig-core-schema_v1.01.xsd new file mode 100644 index 00000000..6e9063c9 --- /dev/null +++ b/nfelib/nf3e/schemas/v1_0/xmldsig-core-schema_v1.01.xsd @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +