diff --git a/CHANGELOG_SCHEMAS.md b/CHANGELOG_SCHEMAS.md index ca57578f..14c647be 100644 --- a/CHANGELOG_SCHEMAS.md +++ b/CHANGELOG_SCHEMAS.md @@ -100,3 +100,13 @@ commit message. A binding without a section here simply gets no metadata injecte - published_at: `2026-02-09` - source_url: `https://www.gov.br/nfse/pt-br/biblioteca/documentacao-tecnica/documentacao-atual/nfse-esquemas_xsd-v1-01-20260209.zip` + +## nfse (v1_01) + +- binding_dir: `nfse/bindings/v1_01` +- version: `NFSe-ESQUEMAS_XSD-v1.01-20260209 (leiaute 1.01)` +- package: `NFSe-ESQUEMAS_XSD-v1.01-20260209, diretório Schemas/1.01` +- nota_tecnica: `Leiaute NFSe 1.01 (grupos IBSCBS da RTC, NT SE/CGNFS-e 004) + CNC` +- published_at: `2026-02-09` +- source_url: + `https://www.gov.br/nfse/pt-br/biblioteca/documentacao-tecnica/documentacao-atual/nfse-esquemas_xsd-v1-01-20260209.zip` diff --git a/README.md b/README.md index 0dfd28f5..e474a17b 100644 --- a/README.md +++ b/README.md @@ -304,6 +304,14 @@ to support the various versions at the same time using different folders. It would be possible, for example, to issue the future NF-e 5.0 and still import an NF-e 4.0. +The NFS-e is the exception to the 2 digits rule: its 1.01 layout (the IBSCBS +groups of the tax reform) cannot read every 1.00 document (`explRod` and other +groups are gone), and the government accepts both layouts at the same time. So +`nfse/bindings/v1_0` (layout 1.00) and `nfse/bindings/v1_01` (layout 1.01) live +side by side. They share the namespace and the root element names, so +`from_xml`/`from_path` return the classes of the package of the class you call +them on, and an `XmlParser` used directly should be given the target class. + ## Credits diff --git a/generate_bindings.py b/generate_bindings.py index 0cccf95f..4a2c3db9 100755 --- a/generate_bindings.py +++ b/generate_bindings.py @@ -258,6 +258,14 @@ def __init__( schema_dir="nfelib/nfse/schemas/v1_0", package="nfelib.nfse.bindings.v1_0", ), + # The NFS-e 1.01 layout is not a superset of 1.00 (explRod and other groups + # are gone) and both are valid at the same time, so it gets its own folder + # instead of superseding v1_0. The schema version folder keeps the 3 digits. + "nfse_v1_01": SchemaConfig( + name="nfse_v1_01", + schema_dir="nfelib/nfse/schemas/v1_01", + package="nfelib.nfse.bindings.v1_01", + ), } DOWNLOAD_URLS: Final[dict[str, str]] = { diff --git a/nfelib/__init__.py b/nfelib/__init__.py index e7d6c1b1..bb962c9e 100644 --- a/nfelib/__init__.py +++ b/nfelib/__init__.py @@ -5,6 +5,7 @@ import base64 import os import warnings +from io import BytesIO from os import environ from pathlib import Path from typing import Any @@ -29,9 +30,32 @@ class CommonMixin: @classmethod def from_xml(cls, xml: str, config: ParserConfig = None) -> Any: """Parse xml and return an instance of the class.""" - if config is None: - return XmlParser().from_string(xml) - return XmlParser(config=config).from_string(xml) + parser = XmlParser() if config is None else XmlParser(config=config) + return parser.from_string(xml, cls._find_root_class(parser, xml)) + + @classmethod + def _find_root_class(cls, parser: XmlParser, xml: str | bytes) -> Any: + """Return the root element class from the binding package of cls. + + Two layout versions of a document can share the namespace and the + element names (NFS-e 1.00 and 1.01). xsdata would then return the + class imported last, whatever the class from_xml was called on. When + several classes match the root, keep the one of the same package. + Return None to let xsdata detect the root class as usual. + """ + data = xml.encode("utf-8") if isinstance(xml, str) else xml + try: + _event, root = next(etree.iterparse(BytesIO(data), events=("start",))) + except (etree.XMLSyntaxError, StopIteration): + return None + candidates: list[type] = parser.context.find_types(root.tag) + if len(candidates) < 2: + return None + package = cls.__module__.rpartition(".")[0] + for candidate in reversed(candidates): + if candidate.__module__.rpartition(".")[0] == package: + return candidate + return None @classmethod def from_path(cls, path: str) -> Any: @@ -73,6 +97,14 @@ def _get_schema_path(cls) -> str: "nfe_v4.00.xsd", ) if package == "nfse": + if ".bindings.v1_01." in cls.__module__: + return os.path.join( + os.path.dirname(__file__), + "nfse", + "schemas", + "v1_01", + "DPS_v1.01.xsd", + ) return os.path.join( os.path.dirname(__file__), "nfse", diff --git a/nfelib/nfse/bindings/v1_01/__init__.py b/nfelib/nfse/bindings/v1_01/__init__.py new file mode 100644 index 00000000..39f694c7 --- /dev/null +++ b/nfelib/nfse/bindings/v1_01/__init__.py @@ -0,0 +1,443 @@ +"""Auto-generated schema metadata. + +This module is part of the generated binding package `nfelib.nfse.bindings.v1_01`. +The source XSD schema package details are tracked below. +""" + +# Source schema package information (from CHANGELOG_SCHEMAS.md) +SCHEMA_VERSION: str = 'NFSe-ESQUEMAS_XSD-v1.01-20260209 (leiaute 1.01)' +SCHEMA_PACKAGE: str = 'NFSe-ESQUEMAS_XSD-v1.01-20260209, diretório Schemas/1.01' +NOTA_TECNICA: str = 'Leiaute NFSe 1.01 (grupos IBSCBS da RTC, NT SE/CGNFS-e 004) + CNC' +PUBLISHED_AT: str = '2026-02-09' +SOURCE_URL: str = 'https://www.gov.br/nfse/pt-br/biblioteca/documentacao-tecnica/documentacao-atual/nfse-esquemas_xsd-v1-01-20260209.zip' +GENERATED_AT: str = '2026-10-09T00:45:08Z' + +"""This file was generated by xsdata, v25.7, on 2026-10-09 00:45:08 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" + +from nfelib.nfse.bindings.v1_01.cnc_v1_00 import Cnc +from nfelib.nfse.bindings.v1_01.dps_v1_01 import Dps +from nfelib.nfse.bindings.v1_01.evento_v1_01 import Evento +from nfelib.nfse.bindings.v1_01.nfse_v1_01 import Nfse +from nfelib.nfse.bindings.v1_01.ped_reg_evento_v1_01 import PedRegEvento +from nfelib.nfse.bindings.v1_01.tipos_cnc_v1_00 import ( + TcenderContribuinteCnc, + TcinfCnc, + TcinfoContribuinteCnc, + Tcnc, +) +from nfelib.nfse.bindings.v1_01.tipos_complexos_v1_01 import ( + TcatvEvento, + TcbeneficioMunicipal, + TccomExterior, + Tccserv, + TcdocDedRed, + TcdocNfnfs, + TcdocOutNfse, + Tcdps, + Tcemitente, + Tcendereco, + TcenderecoEmitente, + TcenderecoSimples, + TcenderExt, + TcenderExtSimples, + TcenderNac, + TcenderObraEvento, + TcexigSuspensa, + TcinfDps, + TcinfNfse, + TcinfoCompl, + TcinfoDedRed, + TcinfoItemPed, + TcinfoObra, + TcinfoPessoa, + TcinfoPrestador, + TcinfoRefNfse, + TcinfoTributacao, + TcinfoValores, + TclistaDocDedRed, + TclocPrest, + Tcnfse, + TcregTrib, + Tcrtcibscbs, + TcrtcinfoDest, + TcrtcinfoIbscbs, + TcrtcinfoImovel, + TcrtcinfoReeRepRes, + TcrtcinfoTributosDif, + TcrtcinfoTributosIbscbs, + TcrtcinfoTributosSitClas, + TcrtcinfoTributosTribRegular, + TcrtcinfoValoresIbscbs, + TcrtclistaDoc, + TcrtclistaDocDfe, + TcrtclistaDocFiscalOutro, + TcrtclistaDocFornec, + TcrtclistaDocOutro, + TcrtctotalCbs, + TcrtctotalCbscredPres, + TcrtctotalCibs, + TcrtctotalIbs, + TcrtctotalIbscredPres, + TcrtctotalIbsmun, + TcrtctotalIbsuf, + TcrtctotalTribCompraGov, + TcrtctotalTribRegular, + TcrtcvaloresIbscbs, + TcrtcvaloresIbscbsfed, + TcrtcvaloresIbscbsmun, + TcrtcvaloresIbscbsuf, + Tcserv, + Tcsubstituicao, + TctribFederal, + TctribMunicipal, + TctribOutrosPisCofins, + TctribTotal, + TctribTotalMonet, + TctribTotalPercent, + TcvaloresNfse, + TcvdescCondIncond, + TcvservPrest, +) +from nfelib.nfse.bindings.v1_01.tipos_eventos_v1_01 import ( + Tcevento, + TcinfEvento, + TcinfPedReg, + TcpedRegEvt, + Te101101, + Te101101XDesc, + Te101103, + Te101103XDesc, + Te105102, + Te105102XDesc, + Te105104, + Te105104XDesc, + Te105105, + Te105105XDesc, + Te202201, + Te202201XDesc, + Te202205, + Te202205XDesc, + Te203202, + Te203202XDesc, + Te203206, + Te203206XDesc, + Te204203, + Te204203XDesc, + Te204207, + Te204207XDesc, + Te205204, + Te205204XDesc, + Te205208, + Te205208XDesc, + Te305101, + Te305101XDesc, + Te305102, + Te305102XDesc, + Te305103, + Te305103XDesc, +) +from nfelib.nfse.bindings.v1_01.tipos_simples_v1_01 import ( + Tbmissqn, + TsambGeradorEvt, + TsambGeradorNfse, + TscodigoEventoNfse, + TscodJustAnaliseFiscalCanc, + TscodJustAnaliseFiscalCancDef, + TscodJustAnaliseFiscalCancIndef, + TscodJustCanc, + TscodJustSubst, + TscodMotivoRejeicao, + TscodNaoNif, + TsemitenteDps, + TsenvMdic, + TsideDedRed, + TsmecAfcomExPrest, + TsmecAfcomExToma, + TsmodoPrestacao, + TsmotivoEmisTi, + TsmovTempBens, + TsopExigSuspensa, + TsopSimpNac, + TsprocEmissao, + TsregEspTrib, + TsregimeApuracaoSimpNac, + TsrtcfinNfse, + TsrtcindDest, + TsrtcindFinal, + TsrtctipoChaveDfe, + TsrtctpEnteGov, + TsrtctpOper, + TsrtctpReeRepRes, + TssituacaoEmissaoNfse, + Tstat, + TstipoAmbiente, + TstipoCst, + TstipoEmissao, + TstipoImunidadeIssqn, + TstipoIndTotTrib, + TstipoRetIssqn, + TstipoRetPiscofins, + TstribIssqn, + Tsuf, + TsvincPrest, +) +from nfelib.nfse.bindings.v1_01.xmldsig_core_schema import ( + CanonicalizationMethod, + CanonicalizationMethodType, + DigestMethod, + DigestMethodType, + DigestValue, + DsakeyValue, + DsakeyValueType, + KeyInfo, + KeyInfoType, + KeyName, + KeyValue, + KeyValueType, + Manifest, + ManifestType, + MgmtData, + ObjectType, + Pgpdata, + PgpdataType, + Reference, + ReferenceType, + RetrievalMethod, + RetrievalMethodType, + RsakeyValue, + RsakeyValueType, + Signature, + SignatureMethod, + SignatureMethodType, + SignatureProperties, + SignaturePropertiesType, + SignatureProperty, + SignaturePropertyType, + SignatureType, + SignatureValue, + SignatureValueType, + SignedInfo, + SignedInfoType, + Spkidata, + SpkidataType, + Transform, + Transforms, + TransformsType, + TransformType, + X509Data, + X509DataType, + X509IssuerSerialType, + _Object, +) + +__all__ = [ + "Cnc", + "Dps", + "Evento", + "Nfse", + "PedRegEvento", + "TcenderContribuinteCnc", + "TcinfCnc", + "TcinfoContribuinteCnc", + "Tcnc", + "TcatvEvento", + "TcbeneficioMunicipal", + "Tccserv", + "TccomExterior", + "Tcdps", + "TcdocDedRed", + "TcdocNfnfs", + "TcdocOutNfse", + "Tcemitente", + "TcenderExt", + "TcenderExtSimples", + "TcenderNac", + "TcenderObraEvento", + "Tcendereco", + "TcenderecoEmitente", + "TcenderecoSimples", + "TcexigSuspensa", + "TcinfDps", + "TcinfNfse", + "TcinfoCompl", + "TcinfoDedRed", + "TcinfoItemPed", + "TcinfoObra", + "TcinfoPessoa", + "TcinfoPrestador", + "TcinfoRefNfse", + "TcinfoTributacao", + "TcinfoValores", + "TclistaDocDedRed", + "TclocPrest", + "Tcnfse", + "Tcrtcibscbs", + "TcrtcinfoDest", + "TcrtcinfoIbscbs", + "TcrtcinfoImovel", + "TcrtcinfoReeRepRes", + "TcrtcinfoTributosDif", + "TcrtcinfoTributosIbscbs", + "TcrtcinfoTributosSitClas", + "TcrtcinfoTributosTribRegular", + "TcrtcinfoValoresIbscbs", + "TcrtclistaDoc", + "TcrtclistaDocDfe", + "TcrtclistaDocFiscalOutro", + "TcrtclistaDocFornec", + "TcrtclistaDocOutro", + "TcrtctotalCbs", + "TcrtctotalCbscredPres", + "TcrtctotalCibs", + "TcrtctotalIbs", + "TcrtctotalIbscredPres", + "TcrtctotalIbsmun", + "TcrtctotalIbsuf", + "TcrtctotalTribCompraGov", + "TcrtctotalTribRegular", + "TcrtcvaloresIbscbs", + "TcrtcvaloresIbscbsfed", + "TcrtcvaloresIbscbsmun", + "TcrtcvaloresIbscbsuf", + "TcregTrib", + "Tcserv", + "Tcsubstituicao", + "TctribFederal", + "TctribMunicipal", + "TctribOutrosPisCofins", + "TctribTotal", + "TctribTotalMonet", + "TctribTotalPercent", + "TcvdescCondIncond", + "TcvservPrest", + "TcvaloresNfse", + "Tcevento", + "TcinfEvento", + "TcinfPedReg", + "TcpedRegEvt", + "Te101101", + "Te101101XDesc", + "Te101103", + "Te101103XDesc", + "Te105102", + "Te105102XDesc", + "Te105104", + "Te105104XDesc", + "Te105105", + "Te105105XDesc", + "Te202201", + "Te202201XDesc", + "Te202205", + "Te202205XDesc", + "Te203202", + "Te203202XDesc", + "Te203206", + "Te203206XDesc", + "Te204203", + "Te204203XDesc", + "Te204207", + "Te204207XDesc", + "Te205204", + "Te205204XDesc", + "Te205208", + "Te205208XDesc", + "Te305101", + "Te305101XDesc", + "Te305102", + "Te305102XDesc", + "Te305103", + "Te305103XDesc", + "Tbmissqn", + "TsambGeradorEvt", + "TsambGeradorNfse", + "TscodJustAnaliseFiscalCanc", + "TscodJustAnaliseFiscalCancDef", + "TscodJustAnaliseFiscalCancIndef", + "TscodJustCanc", + "TscodJustSubst", + "TscodMotivoRejeicao", + "TscodNaoNif", + "TscodigoEventoNfse", + "TsemitenteDps", + "TsenvMdic", + "TsideDedRed", + "TsmecAfcomExPrest", + "TsmecAfcomExToma", + "TsmodoPrestacao", + "TsmotivoEmisTi", + "TsmovTempBens", + "TsopExigSuspensa", + "TsopSimpNac", + "TsprocEmissao", + "TsrtcfinNfse", + "TsrtcindDest", + "TsrtcindFinal", + "TsrtctipoChaveDfe", + "TsrtctpEnteGov", + "TsrtctpOper", + "TsrtctpReeRepRes", + "TsregEspTrib", + "TsregimeApuracaoSimpNac", + "TssituacaoEmissaoNfse", + "TstipoAmbiente", + "TstipoCst", + "TstipoEmissao", + "TstipoImunidadeIssqn", + "TstipoIndTotTrib", + "TstipoRetIssqn", + "TstipoRetPiscofins", + "TstribIssqn", + "Tsuf", + "TsvincPrest", + "Tstat", + "CanonicalizationMethod", + "CanonicalizationMethodType", + "DsakeyValue", + "DsakeyValueType", + "DigestMethod", + "DigestMethodType", + "DigestValue", + "KeyInfo", + "KeyInfoType", + "KeyName", + "KeyValue", + "KeyValueType", + "Manifest", + "ManifestType", + "MgmtData", + "_Object", + "ObjectType", + "Pgpdata", + "PgpdataType", + "RsakeyValue", + "RsakeyValueType", + "Reference", + "ReferenceType", + "RetrievalMethod", + "RetrievalMethodType", + "Spkidata", + "SpkidataType", + "Signature", + "SignatureMethod", + "SignatureMethodType", + "SignatureProperties", + "SignaturePropertiesType", + "SignatureProperty", + "SignaturePropertyType", + "SignatureType", + "SignatureValue", + "SignatureValueType", + "SignedInfo", + "SignedInfoType", + "Transform", + "TransformType", + "Transforms", + "TransformsType", + "X509Data", + "X509DataType", + "X509IssuerSerialType", +] diff --git a/nfelib/nfse/bindings/v1_01/cnc_v1_00.py b/nfelib/nfse/bindings/v1_01/cnc_v1_00.py new file mode 100644 index 00000000..ca4de034 --- /dev/null +++ b/nfelib/nfse/bindings/v1_01/cnc_v1_00.py @@ -0,0 +1,22 @@ +"""This file was generated by xsdata, v25.7, on 2026-10-09 00:45:08 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" + +from __future__ import annotations + +from dataclasses import dataclass + +from nfelib.nfse.bindings.v1_01.tipos_cnc_v1_00 import Tcnc + +__NAMESPACE__ = "http://www.sped.fazenda.gov.br/nfse" + + +@dataclass +class Cnc(Tcnc): + """Schema XML Leiaute do arquivo para upload - CNC""" + + class Meta: + name = "CNC" + namespace = "http://www.sped.fazenda.gov.br/nfse" diff --git a/nfelib/nfse/bindings/v1_01/dps_v1_01.py b/nfelib/nfse/bindings/v1_01/dps_v1_01.py new file mode 100644 index 00000000..a6fd7444 --- /dev/null +++ b/nfelib/nfse/bindings/v1_01/dps_v1_01.py @@ -0,0 +1,22 @@ +"""This file was generated by xsdata, v25.7, on 2026-10-09 00:45:08 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" + +from __future__ import annotations + +from dataclasses import dataclass + +from nfelib.nfse.bindings.v1_01.tipos_complexos_v1_01 import Tcdps + +__NAMESPACE__ = "http://www.sped.fazenda.gov.br/nfse" + + +@dataclass +class Dps(Tcdps): + """Schema XML da Declaração de Prestação de Serviços - DPS""" + + class Meta: + name = "DPS" + namespace = "http://www.sped.fazenda.gov.br/nfse" diff --git a/nfelib/nfse/bindings/v1_01/evento_v1_01.py b/nfelib/nfse/bindings/v1_01/evento_v1_01.py new file mode 100644 index 00000000..ff3a94d4 --- /dev/null +++ b/nfelib/nfse/bindings/v1_01/evento_v1_01.py @@ -0,0 +1,24 @@ +"""This file was generated by xsdata, v25.7, on 2026-10-09 00:45:08 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" + +from __future__ import annotations + +from dataclasses import dataclass + +from nfelib.nfse.bindings.v1_01.tipos_eventos_v1_01 import Tcevento + +__NAMESPACE__ = "http://www.sped.fazenda.gov.br/nfse" + + +@dataclass +class Evento(Tcevento): + """ + Schema XML do Pedido de Registro de Eventos. + """ + + class Meta: + name = "evento" + namespace = "http://www.sped.fazenda.gov.br/nfse" diff --git a/nfelib/nfse/bindings/v1_01/nfse_v1_01.py b/nfelib/nfse/bindings/v1_01/nfse_v1_01.py new file mode 100644 index 00000000..53573a0c --- /dev/null +++ b/nfelib/nfse/bindings/v1_01/nfse_v1_01.py @@ -0,0 +1,22 @@ +"""This file was generated by xsdata, v25.7, on 2026-10-09 00:45:08 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" + +from __future__ import annotations + +from dataclasses import dataclass + +from nfelib.nfse.bindings.v1_01.tipos_complexos_v1_01 import Tcnfse + +__NAMESPACE__ = "http://www.sped.fazenda.gov.br/nfse" + + +@dataclass +class Nfse(Tcnfse): + """Schema XML da Nota Fiscal de Serviços Eletrônica - NFS-e""" + + class Meta: + name = "NFSe" + namespace = "http://www.sped.fazenda.gov.br/nfse" diff --git a/nfelib/nfse/bindings/v1_01/ped_reg_evento_v1_01.py b/nfelib/nfse/bindings/v1_01/ped_reg_evento_v1_01.py new file mode 100644 index 00000000..b94b8231 --- /dev/null +++ b/nfelib/nfse/bindings/v1_01/ped_reg_evento_v1_01.py @@ -0,0 +1,24 @@ +"""This file was generated by xsdata, v25.7, on 2026-10-09 00:45:08 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" + +from __future__ import annotations + +from dataclasses import dataclass + +from nfelib.nfse.bindings.v1_01.tipos_eventos_v1_01 import TcpedRegEvt + +__NAMESPACE__ = "http://www.sped.fazenda.gov.br/nfse" + + +@dataclass +class PedRegEvento(TcpedRegEvt): + """ + Schema XML do Pedido de Registro de Eventos. + """ + + class Meta: + name = "pedRegEvento" + namespace = "http://www.sped.fazenda.gov.br/nfse" diff --git a/nfelib/nfse/bindings/v1_01/tipos_cnc_v1_00.py b/nfelib/nfse/bindings/v1_01/tipos_cnc_v1_00.py new file mode 100644 index 00000000..4b099a0e --- /dev/null +++ b/nfelib/nfse/bindings/v1_01/tipos_cnc_v1_00.py @@ -0,0 +1,312 @@ +"""This file was generated by xsdata, v25.7, on 2026-10-09 00:45:08 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" + +from __future__ import annotations + +from dataclasses import dataclass, field +from typing import Optional + +from nfelib.nfse.bindings.v1_01.tipos_simples_v1_01 import ( + TsregEspTrib, + TssituacaoEmissaoNfse, + TstipoAmbiente, +) + +__NAMESPACE__ = "http://www.sped.fazenda.gov.br/nfse" + + +@dataclass +class TcenderContribuinteCnc: + """ + + " + + :ivar CEP: Código de endereçamento postal do estabelecimento do + contribuinte + :ivar nro: Número do estabelecimento no logradouro informado + :ivar xCpl: Informação complementar para identificação do endereço + do contribuinte + """ + + class Meta: + name = "TCEnderContribuinteCNC" + + CEP: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{8}", + }, + ) + nro: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 156, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class TcinfoContribuinteCnc: + """ + Informações para cadastramento de novos contribuintes CNC. + " + + :ivar CNPJ: Número do CNPJ + :ivar CPF: Número do CPF + :ivar IM: Número da inscrição municipal + :ivar dInscricaoMunicipal: Data da Inscrição Municipal: Dia, mês e + ano (AAAAMMDD) + :ivar enderContribuinteCNC: Grupo de informações do endereço do + contribuinte do CNC + :ivar fone: Número do telefone do prestador: Preencher com o Código + DDD + número do telefone. Nas operações com exterior é permitido + informar o código do país + código da localidade + número do + telefone) + :ivar email: Endereço de e-mail para contato com o contribuinte + :ivar regEspTribContribuinteCNC: Tipos de Regimes Especiais de + Tributação: 0 - Nenhum; 1 - Ato Cooperado (Cooperativa); 2 - + Estimativa; 3 - Microempresa Municipal; 4 - Notário ou + Registrador; 5 - Profissional Autônomo; 6 - Sociedade de + Profissionais; + :ivar situacaoCadastroContribuinte: Identificação da situação do + cadastro do contribuinte + :ivar motivoSituacaoCadastroContribuinte: Motivo pelo qual o + contribuinte se enquadra na situação informada + :ivar situacaoEmissaoNFSE: Situação Emissão NFS-e: 0 - Não + Habilitado; 1 - Habilitado; + """ + + class Meta: + name = "TCInfoContribuinteCNC" + + CNPJ: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 14, + "white_space": "preserve", + "pattern": r"[0-9]{14}", + }, + ) + CPF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 11, + "white_space": "preserve", + "pattern": r"[0-9]{11}", + }, + ) + IM: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 15, + "white_space": "preserve", + }, + ) + dInscricaoMunicipal: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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)))))", + }, + ) + enderContribuinteCNC: Optional[TcenderContribuinteCnc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + fone: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"[0-9]{6,20}", + }, + ) + email: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 80, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + regEspTribContribuinteCNC: Optional[TsregEspTrib] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + situacaoCadastroContribuinte: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 150, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + motivoSituacaoCadastroContribuinte: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + situacaoEmissaoNFSE: Optional[TssituacaoEmissaoNfse] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + + +@dataclass +class TcinfCnc: + """ + + " + + :ivar tpAmb: Identificação do Ambiente: 1 - Produção; 2 - + Homologação + :ivar dhGeracaoArquivo: Data e hora da geração do arquivo CNC. Data + e hora no formato UTC (Universal Coordinated Time): AAAA-MM- + DDThh:mm:ssTZD + :ivar verAplic: Versão do aplicativo que gerou Informações para + cadastramento de novos contribuintes CNC + :ivar contribuintesCnc: + """ + + class Meta: + name = "TCInfCNC" + + tpAmb: Optional[TstipoAmbiente] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + dhGeracaoArquivo: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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))", + }, + ) + verAplic: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 20, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + contribuintesCnc: Optional[TcinfCnc.ContribuintesCnc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + + @dataclass + class ContribuintesCnc: + """ + + " + + :ivar contribuinteCnc: Grupo de informações cadastramento de + novos contribuintes CNC + """ + + contribuinteCnc: list[TcinfoContribuinteCnc] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_occurs": 1, + }, + ) + + +@dataclass +class Tcnc: + class Meta: + name = "TCNC" + + infCNC: Optional[TcinfCnc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + versao: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "white_space": "preserve", + "pattern": r"1\.00", + }, + ) diff --git a/nfelib/nfse/bindings/v1_01/tipos_complexos_v1_01.py b/nfelib/nfse/bindings/v1_01/tipos_complexos_v1_01.py new file mode 100644 index 00000000..db74fa24 --- /dev/null +++ b/nfelib/nfse/bindings/v1_01/tipos_complexos_v1_01.py @@ -0,0 +1,4826 @@ +"""This file was generated by xsdata, v25.7, on 2026-10-09 00:45:08 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" + +from __future__ import annotations + +from dataclasses import dataclass, field +from typing import Optional + +from xsdata.models.datatype import XmlDate + +from nfelib import CommonMixin +from nfelib.nfse.bindings.v1_01.tipos_simples_v1_01 import ( + Tbmissqn, + TsambGeradorNfse, + TscodJustSubst, + TscodNaoNif, + TsemitenteDps, + TsenvMdic, + TsideDedRed, + TsmecAfcomExPrest, + TsmecAfcomExToma, + TsmodoPrestacao, + TsmotivoEmisTi, + TsmovTempBens, + TsopExigSuspensa, + TsopSimpNac, + TsprocEmissao, + TsregEspTrib, + TsregimeApuracaoSimpNac, + TsrtcfinNfse, + TsrtcindDest, + TsrtcindFinal, + TsrtctipoChaveDfe, + TsrtctpEnteGov, + TsrtctpOper, + TsrtctpReeRepRes, + Tstat, + TstipoAmbiente, + TstipoCst, + TstipoEmissao, + TstipoImunidadeIssqn, + TstipoIndTotTrib, + TstipoRetIssqn, + TstipoRetPiscofins, + TstribIssqn, + Tsuf, + TsvincPrest, +) +from nfelib.nfse.bindings.v1_01.xmldsig_core_schema import Signature + +__NAMESPACE__ = "http://www.sped.fazenda.gov.br/nfse" + + +@dataclass +class TcbeneficioMunicipal: + """ + + " + + :ivar nBM: Identificador do benefício parametrizado pelo município. + Trata-se de um identificador único que foi gerado pelo Sistema + Nacional no momento em que o município de incidência do ISSQN + incluiu o benefício no sistema. Critério de formação do número + de identificação de parâmetros municipais: 7 dígitos - posição 1 + a 7: número identificador do Município, conforme código IBGE; 2 + dígitos - posições 8 e 9 : número identificador do tipo de + parametrização (01-legislação, 02-regimes especiais, + 03-retenções, 04-outros benefícios); 5 dígitos - posição 10 a 14 + : número sequencial definido pelo sistema quando do registro + específico do parâmetro dentro do tipo de parametrização no + sistema; + :ivar vRedBCBM: Valor monetário informado pelo emitente para redução + da base de cálculo (BC) do ISSQN devido a um Benefício Municipal + (BM). + :ivar pRedBCBM: Valor percentual informado pelo emitente para + redução da base de cálculo (BC) do ISSQN devido a um Benefício + Municipal (BM). + """ + + class Meta: + name = "TCBeneficioMunicipal" + + nBM: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "pattern": r"[0-9]{14}", + }, + ) + vRedBCBM: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + pRedBCBM: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class Tccserv: + """ + + " + + :ivar cTribNac: Código de tributação nacional do ISSQN, nos termos + da LC 116/2003, conforme aba MUN.INCID_INFO.SERV. do ANEXO I + Regra de formação - 6 dígitos numéricos sendo: 2 para Item (LC + 116/2003), 2 para Subitem (LC 116/2003) e 2 para Desdobro + Nacional + :ivar cTribMun: Código de tributação municipal do ISSQN + :ivar xDescServ: Descrição completa do serviço prestado + :ivar cNBS: Código NBS correspondente ao serviço prestado, seguindo + a versão 2.0, conforme Anexo B + :ivar cIntContrib: Código interno do contribuinte + """ + + class Meta: + name = "TCCServ" + + cTribNac: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{6}", + }, + ) + cTribMun: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"[0-9]{3}", + }, + ) + xDescServ: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 2000, + "white_space": "preserve", + "pattern": r"[\s\S!-ÿ]{1}[\s\S -ÿ]{0,}[\s\S!-ÿ]{1}|[\s\S!-ÿ]{1}", + }, + ) + cNBS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"[0-9]{9}", + }, + ) + cIntContrib: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 20, + "white_space": "preserve", + "pattern": r"[a-zA-Z0-9]{1,20}", + }, + ) + + +@dataclass +class TcdocNfnfs: + """ + + " + + :ivar nNFS: Número da Nota Fiscal NF ou NFS + :ivar modNFS: Modelo da Nota Fiscal NF ou NFS + :ivar serieNFS: Série Nota Fiscal NF ou NFS + """ + + class Meta: + name = "TCDocNFNFS" + + nNFS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 7, + "white_space": "preserve", + "pattern": r"[0-9]{7}", + }, + ) + modNFS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 15, + "white_space": "preserve", + "pattern": r"[0-9]{15}", + }, + ) + serieNFS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 15, + "white_space": "preserve", + "pattern": r"[a-zA-Z0-9]{1,15}", + }, + ) + + +@dataclass +class TcdocOutNfse: + """ + + " + + :ivar cMunNFSeMun: Código Município emissor da nota eletrônica + municipal (Tabela do IBGE) + :ivar nNFSeMun: Número da nota eletrônica municipal + :ivar cVerifNFSeMun: Código de Verificação da nota eletrônica + municipal + """ + + class Meta: + name = "TCDocOutNFSe" + + cMunNFSeMun: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{7}", + }, + ) + nNFSeMun: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 15, + "white_space": "preserve", + "pattern": r"[0-9]{15}", + }, + ) + cVerifNFSeMun: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 9, + "white_space": "preserve", + "pattern": r"[a-zA-Z0-9]{1,9}", + }, + ) + + +@dataclass +class TcenderExt: + """ + + " + + :ivar cPais: Código do país (Tabela de Países ISO) + :ivar cEndPost: Código alfanumérico do Endereçamento Postal no + exterior do prestador do serviço. + :ivar xCidade: Nome da cidade no exterior do prestador do serviço. + :ivar xEstProvReg: Estado, província ou região da cidade no exterior + do prestador do serviço. + """ + + class Meta: + name = "TCEnderExt" + + cPais: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"[A-Z]{2}", + }, + ) + cEndPost: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 11, + "white_space": "preserve", + }, + ) + xCidade: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 60, + "white_space": "preserve", + }, + ) + xEstProvReg: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 60, + "white_space": "preserve", + }, + ) + + +@dataclass +class TcenderExtSimples: + """ + + " + + :ivar cEndPost: Código alfanumérico do Endereçamento Postal no + exterior do prestador do serviço. + :ivar xCidade: Nome da cidade no exterior do prestador do serviço. + :ivar xEstProvReg: Estado, província ou região da cidade no exterior + do prestador do serviço. + """ + + class Meta: + name = "TCEnderExtSimples" + + cEndPost: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 11, + "white_space": "preserve", + }, + ) + xCidade: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 60, + "white_space": "preserve", + }, + ) + xEstProvReg: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 60, + "white_space": "preserve", + }, + ) + + +@dataclass +class TcenderNac: + """ + + " + + :ivar cMun: Código do município, conforme Tabela do IBGE + :ivar CEP: Número do CEP + """ + + class Meta: + name = "TCEnderNac" + + cMun: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{7}", + }, + ) + CEP: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{8}", + }, + ) + + +@dataclass +class TcinfoItemPed: + """ + + " + + :ivar xItemPed: Número do item do pedido/ordem de compra/ordem de + serviço/projeto - Identificação do número do item do pedido ou + ordem de compra destacado e xPed + """ + + class Meta: + name = "TCInfoItemPed" + + xItemPed: list[str] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_occurs": 1, + "max_occurs": 99, + "min_length": 1, + "max_length": 60, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class TcinfoRefNfse: + """ + + " + + :ivar refNFSe: Chave da NFS-e referenciada + """ + + class Meta: + name = "TCInfoRefNFSe" + + refNFSe: list[str] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_occurs": 1, + "max_occurs": 99, + "max_length": 50, + "white_space": "preserve", + "pattern": r"[0-9]{50}", + }, + ) + + +@dataclass +class TclocPrest: + """ + + " + + :ivar cLocPrestacao: Código do município onde o serviço foi prestado + (tabela do IBGE) + :ivar cPaisPrestacao: Código do país onde o serviço foi prestado + (Tabela de Países ISO) + """ + + class Meta: + name = "TCLocPrest" + + cLocPrestacao: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"[0-9]{7}", + }, + ) + cPaisPrestacao: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"[A-Z]{2}", + }, + ) + + +@dataclass +class TcrtcinfoTributosDif: + """ + + " + + :ivar pDifUF: Percentual de diferimento para o IBS estadual + :ivar pDifMun: Percentual de diferimento para o IBS municipal + :ivar pDifCBS: Percentual de diferimento para a CBS + """ + + class Meta: + name = "TCRTCInfoTributosDif" + + pDifUF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?", + }, + ) + pDifMun: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?", + }, + ) + pDifCBS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TcrtcinfoTributosTribRegular: + """ + + " + + :ivar CSTReg: Código de Situação Tributária do IBS e da CBS de + tributação regular + :ivar cClassTribReg: Código da Classificação Tributária do IBS e da + CBS de tributação regular + """ + + class Meta: + name = "TCRTCInfoTributosTribRegular" + + CSTReg: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{3}", + }, + ) + cClassTribReg: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{6}", + }, + ) + + +@dataclass +class TcrtclistaDocFiscalOutro: + """ + + " + + :ivar cMunDocFiscal: Código do município emissor do documento fiscal + que não se encontra no repositório nacional + :ivar nDocFiscal: Número do documento fiscal que não se encontra no + repositório nacional + :ivar xDocFiscal: Descrição do documento fiscal + """ + + class Meta: + name = "TCRTCListaDocFiscalOutro" + + cMunDocFiscal: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 7, + "white_space": "preserve", + "pattern": r"[0-9]{7}", + }, + ) + nDocFiscal: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + xDocFiscal: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class TcrtclistaDocOutro: + """ + + " + + :ivar nDoc: Número do documento não fiscal + :ivar xDoc: Descrição do documento não fiscal + """ + + class Meta: + name = "TCRTCListaDocOutro" + + nDoc: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + xDoc: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class TcrtctotalCbscredPres: + """ + + " + + :ivar pCredPresCBS: Alíquota do crédito presumido para a CBS + :ivar vCredPresCBS: Valor do Crédito Presumido da CBS vCredPresCBS = + vBC x pCredPresCBS + """ + + class Meta: + name = "TCRTCTotalCBSCredPres" + + pCredPresCBS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,1}(\.[0-9]{2})?", + }, + ) + vCredPresCBS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TcrtctotalIbscredPres: + """ + + " + + :ivar pCredPresIBS: Alíquota do crédito presumido para o IBS + :ivar vCredPresIBS: Valor do Crédito Presumido para o IBS + vCredPresIBS = vBC x pCredPresIBS + """ + + class Meta: + name = "TCRTCTotalIBSCredPres" + + pCredPresIBS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,1}(\.[0-9]{2})?", + }, + ) + vCredPresIBS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TcrtctotalIbsmun: + """ + + " + + :ivar vDifMun: Total do Diferimento do IBS municipal vDifMun = + vIBSMun x pDifMun + :ivar vIBSMun: Total valor do IBS municipal vIBSMun = vBC x (pIBSMun + ou pAliqEfetMun) + """ + + class Meta: + name = "TCRTCTotalIBSMun" + + vDifMun: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + vIBSMun: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TcrtctotalIbsuf: + """ + + " + + :ivar vDifUF: Total do Diferimento do IBS estadual vDifUF = vIBSUF x + pDifUF + :ivar vIBSUF: Total valor do IBS estadual vIBSUF = vBC x (pIBSUF ou + pAliqEfetUF) + """ + + class Meta: + name = "TCRTCTotalIBSUF" + + vDifUF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + vIBSUF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TcrtctotalTribCompraGov: + """ + + " + + :ivar pIBSUF: Alíquota do IBS de competência do Estado + :ivar vIBSUF: Valor do Tributo do IBS da UF calculado + :ivar pIBSMun: Alíquota do IBS de competência do Município + :ivar vIBSMun: Valor do Tributo do IBS do Município calculado + :ivar pCBS: Alíquota da CBS + :ivar vCBS: Valor do Tributo da CBS calculado + """ + + class Meta: + name = "TCRTCTotalTribCompraGov" + + pIBSUF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,1}(\.[0-9]{2})?", + }, + ) + vIBSUF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + pIBSMun: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,1}(\.[0-9]{2})?", + }, + ) + vIBSMun: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + pCBS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,1}(\.[0-9]{2})?", + }, + ) + vCBS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TcrtctotalTribRegular: + """ + + " + + :ivar pAliqEfeRegIBSUF: Alíquota efetiva de tributação regular do + IBS estadual + :ivar vTribRegIBSUF: Valor da tributação regular do IBS estadual + vTribRegIBSUF = vBC x pAliqEfeRegIBSUF + :ivar pAliqEfeRegIBSMun: Alíquota efetiva de tributação regular do + IBS municipal + :ivar vTribRegIBSMun: Valor da tributação regular do IBS municipal + vTribRegIBSMun = vBC x pAliqEfeRegIBSMun + :ivar pAliqEfeRegCBS: Alíquota efetiva de tributação regular da CBS + :ivar vTribRegCBS: Valor da tributação regular da CBS vTribRegCBS = + vBC x pAliqEfeRegCBS + """ + + class Meta: + name = "TCRTCTotalTribRegular" + + pAliqEfeRegIBSUF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,1}(\.[0-9]{2})?", + }, + ) + vTribRegIBSUF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + pAliqEfeRegIBSMun: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,1}(\.[0-9]{2})?", + }, + ) + vTribRegIBSMun: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + pAliqEfeRegCBS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,1}(\.[0-9]{2})?", + }, + ) + vTribRegCBS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TcrtcvaloresIbscbsfed: + """ + + " + + :ivar pCBS: Alíquota da União para CBS parametrizada no sistema + :ivar pRedAliqCBS: Percentual da redução de alíquota da CBS + :ivar pAliqEfetCBS: pAliqEfetCBS = pCBS x (1 - pRedAliqCBS) x (1 - + pRedutor) Se pRedAliqCBS não for informado na DPS, então + pAliqEfetCBS é a própria pCBS + """ + + class Meta: + name = "TCRTCValoresIBSCBSFed" + + pCBS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,1}(\.[0-9]{2})?", + }, + ) + pRedAliqCBS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?", + }, + ) + pAliqEfetCBS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,1}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TcrtcvaloresIbscbsmun: + """ + + " + + :ivar pIBSMun: Alíquota do Município para IBS da localidade de + incidência parametrizada no sistema + :ivar pRedAliqMun: Percentual de redução de alíquota municipal + :ivar pAliqEfetMun: pAliqEfetMun = pIBSMun x (1 - pRedAliqMun) x (1 + - pRedutor) Se pRedAliqMun não for informado na DPS, então + pAliqEfetMun é a própria pIBSMun + """ + + class Meta: + name = "TCRTCValoresIBSCBSMun" + + pIBSMun: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,1}(\.[0-9]{2})?", + }, + ) + pRedAliqMun: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?", + }, + ) + pAliqEfetMun: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,1}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TcrtcvaloresIbscbsuf: + """ + + " + + :ivar pIBSUF: Alíquota da UF para IBS da localidade de incidência + parametrizada no sistema + :ivar pRedAliqUF: Percentual de redução de alíquota estadual + :ivar pAliqEfetUF: pAliqEfetUF = pIBSUF x (1 - pRedAliqUF) x (1 - + pRedutor) Se pRedAliqUF não for informado na DPS, então + pAliqEfetUF é a própria pIBSUF + """ + + class Meta: + name = "TCRTCValoresIBSCBSUF" + + pIBSUF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,1}(\.[0-9]{2})?", + }, + ) + pRedAliqUF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?", + }, + ) + pAliqEfetUF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,1}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TctribTotalMonet: + """ + + " + + :ivar vTotTribFed: Valor monetário total aproximado dos tributos + federais (R$). + :ivar vTotTribEst: Valor monetário total aproximado dos tributos + estaduais (R$). + :ivar vTotTribMun: Valor monetário total aproximado dos tributos + municipais (R$). + """ + + class Meta: + name = "TCTribTotalMonet" + + vTotTribFed: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + vTotTribEst: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + vTotTribMun: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TctribTotalPercent: + """ + + " + + :ivar pTotTribFed: Valor percentual total aproximado dos tributos + federais (%). + :ivar pTotTribEst: Valor percentual total aproximado dos tributos + estaduais (%). + :ivar pTotTribMun: Valor percentual total aproximado dos tributos + municipais (%). + """ + + class Meta: + name = "TCTribTotalPercent" + + pTotTribFed: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?", + }, + ) + pTotTribEst: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?", + }, + ) + pTotTribMun: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TcvdescCondIncond: + """ + + " + + :ivar vDescIncond: Valor monetário do desconto incondicionado (R$) + :ivar vDescCond: Valor monetário do desconto condicionado (R$) + """ + + class Meta: + name = "TCVDescCondIncond" + + vDescIncond: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + vDescCond: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TcvservPrest: + """ + + " + + :ivar vReceb: Valor monetário recebido pelo intermediário do serviço + (R$) + :ivar vServ: Valor dos serviços em R$ + """ + + class Meta: + name = "TCVServPrest" + + vReceb: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + vServ: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TccomExterior: + """ + + " + + :ivar mdPrestacao: Modo de Prestação: 0 - Desconhecido (tipo não + informado na nota de origem); 1 - Transfronteiriço; 2 - Consumo + no Brasil; 3 - Movimento Temporário de Pessoas Físicas; 4 - + Consumo no Exterior; + :ivar vincPrest: Vínculo entre as partes no negócio: 0 - Sem vínculo + com o Tomador/Prestador 1 - Controlada; 2 - Controladora; 3 - + Coligada; 4 - Matriz; 5 - Filial ou sucursal; 6 - Outro vínculo; + 9 - Desconhecido (tipo não informado na nota de origem); + :ivar tpMoeda: Identifica a moeda da transação comercial + :ivar vServMoeda: Valor do serviço prestado expresso em moeda + estrangeira especificada em tpmoeda + :ivar mecAFComexP: Mecanismo de apoio/fomento ao Comércio Exterior + utilizado pelo prestador do serviço: 00 - Desconhecido (tipo não + informado na nota de origem); 01 - Nenhum; 02 - ACC - + Adiantamento sobre Contrato de Câmbio – Redução a Zero do IR e + do IOF; 03 - ACE – Adiantamento sobre Cambiais Entregues - + Redução a Zero do IR e do IOF; 04 - BNDES-Exim Pós-Embarque – + Serviços; 05 - BNDES-Exim Pré-Embarque - Serviços; 06 - FGE - + Fundo de Garantia à Exportação; 07 - PROEX - EQUALIZAÇÃO 08 - + PROEX - Financiamento; + :ivar mecAFComexT: Mecanismo de apoio/fomento ao Comércio Exterior + utilizado pelo tomador do serviço: 00 - Desconhecido (tipo não + informado na nota de origem); 01 - Nenhum; 02 - Adm. Pública e + Repr. Internacional; 03 - Alugueis e Arrend. Mercantil de + maquinas, equip., embarc. e aeronaves; 04 - Arrendamento + Mercantil de aeronave para empresa de transporte aéreo público; + 05 - Comissão a agentes externos na exportação; 06 - Despesas de + armazenagem, mov. e transporte de carga no exterior; 07 - + Eventos FIFA (subsidiária); 08 - Eventos FIFA; 09 - Fretes, + arrendamentos de embarcações ou aeronaves e outros; 10 - + Material Aeronáutico; 11 - Promoção de Bens no Exterior; 12 - + Promoção de Dest. Turísticos Brasileiros; 13 - Promoção do + Brasil no Exterior; 14 - Promoção Serviços no Exterior; 15 - + RECINE; 16 - RECOPA; 17 - Registro e Manutenção de marcas, + patentes e cultivares; 18 - REICOMP; 19 - REIDI; 20 - REPENEC; + 21 - REPES; 22 - RETAERO; 23 - RETID; 24 - Royalties, + Assistência Técnica, Científica e Assemelhados; 25 - Serviços de + avaliação da conformidade vinculados aos Acordos da OMC; 26 - + ZPE; + :ivar movTempBens: Vínculo da Operação à Movimentação Temporária de + Bens: 0 - Desconhecido (tipo não informado na nota de origem); 1 + - Não; 2 - Vinculada - Declaração de Importação; 3 - Vinculada - + Declaração de Exportação; + :ivar nDI: Número da Declaração de Importação (DI/DSI/DA/DRI-E) + averbado + :ivar nRE: Número do Registro de Exportação (RE) averbado + :ivar mdic: Compartilhar as informações da NFS-e gerada a partir + desta DPS com a Secretaria de Comércio Exterior: 0 - Não enviar + para o MDIC; 1 - Enviar para o MDIC; + """ + + class Meta: + name = "TCComExterior" + + mdPrestacao: Optional[TsmodoPrestacao] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + vincPrest: Optional[TsvincPrest] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + tpMoeda: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 3, + "white_space": "preserve", + "pattern": r"[0-9]{3}", + }, + ) + vServMoeda: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + mecAFComexP: Optional[TsmecAfcomExPrest] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + mecAFComexT: Optional[TsmecAfcomExToma] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + movTempBens: Optional[TsmovTempBens] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + nDI: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 12, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + nRE: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 12, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + mdic: Optional[TsenvMdic] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + + +@dataclass +class TcenderObraEvento: + """ + + " + + :ivar CEP: Número do CEP + :ivar endExt: Grupo de informações específicas de endereço no + exterior + :ivar xLgr: Tipo e nome do logradouro da localização do imóvel + :ivar nro: Número do imóvel + :ivar xCpl: Complemento do endereço + :ivar xBairro: Bairro + """ + + class Meta: + name = "TCEnderObraEvento" + + CEP: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"[0-9]{8}", + }, + ) + endExt: Optional[TcenderExtSimples] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + xLgr: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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.sped.fazenda.gov.br/nfse", + "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.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 156, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + xBairro: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 60, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class Tcendereco: + """ + + " + + :ivar endNac: Grupo de informações específicas de endereço nacional + :ivar endExt: Grupo de informações específicas de endereço no + exterior + :ivar xLgr: Tipo e nome do logradouro da localização do imóvel + :ivar nro: Número do imóvel + :ivar xCpl: Complemento do endereço + :ivar xBairro: Bairro + """ + + class Meta: + name = "TCEndereco" + + endNac: Optional[TcenderNac] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + endExt: Optional[TcenderExt] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + xLgr: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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.sped.fazenda.gov.br/nfse", + "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.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 156, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + xBairro: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 60, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class TcenderecoEmitente: + """ + + " + + :ivar xLgr: Tipo e nome do logradouro da localização do imóvel + :ivar nro: Número do imóvel + :ivar xCpl: Complemento do endereço + :ivar xBairro: Bairro + :ivar cMun: Código do município, conforme Tabela do IBGE + :ivar UF: Sigla da unidade da federação do município do endereço do + emitente. + :ivar CEP: Número do CEP + """ + + class Meta: + name = "TCEnderecoEmitente" + + xLgr: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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.sped.fazenda.gov.br/nfse", + "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.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 156, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + xBairro: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{7}", + }, + ) + UF: Optional[Tsuf] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + CEP: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{8}", + }, + ) + + +@dataclass +class TcenderecoSimples: + """ + + " + + :ivar CEP: Número do CEP + :ivar endExt: Grupo de informações específicas de endereço no + exterior + :ivar xLgr: Tipo e nome do logradouro da localização do imóvel + :ivar nro: Número do imóvel + :ivar xCpl: Complemento do endereço + :ivar xBairro: Bairro + """ + + class Meta: + name = "TCEnderecoSimples" + + CEP: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"[0-9]{8}", + }, + ) + endExt: Optional[TcenderExtSimples] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + xLgr: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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.sped.fazenda.gov.br/nfse", + "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.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 156, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + xBairro: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 60, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class TcexigSuspensa: + """ + + " + + :ivar tpSusp: Opção para Exigibilidade Suspensa: 1 - Exigibilidade + Suspensa por Decisão Judicial; 2 - Exigibilidade Suspensa por + Processo Administrativo; + :ivar nProcesso: Número do processo judicial ou administrativo de + suspensão da exigibilidade + """ + + class Meta: + name = "TCExigSuspensa" + + tpSusp: Optional[TsopExigSuspensa] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + nProcesso: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "pattern": r"[0-9]{30}", + }, + ) + + +@dataclass +class TcinfoCompl: + """ + + " + + :ivar idDocTec: Identificador de Documento de Responsabilidade + Técnica: ART, RRT, DRT, Outros. + :ivar docRef: Chave da nota, número identificador da nota, número do + contrato ou outro identificador de documento emitido pelo + prestador de serviços, que subsidia a emissão dessa nota pelo + tomador do serviço ou intermediário (preenchimento obrigatório + caso a nota esteja sendo emitida pelo Tomador ou intermediário + do serviço). + :ivar xPed: Número do pedido/ordem de compra/ordem de + serviço/projeto que autorize a prestação do serviço em operações + B2B - Informação de interesse do tomador do serviço para + controle e gestão da Negociação + :ivar gItemPed: Grupo de itens do pedido/ordem de compra/ordem de + serviço/projeto + :ivar xInfComp: Informações complementares + """ + + class Meta: + name = "TCInfoCompl" + + idDocTec: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 40, + "white_space": "preserve", + }, + ) + docRef: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + xPed: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 60, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + gItemPed: Optional[TcinfoItemPed] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + xInfComp: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 2000, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class TcrtcinfoTributosSitClas: + """ + + " + + :ivar CST: Código de Situação Tributária do IBS e da CBS + :ivar cClassTrib: Código de Classificação Tributária do IBS e da CBS + :ivar cCredPres: Código e Classificação do Crédito Presumido: IBS e + CBS + :ivar gTribRegular: Grupo de informações da Tributação Regular + :ivar gDif: Grupo de informações relacionadas ao diferimento para + IBS e CBS + """ + + class Meta: + name = "TCRTCInfoTributosSitClas" + + CST: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{3}", + }, + ) + cClassTrib: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{6}", + }, + ) + cCredPres: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"[0-9]{2}", + }, + ) + gTribRegular: Optional[TcrtcinfoTributosTribRegular] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + gDif: Optional[TcrtcinfoTributosDif] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + + +@dataclass +class TcrtclistaDocDfe: + """ + + " + + :ivar tipoChaveDFe: Documento fiscal a que se refere a chaveDfe que + seja um dos documentos do Repositório Nacional + :ivar xTipoChaveDFe: Descrição da DF-e a que se refere a chaveDfe + que seja um dos documentos do Repositório Nacional Deve ser + preenchido apenas quando "tipoChaveDFe = 9 (Outro)" + :ivar chaveDFe: Chave do Documento Fiscal eletrônico do repositório + nacional referenciado para os casos de operações já tributadas + """ + + class Meta: + name = "TCRTCListaDocDFe" + + tipoChaveDFe: Optional[TsrtctipoChaveDfe] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + xTipoChaveDFe: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + chaveDFe: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 50, + "white_space": "preserve", + }, + ) + + +@dataclass +class TcrtclistaDocFornec: + """ + + " + + :ivar CNPJ: Número da inscrição no Cadastro Nacional de Pessoa + Jurídica (CNPJ) do Fornecedor do serviço + :ivar CPF: Número da inscrição no Cadastro de Pessoa Física (CPF) do + Fornecedor do serviço + :ivar NIF: Este elemento só deverá ser preenchido para fornecedores + não residentes no Brasil + :ivar cNaoNIF: Motivo para não informação do NIF: 0 - Não informado + na nota de origem; 1 - Dispensado do NIF; 2 - Não exigência do + NIF; + :ivar xNome: Nome / Razão Social do do Fornecedor do serviço + """ + + class Meta: + name = "TCRTCListaDocFornec" + + CNPJ: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 14, + "white_space": "preserve", + "pattern": r"[0-9]{14}", + }, + ) + CPF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 11, + "white_space": "preserve", + "pattern": r"[0-9]{11}", + }, + ) + NIF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 40, + "white_space": "preserve", + }, + ) + cNaoNIF: Optional[TscodNaoNif] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + xNome: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 150, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class TcrtctotalCbs: + """ + + " + + :ivar gCBSCredPres: Grupo de valores referentes ao crédito presumido + para CBS + :ivar vDifCBS: Total do Diferimento CBS vDifCBS = vCBS x pDifCBS + :ivar vCBS: Total valor da CBS da União vCBS = vBC x (pCBS ou + pAliqEfetCBS) + """ + + class Meta: + name = "TCRTCTotalCBS" + + gCBSCredPres: Optional[TcrtctotalCbscredPres] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + vDifCBS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + vCBS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TcrtctotalIbs: + """ + + " + + :ivar vIBSTot: Valor total do IBS. vIBSTot = vIBSUF + vIBSMun + :ivar gIBSCredPres: Grupo de valores referentes ao crédito presumido + para IBS + :ivar gIBSUFTot: Grupo de valores referentes ao IBS Estadual + :ivar gIBSMunTot: Grupo de valores referentes ao IBS Municipal + """ + + class Meta: + name = "TCRTCTotalIBS" + + vIBSTot: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + gIBSCredPres: Optional[TcrtctotalIbscredPres] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + gIBSUFTot: Optional[TcrtctotalIbsuf] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + gIBSMunTot: Optional[TcrtctotalIbsmun] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + + +@dataclass +class TcrtcvaloresIbscbs: + """ + + " + + :ivar vBC: Valor da base de cálculo (BC) do IBS/CBS antes das + reduções para cálculo do tributo bruto vBC = vServ - descIncond + – vCalcReeRepRes – vISSQN – vPIS - vCOFINS (até 2026) ou vBC = + vServ - descIncond – vCalcReeRepRes – vISSQN (até 2032) + :ivar vCalcReeRepRes: Valor monetário (R$) total relativo ao + fornecimento próprio de bens materiais ou relacionados a + operações de terceiros, objeto de reembolso, repasse ou + ressarcimento pelo recebedor, já tributados e aqui referenciados + e que não integram da base de cálculo (BC) do ISSQN, do IBS e da + CBS. + :ivar uf: Grupo de Informações relativas aos valores do IBS Estadual + :ivar mun: Grupo de Informações relativas aos valores do IBS + Municipal + :ivar fed: Grupo de Informações relativas aos valores da CBS + """ + + class Meta: + name = "TCRTCValoresIBSCBS" + + vBC: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + vCalcReeRepRes: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + uf: Optional[TcrtcvaloresIbscbsuf] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + mun: Optional[TcrtcvaloresIbscbsmun] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + fed: Optional[TcrtcvaloresIbscbsfed] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + + +@dataclass +class TcregTrib: + """ + + " + + :ivar opSimpNac: Situação perante o Simples Nacional: 1 - Não + Optante; 2 - Optante - Microempreendedor Individual (MEI); 3 - + Optante - Microempresa ou Empresa de Pequeno Porte (ME/EPP); + :ivar regApTribSN: Opção para que o contribuinte optante pelo + Simples Nacional ME/EPP (opSimpNac = 3) possa indicar, ao emitir + o documento fiscal, em qual regime de apuração os tributos + federais e municipal estão inseridos, caso tenha ultrapassado + algum sublimite ou limite definido para o Simples Nacional. 1 – + Regime de apuração dos tributos federais e municipal pelo SN; 2 + – Regime de apuração dos tributos federais pelo SN e ISSQN por + fora do SN conforme respectiva legislação municipal do tributo; + 3 – Regime de apuração dos tributos federais e municipal por + fora do SN conforme respectivas legislações federal e municipal + de cada tributo; + :ivar regEspTrib: Tipos de Regimes Especiais de Tributação: 0 - + Nenhum; 1 - Ato Cooperado (Cooperativa); 2 - Estimativa; 3 - + Microempresa Municipal; 4 - Notário ou Registrador; 5 - + Profissional Autônomo; 6 - Sociedade de Profissionais; 9 - + Outros; + """ + + class Meta: + name = "TCRegTrib" + + opSimpNac: Optional[TsopSimpNac] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + regApTribSN: Optional[TsregimeApuracaoSimpNac] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + regEspTrib: Optional[TsregEspTrib] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + + +@dataclass +class Tcsubstituicao: + """ + + " + + :ivar chSubstda: Chave de acesso da NFS-e a ser substituída + :ivar cMotivo: Código de justificativa para substituição de NFS-e: + 01 - Desenquadramento de NFS-e do Simples Nacional; 02 - + Enquadramento de NFS-e no Simples Nacional; 03 - Inclusão + Retroativa de Imunidade/Isenção para NFS-e; 04 - Exclusão + Retroativa de Imunidade/Isenção para NFS-e; 05 - Rejeição de + NFS-e pelo tomador ou pelo intermediário se responsável pelo + recolhimento do tributo; 99 - Outros; + :ivar xMotivo: Descrição do motivo da substituição da NFS-e + """ + + class Meta: + name = "TCSubstituicao" + + chSubstda: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 50, + "white_space": "preserve", + "pattern": r"[0-9]{50}", + }, + ) + cMotivo: Optional[TscodJustSubst] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + xMotivo: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 15, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class TctribOutrosPisCofins: + """ + + " + + :ivar CST: Código de Situação Tributária do PIS/COFINS (CST): 00 - + Nenhum; 01 - Operação Tributável com Alíquota Básica; 02 - + Operação Tributável com Alíquota Diferenciada; 03 - Operação + Tributável com Alíquota por Unidade de Medida de Produto; 04 - + Operação Tributável monofásica - Revenda a Alíquota Zero; 05 - + Operação Tributável por Substituição Tributária; 06 - Operação + Tributável a Alíquota Zero; 07 - Operação Isenta da + 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; 50 - Operação com Direito a Crédito – Vinculada + Exclusivamente a Receita Tributada no Mercado Interno; 51 - + Operação com Direito a Crédito – Vinculada Exclusivamente a + Receita Não-Tributada no Mercado Interno; 52 - Operação com + Direito a Crédito – Vinculada Exclusivamente a Receita de + Exportação; 53 - Operação com Direito a Crédito – Vinculada a + Receitas Tributadas e Não-Tributadas no Mercado Interno; 54 - + Operação com Direito a Crédito – Vinculada a Receitas Tributadas + no Mercado Interno e de Exportação; 55 - Operação com Direito a + Crédito – Vinculada a Receitas Não Tributadas no Mercado Interno + e de Exportação; 56 - Operação com Direito a Crédito – Vinculada + a Receitas Tributadas e Não-Tributadas no Mercado Interno e de + Exportação; 60 - Crédito Presumido – Operação de Aquisição + Vinculada Exclusivamente a Receita Tributada no Mercado Interno; + 61 - Crédito Presumido – Operação de Aquisição Vinculada + Exclusivamente a Receita Não-Tributada no Mercado Interno; 62 - + Crédito Presumido – Operação de Aquisição Vinculada + Exclusivamente a Receita de Exportação; 63 - Crédito Presumido – + Operação de Aquisição Vinculada a Receitas Tributadas e Não- + Tributadas no Mercado Interno; 64 - Crédito Presumido – Operação + de Aquisição Vinculada a Receitas Tributadas no Mercado Interno + e de Exportação; 65 - Crédito Presumido – Operação de Aquisição + Vinculada a Receitas Não-Tributadas no Mercado Interno e de + Exportação; 66 - Crédito Presumido – Operação de Aquisição + Vinculada a Receitas Tributadas e Não-Tributadas no Mercado + Interno e de Exportação; 67 - Crédito Presumido – Outras + Operações; 70 - Operação de Aquisição sem Direito a Crédito; 71 + - Operação de Aquisição com Isenção; 72 - Operação de Aquisição + com Suspensão; 73 - Operação de Aquisição a Alíquota Zero; 74 - + Operação de Aquisição sem Incidência da Contribuição; 75 - + Operação de Aquisição por Substituição Tributária; 98 - Outras + Operações de Entrada; 99 - Outras Operações; + :ivar vBCPisCofins: Valor da Base de Cálculo do PIS/COFINS, relativo + à apuração própria (R$). + :ivar pAliqPis: Alíquota do PIS, relativa à apuração própria (%). + :ivar pAliqCofins: Alíquota da COFINS, relativa à apuração própria + (%). + :ivar vPis: Valor do débito de PIS apuração própria (R$). + :ivar vCofins: Valor do débito de COFINS apuração própria (R$). + :ivar tpRetPisCofins: Tipo de retenção do PIS/COFINS: 0 - + PIS/COFINS/CSLL Não Retidos; 1 - PIS/COFINS Retidos; 2 - + PIS/COFINS Não Retidos; 3 - PIS/COFINS/CSLL Retidos; 4 - + PIS/COFINS Retidos, CSLL Não Retido; 5 - PIS Retido, COFINS/CSLL + Não Retido; 6 - COFINS Retido, PIS/CSLL Não Retido; 7 - PIS Não + Retido, COFINS/CSLL Retidos; 8 - PIS/COFINS Não Retidos, CSLL + Retido; 9 - COFINS Não Retido, PIS/CSLL Retidos; + """ + + class Meta: + name = "TCTribOutrosPisCofins" + + CST: Optional[TstipoCst] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + vBCPisCofins: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + pAliqPis: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,1}(\.[0-9]{2})?", + }, + ) + pAliqCofins: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,1}(\.[0-9]{2})?", + }, + ) + vPis: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + vCofins: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + tpRetPisCofins: Optional[TstipoRetPiscofins] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + + +@dataclass +class TctribTotal: + """ + + " + + :ivar vTotTrib: Valor monetário total aproximado dos tributos, em + conformidade com o artigo 1o da Lei no 12.741/2012 + :ivar pTotTrib: Valor percentual total aproximado dos tributos, em + conformidade com o artigo 1o da Lei no 12.741/2012 + :ivar indTotTrib: Indicador de informação de valor total de + tributos. Possui valor fixo igual a zero (indTotTrib=0). Não + informar nenhum valor estimado para os Tributos (Decreto + 8.264/2014). 0 - Não; + :ivar pTotTribSN: Valor percentual aproximado do total dos tributos + da alíquota do Simples Nacional (%) + """ + + class Meta: + name = "TCTribTotal" + + vTotTrib: Optional[TctribTotalMonet] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + pTotTrib: Optional[TctribTotalPercent] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + indTotTrib: Optional[TstipoIndTotTrib] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + pTotTribSN: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,1}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TcvaloresNfse: + """ + + " + + :ivar vCalcDR: Valor monetário (R$) de dedução/redução da base de + cálculo (BC) do ISSQN. + :ivar tpBM: Tipo Benefício Municipal (BM): 1) Isenção; 2) Redução da + BC em 'ppBM' %; 3) Redução da BC em R$ 'vInfoBM'; 4) Alíquota + Diferenciada de 'aliqDifBM' %; + :ivar vCalcBM: Valor monetário (R$) do percentual de redução da base + de cálculo (BC) do ISSQN devido a um benefício municipal (BM). + :ivar vBC: Valor da Base de Cálculo do ISSQN (R$) = Valor do Serviço + - Desconto Incondicionado - Deduções/Reduções - Benefício + Municipal vBC = vServ - descIncond - (vDR ou vCalcDR + + vCalcReeRepRes) - (vRedBCBM ou VCalcBM) + :ivar pAliqAplic: Alíquota aplicada sobre a base de cálculo para + apuração do ISSQN. + :ivar vISSQN: Valor do ISSQN (R$) = Valor da Base de Cálculo x + Alíquota ISSQN = vBC x pAliqAplic + :ivar vTotalRet: Valor total das retenções de tributos da NFS-e. + Valor total de retenções (R$) = Σ(vRetCP + vRetIRRF+ vRetCSLL + + ISSQN*) + :ivar vLiq: Valor líquido da NFS-e. Valor líquido (R$) = Valor do + serviço - Desconto condicionado - Desconto incondicionado - + Valores retidos + """ + + class Meta: + name = "TCValoresNFSe" + + vCalcDR: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + tpBM: Optional[Tbmissqn] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + vCalcBM: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + vBC: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + pAliqAplic: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|[0-9]{1}(\.[0-9]{2})?", + }, + ) + vISSQN: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + vTotalRet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + vLiq: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TcatvEvento: + """ + + " + + :ivar xNome: Descrição do evento Artístico, Cultural, Esportivo, etc + :ivar dtIni: Data de início da atividade de evento. Ano, Mês e Dia + (AAAA-MM-DD) + :ivar dtFim: Data de fim da atividade de evento. Ano, Mês e Dia + (AAAA-MM-DD) + :ivar idAtvEvt: Identificação da Atividade de Evento (código + identificador de evento determinado pela Administração + Tributária Municipal) + :ivar end: Grupo de informações relativas ao endereço da atividade, + evento ou local do serviço prestado + """ + + class Meta: + name = "TCAtvEvento" + + xNome: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + dtIni: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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)))))", + }, + ) + dtFim: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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)))))", + }, + ) + idAtvEvt: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 30, + "white_space": "preserve", + }, + ) + end: Optional[TcenderecoSimples] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + + +@dataclass +class Tcemitente: + """ + + " + + :ivar CNPJ: Número do CNPJ do emitente da NFS-e. + :ivar CPF: Número do CPF do emitente da NFS-e. + :ivar IM: Número da inscrição municipal + :ivar xNome: Nome / Razão Social do emitente. + :ivar xFant: Nome / Fantasia do emitente. + :ivar enderNac: Grupo de informações do endereço nacional do + Emitente da NFS-e + :ivar fone: Número do telefone do emitente. (Preencher com o Código + DDD + número do telefone. Nas operações com exterior é permitido + informar o código do país + código da localidade + número do + telefone) + :ivar email: E-mail do emitente. + """ + + class Meta: + name = "TCEmitente" + + CNPJ: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 14, + "white_space": "preserve", + "pattern": r"[0-9]{14}", + }, + ) + CPF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 11, + "white_space": "preserve", + "pattern": r"[0-9]{11}", + }, + ) + IM: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 15, + "white_space": "preserve", + }, + ) + xNome: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 300, + "white_space": "preserve", + }, + ) + xFant: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 150, + "white_space": "preserve", + }, + ) + enderNac: Optional[TcenderecoEmitente] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + fone: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"[0-9]{6,20}", + }, + ) + email: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 80, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class TcinfoObra: + """ + + " + + :ivar inscImobFisc: Inscrição imobiliária fiscal (código fornecido + pela Prefeitura Municipal para a identificação da obra ou para + fins de recolhimento do IPTU) + :ivar cObra: Número de identificação da obra. Cadastro Nacional de + Obras (CNO) ou Cadastro Específico do INSS (CEI). + :ivar cCIB: Código do Cadastro Imobiliário Brasileiro - CIB. + :ivar end: Grupo de informações do endereço da obra do serviço + prestado + """ + + class Meta: + name = "TCInfoObra" + + inscImobFisc: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 30, + "white_space": "preserve", + }, + ) + cObra: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 30, + "white_space": "preserve", + }, + ) + cCIB: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "length": 8, + "white_space": "preserve", + }, + ) + end: Optional[TcenderObraEvento] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + + +@dataclass +class TcinfoPessoa: + """Informações das pessoas envolvidas na NFS-e. + + Pode ser o tomador, o intermediário ou o fornecedor + (dedução/redução) + " + + :ivar CNPJ: Número do CNPJ + :ivar CPF: Número do CPF + :ivar NIF: Número de Identificação Fiscal fornecido por órgão de + administração tributária no exterior + :ivar cNaoNIF: Motivo para não informação do NIF: 0 - Não informado + na nota de origem; 1 - Dispensado do NIF; 2 - Não exigência do + NIF; + :ivar CAEPF: Número do Cadastro de Atividade Econômica da Pessoa + Física (CAEPF) + :ivar IM: Número da inscrição municipal + :ivar xNome: Nome/Nome Empresarial + :ivar end: Dados de endereço + :ivar fone: Número do telefone do prestador: Preencher com o Código + DDD + número do telefone. Nas operações com exterior é permitido + informar o código do país + código da localidade + número do + telefone) + :ivar email: E-mail + """ + + class Meta: + name = "TCInfoPessoa" + + CNPJ: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 14, + "white_space": "preserve", + "pattern": r"[0-9]{14}", + }, + ) + CPF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 11, + "white_space": "preserve", + "pattern": r"[0-9]{11}", + }, + ) + NIF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 40, + "white_space": "preserve", + }, + ) + cNaoNIF: Optional[TscodNaoNif] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + CAEPF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 14, + "white_space": "preserve", + "pattern": r"[0-9]{14}", + }, + ) + IM: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 15, + "white_space": "preserve", + }, + ) + xNome: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 300, + "white_space": "preserve", + }, + ) + end: Optional[Tcendereco] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + fone: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"[0-9]{6,20}", + }, + ) + email: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 80, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class TcinfoPrestador: + """Informações do prestador da NFS-e. + + Difere das demais pessoas por causa das informações de regimes de + tributação + " + + :ivar CNPJ: Número do CNPJ + :ivar CPF: Número do CPF + :ivar NIF: Número de Identificação Fiscal fornecido por órgão de + administração tributária no exterior + :ivar cNaoNIF: Motivo para não informação do NIF: 0 - Não informado + na nota de origem; 1 - Dispensado do NIF; 2 - Não exigência do + NIF; + :ivar CAEPF: Número do Cadastro de Atividade Econômica da Pessoa + Física (CAEPF) do prestador do serviço. + :ivar IM: Número da inscrição municipal + :ivar xNome: Nome/Nome Empresarial do prestador + :ivar end: Dados de endereço do prestador + :ivar fone: Número do telefone do prestador: Preencher com o Código + DDD + número do telefone. Nas operações com exterior é permitido + informar o código do país + código da localidade + número do + telefone) + :ivar email: E-mail + :ivar regTrib: Grupo de informações relativas aos regimes de + tributação do prestador de serviços + """ + + class Meta: + name = "TCInfoPrestador" + + CNPJ: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 14, + "white_space": "preserve", + "pattern": r"[0-9]{14}", + }, + ) + CPF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 11, + "white_space": "preserve", + "pattern": r"[0-9]{11}", + }, + ) + NIF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 40, + "white_space": "preserve", + }, + ) + cNaoNIF: Optional[TscodNaoNif] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + CAEPF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 14, + "white_space": "preserve", + "pattern": r"[0-9]{14}", + }, + ) + IM: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 15, + "white_space": "preserve", + }, + ) + xNome: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 300, + "white_space": "preserve", + }, + ) + end: Optional[Tcendereco] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + fone: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"[0-9]{6,20}", + }, + ) + email: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 80, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + regTrib: Optional[TcregTrib] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + + +@dataclass +class TcrtcinfoDest: + """ + + " + + :ivar CNPJ: Número da inscrição no Cadastro Nacional de Pessoa + Jurídica (CNPJ) do Destinatário do serviço + :ivar CPF: Número da inscrição no Cadastro de Pessoa Física (CPF) do + Destinatário do serviço + :ivar NIF: Número de Identificação Fiscal fornecido por órgão de + administração tributária no exterior + :ivar cNaoNIF: Motivo para não informação do NIF: 0 - Não informado + na nota de origem; 1 - Dispensado do NIF; 2 - Não exigência do + NIF; + :ivar xNome: Nome / Nome Empresarial do do Destinatário do serviço + :ivar end: Grupo de informações do endereço do Destinatário do + serviço + :ivar fone: Número do telefone do Destinatário do serviço (Preencher + com o Código DDD + número do telefone. Nas operações com + exterior é permitido informar o código do país + código da + localidade + número do telefone) + :ivar email: E-mail do Destinatário do serviço + """ + + class Meta: + name = "TCRTCInfoDest" + + CNPJ: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 14, + "white_space": "preserve", + "pattern": r"[0-9]{14}", + }, + ) + CPF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 11, + "white_space": "preserve", + "pattern": r"[0-9]{11}", + }, + ) + NIF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 40, + "white_space": "preserve", + }, + ) + cNaoNIF: Optional[TscodNaoNif] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + xNome: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 150, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + end: Optional[Tcendereco] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + fone: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"[0-9]{6,20}", + }, + ) + email: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 80, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class TcrtcinfoImovel: + """ + + " + + :ivar inscImobFisc: Inscrição imobiliária fiscal (código fornecido + pela Prefeitura Municipal para a identificação da obra ou para + fins de recolhimento do IPTU) + :ivar cCIB: Código do Cadastro Imobiliário Brasileiro - CIB + :ivar end: Grupo de informações do endereço da obra do serviço + prestado + """ + + class Meta: + name = "TCRTCInfoImovel" + + inscImobFisc: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 30, + "white_space": "preserve", + }, + ) + cCIB: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "length": 8, + "white_space": "preserve", + }, + ) + end: Optional[TcenderObraEvento] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + + +@dataclass +class TcrtcinfoTributosIbscbs: + """ + + " + + :ivar gIBSCBS: Grupo de informações relacionadas ao IBS e à CBS + """ + + class Meta: + name = "TCRTCInfoTributosIBSCBS" + + gIBSCBS: Optional[TcrtcinfoTributosSitClas] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + + +@dataclass +class TcrtclistaDoc: + """ + + " + + :ivar dFeNacional: Grupo de informações de documentos fiscais + eletrônicos que se encontram no repositório nacional + :ivar docFiscalOutro: Grupo de informações de documento fiscais, + eletrônicos ou não, que não se encontram no repositório nacional + :ivar docOutro: Grupo de informações de documento não fiscal. + :ivar fornec: Grupo de informações do fornecedor do documento + referenciado + :ivar dtEmiDoc: Data da emissão do documento dedutível Ano, mês e + dia (AAAA-MM-DD) + :ivar dtCompDoc: Data da competência do documento dedutível Ano, mês + e dia (AAAA-MM-DD) + :ivar tpReeRepRes: Tipo de valor incluído neste documento, recebido + por motivo de estarem relacionadas a operações de terceiros, + objeto de reembolso, repasse ou ressarcimento pelo recebedor, já + tributados e aqui referenciados + :ivar xTpReeRepRes: Descrição do reembolso ou ressarcimento quando a + opção é "99 – Outros reembolsos ou ressarcimentos recebidos por + valores pagos relativos a operações por conta e ordem de + terceiro" + :ivar vlrReeRepRes: Valor monetário (total ou parcial, conforme + documento informado) utilizado para não inclusão na base de + cálculo do ISS e do IBS e da CBS da NFS-e que está sendo emitida + (R$) + """ + + class Meta: + name = "TCRTCListaDoc" + + dFeNacional: Optional[TcrtclistaDocDfe] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + docFiscalOutro: Optional[TcrtclistaDocFiscalOutro] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + docOutro: Optional[TcrtclistaDocOutro] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + fornec: Optional[TcrtclistaDocFornec] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + dtEmiDoc: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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)))))", + }, + ) + dtCompDoc: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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)))))", + }, + ) + tpReeRepRes: Optional[TsrtctpReeRepRes] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + xTpReeRepRes: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 150, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + vlrReeRepRes: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TcrtctotalCibs: + """ + + " + + :ivar vTotNF: Valor Total da NF considerando os impostos por fora: + IBS e CBS O IBS e a CBS são por fora, por isso seus valores + devem ser adicionados ao valor total da NF vTotNF = vLiq (em + 2026) vTotNF = vLiq + vCBS + vIBSTot (a partir de 2027) + :ivar gIBS: Grupo de valores referentes ao IBS + :ivar gCBS: Grupo de valores referentes à CBS + :ivar gTribRegular: Grupo de informações de tributação regular + :ivar gTribCompraGov: Grupo de informações da composição do valor do + IBS e da CBS em compras governamentais + """ + + class Meta: + name = "TCRTCTotalCIBS" + + vTotNF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + gIBS: Optional[TcrtctotalIbs] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + gCBS: Optional[TcrtctotalCbs] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + gTribRegular: Optional[TcrtctotalTribRegular] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + gTribCompraGov: Optional[TcrtctotalTribCompraGov] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + + +@dataclass +class TctribFederal: + """ + + " + + :ivar piscofins: Grupo de informações dos tributos PIS/COFINS + :ivar vRetCP: Valor monetário do CP(R$). + :ivar vRetIRRF: Valor monetário do IRRF (R$). + :ivar vRetCSLL: Valor monetário do CSLL (R$). + """ + + class Meta: + name = "TCTribFederal" + + piscofins: Optional[TctribOutrosPisCofins] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + vRetCP: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + vRetIRRF: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + vRetCSLL: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TctribMunicipal: + """ + + " + + :ivar tribISSQN: Tributação do ISSQN sobre o serviço prestado: 1 - + Operação tributável; 2 - Imunidade; 3 - Exportação de serviço; 4 + - Não Incidência; + :ivar cPaisResult: Código do país onde se verficou o resultado da + prestação do serviço para o caso de Exportação de + Serviço.(Tabela de Países ISO) + :ivar tpImunidade: Identificação da Imunidade do ISSQN – somente + para o caso de Imunidade. Tipos de Imunidades: 0 - Imunidade + (tipo não informado na nota de origem); 1 - Patrimônio, renda ou + serviços, uns dos outros (CF88, Art 150, VI, a); 2 - Templos de + qualquer culto (CF88, Art 150, VI, b); 3 - Patrimônio, renda ou + serviços dos partidos políticos, inclusive suas fundações, das + entidades sindicais dos trabalhadores, das instituições de + educação e de assistência social, sem fins lucrativos, atendidos + os requisitos da lei (CF88, Art 150, VI, c); 4 - Livros, + jornais, periódicos e o papel destinado a sua impressão (CF88, + Art 150, VI, d); 5 - Fonogramas e videofonogramas musicais + produzidos no Brasil contendo obras musicais ou literomusicais + de autores brasileiros e/ou obras em geral interpretadas por + artistas brasileiros bem como os suportes materiais ou arquivos + digitais que os contenham, salvo na etapa de replicação + industrial de mídias ópticas de leitura a laser. (CF88, Art + 150, VI, e); + :ivar exigSusp: Informações para a suspensão da Exigibilidade do + ISSQN + :ivar BM: Tributação do ISSQN sobre o serviço prestado: 1 - Operação + tributável; 2 - Exportação de serviço; 3 - Não Incidência; 4 - + Imunidade; + :ivar tpRetISSQN: Tipo de retencao do ISSQN: 1 - Não Retido; 2 - + Retido pelo Tomador; 3 - Retido pelo Intermediario; + :ivar pAliq: Valor da alíquota (%) do serviço prestado relativo ao + município sujeito ativo (município de incidência) do ISSQN. Se o + município de incidência pertence ao Sistema Nacional NFS-e a + alíquota estará parametrizada e, portanto, será fornecida pelo + sistema. Se o município de incidência não pertence ao Sistema + Nacional NFS-e a alíquota não estará parametrizada e, por isso, + deverá ser fornecida pelo emitente. + """ + + class Meta: + name = "TCTribMunicipal" + + tribISSQN: Optional[TstribIssqn] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + cPaisResult: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"[A-Z]{2}", + }, + ) + tpImunidade: Optional[TstipoImunidadeIssqn] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + exigSusp: Optional[TcexigSuspensa] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + BM: Optional[TcbeneficioMunicipal] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + tpRetISSQN: Optional[TstipoRetIssqn] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + pAliq: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|[0-9]{1}(\.[0-9]{2})?", + }, + ) + + +@dataclass +class TcdocDedRed: + """ + + " + + :ivar chNFSe: Chave de Acesso da NFS-e (Padrão Nacional) + :ivar chNFe: Chave de Acesso da NF-e + :ivar NFSeMun: Grupo de informações de Outras NFS-e (Padrão anterior + de NFS-e) + :ivar NFNFS: Grupo de informações de NF ou NFS (Modelo não + eletrônico) + :ivar nDocFisc: Número de documento fiscal + :ivar nDoc: Número de documento não fiscal + :ivar tpDedRed: Identificação da Dedução/Redução: 1 – Alimentação e + bebidas/frigobar; 2 – Materiais; 3 - Produção Externa; 4 - + Reembolso de despesas; 5 – Repasse consorciado; 6 – Repasse + plano de saúde; 7 – Serviços; 8 – Subempreitada de mão de obra; + 9 - Profissional parceiro; 99 – Outras deduções; + :ivar xDescOutDed: Descrição da Dedução/Redução quando a opção é "99 + – Outras Deduções" + :ivar dtEmiDoc: Data da emissão do documento dedutível. Ano, mês e + dia (AAAA-MM-DD) + :ivar vDedutivelRedutivel: Valor monetário total dedutível/redutível + no documento informado (R$). Este é o valor total no documento + informado que é passível de dedução/redução. + :ivar vDeducaoReducao: Valor monetário utilizado para + dedução/redução do valor do serviço da NFS-e que está sendo + emitida (R$). Deve ser menor ou igual ao valor + deduzível/redutível (vDedutivelRedutivel). + :ivar fornec: Grupo de informações do Fornecedor em Deduções de + Serviços + """ + + class Meta: + name = "TCDocDedRed" + + chNFSe: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 50, + "white_space": "preserve", + "pattern": r"[0-9]{50}", + }, + ) + chNFe: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 44, + "white_space": "preserve", + "pattern": r"[0-9]{44}", + }, + ) + NFSeMun: Optional[TcdocOutNfse] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + NFNFS: Optional[TcdocNfnfs] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + nDocFisc: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + nDoc: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + tpDedRed: Optional[TsideDedRed] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + xDescOutDed: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 150, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + dtEmiDoc: Optional[XmlDate] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + vDedutivelRedutivel: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + vDeducaoReducao: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + fornec: Optional[TcinfoPessoa] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + + +@dataclass +class TcinfoTributacao: + """ + + " + + :ivar tribMun: Grupo de informações relacionados ao Imposto Sobre + Serviços de Qualquer Natureza - ISSQN + :ivar tribFed: Grupo de informações de outros tributos relacionados + ao serviço prestado + :ivar totTrib: Grupo de informações para totais aproximados dos + tributos relacionados ao serviço prestado + """ + + class Meta: + name = "TCInfoTributacao" + + tribMun: Optional[TctribMunicipal] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + tribFed: Optional[TctribFederal] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + totTrib: Optional[TctribTotal] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + + +@dataclass +class Tcrtcibscbs: + """ + + " + + :ivar cLocalidadeIncid: Código IBGE da localidade de incidência do + IBS/CBS (local da operação) + :ivar xLocalidadeIncid: Nome da localidade de incidência do IBS/CBS + :ivar pRedutor: Percentual de redução de aliquota em compra + governamental + :ivar valores: Grupo de valores brutos referentes ao IBS/CBS + :ivar totCIBS: Grupo de Totalizadores + """ + + class Meta: + name = "TCRTCIBSCBS" + + cLocalidadeIncid: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{7}", + }, + ) + xLocalidadeIncid: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 600, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + pRedutor: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,1}(\.[0-9]{2})?", + }, + ) + valores: Optional[TcrtcvaloresIbscbs] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + totCIBS: Optional[TcrtctotalCibs] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + + +@dataclass +class TcrtcinfoReeRepRes: + """ + + " + + :ivar documentos: Grupo relativo aos documentos referenciados nos + casos de reembolso, repasse e ressarcimento que serão + considerados na base de cálculo do ISSQN, do IBS e da CBS + """ + + class Meta: + name = "TCRTCInfoReeRepRes" + + documentos: list[TcrtclistaDoc] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_occurs": 1, + "max_occurs": 1000, + }, + ) + + +@dataclass +class Tcserv: + """ + + " + + :ivar locPrest: Grupo de informações relativas ao local da prestação + do serviço + :ivar cServ: Grupo de informações relativas ao código do serviço + prestado + :ivar comExt: Grupo de informações relativas à exportação/importação + de serviço prestado + :ivar obra: Grupo de informações do DPS relativas à serviço de obra + :ivar atvEvento: Grupo de informações do DPS relativas à Evento + :ivar infoCompl: Grupo de informações complementares disponível para + todos os serviços prestados + """ + + class Meta: + name = "TCServ" + + locPrest: Optional[TclocPrest] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + cServ: Optional[Tccserv] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + comExt: Optional[TccomExterior] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + obra: Optional[TcinfoObra] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + atvEvento: Optional[TcatvEvento] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + infoCompl: Optional[TcinfoCompl] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + + +@dataclass +class TclistaDocDedRed: + """ + + " + + :ivar docDedRed: Grupo de informações de documento utilizado para + Dedução/Redução do valor do serviço + """ + + class Meta: + name = "TCListaDocDedRed" + + docDedRed: list[TcdocDedRed] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_occurs": 1, + "max_occurs": 1000, + }, + ) + + +@dataclass +class TcrtcinfoValoresIbscbs: + """ + + " + + :ivar gReeRepRes: Grupo de informações relativas a valores incluídos + neste documento e recebidos por motivo de estarem relacionadas a + operações de terceiros, objeto de reembolso, repasse ou + ressarcimento pelo recebedor, já tributados e aqui referenciados + :ivar trib: Grupo de informações relacionados aos tributos IBS e CBS + """ + + class Meta: + name = "TCRTCInfoValoresIBSCBS" + + gReeRepRes: Optional[TcrtcinfoReeRepRes] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + trib: Optional[TcrtcinfoTributosIbscbs] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + + +@dataclass +class TcinfoDedRed: + """ + + " + + :ivar pDR: Valor percentual padrão para dedução/redução do valor do + serviço + :ivar vDR: Valor monetário padrão para dedução/redução do valor do + serviço + :ivar documentos: Grupo de informações de documento utilizado para + Dedução/Redução do valor do serviço + """ + + class Meta: + name = "TCInfoDedRed" + + pDR: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?", + }, + ) + vDR: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?", + }, + ) + documentos: Optional[TclistaDocDedRed] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + + +@dataclass +class TcrtcinfoIbscbs: + """ + + " + + :ivar finNFSe: Indicador da finalidade da emissão de NFS-e + :ivar indFinal: Indica operação de uso ou consumo pessoal (art. 57) + :ivar cIndOp: Código indicador da operação de fornecimento, conforme + tabela "código indicador de operação" + :ivar tpOper: Tipo de Operação com Entes Governamentais ou outros + serviços sobre bens imóveis + :ivar gRefNFSe: Grupo de NFS-e referenciadas + :ivar tpEnteGov: Tipo de ente governamental + :ivar indDest: A respeito do Destinatário dos serviços + :ivar dest: Grupo de informações relativas ao Destinatário + :ivar imovel: Grupo de informações de operações relacionadas a bens + imóveis, exceto obras + :ivar valores: Grupo de informações relativas aos valores do serviço + prestado para IBS e CBS + """ + + class Meta: + name = "TCRTCInfoIBSCBS" + + finNFSe: Optional[TsrtcfinNfse] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + indFinal: Optional[TsrtcindFinal] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + cIndOp: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{6}", + }, + ) + tpOper: Optional[TsrtctpOper] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + gRefNFSe: Optional[TcinfoRefNfse] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + tpEnteGov: Optional[TsrtctpEnteGov] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + indDest: Optional[TsrtcindDest] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + dest: Optional[TcrtcinfoDest] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + imovel: Optional[TcrtcinfoImovel] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + valores: Optional[TcrtcinfoValoresIbscbs] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + + +@dataclass +class TcinfoValores: + """ + + " + + :ivar vServPrest: Grupo de informações relativas aos valores do + serviço prestado + :ivar vDescCondIncond: Grupo de informações relativas aos descontos + condicionados e incondicionados + :ivar vDedRed: Grupo de informações relativas ao valores para + dedução/redução do valor da base de cálculo (valor do serviço) + :ivar trib: Grupo de informações relacionados aos tributos + relacionados ao serviço prestado + """ + + class Meta: + name = "TCInfoValores" + + vServPrest: Optional[TcvservPrest] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + vDescCondIncond: Optional[TcvdescCondIncond] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + vDedRed: Optional[TcinfoDedRed] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + trib: Optional[TcinfoTributacao] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + + +@dataclass +class TcinfDps: + """ + + " + + :ivar tpAmb: Identificação do Ambiente: 1 - Produção; 2 - + Homologação + :ivar dhEmi: Data e hora da emissão do DPS. Data e hora no formato + UTC (Universal Coordinated Time): AAAA-MM-DDThh:mm:ssTZD + :ivar verAplic: Versão do aplicativo que gerou o DPS + :ivar serie: Número do equipamento emissor do DPS ou série do DPS + :ivar nDPS: Número do DPS + :ivar dCompet: Data em que se iniciou a prestação do serviço: Dia, + mês e ano (AAAAMMDD) + :ivar tpEmit: Emitente da DPS: 1 - Prestador; 2 - Tomador; 3 - + Intermediário + :ivar cMotivoEmisTI: Motivo da Emissão da DPS pelo + Tomador/Intermediário: 1 - Importação de Serviço; 2 - + Tomador/Intermediário obrigado a emitir NFS-e por legislação + municipal; 3 - Tomador/Intermediário emitindo NFS-e por recusa + de emissão pelo prestador; 4 - Tomador/Intermediário emitindo + por rejeitar a NFS-e emitida pelo prestador; + :ivar chNFSeRej: Chave de Acesso da NFS-e rejeitada pelo + Tomador/Intermediário. + :ivar cLocEmi: O código de município utilizado pelo Sistema Nacional + NFS-e é o código definido para cada município pertencente ao + ""Anexo V – Tabela de Código de Municípios do IBGE"", que consta + ao final do Manual de Orientação ao Contribuinte do ISSQN para a + Sefin Nacional NFS-e. O município emissor da NFS-e é aquele + município em que o emitente da DPS está cadastrado e autorizado + a "emitir uma NFS-e", ou seja, emitir uma DPS para que o sistema + nacional valide as informações nela prestadas e gere a NFS-e + correspondente para o emitente. Para que o sistema nacional + emita a NFS-e o município emissor deve ser conveniado e estar + ativo no sistema nacional. Além disso o convênio do município + deve permitir que os contribuintes do município utilize os + emissores públicos do Sistema Nacional NFS-e + :ivar subst: Dados da NFS-e a ser substituída + :ivar prest: Grupo de informações do DPS relativas ao Prestador de + Serviços + :ivar toma: Grupo de informações do DPS relativas ao Tomador de + Serviços + :ivar interm: Grupo de informações do DPS relativas ao Intermediário + de Serviços + :ivar serv: Grupo de informações do DPS relativas ao Serviço + Prestado + :ivar valores: Grupo de informações relativas à valores do serviço + prestado + :ivar IBSCBS: Grupo de informações declaradas pelo emitente + referentes ao IBS e à CBS + :ivar Id: + """ + + class Meta: + name = "TCInfDPS" + + tpAmb: Optional[TstipoAmbiente] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + dhEmi: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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))", + }, + ) + verAplic: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 20, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + serie: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 5, + "white_space": "preserve", + "pattern": r"0{0,4}\d{1,5}", + }, + ) + nDPS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 15, + "white_space": "preserve", + "pattern": r"[1-9]{1}[0-9]{0,14}", + }, + ) + dCompet: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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)))))", + }, + ) + tpEmit: Optional[TsemitenteDps] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + cMotivoEmisTI: Optional[TsmotivoEmisTi] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + chNFSeRej: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 50, + "white_space": "preserve", + "pattern": r"[0-9]{50}", + }, + ) + cLocEmi: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{7}", + }, + ) + subst: Optional[Tcsubstituicao] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + prest: Optional[TcinfoPrestador] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + toma: Optional[TcinfoPessoa] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + interm: Optional[TcinfoPessoa] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + serv: Optional[Tcserv] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + valores: Optional[TcinfoValores] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + IBSCBS: Optional[TcrtcinfoIbscbs] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + Id: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "max_length": 45, + "white_space": "preserve", + "pattern": r"DPS[0-9]{42}", + }, + ) + + +@dataclass +class Tcdps(CommonMixin): + class Meta: + name = "TCDPS" + + infDPS: Optional[TcinfDps] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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, + "max_length": 4, + "white_space": "preserve", + "pattern": r"1\.00|1\.01", + }, + ) + + +@dataclass +class TcinfNfse: + """ + + " + + :ivar xLocEmi: Descrição do código do IBGE do município emissor da + NFS-e. + :ivar xLocPrestacao: Descrição do local da prestação do serviço. + :ivar nNFSe: Número sequencial por tipo de emitente da NFS-e. A + Sefin Nacional NFS-e irá gerar o número da NFS-e de forma + sequencial por emitente. Por se tratar de um ambiente altamente + transacional, a Sefin Nacional NFS-e não irá reutilizar números + inutilizados durante a geração da NFS-e. + :ivar cLocIncid: O código de município utilizado pelo Sistema + Nacional NFS-e é o código definido para cada município + pertencente ao ""Anexo V – Tabela de Código de Municípios do + IBGE"", que consta ao final do Manual de Orientação ao + Contribuinte do ISSQN para a Sefin Nacional NFS-e. O município + de incidência do ISSQN é determinado automaticamente pelo + sistema, conforme regras do aspecto espacial da lei complementar + federal (LC 116/03) que são válidas para todos os municípios. + http://www.planalto.gov.br/ccivil_03/Leis/LCP/Lcp116.htm + :ivar xLocIncid: A descrição do código de município utilizado pelo + Sistema Nacional NFS-e é o nome de cada município pertencente ao + "Anexo V – Tabela de Código de Municípios do IBGE", que consta + ao final do Manual de Orientação ao Contribuinte do ISSQN para a + Sefin Nacional NFS-e. + :ivar xTribNac: Descrição do código de tributação nacional do ISSQN. + :ivar xTribMun: Descrição do código de tributação municipal do + ISSQN. + :ivar xNBS: Descrição do código da NBS. + :ivar verAplic: Versão do aplicativo que gerou a NFS-e + :ivar ambGer: Ambiente gerador da NFS-e + :ivar tpEmis: Processo de Emissão da DPS: 1 - Emissão com aplicativo + do contribuinte (via Web Service); 2 - Emissão com aplicativo + disponibilizado pelo fisco (Web); 3 - Emissão com aplicativo + disponibilizado pelo fisco (App); + :ivar procEmi: Processo de Emissão da DPS: 1 - Emissão com + aplicativo do contribuinte (via Web Service); 2 - Emissão com + aplicativo disponibilizado pelo fisco (Web); 3 - Emissão com + aplicativo disponibilizado pelo fisco (App); + :ivar cStat: Código do Status da mensagem + :ivar dhProc: Data/Hora da validação da DPS e geração da NFS-e. Data + e hora no formato UTC (Universal Coordinated Time):AAAA-MM- + DDThh:mm:ssTZD + :ivar nDFSe: Número sequencial do documento gerado por ambiente + gerador de DFSe do múnicípio. + :ivar emit: Grupo de informações da DPS relativas ao emitente da + NFS-e + :ivar valores: Grupo de valores referentes ao Serviço Prestado + :ivar xOutInf: Uso da Administração Tributária Municipal. + :ivar IBSCBS: Grupo de informações geradas pelo sistema referentes + ao IBS e à CBS + :ivar DPS: Grupo de informações da DPS relativas ao serviço prestado + :ivar Id: + """ + + class Meta: + name = "TCInfNFSe" + + xLocEmi: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 150, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + xLocPrestacao: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 150, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + nNFSe: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 13, + "white_space": "preserve", + "pattern": r"[1-9]{1}[0-9]{0,12}", + }, + ) + cLocIncid: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "white_space": "preserve", + "pattern": r"[0-9]{7}", + }, + ) + xLocIncid: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 150, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + xTribNac: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 600, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + xTribMun: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 600, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + xNBS: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 600, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + verAplic: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 20, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + ambGer: Optional[TsambGeradorNfse] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + tpEmis: Optional[TstipoEmissao] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + procEmi: Optional[TsprocEmissao] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + cStat: Optional[Tstat] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + dhProc: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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))", + }, + ) + nDFSe: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 13, + "white_space": "preserve", + "pattern": r"[1-9]{1}[0-9]{0,12}", + }, + ) + emit: Optional[Tcemitente] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + valores: Optional[TcvaloresNfse] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + xOutInf: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 2000, + "white_space": "preserve", + "pattern": r"[\s\S!-ÿ]{1}[\s\S -ÿ]{0,}[\s\S!-ÿ]{1}|[\s\S!-ÿ]{1}", + }, + ) + IBSCBS: Optional[Tcrtcibscbs] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + DPS: Optional[Tcdps] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + Id: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "max_length": 53, + "white_space": "preserve", + "pattern": r"NFS[0-9]{50}", + }, + ) + + +@dataclass +class Tcnfse(CommonMixin): + class Meta: + name = "TCNFSe" + + infNFSe: Optional[TcinfNfse] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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, + "max_length": 4, + "white_space": "preserve", + "pattern": r"1\.00|1\.01", + }, + ) diff --git a/nfelib/nfse/bindings/v1_01/tipos_eventos_v1_01.py b/nfelib/nfse/bindings/v1_01/tipos_eventos_v1_01.py new file mode 100644 index 00000000..1db4e716 --- /dev/null +++ b/nfelib/nfse/bindings/v1_01/tipos_eventos_v1_01.py @@ -0,0 +1,1312 @@ +"""This file was generated by xsdata, v25.7, on 2026-10-09 00:45:08 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" + +from __future__ import annotations + +from dataclasses import dataclass, field +from enum import Enum +from typing import Optional + +from nfelib.nfse.bindings.v1_01.tipos_simples_v1_01 import ( + TsambGeradorEvt, + TscodigoEventoNfse, + TscodJustAnaliseFiscalCanc, + TscodJustAnaliseFiscalCancDef, + TscodJustAnaliseFiscalCancIndef, + TscodJustCanc, + TscodJustSubst, + TscodMotivoRejeicao, + TstipoAmbiente, +) +from nfelib.nfse.bindings.v1_01.xmldsig_core_schema import Signature + +__NAMESPACE__ = "http://www.sped.fazenda.gov.br/nfse" + + +class Te101101XDesc(Enum): + CANCELAMENTO_DE_NFS_E = "Cancelamento de NFS-e" + + +class Te101103XDesc(Enum): + SOLICITA_O_DE_AN_LISE_FISCAL_PARA_CANCELAMENTO_DE_NFS_E = ( + "Solicitação de Análise Fiscal para Cancelamento de NFS-e" + ) + + +class Te105102XDesc(Enum): + CANCELAMENTO_DE_NFS_E_POR_SUBSTITUI_O = ( + "Cancelamento de NFS-e por Substituição" + ) + + +class Te105104XDesc(Enum): + CANCELAMENTO_DE_NFS_E_DEFERIDO_POR_AN_LISE_FISCAL = ( + "Cancelamento de NFS-e Deferido por Análise Fiscal" + ) + + +class Te105105XDesc(Enum): + CANCELAMENTO_DE_NFS_E_INDEFERIDO_POR_AN_LISE_FISCAL = ( + "Cancelamento de NFS-e Indeferido por Análise Fiscal" + ) + + +class Te202201XDesc(Enum): + MANIFESTA_O_DE_NFS_E_CONFIRMA_O_DO_PRESTADOR = ( + "Manifestação de NFS-e - Confirmação do Prestador" + ) + + +class Te202205XDesc(Enum): + MANIFESTA_O_DE_NFS_E_REJEI_O_DO_PRESTADOR = ( + "Manifestação de NFS-e - Rejeição do Prestador" + ) + + +class Te203202XDesc(Enum): + MANIFESTA_O_DE_NFS_E_CONFIRMA_O_DO_TOMADOR = ( + "Manifestação de NFS-e - Confirmação do Tomador" + ) + + +class Te203206XDesc(Enum): + MANIFESTA_O_DE_NFS_E_REJEI_O_DO_TOMADOR = ( + "Manifestação de NFS-e - Rejeição do Tomador" + ) + + +class Te204203XDesc(Enum): + MANIFESTA_O_DE_NFS_E_CONFIRMA_O_DO_INTERMEDI_RIO = ( + "Manifestação de NFS-e - Confirmação do Intermediário" + ) + + +class Te204207XDesc(Enum): + MANIFESTA_O_DE_NFS_E_REJEI_O_DO_INTERMEDI_RIO = ( + "Manifestação de NFS-e - Rejeição do Intermediário" + ) + + +class Te205204XDesc(Enum): + MANIFESTA_O_DE_NFS_E_CONFIRMA_O_T_CITA = ( + "Manifestação de NFS-e - Confirmação Tácita" + ) + + +class Te205208XDesc(Enum): + MANIFESTA_O_DE_NFS_E_ANULA_O_DA_REJEI_O = ( + "Manifestação de NFS-e - Anulação da Rejeição" + ) + + +class Te305101XDesc(Enum): + CANCELAMENTO_DE_NFS_E_POR_OF_CIO = "Cancelamento de NFS-e por Ofício" + + +class Te305102XDesc(Enum): + BLOQUEIO_DE_NFS_E_POR_OF_CIO = "Bloqueio de NFS-e por Ofício" + + +class Te305103XDesc(Enum): + DESBLOQUEIO_DE_NFS_E_POR_OF_CIO = "Desbloqueio de NFS-e por Ofício" + + +@dataclass +class Te101101: + """ + + " + + :ivar xDesc: Descrição do Evento: Descrição do evento: "Cancelamento + de NFS-e". + :ivar cMotivo: Código de justificativa de cancelamento: 1 - Erro na + Emissão; 2 - Serviço não Prestado; 9 - Outros; + :ivar xMotivo: Descrição para explicitar o motivo indicado neste + evento + """ + + class Meta: + name = "TE101101" + + xDesc: Optional[Te101101XDesc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + }, + ) + cMotivo: Optional[TscodJustCanc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + xMotivo: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 15, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class Te101103: + """ + + " + + :ivar xDesc: Descrição do evento: "Solicitação de Análise Fiscal + para Cancelamento de NFS-e" + :ivar cMotivo: Código do motivo da solicitação de análise fiscal + para cancelamento de NFS-e: 1 - Erro na Emissão; 2 - Serviço não + Prestado; 9 - Outros; + :ivar xMotivo: Descrição para explicitar o motivo indicado neste + evento + """ + + class Meta: + name = "TE101103" + + xDesc: Optional[Te101103XDesc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + }, + ) + cMotivo: Optional[TscodJustAnaliseFiscalCanc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + xMotivo: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 15, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class Te105102: + """ + + " + + :ivar xDesc: Descrição do Evento: Descrição do evento: "Cancelamento + de NFS-e por Substituição". + :ivar cMotivo: Código de justificativa de cancelamento substituição: + 01 - Desenquadramento de NFS-e do Simples Nacional; 02 - + Enquadramento de NFS-e no Simples Nacional; 03 - Inclusão + Retroativa de Imunidade/Isenção para NFS-e; 04 - Exclusão + Retroativa de Imunidade/Isenção para NFS-e; 05 - Rejeição de + NFS-e pelo tomador ou pelo intermediário se responsável pelo + recolhimento do tributo; 99 - Outros; Obtido do campo da DPS + "DPS/infDPS/subst/cMotivo" + :ivar xMotivo: Descrição para explicitar o motivo indicado neste + evento. Obtido do campo da DPS "DPS/infDPS/subst/xMotivo". + :ivar chSubstituta: Chave de Acesso da NFS-e substituta + """ + + class Meta: + name = "TE105102" + + xDesc: Optional[Te105102XDesc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + }, + ) + cMotivo: Optional[TscodJustSubst] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + xMotivo: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 15, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + chSubstituta: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 50, + "white_space": "preserve", + "pattern": r"[0-9]{50}", + }, + ) + + +@dataclass +class Te105104: + """ + + " + + :ivar xDesc: Descrição do evento: "Cancelamento de NFS-e Deferido + por Análise Fiscal" + :ivar CPFAgTrib: CPF do agente da administração tributária municipal + que efetuou o deferimento da solicitação de análise fiscal para + cancelamento de NFS-e. + :ivar nProcAdm: Número do processo administrativo municipal + vinculado à solicitação de análise fiscal para cancelamento de + NFS-e. + :ivar cMotivo: Resposta da solicitação de análise fiscal para + cancelamento de NFS-e: 1 - Cancelamento de NFS-e Deferido. + :ivar xMotivo: Descrição para explicitar o motivo indicado neste + evento + """ + + class Meta: + name = "TE105104" + + xDesc: Optional[Te105104XDesc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + }, + ) + CPFAgTrib: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 11, + "white_space": "preserve", + "pattern": r"[0-9]{11}", + }, + ) + nProcAdm: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 30, + "white_space": "preserve", + "pattern": r"[0-9]{1,30}", + }, + ) + cMotivo: Optional[TscodJustAnaliseFiscalCancDef] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + xMotivo: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 15, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class Te105105: + """ + + " + + :ivar xDesc: Descrição do evento: "Cancelamento de NFS-e Indeferido + por Análise Fiscal". + :ivar CPFAgTrib: CPF do agente da administração tributária municipal + que efetuou o indeferimento da solicitação de análise fiscal + para cancelamento de NFS-e. + :ivar nProcAdm: Número do processo administrativo municipal + vinculado à solicitação de análise fiscal para cancelamento de + NFS-e. + :ivar cMotivo: Resposta da solicitação de análise fiscal para + cancelamento de NFS-e: 1 - Cancelamento de NFS-e Indeferido; 2 - + Cancelamento de NFS-e Indeferido Sem Análise de Mérito. + :ivar xMotivo: Descrição para explicitar o motivo indicado neste + evento + """ + + class Meta: + name = "TE105105" + + xDesc: Optional[Te105105XDesc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + }, + ) + CPFAgTrib: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 11, + "white_space": "preserve", + "pattern": r"[0-9]{11}", + }, + ) + nProcAdm: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 1, + "max_length": 30, + "white_space": "preserve", + "pattern": r"[0-9]{1,30}", + }, + ) + cMotivo: Optional[TscodJustAnaliseFiscalCancIndef] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + xMotivo: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 15, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class Te202201: + """ + + " + + :ivar xDesc: Descrição do evento: "Manifestação de NFS-e - + Confirmação do Prestador". + """ + + class Meta: + name = "TE202201" + + xDesc: Optional[Te202201XDesc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + }, + ) + + +@dataclass +class Te202205: + """ + + " + + :ivar xDesc: Descrição do evento: "Manifestação de NFS-e - Rejeição + do Prestador". + :ivar cMotivo: Motivo da Rejeição da NFS-e: 1 - NFS-e em + duplicidade; 2 - NFS-e já emitida pelo tomador; 3 - Não + ocorrência do fato gerador; 4 - Erro quanto a responsabilidade + tributária; 5 - Erro quanto ao valor do serviço, valor das + deduções ou serviço prestado ou data do fato gerador; 9 - + Outros; + :ivar xMotivo: Descrição para explicitar o motivo indicado neste + evento + """ + + class Meta: + name = "TE202205" + + xDesc: Optional[Te202205XDesc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + }, + ) + cMotivo: Optional[TscodMotivoRejeicao] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + xMotivo: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 15, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class Te203202: + """ + + " + + :ivar xDesc: Descrição do evento: "Manifestação de NFS-e - + Confirmação do Tomador". + """ + + class Meta: + name = "TE203202" + + xDesc: Optional[Te203202XDesc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + }, + ) + + +@dataclass +class Te203206: + """ + + " + + :ivar xDesc: Descrição do evento: "Manifestação de NFS-e - Rejeição + do Tomador". + :ivar cMotivo: Motivo da Rejeição da NFS-e: 1 - NFS-e em + duplicidade; 2 - NFS-e já emitida pelo tomador; 3 - Não + ocorrência do fato gerador; 4 - Erro quanto a responsabilidade + tributária; 5 - Erro quanto ao valor do serviço, valor das + deduções ou serviço prestado ou data do fato gerador; 9 - + Outros; + :ivar xMotivo: Descrição para explicitar o motivo indicado neste + evento + """ + + class Meta: + name = "TE203206" + + xDesc: Optional[Te203206XDesc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + }, + ) + cMotivo: Optional[TscodMotivoRejeicao] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + xMotivo: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 15, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class Te204203: + """ + + " + + :ivar xDesc: Descrição do evento: "Manifestação de NFS-e - + Confirmação do Intermediário". + """ + + class Meta: + name = "TE204203" + + xDesc: Optional[Te204203XDesc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + }, + ) + + +@dataclass +class Te204207: + """ + + " + + :ivar xDesc: Descrição do evento: "Manifestação de NFS-e - Rejeição + do Intermediário". + :ivar cMotivo: Motivo da Rejeição da NFS-e: 1 - NFS-e em + duplicidade; 2 - NFS-e já emitida pelo tomador; 3 - Não + ocorrência do fato gerador; 4 - Erro quanto a responsabilidade + tributária; 5 - Erro quanto ao valor do serviço, valor das + deduções ou serviço prestado ou data do fato gerador; 9 - + Outros; + :ivar xMotivo: Descrição para explicitar o motivo indicado neste + evento + """ + + class Meta: + name = "TE204207" + + xDesc: Optional[Te204207XDesc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + }, + ) + cMotivo: Optional[TscodMotivoRejeicao] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + xMotivo: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "min_length": 15, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class Te205204: + """ + + " + + :ivar xDesc: Descrição do evento: "Manifestação de NFS-e - + Confirmação Tácita". + """ + + class Meta: + name = "TE205204" + + xDesc: Optional[Te205204XDesc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + }, + ) + + +@dataclass +class Te205208: + """ + + " + + :ivar xDesc: Descrição do evento: "Manifestação de NFS-e - Anulação + da Rejeição". + :ivar CPFAgTrib: CPF do agente da administração tributária municipal + que efetuou o anulação da manifestação de rejeição da NFS-e + :ivar idEvManifRej: Referência ao "id" do Evento de Manifestação de + NFS-e - Rejeição, que originou o presente evento de anulação + :ivar xMotivo: Descrição para explicitar o motivo indicado neste + evento + """ + + class Meta: + name = "TE205208" + + xDesc: Optional[Te205208XDesc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + }, + ) + CPFAgTrib: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 11, + "white_space": "preserve", + "pattern": r"[0-9]{11}", + }, + ) + idEvManifRej: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{59}", + }, + ) + xMotivo: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 15, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class Te305101: + """ + + " + + :ivar xDesc: Descrição do evento: "Cancelamento de NFS-e por Ofício" + :ivar CPFAgTrib: CPF do agente da administração tributária municipal + que efetuou o cancelamento por ofício de NFS-e + :ivar nProcAdm: Número do processo administrativo municipal + vinculado ao cancelamento de NFS-e por ofício + :ivar xProcAdm: Descrição para explicitar o motivo do processo + administrativo municipal indicado neste evento + """ + + class Meta: + name = "TE305101" + + xDesc: Optional[Te305101XDesc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + }, + ) + CPFAgTrib: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 11, + "white_space": "preserve", + "pattern": r"[0-9]{11}", + }, + ) + nProcAdm: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 30, + "white_space": "preserve", + "pattern": r"[0-9]{1,30}", + }, + ) + xProcAdm: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 15, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class Te305102: + """ + + " + + :ivar xDesc: Descrição do evento: "Bloqueio de NFS-e por Ofício". + :ivar CPFAgTrib: CPF do agente da administração tributária municipal + que efetuou o bloqueio de NFS-e por ofício + :ivar codEvento: Eventos que podem ser escolhidos pelo município + emissor para serem rejeitados após emissão e vinculação do + evento de bloqueio por ofício em uma NFS-e: e101101 - + Cancelamento de NFS-e; e105102 - Cancelamento de NFS-e por + Substituição; e105104 - Cancelamento de NFS-e Deferido por + Análise Fiscal; e105105 - Cancelamento de NFS-e Indeferido por + Análise Fiscal; e305101 - Cancelamento de NFS-e por Ofício; + :ivar xMotivo: Descrição para explicitar o motivo indicado neste + evento + """ + + class Meta: + name = "TE305102" + + xDesc: Optional[Te305102XDesc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + }, + ) + CPFAgTrib: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 11, + "white_space": "preserve", + "pattern": r"[0-9]{11}", + }, + ) + codEvento: Optional[TscodigoEventoNfse] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + xMotivo: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 15, + "max_length": 255, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + + +@dataclass +class Te305103: + """ + + " + + :ivar xDesc: Descrição do evento: "Desbloqueio de NFS-e por Ofício". + :ivar CPFAgTrib: CPF do agente da administração tributária municipal + que efetuou o desbloqueio de NFS-e por ofício + :ivar idBloqOfic: Referência ao "id" do "Bloqueio de ofício" que + originou o presente evento de desbloqueio + """ + + class Meta: + name = "TE305103" + + xDesc: Optional[Te305103XDesc] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + }, + ) + CPFAgTrib: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 11, + "white_space": "preserve", + "pattern": r"[0-9]{11}", + }, + ) + idBloqOfic: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{59}", + }, + ) + + +@dataclass +class TcinfPedReg: + """ + + " + + :ivar tpAmb: Tipo de ambiente: 1 - Produção; 2 - Homologação; + :ivar verAplic: Versão do aplicativo que gerou o pedido de registro + de evento + :ivar dhEvento: Data e hora do evento no formato AAAA-MM- + DDThh:mm:ssTZD (UTC - Universal Coordinated Time, onde TZD pode + ser -02:00 (Fernando de Noronha), -03:00 (Brasília) ou -04:00 + (Manaus), no horário de verão serão -01:00, -02:00 e -03:00. + Ex.: 2010-08-19T13:00:15-03:00. + :ivar CNPJAutor: Número de inscrição federal (CNPJ) do autor do + evento. CNPJ do autor do evento (parte interessada ou pessoa que + figure na NFS-e. O autor do evento não é o procurador) + :ivar CPFAutor: Número de inscrição federal (CPF) do autor do + evento. CPF do autor do evento (parte interessada ou pessoa que + figure na NFS-e como prestador, tomador, intermediário. O autor + do evento poderá ser o procurador) + :ivar chNFSe: Identificador da NFS-e à qual o evento será vinculado + :ivar e101101: Evento de cancelamento + :ivar e105102: Evento de cancelamento por substituição + :ivar e101103: Solicitação de Análise Fiscal para Cancelamento de + NFS-e + :ivar e105104: Cancelamento de NFS-e Deferido por Análise Fiscal + :ivar e105105: Cancelamento de NFS-e Indeferido por Análise Fiscal + :ivar e202201: Confirmação do Prestador + :ivar e203202: Confirmação do Tomador + :ivar e204203: Confirmação do Intermediário + :ivar e205204: Confirmação Tácita + :ivar e202205: Rejeição do Prestador + :ivar e203206: Rejeição do Tomador + :ivar e204207: Rejeição do Intermediário + :ivar e205208: Anulação da Rejeição + :ivar e305101: Cancelamento de NFS-e por Ofício + :ivar e305102: Bloqueio de NFS-e por Ofício + :ivar e305103: Desbloqueio de NFS-e por Ofício + :ivar Id: + """ + + class Meta: + name = "TCInfPedReg" + + tpAmb: Optional[TstipoAmbiente] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + verAplic: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 20, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + dhEvento: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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))", + }, + ) + CNPJAutor: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 14, + "white_space": "preserve", + "pattern": r"[0-9]{14}", + }, + ) + CPFAutor: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "max_length": 11, + "white_space": "preserve", + "pattern": r"[0-9]{11}", + }, + ) + chNFSe: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 50, + "white_space": "preserve", + "pattern": r"[0-9]{50}", + }, + ) + e101101: Optional[Te101101] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + e105102: Optional[Te105102] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + e101103: Optional[Te101103] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + e105104: Optional[Te105104] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + e105105: Optional[Te105105] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + e202201: Optional[Te202201] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + e203202: Optional[Te203202] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + e204203: Optional[Te204203] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + e205204: Optional[Te205204] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + e202205: Optional[Te202205] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + e203206: Optional[Te203206] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + e204207: Optional[Te204207] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + e205208: Optional[Te205208] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + e305101: Optional[Te305101] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + e305102: Optional[Te305102] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + e305103: Optional[Te305103] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + }, + ) + Id: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "max_length": 59, + "white_space": "preserve", + "pattern": r"PRE[0-9]{56}", + }, + ) + + +@dataclass +class TcpedRegEvt: + class Meta: + name = "TCPedRegEvt" + + infPedReg: Optional[TcinfPedReg] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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, + "max_length": 4, + "white_space": "preserve", + "pattern": r"1\.00|1\.01", + }, + ) + + +@dataclass +class TcinfEvento: + """ + + " + + :ivar verAplic: Versão do aplicativo que gerou o evento + :ivar ambGer: Ambiente gerador do evento: 1 - Sistema próprio do + município; 2 - Sefin Nacional NFS-e; 3 - ADN NFS-e; + :ivar nSeqEvento: Número sequencial do evento para o mesmo tipo de + evento. Para os eventos que ocorrem somente uma vez, como é o + caso do cancelamento, o nSeqEvento = 001. Para os eventos que + possam existir mais de um evento do mesmo tipo o ambiente + gerador deverá numerar de forma sequencial. + :ivar dhProc: Data/Hora do registro do evento. Data e hora no + formato UTC (Universal Coordinated Time): AAAA-MM-DDThh:mm:ssTZD + :ivar nDFSe: Número sequencial do documento gerado por ambiente + gerador de DFSe do município + :ivar pedRegEvento: Leiaute do pedido de registro do evento gerado + pelo autor do evento + :ivar Id: + """ + + class Meta: + name = "TCInfEvento" + + verAplic: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "min_length": 1, + "max_length": 20, + "white_space": "preserve", + "pattern": r"[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}", + }, + ) + ambGer: Optional[TsambGeradorEvt] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + nSeqEvento: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "max_length": 3, + "white_space": "preserve", + "pattern": r"[0-9]{1}[0-9]{0,2}", + }, + ) + dhProc: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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))", + }, + ) + nDFSe: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + "white_space": "preserve", + "pattern": r"[0-9]{1,13}", + }, + ) + pedRegEvento: Optional[TcpedRegEvt] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "required": True, + }, + ) + Id: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "max_length": 62, + "white_space": "preserve", + "pattern": r"EVT[0-9]{59}", + }, + ) + + +@dataclass +class Tcevento: + class Meta: + name = "TCEvento" + + infEvento: Optional[TcinfEvento] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.sped.fazenda.gov.br/nfse", + "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, + "max_length": 4, + "white_space": "preserve", + "pattern": r"1\.00|1\.01", + }, + ) diff --git a/nfelib/nfse/bindings/v1_01/tipos_simples_v1_01.py b/nfelib/nfse/bindings/v1_01/tipos_simples_v1_01.py new file mode 100644 index 00000000..10898382 --- /dev/null +++ b/nfelib/nfse/bindings/v1_01/tipos_simples_v1_01.py @@ -0,0 +1,770 @@ +"""This file was generated by xsdata, v25.7, on 2026-10-09 00:45:08 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" + +from __future__ import annotations + +from enum import Enum + +__NAMESPACE__ = "http://www.sped.fazenda.gov.br/nfse" + + +class Tbmissqn(Enum): + """Tipo Benefício Municipal (BM): + + 1) Isenção; 2) Redução da BC em 'ppBM' %; 3) Redução da BC em R$ + 'vInfoBM'; 4) Alíquota Diferenciada de 'aliqDifBM' %; + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + + +class TsambGeradorEvt(Enum): + """Tipo Ambiente gerador do evento: + 1- Prefeitura; + 2- Sefin Nacional; + 3- Ambiente Nacional.""" + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + + +class TsambGeradorNfse(Enum): + """Tipo Ambiente Gerador de NFS-e: + 1 - Prefeitura; + 2 - Sistema Nacional da NFS-e;""" + + VALUE_1 = "1" + VALUE_2 = "2" + + +class TscodJustAnaliseFiscalCanc(Enum): + """Código do motivo da solicitação de análise fiscal para cancelamento de + NFS-e: + + 1 - Erro na Emissão; + 2 - Serviço não Prestado; + 3 - Outros. + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_9 = "9" + + +class TscodJustAnaliseFiscalCancDef(Enum): + """Resposta da análise da solicitação do cancelamento extemporâneo de NFS-e: + + 1 - Cancelamento Extemporâneo Deferido. + """ + + VALUE_1 = "1" + + +class TscodJustAnaliseFiscalCancIndef(Enum): + """Resposta da análise da solicitação do cancelamento extemporâneo de NFS-e: + + 1 - Cancelamento Extemporâneo Indeferido; + 2 - Cancelamento Extemporâneo Indeferido Sem Análise de Mérito. + """ + + VALUE_1 = "1" + VALUE_2 = "2" + + +class TscodJustCanc(Enum): + """Código de justificativa de cancelamento: + + 1 - Erro na Emissão; + 2 - Serviço não Prestado; + 9 - Outros; + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_9 = "9" + + +class TscodJustSubst(Enum): + """Código de justificativa para substituição de NFS-e: + + 01 - Desenquadramento de NFS-e do Simples Nacional; + 02 - Enquadramento de NFS-e no Simples Nacional; + 03 - Inclusão Retroativa de Imunidade/Isenção para NFS-e; + 04 - Exclusão Retroativa de Imunidade/Isenção para NFS-e; + 05 - Rejeição de NFS-e pelo tomador ou pelo intermediário se responsável pelo recolhimento do tributo; + 99 - Outros; + """ + + VALUE_01 = "01" + VALUE_02 = "02" + VALUE_03 = "03" + VALUE_04 = "04" + VALUE_05 = "05" + VALUE_99 = "99" + + +class TscodMotivoRejeicao(Enum): + """Motivo da Rejeição da NFS-e: + + 1 - NFS-e em duplicidade; + 2 - NFS-e já emitida pelo tomador; + 3 - Não ocorrência do fato gerador; + 4 - Erro quanto a responsabilidade tributária; + 5 - Erro quanto ao valor do serviço, valor das deduções ou serviço prestado ou data do fato gerador; + 9 - Outros; + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + VALUE_5 = "5" + VALUE_9 = "9" + + +class TscodNaoNif(Enum): + """Motivo para não informação do NIF: + + 0 - Não informado na nota de origem; + 1 - Dispensado do NIF; + 2 - Não exigência do NIF; + """ + + VALUE_0 = "0" + VALUE_1 = "1" + VALUE_2 = "2" + + +class TscodigoEventoNfse(Enum): + """ + Código de evento da NFS-e. + """ + + E101101 = "e101101" + E105102 = "e105102" + E105104 = "e105104" + E105105 = "e105105" + E305101 = "e305101" + + +class TsemitenteDps(Enum): + """Emitente da DPS: + 1 - Prestador + 2 - Tomador + 3 - Intermediário""" + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + + +class TsenvMdic(Enum): + """Compartilhar as informações da NFS-e gerada a partir desta DPS com a + Secretaria de Comércio Exterior: + + 0 - Não enviar para o MDIC; + 1 - Enviar para o MDIC; + """ + + VALUE_0 = "0" + VALUE_1 = "1" + + +class TsideDedRed(Enum): + """Identificação da Dedução/Redução: 1 – Alimentação e bebidas/frigobar; + + 2 – Materiais; + 3 - Produção Externa; + 4 - Reembolso de despesas; + 5 – Repasse consorciado; + 6 – Repasse plano de saúde; + 7 – Serviços; + 8 – Subempreitada de mão de obra; + 9 - Profissional parceiro; + 99 – Outras deduções; + """ + + 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_9 = "9" + VALUE_99 = "99" + + +class TsmecAfcomExPrest(Enum): + """Mecanismo de apoio/fomento ao Comércio Exterior utilizado pelo prestador do + serviço: + + 00 - Desconhecido (tipo não informado na nota de origem); + 01 - Nenhum; + 02 - ACC - Adiantamento sobre Contrato de Câmbio – Redução a Zero do IR e do IOF; + 03 - ACE – Adiantamento sobre Cambiais Entregues - Redução a Zero do IR e do IOF; + 04 - BNDES-Exim Pós-Embarque – Serviços; + 05 - BNDES-Exim Pré-Embarque - Serviços; + 06 - FGE - Fundo de Garantia à Exportação; + 07 - PROEX - EQUALIZAÇÃO + 08 - PROEX - Financiamento; + """ + + VALUE_00 = "00" + VALUE_01 = "01" + VALUE_02 = "02" + VALUE_03 = "03" + VALUE_04 = "04" + VALUE_05 = "05" + VALUE_06 = "06" + VALUE_07 = "07" + VALUE_08 = "08" + + +class TsmecAfcomExToma(Enum): + """Mecanismo de apoio/fomento ao Comércio Exterior utilizado pelo tomador do + serviço: + + 00 - Desconhecido (tipo não informado na nota de origem); + 01 - Nenhum; + 02 - Adm. Pública e Repr. Internacional; + 03 - Alugueis e Arrend. Mercantil de maquinas, equip., embarc. e aeronaves; + 04 - Arrendamento Mercantil de aeronave para empresa de transporte aéreo público; + 05 - Comissão a agentes externos na exportação; + 06 - Despesas de armazenagem, mov. e transporte de carga no exterior; + 07 - Eventos FIFA (subsidiária); + 08 - Eventos FIFA; + 09 - Fretes, arrendamentos de embarcações ou aeronaves e outros; + 10 - Material Aeronáutico; + 11 - Promoção de Bens no Exterior; + 12 - Promoção de Dest. Turísticos Brasileiros; + 13 - Promoção do Brasil no Exterior; + 14 - Promoção Serviços no Exterior; + 15 - RECINE; + 16 - RECOPA; + 17 - Registro e Manutenção de marcas, patentes e cultivares; + 18 - REICOMP; + 19 - REIDI; + 20 - REPENEC; + 21 - REPES; + 22 - RETAERO; + 23 - RETID; + 24 - Royalties, Assistência Técnica, Científica e Assemelhados; + 25 - Serviços de avaliação da conformidade vinculados aos Acordos da OMC; + 26 - ZPE; + """ + + VALUE_00 = "00" + 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" + + +class TsmodoPrestacao(Enum): + """Modo de Prestação: + + 0 - Desconhecido (tipo não informado na nota de origem); + 1 - Transfronteiriço; + 2 - Consumo no Brasil; + 3 - Presença Comercial no Exterior; + 4 - Movimento Temporário de Pessoas Físicas; + """ + + VALUE_0 = "0" + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + + +class TsmotivoEmisTi(Enum): + """Motivo da Emissão da DPS pelo Tomador/Intermediário: + + 1 - Importação de Serviço; + 2 - Tomador/Intermediário obrigado a emitir NFS-e por legislação municipal; + 3 - Tomador/Intermediário emitindo NFS-e por recusa de emissão pelo prestador; + 4 - Tomador/Intermediário emitindo por rejeitar a NFS-e emitida pelo prestador; + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + + +class TsmovTempBens(Enum): + """Vínculo da Operação à Movimentação Temporária de Bens: + + 0 - Desconhecido (tipo não informado na nota de origem); + 1 - Não; + 2 - Vinculada - Declaração de Importação; + 3 - Vinculada - Declaração de Exportação; + """ + + VALUE_0 = "0" + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + + +class TsopExigSuspensa(Enum): + """Opção para Exigibilidade Suspensa: + + 1 - Exigibilidade Suspensa por Decisão Judicial; + 2 - Exigibilidade Suspensa por Processo Administrativo; + """ + + VALUE_1 = "1" + VALUE_2 = "2" + + +class TsopSimpNac(Enum): + """Situação perante o Simples Nacional: + + 1 - Não Optante; + 2 - Optante - Microempreendedor Individual (MEI); + 3 - Optante - Microempresa ou Empresa de Pequeno Porte (ME/EPP); + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + + +class TsprocEmissao(Enum): + """Processo de Emissão da DPS: + + 1 - Emissão com aplicativo do contribuinte (via Web Service); + 2 - Emissão com aplicativo disponibilizado pelo fisco (Web); + 3 - Emissão com aplicativo disponibilizado pelo fisco (App); + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + + +class TsrtcfinNfse(Enum): + """Indicador da finalidade da emissão de NFS-e: + + 0 - NFS-e regular; + """ + + VALUE_0 = "0" + + +class TsrtcindDest(Enum): + """A respeito do Destinatário dos serviços: + 0 – o destinatário é o próprio tomador/adquirente identificado na NFS-e (tomador = adquirente = destinatário); + 1 – o destinatário não é o próprio adquirente, podendo ser outra pessoa, física ou jurídica (ou equiparada), ou um estabelecimento diferente do indicado como tomador (tomador = adquirente ≠ destinatário);""" + + VALUE_0 = "0" + VALUE_1 = "1" + + +class TsrtcindFinal(Enum): + """Indica operação de uso ou consumo pessoal (art. + + 57): 0 - Não; + 1 - Sim; + """ + + VALUE_0 = "0" + VALUE_1 = "1" + + +class TsrtctipoChaveDfe(Enum): + """Documento fiscal a que se refere a chaveDfe que seja um dos documentos do + Repositório Nacional: + + 1 - NFS-e; + 2 - NF-e; + 3 - CT-e; + 9 - Outro; + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_9 = "9" + + +class TsrtctpEnteGov(Enum): + """Tipo de ente governamental. + + Para administração pública direta e suas autarquias e fundações: + 1 - União; + 2 - Estado; + 3 - Distrito Federal; + 4 - Município; + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + + +class TsrtctpOper(Enum): + """Tipo de Operação com Entes Governamentais ou outros serviços sobre bens + imóveis: + + 1 – Fornecimento com pagamento posterior; + 2 - Recebimento do pagamento com fornecimento já realizado; + 3 – Fornecimento com pagamento já realizado; + 4 – Recebimento do pagamento com fornecimento posterior; + 5 – Fornecimento e recebimento do pagamento concomitantes; + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + VALUE_5 = "5" + + +class TsrtctpReeRepRes(Enum): + """Tipo de valor incluído neste documento, recebido por motivo de estarem + relacionadas a operações de terceiros, + + objeto de reembolso, repasse ou ressarcimento pelo recebedor, já tributados e aqui referenciados + 01 - Repasse de remuneração por intermediação de imóveis a demais corretores envolvidos na operação; + 02 - Repasse de valores a fornecedor relativo a fornecimento intermediado por agência de turismo; + 03 - Reembolso ou ressarcimento recebido por agência de propaganda e publicidade por valores pagos relativos + a serviços de produção externa por conta e ordem de terceiro; + 04 - Reembolso ou ressarcimento recebido por agência de propaganda e publicidade por valores pagos relativos + a serviços de mídia por conta e ordem de terceiro; + 99 - Outros reembolsos ou ressarcimentos recebidos por valores pagos relativos a operações por conta e ordem de terceiro; + """ + + VALUE_01 = "01" + VALUE_02 = "02" + VALUE_03 = "03" + VALUE_04 = "04" + VALUE_99 = "99" + + +class TsregEspTrib(Enum): + """Tipos de Regimes Especiais de Tributação: + + 0 - Nenhum; + 1 - Ato Cooperado (Cooperativa); + 2 - Estimativa; + 3 - Microempresa Municipal; + 4 - Notário ou Registrador; + 5 - Profissional Autônomo; + 6 - Sociedade de Profissionais; + 9 - Outros; + """ + + VALUE_0 = "0" + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + VALUE_5 = "5" + VALUE_6 = "6" + VALUE_9 = "9" + + +class TsregimeApuracaoSimpNac(Enum): + """Opção para que o contribuinte optante pelo Simples Nacional ME/EPP (opSimpNac = 3) possa indicar, ao emitir o documento fiscal, em qual regime de apuração os tributos federais e municipal estão inseridos, caso tenha ultrapassado algum sublimite ou limite definido para o Simples Nacional. + 1 – Regime de apuração dos tributos federais e municipal pelo SN; + 2 – Regime de apuração dos tributos federais pelo SN e ISSQN por fora do SN conforme respectiva legislação municipal do tributo; + 3 – Regime de apuração dos tributos federais e municipal por fora do SN conforme respectivas legislações federal e municipal de cada tributo;""" + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + + +class TssituacaoEmissaoNfse(Enum): + """Situação Emissão NFS-e: + + 0 - Não Habilitado; + 1 - Habilitado; + """ + + VALUE_0 = "0" + VALUE_1 = "1" + + +class TstipoAmbiente(Enum): + """Tipos de ambiente do Sistema Nacional NFS-e: + 1 - Produção; + 2 - Homologação;""" + + VALUE_1 = "1" + VALUE_2 = "2" + + +class TstipoCst(Enum): + """Código de Situação Tributária do PIS/COFINS (CST): + + 00 - Nenhum; + 01 - Operação Tributável com Alíquota Básica; + 02 - Operação Tributável com Alíquota Diferenciada; + 03 - Operação Tributável com Alíquota por Unidade de Medida de Produto; + 04 - Operação Tributável monofásica - Revenda a Alíquota Zero; + 05 - Operação Tributável por Substituição Tributária; + 06 - Operação Tributável a Alíquota Zero; + 07 - Operação Isenta da 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; + 50 - Operação com Direito a Crédito – Vinculada Exclusivamente a Receita Tributada no Mercado Interno; + 51 - Operação com Direito a Crédito – Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno; + 52 - Operação com Direito a Crédito – Vinculada Exclusivamente a Receita de Exportação; + 53 - Operação com Direito a Crédito – Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno; + 54 - Operação com Direito a Crédito – Vinculada a Receitas Tributadas no Mercado Interno e de Exportação; + 55 - Operação com Direito a Crédito – Vinculada a Receitas Não Tributadas no Mercado Interno e de Exportação; + 56 - Operação com Direito a Crédito – Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno e de Exportação; + 60 - Crédito Presumido – Operação de Aquisição Vinculada Exclusivamente a Receita Tributada no Mercado Interno; + 61 - Crédito Presumido – Operação de Aquisição Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno; + 62 - Crédito Presumido – Operação de Aquisição Vinculada Exclusivamente a Receita de Exportação; + 63 - Crédito Presumido – Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno; + 64 - Crédito Presumido – Operação de Aquisição Vinculada a Receitas Tributadas no Mercado Interno e de Exportação; + 65 - Crédito Presumido – Operação de Aquisição Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação; + 66 - Crédito Presumido – Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno e de Exportação; + 67 - Crédito Presumido – Outras Operações; + 70 - Operação de Aquisição sem Direito a Crédito; + 71 - Operação de Aquisição com Isenção; + 72 - Operação de Aquisição com Suspensão; + 73 - Operação de Aquisição a Alíquota Zero; + 74 - Operação de Aquisição sem Incidência da Contribuição; + 75 - Operação de Aquisição por Substituição Tributária; + 98 - Outras Operações de Entrada; + 99 - Outras Operações; + """ + + VALUE_00 = "00" + 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_49 = "49" + VALUE_50 = "50" + VALUE_51 = "51" + VALUE_52 = "52" + VALUE_53 = "53" + VALUE_54 = "54" + VALUE_55 = "55" + VALUE_56 = "56" + VALUE_60 = "60" + VALUE_61 = "61" + VALUE_62 = "62" + VALUE_63 = "63" + VALUE_64 = "64" + VALUE_65 = "65" + VALUE_66 = "66" + VALUE_67 = "67" + VALUE_70 = "70" + VALUE_71 = "71" + VALUE_72 = "72" + VALUE_73 = "73" + VALUE_74 = "74" + VALUE_75 = "75" + VALUE_98 = "98" + VALUE_99 = "99" + + +class TstipoEmissao(Enum): + """Tipo de emissão da NFS-e: + + 1 - Emissão normal no modelo da NFS-e Nacional; + 2 - Emissão original em leiaute próprio do município com transcrição para o modelo da NFS-e Nacional. + """ + + VALUE_1 = "1" + VALUE_2 = "2" + + +class TstipoImunidadeIssqn(Enum): + """Identificação da Imunidade do ISSQN – somente para o caso de Imunidade. + + Tipos de Imunidades: + 0 - Imunidade (tipo não informado na nota de origem); + 1 - Patrimônio, renda ou serviços, uns dos outros (CF88, Art 150, VI, a); + 2 - Templos de qualquer culto (CF88, Art 150, VI, b); + 3 - Patrimônio, renda ou serviços dos partidos políticos, inclusive suas fundações, das entidades sindicais dos trabalhadores, das instituições de educação e de assistência social, sem fins lucrativos, atendidos os requisitos da lei (CF88, Art 150, VI, c); + 4 - Livros, jornais, periódicos e o papel destinado a sua impressão (CF88, Art 150, VI, d); + 5 - Fonogramas e videofonogramas musicais produzidos no Brasil contendo obras musicais ou literomusicais de autores brasileiros e/ou obras em geral interpretadas por artistas brasileiros bem como os suportes materiais ou arquivos digitais que os contenham, salvo na etapa de replicação industrial de mídias ópticas de leitura a laser. (CF88, Art 150, VI, e); + """ + + VALUE_0 = "0" + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + VALUE_5 = "5" + + +class TstipoIndTotTrib(Enum): + """Indicador de informação de valor total de tributos. + + Possui valor fixo igual a zero (indTotTrib=0). Não informar nenhum valor estimado para os Tributos (Decreto 8.264/2014). + 0 - Não; + """ + + VALUE_0 = "0" + + +class TstipoRetIssqn(Enum): + """Tipo de retencao do ISSQN: + 1 - Não Retido; + 2 - Retido pelo Tomador; + 3 - Retido pelo Intermediario;""" + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + + +class TstipoRetPiscofins(Enum): + """Tipo de retencao do Pis/Cofins: + + 0 - PIS/COFINS/CSLL Não Retidos; + 1 - PIS/COFINS Retidos; + 2 - PIS/COFINS Não Retidos; + 3 - PIS/COFINS/CSLL Retidos; + 4 - PIS/COFINS Retidos, CSLL Não Retido; + 5 - PIS Retido, COFINS/CSLL Não Retido; + 6 - COFINS Retido, PIS/CSLL Não Retido; + 7 - PIS Não Retido, COFINS/CSLL Retidos; + 8 - PIS/COFINS Não Retidos, CSLL Retido; + 9 - COFINS Não Retido, PIS/CSLL Retidos; + """ + + 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_9 = "9" + + +class TstribIssqn(Enum): + """Tributação do ISSQN sobre o serviço prestado: + + 1 - Operação tributável; + 2 - Imunidade; + 3 - Exportação de serviço; + 4 - Não Incidência; + """ + + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + + +class Tsuf(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" + + +class TsvincPrest(Enum): + """Vínculo entre as partes no negócio: + + 0 - Sem vínculo com o Tomador/Prestador + 1 - Controlada; + 2 - Controladora; + 3 - Coligada; + 4 - Matriz; + 5 - Filial ou sucursal; + 6 - Outro vínculo; + 9 - Desconhecido (tipo não informado na nota de origem); + """ + + VALUE_0 = "0" + VALUE_1 = "1" + VALUE_2 = "2" + VALUE_3 = "3" + VALUE_4 = "4" + VALUE_5 = "5" + VALUE_6 = "6" + VALUE_9 = "9" + + +class Tstat(Enum): + """Situações possíveis: + + 100 - NFS-e Gerada; + 102 - NFS-e de Decisão Judicial; + 103 - NFS-e Avulsa; + 107 - NFS-e MEI; + """ + + VALUE_100 = "100" + VALUE_102 = "102" + VALUE_103 = "103" + VALUE_107 = "107" diff --git a/nfelib/nfse/bindings/v1_01/xmldsig_core_schema.py b/nfelib/nfse/bindings/v1_01/xmldsig_core_schema.py new file mode 100644 index 00000000..522de9f1 --- /dev/null +++ b/nfelib/nfse/bindings/v1_01/xmldsig_core_schema.py @@ -0,0 +1,848 @@ +"""This file was generated by xsdata, v25.7, on 2026-10-09 00:45:08 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" + +from __future__ import annotations + +from dataclasses import dataclass, field +from typing import Optional + +__NAMESPACE__ = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class CanonicalizationMethodType: + Algorithm: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + content: list[object] = field( + default_factory=list, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "mixed": True, + }, + ) + + +@dataclass +class DsakeyValueType: + class Meta: + name = "DSAKeyValueType" + + P: Optional[bytes] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "format": "base64", + }, + ) + Q: Optional[bytes] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "format": "base64", + }, + ) + G: Optional[bytes] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "format": "base64", + }, + ) + Y: Optional[bytes] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + "format": "base64", + }, + ) + J: Optional[bytes] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "format": "base64", + }, + ) + Seed: Optional[bytes] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "format": "base64", + }, + ) + PgenCounter: Optional[bytes] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "format": "base64", + }, + ) + + +@dataclass +class DigestMethodType: + Algorithm: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + content: list[object] = field( + default_factory=list, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "mixed": True, + }, + ) + + +@dataclass +class DigestValue: + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + value: Optional[bytes] = field( + default=None, + metadata={ + "required": True, + "format": "base64", + }, + ) + + +@dataclass +class KeyName: + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + value: str = field( + default="", + metadata={ + "required": True, + }, + ) + + +@dataclass +class MgmtData: + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + value: str = field( + default="", + metadata={ + "required": True, + }, + ) + + +@dataclass +class ObjectType: + Id: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + MimeType: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + Encoding: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + content: list[object] = field( + default_factory=list, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "mixed": True, + }, + ) + + +@dataclass +class PgpdataType: + class Meta: + name = "PGPDataType" + + PGPKeyID: Optional[bytes] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + "format": "base64", + }, + ) + PGPKeyPacket: list[bytes] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "max_occurs": 2, + "format": "base64", + }, + ) + other_element: list[object] = field( + default_factory=list, + metadata={ + "type": "Wildcard", + "namespace": "##other", + }, + ) + + +@dataclass +class RsakeyValueType: + class Meta: + name = "RSAKeyValueType" + + Modulus: Optional[bytes] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + "format": "base64", + }, + ) + Exponent: Optional[bytes] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + "format": "base64", + }, + ) + + +@dataclass +class SpkidataType: + class Meta: + name = "SPKIDataType" + + SPKISexp: list[bytes] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "min_occurs": 1, + "sequence": 1, + "format": "base64", + }, + ) + other_element: list[object] = field( + default_factory=list, + metadata={ + "type": "Wildcard", + "namespace": "##other", + "sequence": 1, + }, + ) + + +@dataclass +class SignatureMethodType: + Algorithm: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + content: list[object] = field( + default_factory=list, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "mixed": True, + "choices": ( + { + "name": "HMACOutputLength", + "type": int, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ), + }, + ) + + +@dataclass +class SignaturePropertyType: + Target: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + Id: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + content: list[object] = field( + default_factory=list, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "mixed": True, + }, + ) + + +@dataclass +class SignatureValueType: + value: Optional[bytes] = field( + default=None, + metadata={ + "required": True, + "format": "base64", + }, + ) + Id: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + + +@dataclass +class TransformType: + Algorithm: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + content: list[object] = field( + default_factory=list, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "mixed": True, + "choices": ( + { + "name": "XPath", + "type": str, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ), + }, + ) + + +@dataclass +class X509IssuerSerialType: + X509IssuerName: Optional[str] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + X509SerialNumber: Optional[int] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + + +@dataclass +class CanonicalizationMethod(CanonicalizationMethodType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class DsakeyValue(DsakeyValueType): + class Meta: + name = "DSAKeyValue" + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class DigestMethod(DigestMethodType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class _Object(ObjectType): + class Meta: + name = "Object" + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class Pgpdata(PgpdataType): + class Meta: + name = "PGPData" + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class RsakeyValue(RsakeyValueType): + class Meta: + name = "RSAKeyValue" + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class Spkidata(SpkidataType): + class Meta: + name = "SPKIData" + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class SignatureMethod(SignatureMethodType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class SignatureProperty(SignaturePropertyType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class SignatureValue(SignatureValueType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class Transform(TransformType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class X509DataType: + X509IssuerSerial: list[X509IssuerSerialType] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "sequence": 1, + }, + ) + X509SKI: list[bytes] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "sequence": 1, + "format": "base64", + }, + ) + X509SubjectName: list[str] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "sequence": 1, + }, + ) + X509Certificate: list[bytes] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "sequence": 1, + "format": "base64", + }, + ) + X509CRL: list[bytes] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "sequence": 1, + "format": "base64", + }, + ) + other_element: list[object] = field( + default_factory=list, + metadata={ + "type": "Wildcard", + "namespace": "##other", + "sequence": 1, + }, + ) + + +@dataclass +class KeyValueType: + content: list[object] = field( + default_factory=list, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "mixed": True, + "choices": ( + { + "name": "DSAKeyValue", + "type": DsakeyValue, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + { + "name": "RSAKeyValue", + "type": RsakeyValue, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ), + }, + ) + + +@dataclass +class SignaturePropertiesType: + signatureProperty: list[SignatureProperty] = field( + default_factory=list, + metadata={ + "name": "SignatureProperty", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "min_occurs": 1, + }, + ) + Id: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + + +@dataclass +class TransformsType: + transform: list[Transform] = field( + default_factory=list, + metadata={ + "name": "Transform", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "min_occurs": 1, + }, + ) + + +@dataclass +class X509Data(X509DataType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class KeyValue(KeyValueType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class SignatureProperties(SignaturePropertiesType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class Transforms(TransformsType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class ReferenceType: + transforms: Optional[Transforms] = field( + default=None, + metadata={ + "name": "Transforms", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ) + digestMethod: Optional[DigestMethod] = field( + default=None, + metadata={ + "name": "DigestMethod", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + digestValue: Optional[DigestValue] = field( + default=None, + metadata={ + "name": "DigestValue", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + Id: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + URI: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + Type: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + + +@dataclass +class RetrievalMethodType: + transforms: Optional[Transforms] = field( + default=None, + metadata={ + "name": "Transforms", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ) + URI: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + Type: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + + +@dataclass +class Reference(ReferenceType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class RetrievalMethod(RetrievalMethodType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class KeyInfoType: + Id: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + content: list[object] = field( + default_factory=list, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "mixed": True, + "choices": ( + { + "name": "KeyName", + "type": KeyName, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + { + "name": "KeyValue", + "type": KeyValue, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + { + "name": "RetrievalMethod", + "type": RetrievalMethod, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + { + "name": "X509Data", + "type": X509Data, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + { + "name": "PGPData", + "type": Pgpdata, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + { + "name": "SPKIData", + "type": Spkidata, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + { + "name": "MgmtData", + "type": MgmtData, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ), + }, + ) + + +@dataclass +class ManifestType: + reference: list[Reference] = field( + default_factory=list, + metadata={ + "name": "Reference", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "min_occurs": 1, + }, + ) + Id: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + + +@dataclass +class SignedInfoType: + canonicalizationMethod: Optional[CanonicalizationMethod] = field( + default=None, + metadata={ + "name": "CanonicalizationMethod", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + signatureMethod: Optional[SignatureMethod] = field( + default=None, + metadata={ + "name": "SignatureMethod", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + reference: list[Reference] = field( + default_factory=list, + metadata={ + "name": "Reference", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "min_occurs": 1, + }, + ) + Id: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + + +@dataclass +class KeyInfo(KeyInfoType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class Manifest(ManifestType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class SignedInfo(SignedInfoType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass +class SignatureType: + signedInfo: Optional[SignedInfo] = field( + default=None, + metadata={ + "name": "SignedInfo", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + signatureValue: Optional[SignatureValue] = field( + default=None, + metadata={ + "name": "SignatureValue", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + keyInfo: Optional[KeyInfo] = field( + default=None, + metadata={ + "name": "KeyInfo", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ) + Object: list[_Object] = field( + default_factory=list, + metadata={ + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ) + 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/nfse/samples/v1_01/nfse-ibscbs.xml b/nfelib/nfse/samples/v1_01/nfse-ibscbs.xml new file mode 100644 index 00000000..605e5c90 --- /dev/null +++ b/nfelib/nfse/samples/v1_01/nfse-ibscbs.xml @@ -0,0 +1,153 @@ + + + + Blumenau + Blumenau + 1 + 4202404 + Blumenau + Análise e desenvolvimento de sistemas. + Serviços de desenvolvimento de software sob encomenda + SefinNac_Pre_1.5.0 + 2 + 1 + 1 + 100 + 2026-03-10T10:00:05-03:00 + 123456 + + 00000000000000 + 152422 + EMPRESA PRESTADORA DE TESTE LTDA + + RUA DE TESTE + 100 + CENTRO + 4202404 + SC + 89010000 + + + + 1000.00 + 2.00 + 20.00 + 1000.00 + + + 4202404 + Blumenau + + 1000.00 + + 0.10 + 0.10 + + + 0.00 + 0.00 + + + 0.90 + 0.90 + + + + 1000.00 + + 1.00 + + 1.00 + + + 0.00 + + + + 9.00 + + + + + + 2 + 2026-03-10T10:00:00-03:00 + 20260310 + 00007 + 1 + 2026-03-10 + 1 + 4202404 + + 00000000000000 + 152422 + + 1 + 0 + + + + 00000000000000 + EMPRESA TOMADORA DE TESTE LTDA + + + + 4202404 + + + 010101 + Desenvolvimento de sistema sob encomenda + 115022000 + + + + + 1000.00 + + + + 1 + 1 + + + 0 + + + + + 0 + 100301 + 0 + + + + 000 + 000001 + + + + + + + + + + + + + + + + + + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + AAAA + + + AAAA + + + + diff --git a/nfelib/nfse/schemas/v1_01/CNC_v1.00.xsd b/nfelib/nfse/schemas/v1_01/CNC_v1.00.xsd new file mode 100644 index 00000000..47cddb04 --- /dev/null +++ b/nfelib/nfse/schemas/v1_01/CNC_v1.00.xsd @@ -0,0 +1,14 @@ + + + + + + + Schema XML Leiaute do arquivo para upload - CNC + + + diff --git a/nfelib/nfse/schemas/v1_01/DPS_v1.01.xsd b/nfelib/nfse/schemas/v1_01/DPS_v1.01.xsd new file mode 100644 index 00000000..39f440dd --- /dev/null +++ b/nfelib/nfse/schemas/v1_01/DPS_v1.01.xsd @@ -0,0 +1,14 @@ + + + + + + + Schema XML da Declaração de Prestação de Serviços - DPS + + + \ No newline at end of file diff --git a/nfelib/nfse/schemas/v1_01/NFSe_v1.01.xsd b/nfelib/nfse/schemas/v1_01/NFSe_v1.01.xsd new file mode 100644 index 00000000..171ac2bb --- /dev/null +++ b/nfelib/nfse/schemas/v1_01/NFSe_v1.01.xsd @@ -0,0 +1,15 @@ + + + + + + + Schema XML da Nota Fiscal de Serviços Eletrônica - NFS-e + + + \ No newline at end of file diff --git a/nfelib/nfse/schemas/v1_01/evento_v1.01.xsd b/nfelib/nfse/schemas/v1_01/evento_v1.01.xsd new file mode 100644 index 00000000..a6739379 --- /dev/null +++ b/nfelib/nfse/schemas/v1_01/evento_v1.01.xsd @@ -0,0 +1,15 @@ + + + + + + + Schema XML do Pedido de Registro de Eventos + + + \ No newline at end of file diff --git a/nfelib/nfse/schemas/v1_01/pedRegEvento_v1.01.xsd b/nfelib/nfse/schemas/v1_01/pedRegEvento_v1.01.xsd new file mode 100644 index 00000000..26fe4bdd --- /dev/null +++ b/nfelib/nfse/schemas/v1_01/pedRegEvento_v1.01.xsd @@ -0,0 +1,15 @@ + + + + + + + Schema XML do Pedido de Registro de Eventos + + + \ No newline at end of file diff --git a/nfelib/nfse/schemas/v1_01/tiposCnc_v1.00.xsd b/nfelib/nfse/schemas/v1_01/tiposCnc_v1.00.xsd new file mode 100644 index 00000000..27d839ba --- /dev/null +++ b/nfelib/nfse/schemas/v1_01/tiposCnc_v1.00.xsd @@ -0,0 +1,166 @@ + + + + + + + + + + + Código de endereçamento postal do estabelecimento do contribuinte + + + + + Número do estabelecimento no logradouro informado + + + + + Informação complementar para identificação do endereço do contribuinte + + + + + + + + + + + + + + + + + Identificação do Ambiente: 1 - Produção; 2 - Homologação + + + + + Data e hora da geração do arquivo CNC. Data e hora no formato UTC (Universal Coordinated Time): AAAA-MM-DDThh:mm:ssTZD + + + + + Versão do aplicativo que gerou Informações para cadastramento de novos contribuintes CNC + + + + + + + + Grupo de informações cadastramento de novos contribuintes CNC + + + + + + + + + + + Informações para cadastramento de novos contribuintes CNC + + + + + + Número do CNPJ + + + + + Número do CPF + + + + + + Número da inscrição municipal + + + + + Data da Inscrição Municipal: Dia, mês e ano (AAAAMMDD) + + + + + Grupo de informações do endereço do contribuinte do CNC + + + + + + Número do telefone do prestador: + Preencher com o Código DDD + número do telefone. + Nas operações com exterior é permitido informar o código do país + código da localidade + número do telefone) + + + + + + Endereço de e-mail para contato com o contribuinte + + + + + + Tipos de Regimes Especiais de Tributação: + 0 - Nenhum; + 1 - Ato Cooperado (Cooperativa); + 2 - Estimativa; + 3 - Microempresa Municipal; + 4 - Notário ou Registrador; + 5 - Profissional Autônomo; + 6 - Sociedade de Profissionais; + + + + + + + Identificação da situação do cadastro do contribuinte + + + + + + + Motivo pelo qual o contribuinte se enquadra na situação informada + + + + + + + Situação Emissão NFS-e: + 0 - Não Habilitado; + 1 - Habilitado; + + + + + + + + + Tipo Versão do CNC - 1.00 + + + + + + + + \ No newline at end of file diff --git a/nfelib/nfse/schemas/v1_01/tiposComplexos_v1.01.xsd b/nfelib/nfse/schemas/v1_01/tiposComplexos_v1.01.xsd new file mode 100644 index 00000000..91f44b80 --- /dev/null +++ b/nfelib/nfse/schemas/v1_01/tiposComplexos_v1.01.xsd @@ -0,0 +1,2709 @@ + + + + + + + + + + + + + + + + + + Descrição do código do IBGE do município emissor da NFS-e. + + + + + + Descrição do local da prestação do serviço. + + + + + + Número sequencial por tipo de emitente da NFS-e. + A Sefin Nacional NFS-e irá gerar o número da NFS-e de forma sequencial por emitente. Por se tratar de um ambiente altamente transacional, a Sefin Nacional NFS-e não irá reutilizar números inutilizados durante a geração da NFS-e. + + + + + + + O código de município utilizado pelo Sistema Nacional NFS-e é o código definido para cada município pertencente ao ""Anexo V – Tabela de Código de Municípios do IBGE"", que consta ao final do Manual de Orientação ao Contribuinte do ISSQN para a Sefin Nacional NFS-e. + O município de incidência do ISSQN é determinado automaticamente pelo sistema, conforme regras do aspecto espacial da lei complementar federal (LC 116/03) que são válidas para todos os municípios. + http://www.planalto.gov.br/ccivil_03/Leis/LCP/Lcp116.htm + + + + + + + A descrição do código de município utilizado pelo Sistema Nacional NFS-e é o nome de cada município pertencente ao "Anexo V – Tabela de Código de Municípios do IBGE", que consta ao final do Manual de Orientação ao Contribuinte do ISSQN para a Sefin Nacional NFS-e. + + + + + + + Descrição do código de tributação nacional do ISSQN. + + + + + + + Descrição do código de tributação municipal do ISSQN. + + + + + + + Descrição do código da NBS. + + + + + + Versão do aplicativo que gerou a NFS-e + + + + + Ambiente gerador da NFS-e + + + + + + Processo de Emissão da DPS: + 1 - Emissão com aplicativo do contribuinte (via Web Service); + 2 - Emissão com aplicativo disponibilizado pelo fisco (Web); + 3 - Emissão com aplicativo disponibilizado pelo fisco (App); + + + + + + + Processo de Emissão da DPS: + 1 - Emissão com aplicativo do contribuinte (via Web Service); + 2 - Emissão com aplicativo disponibilizado pelo fisco (Web); + 3 - Emissão com aplicativo disponibilizado pelo fisco (App); + + + + + + Código do Status da mensagem + + + + + + Data/Hora da validação da DPS e geração da NFS-e. Data e hora no formato UTC (Universal Coordinated Time):AAAA-MM-DDThh:mm:ssTZD + + + + + + + Número sequencial do documento gerado por ambiente gerador de DFSe do múnicípio. + + + + + + + Grupo de informações da DPS relativas ao emitente da NFS-e + + + + + + + Grupo de valores referentes ao Serviço Prestado + + + + + + + Uso da Administração Tributária Municipal. + + + + + + + Grupo de informações geradas pelo sistema referentes ao IBS e à CBS + + + + + + + Grupo de informações da DPS relativas ao serviço prestado + + + + + + + + + + + + + + Número do CNPJ do emitente da NFS-e. + + + + + + + Número do CPF do emitente da NFS-e. + + + + + + + Número da inscrição municipal + + + + + + Nome / Razão Social do emitente. + + + + + + + Nome / Fantasia do emitente. + + + + + + Grupo de informações do endereço nacional do Emitente da NFS-e + + + + + + Número do telefone do emitente. + (Preencher com o Código DDD + número do telefone. + Nas operações com exterior é permitido informar o código do país + código da localidade + número do telefone) + + + + + + E-mail do emitente. + + + + + + + + + + + Valor monetário (R$) de dedução/redução da base de cálculo (BC) do ISSQN. + + + + + + + Tipo Benefício Municipal (BM): + 1) Isenção; + 2) Redução da BC em 'ppBM' %; + 3) Redução da BC em R$ 'vInfoBM'; + 4) Alíquota Diferenciada de 'aliqDifBM' %; + + + + + + + Valor monetário (R$) do percentual de redução da base de cálculo (BC) do ISSQN devido a um benefício municipal (BM). + + + + + + + Valor da Base de Cálculo do ISSQN (R$) = Valor do Serviço - Desconto Incondicionado - Deduções/Reduções - Benefício Municipal + vBC = vServ - descIncond - (vDR ou vCalcDR + vCalcReeRepRes) - (vRedBCBM ou VCalcBM) + + + + + + + Alíquota aplicada sobre a base de cálculo para apuração do ISSQN. + + + + + + + Valor do ISSQN (R$) = Valor da Base de Cálculo x Alíquota ISSQN = vBC x pAliqAplic + + + + + + + Valor total das retenções de tributos da NFS-e. + Valor total de retenções (R$) = Σ(vRetCP + vRetIRRF+ vRetCSLL + ISSQN*) + + + + + + + Valor líquido da NFS-e. + Valor líquido (R$) = Valor do serviço - Desconto condicionado - Desconto incondicionado - Valores retidos + + + + + + + + + + + + Código IBGE da localidade de incidência do IBS/CBS (local da operação) + + + + + + + Nome da localidade de incidência do IBS/CBS + + + + + + + Percentual de redução de aliquota em compra governamental + + + + + + + Grupo de valores brutos referentes ao IBS/CBS + + + + + + + Grupo de Totalizadores + + + + + + + + + + + + Valor da base de cálculo (BC) do IBS/CBS antes das reduções para cálculo do tributo bruto + vBC = vServ - descIncond – vCalcReeRepRes – vISSQN – vPIS - vCOFINS (até 2026) ou + vBC = vServ - descIncond – vCalcReeRepRes – vISSQN (até 2032) + + + + + + + Valor monetário (R$) total relativo ao fornecimento próprio de bens materiais ou relacionados a operações de terceiros, + objeto de reembolso, repasse ou ressarcimento pelo recebedor, já tributados e aqui referenciados e que não integram + da base de cálculo (BC) do ISSQN, do IBS e da CBS. + + + + + + + Grupo de Informações relativas aos valores do IBS Estadual + + + + + + + Grupo de Informações relativas aos valores do IBS Municipal + + + + + + + Grupo de Informações relativas aos valores da CBS + + + + + + + + + + + + Alíquota da UF para IBS da localidade de incidência parametrizada no sistema + + + + + + + Percentual de redução de alíquota estadual + + + + + + + pAliqEfetUF = pIBSUF x (1 - pRedAliqUF) x (1 - pRedutor) + Se pRedAliqUF não for informado na DPS, então pAliqEfetUF é a própria pIBSUF + + + + + + + + + + + + Alíquota do Município para IBS da localidade de incidência parametrizada no sistema + + + + + + + Percentual de redução de alíquota municipal + + + + + + + pAliqEfetMun = pIBSMun x (1 - pRedAliqMun) x (1 - pRedutor) + Se pRedAliqMun não for informado na DPS, então pAliqEfetMun é a própria pIBSMun + + + + + + + + + + + + Alíquota da União para CBS parametrizada no sistema + + + + + + + Percentual da redução de alíquota da CBS + + + + + + + pAliqEfetCBS = pCBS x (1 - pRedAliqCBS) x (1 - pRedutor) + Se pRedAliqCBS não for informado na DPS, então pAliqEfetCBS é a própria pCBS + + + + + + + + + + + + Valor Total da NF considerando os impostos por fora: IBS e CBS + O IBS e a CBS são por fora, por isso seus valores devem ser adicionados ao valor total da NF + vTotNF = vLiq (em 2026) + vTotNF = vLiq + vCBS + vIBSTot (a partir de 2027) + + + + + + + Grupo de valores referentes ao IBS + + + + + + + Grupo de valores referentes à CBS + + + + + + + Grupo de informações de tributação regular + + + + + + + Grupo de informações da composição do valor do IBS e da CBS em compras governamentais + + + + + + + + + + + + Valor total do IBS. + vIBSTot = vIBSUF + vIBSMun + + + + + + + Grupo de valores referentes ao crédito presumido para IBS + + + + + + + Grupo de valores referentes ao IBS Estadual + + + + + + + Grupo de valores referentes ao IBS Municipal + + + + + + + + + + + + Alíquota do crédito presumido para o IBS + + + + + + + Valor do Crédito Presumido para o IBS + vCredPresIBS = vBC x pCredPresIBS + + + + + + + + + + + + Total do Diferimento do IBS estadual + vDifUF = vIBSUF x pDifUF + + + + + + + Total valor do IBS estadual + vIBSUF = vBC x (pIBSUF ou pAliqEfetUF) + + + + + + + + + + + + Total do Diferimento do IBS municipal + vDifMun = vIBSMun x pDifMun + + + + + + + Total valor do IBS municipal + vIBSMun = vBC x (pIBSMun ou pAliqEfetMun) + + + + + + + + + + + + Grupo de valores referentes ao crédito presumido para CBS + + + + + + + Total do Diferimento CBS + vDifCBS = vCBS x pDifCBS + + + + + + + Total valor da CBS da União + vCBS = vBC x (pCBS ou pAliqEfetCBS) + + + + + + + + + + + + Alíquota do crédito presumido para a CBS + + + + + + + Valor do Crédito Presumido da CBS + vCredPresCBS = vBC x pCredPresCBS + + + + + + + + + + + + Alíquota efetiva de tributação regular do IBS estadual + + + + + + + Valor da tributação regular do IBS estadual + vTribRegIBSUF = vBC x pAliqEfeRegIBSUF + + + + + + + Alíquota efetiva de tributação regular do IBS municipal + + + + + + + Valor da tributação regular do IBS municipal + vTribRegIBSMun = vBC x pAliqEfeRegIBSMun + + + + + + + Alíquota efetiva de tributação regular da CBS + + + + + + + Valor da tributação regular da CBS + vTribRegCBS = vBC x pAliqEfeRegCBS + + + + + + + + + + + + Alíquota do IBS de competência do Estado + + + + + + + Valor do Tributo do IBS da UF calculado + + + + + + + Alíquota do IBS de competência do Município + + + + + + + Valor do Tributo do IBS do Município calculado + + + + + + + Alíquota da CBS + + + + + + + Valor do Tributo da CBS calculado + + + + + + + + + + + + + + + + + + + Identificação do Ambiente: 1 - Produção; 2 - Homologação + + + + + Data e hora da emissão do DPS. Data e hora no formato UTC (Universal Coordinated Time): AAAA-MM-DDThh:mm:ssTZD + + + + + Versão do aplicativo que gerou o DPS + + + + + Número do equipamento emissor do DPS ou série do DPS + + + + + Número do DPS + + + + + Data em que se iniciou a prestação do serviço: Dia, mês e ano (AAAAMMDD) + + + + + Emitente da DPS: 1 - Prestador; 2 - Tomador; 3 - Intermediário + + + + + Motivo da Emissão da DPS pelo Tomador/Intermediário: + 1 - Importação de Serviço; + 2 - Tomador/Intermediário obrigado a emitir NFS-e por legislação municipal; + 3 - Tomador/Intermediário emitindo NFS-e por recusa de emissão pelo prestador; + 4 - Tomador/Intermediário emitindo por rejeitar a NFS-e emitida pelo prestador; + + + + + + + Chave de Acesso da NFS-e rejeitada pelo Tomador/Intermediário. + + + + + + O código de município utilizado pelo Sistema Nacional NFS-e é o código definido para cada município pertencente ao ""Anexo V – Tabela de Código de Municípios do IBGE"", que consta ao final do Manual de Orientação ao Contribuinte do ISSQN para a Sefin Nacional NFS-e. + O município emissor da NFS-e é aquele município em que o emitente da DPS está cadastrado e autorizado a "emitir uma NFS-e", ou seja, emitir uma DPS para que o sistema nacional valide as informações nela prestadas e gere a NFS-e correspondente para o emitente. + Para que o sistema nacional emita a NFS-e o município emissor deve ser conveniado e estar ativo no sistema nacional. Além disso o convênio do município deve permitir que os contribuintes do município utilize os emissores públicos do Sistema Nacional NFS-e + + + + + + Dados da NFS-e a ser substituída + + + + + Grupo de informações do DPS relativas ao Prestador de Serviços + + + + + Grupo de informações do DPS relativas ao Tomador de Serviços + + + + + Grupo de informações do DPS relativas ao Intermediário de Serviços + + + + + Grupo de informações do DPS relativas ao Serviço Prestado + + + + + + Grupo de informações relativas à valores do serviço prestado + + + + + + + Grupo de informações declaradas pelo emitente referentes ao IBS e à CBS + + + + + + + + + + + + Chave de acesso da NFS-e a ser substituída + + + + + + Código de justificativa para substituição de NFS-e: + 01 - Desenquadramento de NFS-e do Simples Nacional; + 02 - Enquadramento de NFS-e no Simples Nacional; + 03 - Inclusão Retroativa de Imunidade/Isenção para NFS-e; + 04 - Exclusão Retroativa de Imunidade/Isenção para NFS-e; + 05 - Rejeição de NFS-e pelo tomador ou pelo intermediário se responsável pelo recolhimento do tributo; + 99 - Outros; + + + + + + Descrição do motivo da substituição da NFS-e + + + + + + + + Informações do prestador da NFS-e. Difere das demais pessoas por causa das informações de regimes de tributação + + + + + + Número do CNPJ + + + + + Número do CPF + + + + + Número de Identificação Fiscal fornecido por órgão de administração tributária no exterior + + + + + + Motivo para não informação do NIF: + 0 - Não informado na nota de origem; + 1 - Dispensado do NIF; + 2 - Não exigência do NIF; + + + + + + + Número do Cadastro de Atividade Econômica da Pessoa Física (CAEPF) do prestador do serviço. + + + + + Número da inscrição municipal + + + + + Nome/Nome Empresarial do prestador + + + + + Dados de endereço do prestador + + + + + + Número do telefone do prestador: + Preencher com o Código DDD + número do telefone. + Nas operações com exterior é permitido informar o código do país + código da localidade + número do telefone) + + + + + + E-mail + + + + + + Grupo de informações relativas aos regimes de tributação do prestador de serviços + + + + + + + + + + + + Situação perante o Simples Nacional: + 1 - Não Optante; + 2 - Optante - Microempreendedor Individual (MEI); + 3 - Optante - Microempresa ou Empresa de Pequeno Porte (ME/EPP); + + + + + + + Opção para que o contribuinte optante pelo Simples Nacional ME/EPP (opSimpNac = 3) possa indicar, ao emitir o documento fiscal, em qual regime de apuração os tributos federais e municipal estão inseridos, caso tenha ultrapassado algum sublimite ou limite definido para o Simples Nacional. + 1 – Regime de apuração dos tributos federais e municipal pelo SN; + 2 – Regime de apuração dos tributos federais pelo SN e ISSQN por fora do SN conforme respectiva legislação municipal do tributo; + 3 – Regime de apuração dos tributos federais e municipal por fora do SN conforme respectivas legislações federal e municipal de cada tributo; + + + + + + + Tipos de Regimes Especiais de Tributação: + 0 - Nenhum; + 1 - Ato Cooperado (Cooperativa); + 2 - Estimativa; + 3 - Microempresa Municipal; + 4 - Notário ou Registrador; + 5 - Profissional Autônomo; + 6 - Sociedade de Profissionais; + 9 - Outros; + + + + + + + + + Informações das pessoas envolvidas na NFS-e. Pode ser o tomador, o intermediário ou o fornecedor (dedução/redução) + + + + + + Número do CNPJ + + + + + Número do CPF + + + + + Número de Identificação Fiscal fornecido por órgão de administração tributária no exterior + + + + + + Motivo para não informação do NIF: + 0 - Não informado na nota de origem; + 1 - Dispensado do NIF; + 2 - Não exigência do NIF; + + + + + + + Número do Cadastro de Atividade Econômica da Pessoa Física (CAEPF) + + + + + Número da inscrição municipal + + + + + Nome/Nome Empresarial + + + + + Dados de endereço + + + + + + Número do telefone do prestador: + Preencher com o Código DDD + número do telefone. + Nas operações com exterior é permitido informar o código do país + código da localidade + número do telefone) + + + + + + E-mail + + + + + + + + + + + Grupo de informações específicas de endereço nacional + + + + + Grupo de informações específicas de endereço no exterior + + + + + + Tipo e nome do logradouro da localização do imóvel + + + + + Número do imóvel + + + + + Complemento do endereço + + + + + Bairro + + + + + + + + + + Tipo e nome do logradouro da localização do imóvel + + + + + Número do imóvel + + + + + Complemento do endereço + + + + + Bairro + + + + + Código do município, conforme Tabela do IBGE + + + + + Sigla da unidade da federação do município do endereço do emitente. + + + + + Número do CEP + + + + + + + + + + + Número do CEP + + + + + Grupo de informações específicas de endereço no exterior + + + + + + Tipo e nome do logradouro da localização do imóvel + + + + + Número do imóvel + + + + + Complemento do endereço + + + + + Bairro + + + + + + + + + + Código do município, conforme Tabela do IBGE + + + + + Número do CEP + + + + + + + + + + Código do país (Tabela de Países ISO) + + + + + Código alfanumérico do Endereçamento Postal no exterior do prestador do serviço. + + + + + Nome da cidade no exterior do prestador do serviço. + + + + + Estado, província ou região da cidade no exterior do prestador do serviço. + + + + + + + + + + Código alfanumérico do Endereçamento Postal no exterior do prestador do serviço. + + + + + Nome da cidade no exterior do prestador do serviço. + + + + + Estado, província ou região da cidade no exterior do prestador do serviço. + + + + + + + + + + + Número do CEP + + + + + Grupo de informações específicas de endereço no exterior + + + + + + Tipo e nome do logradouro da localização do imóvel + + + + + Número do imóvel + + + + + Complemento do endereço + + + + + Bairro + + + + + + + + + + + Grupo de informações relativas ao local da prestação do serviço + + + + + + + Grupo de informações relativas ao código do serviço prestado + + + + + + Grupo de informações relativas à exportação/importação de serviço prestado + + + + + Grupo de informações do DPS relativas à serviço de obra + + + + + Grupo de informações do DPS relativas à Evento + + + + + + Grupo de informações complementares disponível para todos os serviços prestados + + + + + + + + + + + Código do município onde o serviço foi prestado (tabela do IBGE) + + + + + Código do país onde o serviço foi prestado (Tabela de Países ISO) + + + + + + + + + + + Código de tributação nacional do ISSQN, nos termos da LC 116/2003, conforme aba MUN.INCID_INFO.SERV. do ANEXO I + Regra de formação - 6 dígitos numéricos sendo: 2 para Item (LC 116/2003), 2 para Subitem (LC 116/2003) e 2 para Desdobro Nacional + + + + + + Código de tributação municipal do ISSQN + + + + + Descrição completa do serviço prestado + + + + + Código NBS correspondente ao serviço prestado, seguindo a versão 2.0, conforme Anexo B + + + + + + Código interno do contribuinte + + + + + + + + + + + + Modo de Prestação: + 0 - Desconhecido (tipo não informado na nota de origem); + 1 - Transfronteiriço; + 2 - Consumo no Brasil; + 3 - Movimento Temporário de Pessoas Físicas; + 4 - Consumo no Exterior; + + + + + + + Vínculo entre as partes no negócio: + 0 - Sem vínculo com o Tomador/Prestador + 1 - Controlada; + 2 - Controladora; + 3 - Coligada; + 4 - Matriz; + 5 - Filial ou sucursal; + 6 - Outro vínculo; + 9 - Desconhecido (tipo não informado na nota de origem); + + + + + + Identifica a moeda da transação comercial + + + + + Valor do serviço prestado expresso em moeda estrangeira especificada em tpmoeda + + + + + + Mecanismo de apoio/fomento ao Comércio Exterior utilizado pelo prestador do serviço: + 00 - Desconhecido (tipo não informado na nota de origem); + 01 - Nenhum; + 02 - ACC - Adiantamento sobre Contrato de Câmbio – Redução a Zero do IR e do IOF; + 03 - ACE – Adiantamento sobre Cambiais Entregues - Redução a Zero do IR e do IOF; + 04 - BNDES-Exim Pós-Embarque – Serviços; + 05 - BNDES-Exim Pré-Embarque - Serviços; + 06 - FGE - Fundo de Garantia à Exportação; + 07 - PROEX - EQUALIZAÇÃO + 08 - PROEX - Financiamento; + + + + + + + Mecanismo de apoio/fomento ao Comércio Exterior utilizado pelo tomador do serviço: + 00 - Desconhecido (tipo não informado na nota de origem); + 01 - Nenhum; + 02 - Adm. Pública e Repr. Internacional; + 03 - Alugueis e Arrend. Mercantil de maquinas, equip., embarc. e aeronaves; + 04 - Arrendamento Mercantil de aeronave para empresa de transporte aéreo público; + 05 - Comissão a agentes externos na exportação; + 06 - Despesas de armazenagem, mov. e transporte de carga no exterior; + 07 - Eventos FIFA (subsidiária); + 08 - Eventos FIFA; + 09 - Fretes, arrendamentos de embarcações ou aeronaves e outros; + 10 - Material Aeronáutico; + 11 - Promoção de Bens no Exterior; + 12 - Promoção de Dest. Turísticos Brasileiros; + 13 - Promoção do Brasil no Exterior; + 14 - Promoção Serviços no Exterior; + 15 - RECINE; + 16 - RECOPA; + 17 - Registro e Manutenção de marcas, patentes e cultivares; + 18 - REICOMP; + 19 - REIDI; + 20 - REPENEC; + 21 - REPES; + 22 - RETAERO; + 23 - RETID; + 24 - Royalties, Assistência Técnica, Científica e Assemelhados; + 25 - Serviços de avaliação da conformidade vinculados aos Acordos da OMC; + 26 - ZPE; + + + + + + + Vínculo da Operação à Movimentação Temporária de Bens: + 0 - Desconhecido (tipo não informado na nota de origem); + 1 - Não; + 2 - Vinculada - Declaração de Importação; + 3 - Vinculada - Declaração de Exportação; + + + + + + Número da Declaração de Importação (DI/DSI/DA/DRI-E) averbado + + + + + Número do Registro de Exportação (RE) averbado + + + + + + Compartilhar as informações da NFS-e gerada a partir desta DPS com a Secretaria de Comércio Exterior: + 0 - Não enviar para o MDIC; + 1 - Enviar para o MDIC; + + + + + + + + + + + Descrição do evento Artístico, Cultural, Esportivo, etc + + + + + Data de início da atividade de evento. Ano, Mês e Dia (AAAA-MM-DD) + + + + + Data de fim da atividade de evento. Ano, Mês e Dia (AAAA-MM-DD) + + + + + + Identificação da Atividade de Evento (código identificador de evento determinado pela Administração Tributária Municipal) + + + + + Grupo de informações relativas ao endereço da atividade, evento ou local do serviço prestado + + + + + + + + + + + Inscrição imobiliária fiscal (código fornecido pela Prefeitura Municipal para a identificação da obra ou para fins de recolhimento do IPTU) + + + + + + + Número de identificação da obra. + Cadastro Nacional de Obras (CNO) ou Cadastro Específico do INSS (CEI). + + + + + + + Código do Cadastro Imobiliário Brasileiro - CIB. + + + + + + Grupo de informações do endereço da obra do serviço prestado + + + + + + + + + + + + + Identificador de Documento de Responsabilidade Técnica: ART, RRT, DRT, Outros. + + + + + + + Chave da nota, número identificador da nota, número do contrato ou outro identificador de documento emitido pelo prestador de serviços, que subsidia a emissão dessa nota pelo tomador do serviço ou intermediário (preenchimento obrigatório caso a nota esteja sendo emitida pelo Tomador ou intermediário do serviço). + + + + + + + Número do pedido/ordem de compra/ordem de serviço/projeto que autorize a prestação do serviço em operações B2B - Informação de interesse do tomador do serviço para controle e gestão da Negociação + + + + + + + Grupo de itens do pedido/ordem de compra/ordem de serviço/projeto + + + + + + + Informações complementares + + + + + + + + + + + + Número do item do pedido/ordem de compra/ordem de serviço/projeto - Identificação do número do item do pedido ou ordem de compra destacado e xPed + + + + + + + + + + + + Grupo de informações relativas aos valores do serviço prestado + + + + + + + Grupo de informações relativas aos descontos condicionados e incondicionados + + + + + + + Grupo de informações relativas ao valores para dedução/redução do valor da base de cálculo (valor do serviço) + + + + + + + Grupo de informações relacionados aos tributos relacionados ao serviço prestado + + + + + + + + + + + + Grupo de informações relacionados ao Imposto Sobre Serviços de Qualquer Natureza - ISSQN + + + + + + + Grupo de informações de outros tributos relacionados ao serviço prestado + + + + + + + Grupo de informações para totais aproximados dos tributos relacionados ao serviço prestado + + + + + + + + + + + Valor monetário recebido pelo intermediário do serviço (R$) + + + + + Valor dos serviços em R$ + + + + + + + + + + Valor monetário do desconto incondicionado (R$) + + + + + Valor monetário do desconto condicionado (R$) + + + + + + + + + + + + Valor percentual padrão para dedução/redução do valor do serviço + + + + + + + Valor monetário padrão para dedução/redução do valor do serviço + + + + + + + Grupo de informações de documento utilizado para Dedução/Redução do valor do serviço + + + + + + + + + + + + + Grupo de informações de documento utilizado para Dedução/Redução do valor do serviço + + + + + + + + + + + + Chave de Acesso da NFS-e (Padrão Nacional) + + + + + Chave de Acesso da NF-e + + + + + Grupo de informações de Outras NFS-e (Padrão anterior de NFS-e) + + + + + Grupo de informações de NF ou NFS (Modelo não eletrônico) + + + + + Número de documento fiscal + + + + + Número de documento não fiscal + + + + + + + Identificação da Dedução/Redução: + 1 – Alimentação e bebidas/frigobar; + 2 – Materiais; + 3 - Produção Externa; + 4 - Reembolso de despesas; + 5 – Repasse consorciado; + 6 – Repasse plano de saúde; + 7 – Serviços; + 8 – Subempreitada de mão de obra; + 9 - Profissional parceiro; + 99 – Outras deduções; + + + + + + Descrição da Dedução/Redução quando a opção é "99 – Outras Deduções" + + + + + Data da emissão do documento dedutível. Ano, mês e dia (AAAA-MM-DD) + + + + + + Valor monetário total dedutível/redutível no documento informado (R$). + Este é o valor total no documento informado que é passível de dedução/redução. + + + + + + + Valor monetário utilizado para dedução/redução do valor do serviço da NFS-e que está sendo emitida (R$). + Deve ser menor ou igual ao valor deduzível/redutível (vDedutivelRedutivel). + + + + + + Grupo de informações do Fornecedor em Deduções de Serviços + + + + + + + + + + Código Município emissor da nota eletrônica municipal (Tabela do IBGE) + + + + + Número da nota eletrônica municipal + + + + + Código de Verificação da nota eletrônica municipal + + + + + + + + + + Número da Nota Fiscal NF ou NFS + + + + + Modelo da Nota Fiscal NF ou NFS + + + + + Série Nota Fiscal NF ou NFS + + + + + + + + + + + Tributação do ISSQN sobre o serviço prestado: + 1 - Operação tributável; + 2 - Imunidade; + 3 - Exportação de serviço; + 4 - Não Incidência; + + + + + + + Código do país onde se verficou o resultado da prestação do serviço para o caso de Exportação de Serviço.(Tabela de Países ISO) + + + + + + + Identificação da Imunidade do ISSQN – somente para o caso de Imunidade. + Tipos de Imunidades: + 0 - Imunidade (tipo não informado na nota de origem); + 1 - Patrimônio, renda ou serviços, uns dos outros (CF88, Art 150, VI, a); + 2 - Templos de qualquer culto (CF88, Art 150, VI, b); + 3 - Patrimônio, renda ou serviços dos partidos políticos, inclusive suas fundações, das entidades sindicais dos trabalhadores, das instituições de educação e de assistência social, sem fins lucrativos, atendidos os requisitos da lei (CF88, Art 150, VI, c); + 4 - Livros, jornais, periódicos e o papel destinado a sua impressão (CF88, Art 150, VI, d); + 5 - Fonogramas e videofonogramas musicais produzidos no Brasil contendo obras musicais ou literomusicais de autores brasileiros e/ou obras em geral interpretadas por artistas brasileiros bem como os suportes materiais ou arquivos digitais que os contenham, salvo na etapa de replicação industrial de mídias ópticas de leitura a laser. (CF88, Art 150, VI, e); + + + + + + + Informações para a suspensão da Exigibilidade do ISSQN + + + + + + + Tributação do ISSQN sobre o serviço prestado: + 1 - Operação tributável; + 2 - Exportação de serviço; + 3 - Não Incidência; + 4 - Imunidade; + + + + + + + Tipo de retencao do ISSQN: + 1 - Não Retido; + 2 - Retido pelo Tomador; + 3 - Retido pelo Intermediario; + + + + + + + Valor da alíquota (%) do serviço prestado relativo ao município sujeito ativo (município de incidência) do ISSQN. + Se o município de incidência pertence ao Sistema Nacional NFS-e a alíquota estará parametrizada e, portanto, será fornecida pelo sistema. + Se o município de incidência não pertence ao Sistema Nacional NFS-e a alíquota não estará parametrizada e, por isso, deverá ser fornecida pelo emitente. + + + + + + + + + + + + Identificador do benefício parametrizado pelo município. + + Trata-se de um identificador único que foi gerado pelo Sistema Nacional no momento em que o município de incidência do ISSQN incluiu o benefício no sistema. + + Critério de formação do número de identificação de parâmetros municipais: + 7 dígitos - posição 1 a 7: número identificador do Município, conforme código IBGE; + 2 dígitos - posições 8 e 9 : número identificador do tipo de parametrização (01-legislação, 02-regimes especiais, 03-retenções, 04-outros benefícios); + 5 dígitos - posição 10 a 14 : número sequencial definido pelo sistema quando do registro específico do parâmetro dentro do tipo de parametrização no sistema; + + + + + + + + Valor monetário informado pelo emitente para redução da base de cálculo (BC) do ISSQN devido a um Benefício Municipal (BM). + + + + + + + Valor percentual informado pelo emitente para redução da base de cálculo (BC) do ISSQN devido a um Benefício Municipal (BM). + + + + + + + + + + + + + Opção para Exigibilidade Suspensa: + 1 - Exigibilidade Suspensa por Decisão Judicial; + 2 - Exigibilidade Suspensa por Processo Administrativo; + + + + + + + Número do processo judicial ou administrativo de suspensão da exigibilidade + + + + + + + + + + + + Grupo de informações dos tributos PIS/COFINS + + + + + + + Valor monetário do CP(R$). + + + + + + + Valor monetário do IRRF (R$). + + + + + + + Valor monetário do CSLL (R$). + + + + + + + + + + + + Código de Situação Tributária do PIS/COFINS (CST): + 00 - Nenhum; + 01 - Operação Tributável com Alíquota Básica; + 02 - Operação Tributável com Alíquota Diferenciada; + 03 - Operação Tributável com Alíquota por Unidade de Medida de Produto; + 04 - Operação Tributável monofásica - Revenda a Alíquota Zero; + 05 - Operação Tributável por Substituição Tributária; + 06 - Operação Tributável a Alíquota Zero; + 07 - Operação Isenta da 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; + 50 - Operação com Direito a Crédito – Vinculada Exclusivamente a Receita Tributada no Mercado Interno; + 51 - Operação com Direito a Crédito – Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno; + 52 - Operação com Direito a Crédito – Vinculada Exclusivamente a Receita de Exportação; + 53 - Operação com Direito a Crédito – Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno; + 54 - Operação com Direito a Crédito – Vinculada a Receitas Tributadas no Mercado Interno e de Exportação; + 55 - Operação com Direito a Crédito – Vinculada a Receitas Não Tributadas no Mercado Interno e de Exportação; + 56 - Operação com Direito a Crédito – Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno e de Exportação; + 60 - Crédito Presumido – Operação de Aquisição Vinculada Exclusivamente a Receita Tributada no Mercado Interno; + 61 - Crédito Presumido – Operação de Aquisição Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno; + 62 - Crédito Presumido – Operação de Aquisição Vinculada Exclusivamente a Receita de Exportação; + 63 - Crédito Presumido – Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno; + 64 - Crédito Presumido – Operação de Aquisição Vinculada a Receitas Tributadas no Mercado Interno e de Exportação; + 65 - Crédito Presumido – Operação de Aquisição Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação; + 66 - Crédito Presumido – Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno e de Exportação; + 67 - Crédito Presumido – Outras Operações; + 70 - Operação de Aquisição sem Direito a Crédito; + 71 - Operação de Aquisição com Isenção; + 72 - Operação de Aquisição com Suspensão; + 73 - Operação de Aquisição a Alíquota Zero; + 74 - Operação de Aquisição sem Incidência da Contribuição; + 75 - Operação de Aquisição por Substituição Tributária; + 98 - Outras Operações de Entrada; + 99 - Outras Operações; + + + + + + + Valor da Base de Cálculo do PIS/COFINS, relativo à apuração própria (R$). + + + + + + + Alíquota do PIS, relativa à apuração própria (%). + + + + + + + Alíquota da COFINS, relativa à apuração própria (%). + + + + + + + Valor do débito de PIS apuração própria (R$). + + + + + + + Valor do débito de COFINS apuração própria (R$). + + + + + + + Tipo de retenção do PIS/COFINS: + 0 - PIS/COFINS/CSLL Não Retidos; + 1 - PIS/COFINS Retidos; + 2 - PIS/COFINS Não Retidos; + 3 - PIS/COFINS/CSLL Retidos; + 4 - PIS/COFINS Retidos, CSLL Não Retido; + 5 - PIS Retido, COFINS/CSLL Não Retido; + 6 - COFINS Retido, PIS/CSLL Não Retido; + 7 - PIS Não Retido, COFINS/CSLL Retidos; + 8 - PIS/COFINS Não Retidos, CSLL Retido; + 9 - COFINS Não Retido, PIS/CSLL Retidos; + + + + + + + + + + + + + Valor monetário total aproximado dos tributos, em conformidade com o artigo 1o da Lei no 12.741/2012 + + + + + + + Valor percentual total aproximado dos tributos, em conformidade com o artigo 1o da Lei no 12.741/2012 + + + + + + + Indicador de informação de valor total de tributos. Possui valor fixo igual a zero (indTotTrib=0). + Não informar nenhum valor estimado para os Tributos (Decreto 8.264/2014). + 0 - Não; + + + + + + + Valor percentual aproximado do total dos tributos da alíquota do Simples Nacional (%) + + + + + + + + + + + + + Valor monetário total aproximado dos tributos federais (R$). + + + + + + + Valor monetário total aproximado dos tributos estaduais (R$). + + + + + + + Valor monetário total aproximado dos tributos municipais (R$). + + + + + + + + + + + + Valor percentual total aproximado dos tributos federais (%). + + + + + + + Valor percentual total aproximado dos tributos estaduais (%). + + + + + + + Valor percentual total aproximado dos tributos municipais (%). + + + + + + + + + + + + Indicador da finalidade da emissão de NFS-e + + + + + + + Indica operação de uso ou consumo pessoal (art. 57) + + + + + + + Código indicador da operação de fornecimento, conforme tabela "código indicador de operação" + + + + + + + Tipo de Operação com Entes Governamentais ou outros serviços sobre bens imóveis + + + + + + + Grupo de NFS-e referenciadas + + + + + + + Tipo de ente governamental + + + + + + + A respeito do Destinatário dos serviços + + + + + + + Grupo de informações relativas ao Destinatário + + + + + + + Grupo de informações de operações relacionadas a bens imóveis, exceto obras + + + + + + + Grupo de informações relativas aos valores do serviço prestado para IBS e CBS + + + + + + + + + + + + Chave da NFS-e referenciada + + + + + + + + + + + + + Número da inscrição no Cadastro Nacional de Pessoa Jurídica (CNPJ) do Destinatário do serviço + + + + + + + Número da inscrição no Cadastro de Pessoa Física (CPF) do Destinatário do serviço + + + + + + + Número de Identificação Fiscal fornecido por órgão de administração tributária no exterior + + + + + + + Motivo para não informação do NIF: + 0 - Não informado na nota de origem; + 1 - Dispensado do NIF; + 2 - Não exigência do NIF; + + + + + + + + Nome / Nome Empresarial do do Destinatário do serviço + + + + + + + Grupo de informações do endereço do Destinatário do serviço + + + + + + + Número do telefone do Destinatário do serviço + (Preencher com o Código DDD + número do telefone. Nas operações com exterior é permitido informar o + código do país + código da localidade + número do telefone) + + + + + + E-mail do Destinatário do serviço + + + + + + + + + + + Inscrição imobiliária fiscal (código fornecido pela Prefeitura Municipal para a identificação da obra ou para fins de recolhimento do IPTU) + + + + + + + + Código do Cadastro Imobiliário Brasileiro - CIB + + + + + + + Grupo de informações do endereço da obra do serviço prestado + + + + + + + + + + + + + Grupo de informações relativas a valores incluídos neste documento e recebidos por motivo de estarem relacionadas + a operações de terceiros, objeto de reembolso, repasse ou ressarcimento pelo recebedor, já tributados e aqui referenciados + + + + + + + Grupo de informações relacionados aos tributos IBS e CBS + + + + + + + + + + + + Grupo relativo aos documentos referenciados nos casos de reembolso, repasse e ressarcimento que serão + considerados na base de cálculo do ISSQN, do IBS e da CBS + + + + + + + + + + + + Grupo de informações relacionadas ao IBS e à CBS + + + + + + + + + + + + + Grupo de informações de documentos fiscais eletrônicos que se encontram no repositório nacional + + + + + + + Grupo de informações de documento fiscais, eletrônicos ou não, que não se encontram no repositório nacional + + + + + + + Grupo de informações de documento não fiscal. + + + + + + + + Grupo de informações do fornecedor do documento referenciado + + + + + + + Data da emissão do documento dedutível + Ano, mês e dia (AAAA-MM-DD) + + + + + + + Data da competência do documento dedutível + Ano, mês e dia (AAAA-MM-DD) + + + + + + + Tipo de valor incluído neste documento, recebido por motivo de estarem relacionadas a operações de terceiros, + objeto de reembolso, repasse ou ressarcimento pelo recebedor, já tributados e aqui referenciados + + + + + + + Descrição do reembolso ou ressarcimento quando a opção é + "99 – Outros reembolsos ou ressarcimentos recebidos por valores pagos relativos a operações por conta e ordem de terceiro" + + + + + + + Valor monetário (total ou parcial, conforme documento informado) utilizado para não inclusão na base de cálculo + do ISS e do IBS e da CBS da NFS-e que está sendo emitida (R$) + + + + + + + + + + + + Documento fiscal a que se refere a chaveDfe que seja um dos documentos do Repositório Nacional + + + + + + + Descrição da DF-e a que se refere a chaveDfe que seja um dos documentos do Repositório Nacional + Deve ser preenchido apenas quando "tipoChaveDFe = 9 (Outro)" + + + + + + + Chave do Documento Fiscal eletrônico do repositório nacional referenciado para os casos de operações já tributadas + + + + + + + + + + + + Código do município emissor do documento fiscal que não se encontra no repositório nacional + + + + + + + Número do documento fiscal que não se encontra no repositório nacional + + + + + + + Descrição do documento fiscal + + + + + + + + + + + + Número do documento não fiscal + + + + + + + Descrição do documento não fiscal + + + + + + + + + + + + + Número da inscrição no Cadastro Nacional de Pessoa Jurídica (CNPJ) do Fornecedor do serviço + + + + + + + Número da inscrição no Cadastro de Pessoa Física (CPF) do Fornecedor do serviço + + + + + + + Este elemento só deverá ser preenchido para fornecedores não residentes no Brasil + + + + + + + Motivo para não informação do NIF: + 0 - Não informado na nota de origem; + 1 - Dispensado do NIF; + 2 - Não exigência do NIF; + + + + + + + + Nome / Razão Social do do Fornecedor do serviço + + + + + + + + + + + + Código de Situação Tributária do IBS e da CBS + + + + + + + Código de Classificação Tributária do IBS e da CBS + + + + + + + Código e Classificação do Crédito Presumido: IBS e CBS + + + + + + + Grupo de informações da Tributação Regular + + + + + + + Grupo de informações relacionadas ao diferimento para IBS e CBS + + + + + + + + + + + + Código de Situação Tributária do IBS e da CBS de tributação regular + + + + + + + Código da Classificação Tributária do IBS e da CBS de tributação regular + + + + + + + + + + + + Percentual de diferimento para o IBS estadual + + + + + + + Percentual de diferimento para o IBS municipal + + + + + + + Percentual de diferimento para a CBS + + + + + + \ No newline at end of file diff --git a/nfelib/nfse/schemas/v1_01/tiposEventos_v1.01.xsd b/nfelib/nfse/schemas/v1_01/tiposEventos_v1.01.xsd new file mode 100644 index 00000000..52c1ef93 --- /dev/null +++ b/nfelib/nfse/schemas/v1_01/tiposEventos_v1.01.xsd @@ -0,0 +1,780 @@ + + + + + + + + + + + + + + + + + + + Versão do aplicativo que gerou o evento + + + + + + Ambiente gerador do evento: + 1 - Sistema próprio do município; + 2 - Sefin Nacional NFS-e; + 3 - ADN NFS-e; + + + + + + + Número sequencial do evento para o mesmo tipo de evento. + Para os eventos que ocorrem somente uma vez, como é o caso do cancelamento, o nSeqEvento = 001. + Para os eventos que possam existir mais de um evento do mesmo tipo o ambiente gerador deverá numerar de forma sequencial. + + + + + + + Data/Hora do registro do evento. + Data e hora no formato UTC (Universal Coordinated Time): AAAA-MM-DDThh:mm:ssTZD + + + + + + Número sequencial do documento gerado por ambiente gerador de DFSe do município + + + + + Leiaute do pedido de registro do evento gerado pelo autor do evento + + + + + + + + + + + + + + + + + + + + + + Tipo de ambiente: + 1 - Produção; + 2 - Homologação; + + + + + + Versão do aplicativo que gerou o pedido de registro de evento + + + + + + Data e hora do evento no formato AAAA-MM-DDThh:mm:ssTZD (UTC - Universal Coordinated Time, onde TZD pode ser -02:00 (Fernando de Noronha), -03:00 (Brasília) ou -04:00 (Manaus), no horário de verão serão -01:00, -02:00 e -03:00. Ex.: 2010-08-19T13:00:15-03:00. + + + + + + Identificação do Autor do Pedido de Evento + + + + + Número de inscrição federal (CNPJ) do autor do evento. + CNPJ do autor do evento (parte interessada ou pessoa que figure na NFS-e. + O autor do evento não é o procurador) + + + + + + + Número de inscrição federal (CPF) do autor do evento. + CPF do autor do evento (parte interessada ou pessoa que figure na NFS-e como prestador, tomador, intermediário. + O autor do evento poderá ser o procurador) + + + + + + + Identificador da NFS-e à qual o evento será vinculado + + + + + + Evento de cancelamento + + + + + Evento de cancelamento por substituição + + + + + Solicitação de Análise Fiscal para Cancelamento de NFS-e + + + + + Cancelamento de NFS-e Deferido por Análise Fiscal + + + + + Cancelamento de NFS-e Indeferido por Análise Fiscal + + + + + + Confirmação do Prestador + + + + + Confirmação do Tomador + + + + + Confirmação do Intermediário + + + + + Confirmação Tácita + + + + + Rejeição do Prestador + + + + + Rejeição do Tomador + + + + + Rejeição do Intermediário + + + + + Anulação da Rejeição + + + + + + Cancelamento de NFS-e por Ofício + + + + + Bloqueio de NFS-e por Ofício + + + + + Desbloqueio de NFS-e por Ofício + + + + + + + + + + + + + + Descrição do Evento: Descrição do evento: "Cancelamento de NFS-e". + + + + + + + + + + + + + Código de justificativa de cancelamento: + 1 - Erro na Emissão; + 2 - Serviço não Prestado; + 9 - Outros; + + + + + + Descrição para explicitar o motivo indicado neste evento + + + + + + + + + + + + Descrição do Evento: Descrição do evento: "Cancelamento de NFS-e por Substituição". + + + + + + + + + + + + + Código de justificativa de cancelamento substituição: + 01 - Desenquadramento de NFS-e do Simples Nacional; + 02 - Enquadramento de NFS-e no Simples Nacional; + 03 - Inclusão Retroativa de Imunidade/Isenção para NFS-e; + 04 - Exclusão Retroativa de Imunidade/Isenção para NFS-e; + 05 - Rejeição de NFS-e pelo tomador ou pelo intermediário se responsável pelo recolhimento do tributo; + 99 - Outros; + Obtido do campo da DPS "DPS/infDPS/subst/cMotivo" + + + + + + + Descrição para explicitar o motivo indicado neste evento. + Obtido do campo da DPS "DPS/infDPS/subst/xMotivo". + + + + + + Chave de Acesso da NFS-e substituta + + + + + + + + + + + + Descrição do evento: "Solicitação de Análise Fiscal para Cancelamento de NFS-e" + + + + + + + + + + + + + Código do motivo da solicitação de análise fiscal para cancelamento de NFS-e: + 1 - Erro na Emissão; + 2 - Serviço não Prestado; + 9 - Outros; + + + + + + + Descrição para explicitar o motivo indicado neste evento + + + + + + + + + + + + + Descrição do evento: "Cancelamento de NFS-e Deferido por Análise Fiscal" + + + + + + + + + + + + + CPF do agente da administração tributária municipal que efetuou o deferimento da solicitação de análise fiscal para cancelamento de NFS-e. + + + + + + + Número do processo administrativo municipal vinculado à solicitação de análise fiscal para cancelamento de NFS-e. + + + + + + + Resposta da solicitação de análise fiscal para cancelamento de NFS-e: + 1 - Cancelamento de NFS-e Deferido. + + + + + + + Descrição para explicitar o motivo indicado neste evento + + + + + + + + + + + + + Descrição do evento: "Cancelamento de NFS-e Indeferido por Análise Fiscal". + + + + + + + + + + + + + CPF do agente da administração tributária municipal que efetuou o indeferimento da solicitação de análise fiscal para cancelamento de NFS-e. + + + + + + + Número do processo administrativo municipal vinculado à solicitação de análise fiscal para cancelamento de NFS-e. + + + + + + + Resposta da solicitação de análise fiscal para cancelamento de NFS-e: + 1 - Cancelamento de NFS-e Indeferido; + 2 - Cancelamento de NFS-e Indeferido Sem Análise de Mérito. + + + + + + + Descrição para explicitar o motivo indicado neste evento + + + + + + + + + + + + + Descrição do evento: "Manifestação de NFS-e - Confirmação do Prestador". + + + + + + + + + + + + + + + + + + + Descrição do evento: "Manifestação de NFS-e - Confirmação do Tomador". + + + + + + + + + + + + + + + + + + + Descrição do evento: "Manifestação de NFS-e - Confirmação do Intermediário". + + + + + + + + + + + + + + + + + + + Descrição do evento: "Manifestação de NFS-e - Confirmação Tácita". + + + + + + + + + + + + + + + + + + + Descrição do evento: "Manifestação de NFS-e - Rejeição do Prestador". + + + + + + + + + + + + + Motivo da Rejeição da NFS-e: + 1 - NFS-e em duplicidade; + 2 - NFS-e já emitida pelo tomador; + 3 - Não ocorrência do fato gerador; + 4 - Erro quanto a responsabilidade tributária; + 5 - Erro quanto ao valor do serviço, valor das deduções ou serviço prestado ou data do fato gerador; + 9 - Outros; + + + + + + + Descrição para explicitar o motivo indicado neste evento + + + + + + + + + + + + + Descrição do evento: "Manifestação de NFS-e - Rejeição do Tomador". + + + + + + + + + + + + + Motivo da Rejeição da NFS-e: + 1 - NFS-e em duplicidade; + 2 - NFS-e já emitida pelo tomador; + 3 - Não ocorrência do fato gerador; + 4 - Erro quanto a responsabilidade tributária; + 5 - Erro quanto ao valor do serviço, valor das deduções ou serviço prestado ou data do fato gerador; + 9 - Outros; + + + + + + + Descrição para explicitar o motivo indicado neste evento + + + + + + + + + + + + + Descrição do evento: "Manifestação de NFS-e - Rejeição do Intermediário". + + + + + + + + + + + + + Motivo da Rejeição da NFS-e: + 1 - NFS-e em duplicidade; + 2 - NFS-e já emitida pelo tomador; + 3 - Não ocorrência do fato gerador; + 4 - Erro quanto a responsabilidade tributária; + 5 - Erro quanto ao valor do serviço, valor das deduções ou serviço prestado ou data do fato gerador; + 9 - Outros; + + + + + + + Descrição para explicitar o motivo indicado neste evento + + + + + + + + + + + + + Descrição do evento: "Manifestação de NFS-e - Anulação da Rejeição". + + + + + + + + + + + + + CPF do agente da administração tributária municipal que efetuou o anulação da manifestação de rejeição da NFS-e + + + + + + + Referência ao "id" do Evento de Manifestação de NFS-e - Rejeição, que originou o presente evento de anulação + + + + + + + Descrição para explicitar o motivo indicado neste evento + + + + + + + + + + + + + Descrição do evento: "Cancelamento de NFS-e por Ofício" + + + + + + + + + + + + + CPF do agente da administração tributária municipal que efetuou o cancelamento por ofício de NFS-e + + + + + + + Número do processo administrativo municipal vinculado ao cancelamento de NFS-e por ofício + + + + + + + Descrição para explicitar o motivo do processo administrativo municipal indicado neste evento + + + + + + + + + + + + + Descrição do evento: "Bloqueio de NFS-e por Ofício". + + + + + + + + + + + + + CPF do agente da administração tributária municipal que efetuou o bloqueio de NFS-e por ofício + + + + + + + Eventos que podem ser escolhidos pelo município emissor para serem rejeitados após emissão e vinculação do evento de bloqueio por ofício em uma NFS-e: + e101101 - Cancelamento de NFS-e; + e105102 - Cancelamento de NFS-e por Substituição; + e105104 - Cancelamento de NFS-e Deferido por Análise Fiscal; + e105105 - Cancelamento de NFS-e Indeferido por Análise Fiscal; + e305101 - Cancelamento de NFS-e por Ofício; + + + + + + + Descrição para explicitar o motivo indicado neste evento + + + + + + + + + + + + + Descrição do evento: "Desbloqueio de NFS-e por Ofício". + + + + + + + + + + + + + CPF do agente da administração tributária municipal que efetuou o desbloqueio de NFS-e por ofício + + + + + + + Referência ao "id" do "Bloqueio de ofício" que originou o presente evento de desbloqueio + + + + + + \ No newline at end of file diff --git a/nfelib/nfse/schemas/v1_01/tiposSimples_v1.01.xsd b/nfelib/nfse/schemas/v1_01/tiposSimples_v1.01.xsd new file mode 100644 index 00000000..9f9cdfdc --- /dev/null +++ b/nfelib/nfse/schemas/v1_01/tiposSimples_v1.01.xsd @@ -0,0 +1,1844 @@ + + + + + Tipo Versão da NF-e - 1.00|1.01 + + + + + + + + + + Tipo string genérico + + + + + + + + + Tipo string genérico + + + + + + + + + + Informar o identificador precedido do literal ‘NFS’. A regra de formação do identificador de 53 posições da NFS-e é: + "NFS" + Cód.Mun.(7) + Amb.Ger.(1) + Tipo de Inscrição Federal(1) + Inscrição Federal(14) + No.NFS-e(13) + AnoMes Emis.(4) + Cód.Num.(9) + DV(1) + + + + + + + + + + + + Informar o identificador precedido do literal ‘DPS’. A regra de formação do identificador de 45 posições da DPS é: + "DPS" + Cód.Mun (7) + Tipo de Inscrição Federal (1) + Inscrição Federal (14 - CPF completar com 000 à esquerda) + Série DPS (5)+ Núm. DPS (15) + + + + + + + + + + + + Tipos de ambiente do Sistema Nacional NFS-e: + 1 - Produção; + 2 - Homologação; + + + + + + + + + + + + Tipo Ambiente Gerador de NFS-e: + 1 - Prefeitura; + 2 - Sistema Nacional da NFS-e; + + + + + + + + + + + + Tipo Ambiente gerador do evento: + 1- Prefeitura; + 2- Sefin Nacional; + 3- Ambiente Nacional. + + + + + + + + + + + + + Tipo de emissão da NFS-e: + 1 - Emissão normal no modelo da NFS-e Nacional; + 2 - Emissão original em leiaute próprio do município com transcrição para o modelo da NFS-e Nacional. + + + + + + + + + + + + Processo de Emissão da DPS: + 1 - Emissão com aplicativo do contribuinte (via Web Service); + 2 - Emissão com aplicativo disponibilizado pelo fisco (Web); + 3 - Emissão com aplicativo disponibilizado pelo fisco (App); + + + + + + + + + + + + Tipo data no formato AAAA-MM-DD + + + + + + + + + Data e Hora, formato UTC (AAAA-MM-DDThh:mm:ssTZD, onde TZD = +hh:mm ou -hh:mm) + + + + + + + + + Tipo Versão do Aplicativo que gerou o documento fiscal + + + + + + + + + + + + + + + + + Emitente da DPS: + 1 - Prestador + 2 - Tomador + 3 - Intermediário + + + + + + + + + + + + + Motivo da Emissão da DPS pelo Tomador/Intermediário: + 1 - Importação de Serviço; + 2 - Tomador/Intermediário obrigado a emitir NFS-e por legislação municipal; + 3 - Tomador/Intermediário emitindo NFS-e por recusa de emissão pelo prestador; + 4 - Tomador/Intermediário emitindo por rejeitar a NFS-e emitida pelo prestador; + + + + + + + + + + + + + Tipo Chave da Nota Fiscal de Serviço Eletrônica + + + + + + + + + + Tipo Chave da Nota Fiscal Eletrônica - NF-e + + + + + + + + + + + Código de justificativa de cancelamento: + 1 - Erro na Emissão; + 2 - Serviço não Prestado; + 9 - Outros; + + + + + + + + + + + + + Código de justificativa para substituição de NFS-e: + 01 - Desenquadramento de NFS-e do Simples Nacional; + 02 - Enquadramento de NFS-e no Simples Nacional; + 03 - Inclusão Retroativa de Imunidade/Isenção para NFS-e; + 04 - Exclusão Retroativa de Imunidade/Isenção para NFS-e; + 05 - Rejeição de NFS-e pelo tomador ou pelo intermediário se responsável pelo recolhimento do tributo; + 99 - Outros; + + + + + + + + + + + + + + + + Código do motivo da solicitação de análise fiscal para cancelamento de NFS-e: + 1 - Erro na Emissão; + 2 - Serviço não Prestado; + 3 - Outros. + + + + + + + + + + + + + Motivo da Rejeição da NFS-e: + 1 - NFS-e em duplicidade; + 2 - NFS-e já emitida pelo tomador; + 3 - Não ocorrência do fato gerador; + 4 - Erro quanto a responsabilidade tributária; + 5 - Erro quanto ao valor do serviço, valor das deduções ou serviço prestado ou data do fato gerador; + 9 - Outros; + + + + + + + + + + + + + + + + Resposta da análise da solicitação do cancelamento extemporâneo de NFS-e: + 1 - Cancelamento Extemporâneo Deferido. + + + + + + + + + + + Resposta da análise da solicitação do cancelamento extemporâneo de NFS-e: + 1 - Cancelamento Extemporâneo Indeferido; + 2 - Cancelamento Extemporâneo Indeferido Sem Análise de Mérito. + + + + + + + + + + + Número do processo administrativo municipal vinculado à solicitação de cancelamento extemporâneo de NFS-e. + + + + + + + + + + + + Tipo do autor da manifestação da NFS-e: + 1 - Prestador; + 2 - Tomador; + 3 - Intermediário. + + + + + + + + + + + + Descrição do motivo da substituição da NFS-e + + + + + + + + + Tipo Número do CNPJ + + + + + + + + + + Tipo Número do CPF + + + + + + + + + + Tipo Número do CAEPF + + + + + + + + + + + + + + + + + + Motivo para não informação do NIF: + 0 - Não informado na nota de origem; + 1 - Dispensado do NIF; + 2 - Não exigência do NIF; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Logradouro + + + + + + + + + Número + + + + + + + + + Complemento + + + + + + + + + Bairro + + + + + + + + + Tipo Sigla da UF + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CEP + + + + + + + + + Código de enderaçamento postal + + + + + + + + + + Cidade + + + + + + + + + + Estado, província ou região + + + + + + + + + + + + + + + + + + Número do telefone do prestador: + Preencher com o Código DDD + número do telefone. + Nas operações com exterior é permitido informar o código do país + código da localidade + número do telefone + + + + + + + + + + + + + + + + + Código de tributação municipal do ISSQN + + + + + + + + + Tipo com código que identifica a moeda conforme tabela do BACEN + + + + + + + + + + + Modo de Prestação: + 0 - Desconhecido (tipo não informado na nota de origem); + 1 - Transfronteiriço; + 2 - Consumo no Brasil; + 3 - Presença Comercial no Exterior; + 4 - Movimento Temporário de Pessoas Físicas; + + + + + + + + + + + + + + + Vínculo entre as partes no negócio: + 0 - Sem vínculo com o Tomador/Prestador + 1 - Controlada; + 2 - Controladora; + 3 - Coligada; + 4 - Matriz; + 5 - Filial ou sucursal; + 6 - Outro vínculo; + 9 - Desconhecido (tipo não informado na nota de origem); + + + + + + + + + + + + + + + + + + Mecanismo de apoio/fomento ao Comércio Exterior utilizado pelo prestador do serviço: + 00 - Desconhecido (tipo não informado na nota de origem); + 01 - Nenhum; + 02 - ACC - Adiantamento sobre Contrato de Câmbio – Redução a Zero do IR e do IOF; + 03 - ACE – Adiantamento sobre Cambiais Entregues - Redução a Zero do IR e do IOF; + 04 - BNDES-Exim Pós-Embarque – Serviços; + 05 - BNDES-Exim Pré-Embarque - Serviços; + 06 - FGE - Fundo de Garantia à Exportação; + 07 - PROEX - EQUALIZAÇÃO + 08 - PROEX - Financiamento; + + + + + + + + + + + + + + + + + + + Mecanismo de apoio/fomento ao Comércio Exterior utilizado pelo tomador do serviço: + 00 - Desconhecido (tipo não informado na nota de origem); + 01 - Nenhum; + 02 - Adm. Pública e Repr. Internacional; + 03 - Alugueis e Arrend. Mercantil de maquinas, equip., embarc. e aeronaves; + 04 - Arrendamento Mercantil de aeronave para empresa de transporte aéreo público; + 05 - Comissão a agentes externos na exportação; + 06 - Despesas de armazenagem, mov. e transporte de carga no exterior; + 07 - Eventos FIFA (subsidiária); + 08 - Eventos FIFA; + 09 - Fretes, arrendamentos de embarcações ou aeronaves e outros; + 10 - Material Aeronáutico; + 11 - Promoção de Bens no Exterior; + 12 - Promoção de Dest. Turísticos Brasileiros; + 13 - Promoção do Brasil no Exterior; + 14 - Promoção Serviços no Exterior; + 15 - RECINE; + 16 - RECOPA; + 17 - Registro e Manutenção de marcas, patentes e cultivares; + 18 - REICOMP; + 19 - REIDI; + 20 - REPENEC; + 21 - REPES; + 22 - RETAERO; + 23 - RETID; + 24 - Royalties, Assistência Técnica, Científica e Assemelhados; + 25 - Serviços de avaliação da conformidade vinculados aos Acordos da OMC; + 26 - ZPE; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Vínculo da Operação à Movimentação Temporária de Bens: + 0 - Desconhecido (tipo não informado na nota de origem); + 1 - Não; + 2 - Vinculada - Declaração de Importação; + 3 - Vinculada - Declaração de Exportação; + + + + + + + + + + + + + + Categorias de veículos para cobrança: + 00 - Categoria de veículos (tipo não informado na nota de origem) + 01 - Automóvel, caminhonete e furgão; + 02 - Caminhão leve, ônibus, caminhão trator e furgão; + 03 - Automóvel e caminhonete com semireboque; + 04 - Caminhão, caminhão-trator, caminhão-trator com semi-reboque e ônibus; + 05 - Automóvel e caminhonete com reboque; + 06 - Caminhão com reboque; + 07 - Caminhão trator com semi-reboque; + 08 - Motocicletas, motonetas e bicicletas motorizadas; + 09 - Veículo especial; + 10 - Veículo Isento; + + + + + + + + + + + + + + + + + + + + Número da Declaração de Importação (DI/DSI/DA/DRI-E) averbado + + + + + + + + + Número do Registro de Exportação (RE) averbado + + + + + + + + + + Compartilhar as informações da NFS-e gerada a partir desta DPS com a Secretaria de Comércio Exterior: + 0 - Não enviar para o MDIC; + 1 - Enviar para o MDIC; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Número de eixos para fins de cobrança + + + + + + + + + + Tipo de rodagem: + 1 - Simples; + 2 - Dupla; + + + + + + + + + + + Orientação de passagem do veículo: ângulo em graus a partir do norte geográfico em sentido horário, número inteiro de 0 a 359, onde 0º seria o norte, 90º o leste, 180º o sul, 270º o oeste. Precisão mínima de 10 + + + + + + + + + Identificação da Atividade de Evento (código identificador de evento determinado pela Administração Tributária Municipal) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Identificação da Dedução/Redução: + 1 – Alimentação e bebidas/frigobar; + 2 – Materiais; + 3 - Produção Externa; + 4 - Reembolso de despesas; + 5 – Repasse consorciado; + 6 – Repasse plano de saúde; + 7 – Serviços; + 8 – Subempreitada de mão de obra; + 9 - Profissional parceiro; + 99 – Outras deduções; + + + + + + + + + + + + + + + + + + + Descrição da Dedução/Redução quando a opção é "99 – Outras Deduções" + + + + + + + + + + + Identificador do benefício parametrizado pelo município. + + Trata-se de um identificador único que foi gerado pelo Sistema Nacional no momento em que o município de incidência do ISSQN incluiu o benefício no sistema. + + Critério de formação do número de identificação de parâmetros municipais: + 7 dígitos - posição 1 a 7: número identificador do Município, conforme código IBGE; + 2 dígitos - posições 8 e 9 : número identificador do tipo de parametrização (01-legislação, 02-regimes especiais, 03-retenções, 04-outros benefícios); + 5 dígitos - posição 10 a 14 : número sequencial definido pelo sistema quando do registro específico do parâmetro dentro do tipo de parametrização no sistema; + + + + + + + + + + Opção para Exigibilidade Suspensa: + 1 - Exigibilidade Suspensa por Decisão Judicial; + 2 - Exigibilidade Suspensa por Processo Administrativo; + + + + + + + + + + + Número do processo judicial ou administrativo de suspensão da exigibilidade + + + + + + + + + Situação perante o Simples Nacional: + 1 - Não Optante; + 2 - Optante - Microempreendedor Individual (MEI); + 3 - Optante - Microempresa ou Empresa de Pequeno Porte (ME/EPP); + + + + + + + + + + + + + Opção para que o contribuinte optante pelo Simples Nacional ME/EPP (opSimpNac = 3) possa indicar, ao emitir o documento fiscal, em qual regime de apuração os tributos federais e municipal estão inseridos, caso tenha ultrapassado algum sublimite ou limite definido para o Simples Nacional. + 1 – Regime de apuração dos tributos federais e municipal pelo SN; + 2 – Regime de apuração dos tributos federais pelo SN e ISSQN por fora do SN conforme respectiva legislação municipal do tributo; + 3 – Regime de apuração dos tributos federais e municipal por fora do SN conforme respectivas legislações federal e municipal de cada tributo; + + + + + + + + + + + + + Opção que indica se o limite do Simples Nacional foi ultrapassado: + 0 - Não ultrapassado; + 1 - Ultrapassado; + + + + + + + + + + + + Tipos de Regimes Especiais de Tributação: + 0 - Nenhum; + 1 - Ato Cooperado (Cooperativa); + 2 - Estimativa; + 3 - Microempresa Municipal; + 4 - Notário ou Registrador; + 5 - Profissional Autônomo; + 6 - Sociedade de Profissionais; + 9 - Outros; + + + + + + + + + + + + + + + + + + Tributação do ISSQN sobre o serviço prestado: + 1 - Operação tributável; + 2 - Imunidade; + 3 - Exportação de serviço; + 4 - Não Incidência; + + + + + + + + + + + + + + Número do processo judicial ou administrativo de suspensão da exigibilidade. + + + + + + + + + + + + Identificação da Imunidade do ISSQN – somente para o caso de Imunidade. + + Tipos de Imunidades: + + 0 - Imunidade (tipo não informado na nota de origem); + 1 - Patrimônio, renda ou serviços, uns dos outros (CF88, Art 150, VI, a); + 2 - Templos de qualquer culto (CF88, Art 150, VI, b); + 3 - Patrimônio, renda ou serviços dos partidos políticos, inclusive suas fundações, das entidades sindicais dos trabalhadores, das instituições de educação e de assistência social, sem fins lucrativos, atendidos os requisitos da lei (CF88, Art 150, VI, c); + 4 - Livros, jornais, periódicos e o papel destinado a sua impressão (CF88, Art 150, VI, d); + 5 - Fonogramas e videofonogramas musicais produzidos no Brasil contendo obras musicais ou literomusicais de autores brasileiros e/ou obras em geral interpretadas por artistas brasileiros bem como os suportes materiais ou arquivos digitais que os contenham, salvo na etapa de replicação industrial de mídias ópticas de leitura a laser. (CF88, Art 150, VI, e); + + + + + + + + + + + + + + + + Tipo de retencao do ISSQN: + 1 - Não Retido; + 2 - Retido pelo Tomador; + 3 - Retido pelo Intermediario; + + + + + + + + + + + + + Código de Situação Tributária do PIS/COFINS (CST): + 00 - Nenhum; + 01 - Operação Tributável com Alíquota Básica; + 02 - Operação Tributável com Alíquota Diferenciada; + 03 - Operação Tributável com Alíquota por Unidade de Medida de Produto; + 04 - Operação Tributável monofásica - Revenda a Alíquota Zero; + 05 - Operação Tributável por Substituição Tributária; + 06 - Operação Tributável a Alíquota Zero; + 07 - Operação Isenta da 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; + 50 - Operação com Direito a Crédito – Vinculada Exclusivamente a Receita Tributada no Mercado Interno; + 51 - Operação com Direito a Crédito – Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno; + 52 - Operação com Direito a Crédito – Vinculada Exclusivamente a Receita de Exportação; + 53 - Operação com Direito a Crédito – Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno; + 54 - Operação com Direito a Crédito – Vinculada a Receitas Tributadas no Mercado Interno e de Exportação; + 55 - Operação com Direito a Crédito – Vinculada a Receitas Não Tributadas no Mercado Interno e de Exportação; + 56 - Operação com Direito a Crédito – Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno e de Exportação; + 60 - Crédito Presumido – Operação de Aquisição Vinculada Exclusivamente a Receita Tributada no Mercado Interno; + 61 - Crédito Presumido – Operação de Aquisição Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno; + 62 - Crédito Presumido – Operação de Aquisição Vinculada Exclusivamente a Receita de Exportação; + 63 - Crédito Presumido – Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno; + 64 - Crédito Presumido – Operação de Aquisição Vinculada a Receitas Tributadas no Mercado Interno e de Exportação; + 65 - Crédito Presumido – Operação de Aquisição Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação; + 66 - Crédito Presumido – Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno e de Exportação; + 67 - Crédito Presumido – Outras Operações; + 70 - Operação de Aquisição sem Direito a Crédito; + 71 - Operação de Aquisição com Isenção; + 72 - Operação de Aquisição com Suspensão; + 73 - Operação de Aquisição a Alíquota Zero; + 74 - Operação de Aquisição sem Incidência da Contribuição; + 75 - Operação de Aquisição por Substituição Tributária; + 98 - Outras Operações de Entrada; + 99 - Outras Operações; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Opção para que o emitente informe onde ocorreu o consumo do serviço prestado. + 0 - Consumo do serviço prestado ocorrido no município do local da prestação; + 1 - Consumo do serviço prestado ocorrido ocorrido no exterior ; + + + + + + + + + + + + Tipo de retencao do Pis/Cofins: + 0 - PIS/COFINS/CSLL Não Retidos; + 1 - PIS/COFINS Retidos; + 2 - PIS/COFINS Não Retidos; + 3 - PIS/COFINS/CSLL Retidos; + 4 - PIS/COFINS Retidos, CSLL Não Retido; + 5 - PIS Retido, COFINS/CSLL Não Retido; + 6 - COFINS Retido, PIS/CSLL Não Retido; + 7 - PIS Não Retido, COFINS/CSLL Retidos; + 8 - PIS/COFINS Não Retidos, CSLL Retido; + 9 - COFINS Não Retido, PIS/CSLL Retidos; + + + + + + + + + + + + + + + + + + + + Indicador de informação de valor total de tributos. Possui valor fixo igual a zero (indTotTrib=0). + Não informar nenhum valor estimado para os Tributos (Decreto 8.264/2014). + 0 - Não; + + + + + + + + + + + Tipo Benefício Municipal (BM): + 1) Isenção; + 2) Redução da BC em 'ppBM' %; + 3) Redução da BC em R$ 'vInfoBM'; + 4) Alíquota Diferenciada de 'aliqDifBM' %; + + + + + + + + + + + + + + Situações possíveis: + 100 - NFS-e Gerada; + 102 - NFS-e de Decisão Judicial; + 103 - NFS-e Avulsa; + 107 - NFS-e MEI; + + + + + + + + + + + + + Tipo Número do DPS + + + + + + + + + + Tipo Número sequencial do documento + + + + + + + + + + Tipo Número do DFS-e + + + + + + + + + + Tipo Código do Município segundo tabela IBGE + + + + + + + + + Tipo Código do País segundo tabela ISO + + + + + + + + + Código de tributação nacional do ISSQN: + Regra de formação - 6 dígitos numéricos sendo: 2 para Item (LC 116/2003), 2 para Subitem (LC 116/2003) e 2 para Desdobro Nacional + + + + + + + + + + + Código da lista de Nomenclatura Brasileira de Serviços (NBS) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Valor decimal com 1 a 15 dígitos mais 2 casas decimais + + + + + + + + + Valor decimal com 1 dígito mais 2 casas decimais + + + + + + + + + Valor decimal com 1 ou 2 dígitos mais 2 casas decimais + + + + + + + + + Valor decimal com 1 a 3 dígitos mais 2 casas decimais + + + + + + + + + Número com 3 dígitos + + + + + + + + + + Número com 7 dígitos + + + + + + + + + + Número com 14 dígitos + + + + + + + + + + Número com 15 dígitos + + + + + + + + + + + O identificador do pedido de registro do evento é formado conforme a concatenação dos seguintes campos: + "PRE" + Chave de Acesso NFS-e + Tipo do evento + Número do Pedido de Registro do Evento (nPedRegEvento) + + + + + + + + + + + + Identificador do evento: "EVT" + Chave de acesso(50) Tipo do evento (6) + Pedido de Registro do Evento(3) (nPedRegEvento) + + + + + + + + + + + + Código de evento da NFS-e + + + + + + + + + + + + + + Referência ao Id "Manifestação de rejeição da NFS-e" que originou o presente evento de anulação. + + + + + + + + + + + Número sequencial do documento gerado por ambiente gerador de DFe do município. + + + + + + + + + + + Identificação da situação do cadastro do contribuinte + + + + + + + + + + + Motivo pelo qual o contribuinte se enquadra na situação informada + + + + + + + + + + Situação Emissão NFS-e: + 0 - Não Habilitado; + 1 - Habilitado; + + + + + + + + + + + + Categorias do serviço: + 1 - Locação; + 2 - Sublocação; + 3 - Arrendamento; + 4 - Direito de passagem; + 5 - Permissão de uso; + + + + + + + + + + + + + + + Tipo de objetos da locação, sublocação, arrendamento, direito de passagem ou permissão de uso: + 1 - Ferrovia; + 2 - Rodovia; + 3 - Postes; + 4 - Cabos; + 5 - Dutos; + 6 - Condutos de qualquer natureza; + + + + + + + + + + + + + + + + Extensão total da ferrovia, rodovia, cabos, dutos ou condutos + + + + + + + + + + + Número total de postes + + + + + + + + + + + Indicador da finalidade da emissão de NFS-e: + 0 - NFS-e regular; + + + + + + + + + + + Indica operação de uso ou consumo pessoal (art. 57): + 0 - Não; + 1 - Sim; + + + + + + + + + + + + Código indicador da operação de fornecimento, conforme tabela "código indicador de operação" + + + + + + + + + + + Tipo de Operação com Entes Governamentais ou outros serviços sobre bens imóveis: + 1 – Fornecimento com pagamento posterior; + 2 - Recebimento do pagamento com fornecimento já realizado; + 3 – Fornecimento com pagamento já realizado; + 4 – Recebimento do pagamento com fornecimento posterior; + 5 – Fornecimento e recebimento do pagamento concomitantes; + + + + + + + + + + + + + + + Tipo de ente governamental + Para administração pública direta e suas autarquias e fundações: + 1 - União; + 2 - Estado; + 3 - Distrito Federal; + 4 - Município; + + + + + + + + + + + + + + A respeito do Destinatário dos serviços: + 0 – o destinatário é o próprio tomador/adquirente identificado na NFS-e (tomador = adquirente = destinatário); + 1 – o destinatário não é o próprio adquirente, podendo ser outra pessoa, física ou jurídica (ou equiparada), ou um estabelecimento diferente do indicado como tomador (tomador = adquirente ≠ destinatário); + + + + + + + + + + + + Tipo de valor incluído neste documento, recebido por motivo de estarem relacionadas a operações de terceiros, + objeto de reembolso, repasse ou ressarcimento pelo recebedor, já tributados e aqui referenciados + 01 - Repasse de remuneração por intermediação de imóveis a demais corretores envolvidos na operação; + 02 - Repasse de valores a fornecedor relativo a fornecimento intermediado por agência de turismo; + 03 - Reembolso ou ressarcimento recebido por agência de propaganda e publicidade por valores pagos relativos + a serviços de produção externa por conta e ordem de terceiro; + 04 - Reembolso ou ressarcimento recebido por agência de propaganda e publicidade por valores pagos relativos + a serviços de mídia por conta e ordem de terceiro; + 99 - Outros reembolsos ou ressarcimentos recebidos por valores pagos relativos a operações por conta e ordem de terceiro; + + + + + + + + + + + + + + + Documento fiscal a que se refere a chaveDfe que seja um dos documentos do Repositório Nacional: + 1 - NFS-e; + 2 - NF-e; + 3 - CT-e; + 9 - Outro; + + + + + + + + + + + + + + Chave do Documento Fiscal Eletrônico + + + + + + + + + + + + Código de Situação Tributária + + + + + + + + + + + Código de Classificação Tributária + + + + + + + + + + + Código e Classificação do Crédito Presumido + + + + + + + + \ No newline at end of file diff --git a/nfelib/nfse/schemas/v1_01/xmldsig-core-schema.xsd b/nfelib/nfse/schemas/v1_01/xmldsig-core-schema.xsd new file mode 100644 index 00000000..8a9c9139 --- /dev/null +++ b/nfelib/nfse/schemas/v1_01/xmldsig-core-schema.xsd @@ -0,0 +1,318 @@ + + + + + + ]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/fingerprints.json b/tests/fingerprints.json index 09fc7888..dae3cb55 100644 --- a/tests/fingerprints.json +++ b/tests/fingerprints.json @@ -1,7 +1,7 @@ { "nfe": [ "https://www.nfe.fazenda.gov.br/portal/listaConteudo.aspx?tipoConteudo=BMPFMBoln3w=", - "2ece43f6907843052c0869d80e15b781" + "9379a40c6ad542a1ff38d0a2d486f0ed" ], "cte": [ "https://www.cte.fazenda.gov.br/portal/listaConteudo.aspx?tipoConteudo=0xlG1bdBass=", diff --git a/tests/nfse/test_nfse.py b/tests/nfse/test_nfse.py index 7f156842..225cef22 100644 --- a/tests/nfse/test_nfse.py +++ b/tests/nfse/test_nfse.py @@ -10,8 +10,9 @@ from xsdata.formats.dataclass.serializers.config import SerializerConfig from nfelib.nfse.bindings.v1_0 import ( - dps_v1_00, # noqa: F401 - nfse_v1_00, # noqa: F401 + dps_v1_00, + nfse_v1_00, + ped_reg_evento_v1_00, ) @@ -21,7 +22,7 @@ def test_in_out_consulta(self): for filename in ["ConsultarNFSeEnvio-ped-sitnfse.xml"]: input_file = os.path.join(path, filename) parser = XmlParser() - obj = parser.from_path(Path(input_file)) + obj = parser.from_path(Path(input_file), nfse_v1_00.Nfse) serializer = XmlSerializer(config=SerializerConfig(indent=" ")) xml = serializer.render( obj=obj, ns_map={None: "http://www.sped.fazenda.gov.br/nfse"} @@ -41,7 +42,7 @@ def test_in_out_dps(self): for filename in ["dps-simples.xml", "dps-regime-normal.xml"]: input_file = os.path.join(path, filename) parser = XmlParser() - obj = parser.from_path(Path(input_file)) + obj = parser.from_path(Path(input_file), dps_v1_00.Dps) serializer = XmlSerializer(config=SerializerConfig(indent=" ")) xml = serializer.render( obj=obj, ns_map={None: "http://www.sped.fazenda.gov.br/nfse"} @@ -61,7 +62,7 @@ def test_in_out_pedRegEvento(self): for filename in ["CancelarNFSe-ped-cannfse.xml"]: input_file = os.path.join(path, filename) parser = XmlParser() - obj = parser.from_path(Path(input_file)) + obj = parser.from_path(Path(input_file), ped_reg_evento_v1_00.PedRegEvento) serializer = XmlSerializer(config=SerializerConfig(indent=" ")) xml = serializer.render( obj=obj, ns_map={None: "http://www.sped.fazenda.gov.br/nfse"} diff --git a/tests/nfse/test_nfse_v1_01.py b/tests/nfse/test_nfse_v1_01.py new file mode 100644 index 00000000..e3b2b2db --- /dev/null +++ b/tests/nfse/test_nfse_v1_01.py @@ -0,0 +1,64 @@ +import os +from pathlib import Path +from unittest import TestCase + +from lxml import etree +from xmldiff import main +from xsdata.formats.dataclass.parsers import XmlParser +from xsdata.formats.dataclass.serializers import XmlSerializer +from xsdata.formats.dataclass.serializers.config import SerializerConfig + +from nfelib.nfse.bindings.v1_0.dps_v1_00 import Dps as Dps100 +from nfelib.nfse.bindings.v1_01.dps_v1_01 import Dps +from nfelib.nfse.bindings.v1_01.nfse_v1_01 import Nfse + +SAMPLES = os.path.join("nfelib", "nfse", "samples", "v1_01") +SCHEMAS = os.path.join("nfelib", "nfse", "schemas", "v1_01") +NAMESPACE = "http://www.sped.fazenda.gov.br/nfse" + + +class NFse101Tests(TestCase): + def test_in_out_nfse(self): + input_file = os.path.join(SAMPLES, "nfse-ibscbs.xml") + obj = XmlParser().from_path(Path(input_file), Nfse) + serializer = XmlSerializer(config=SerializerConfig(indent=" ")) + xml = serializer.render(obj=obj, ns_map={None: NAMESPACE}) + + output_file = "tests/output_nfse_v1_01.xml" + with open(output_file, "w") as f: + f.write(xml) + + diff = main.diff_files(input_file, output_file) + assert len(diff) == 0 + + def test_ibscbs_groups(self): + nfse = Nfse.from_path(os.path.join(SAMPLES, "nfse-ibscbs.xml")) + totals = nfse.infNFSe.IBSCBS.totCIBS + self.assertEqual(nfse.infNFSe.IBSCBS.valores.vBC, "1000.00") + self.assertEqual(totals.gIBS.vIBSTot, "1.00") + self.assertEqual(totals.gCBS.vCBS, "9.00") + classification = nfse.infNFSe.DPS.infDPS.IBSCBS.valores.trib.gIBSCBS + self.assertEqual(classification.CST, "000") + self.assertEqual(classification.cClassTrib, "000001") + + def test_sample_schema(self): + schema = etree.XMLSchema(etree.parse(os.path.join(SCHEMAS, "NFSe_v1.01.xsd"))) + doc = etree.parse(os.path.join(SAMPLES, "nfse-ibscbs.xml")) + self.assertTrue(schema.validate(doc), schema.error_log) + + def test_dps_schema_validation(self): + nfse = Nfse.from_path(os.path.join(SAMPLES, "nfse-ibscbs.xml")) + dps = Dps(infDPS=nfse.infNFSe.DPS.infDPS, versao="1.01") + self.assertTrue(Dps._get_schema_path().endswith("DPS_v1.01.xsd")) + self.assertEqual(dps.validate_xml(), []) + + def test_both_versions_side_by_side(self): + # Both layouts share the namespace and the root element names, so + # the class from_path is called on decides the binding version. + dps = Dps100.from_path( + os.path.join("nfelib", "nfse", "samples", "v1_0", "dps-simples.xml") + ) + self.assertIsInstance(dps, Dps100) + self.assertTrue(Dps100._get_schema_path().endswith("DPS_v1.00.xsd")) + nfse = Nfse.from_path(os.path.join(SAMPLES, "nfse-ibscbs.xml")) + self.assertIsInstance(nfse, Nfse)