@useinvio/nfse-sdk 1.0.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +10 -0
  2. package/dist/certificateValidation.d.ts +7 -0
  3. package/dist/certificateValidation.js +27 -0
  4. package/dist/certificateValidation.js.map +1 -0
  5. package/dist/dpsJson.js +2 -2
  6. package/dist/dpsJson.js.map +1 -1
  7. package/dist/emissaoNota.d.ts +9 -0
  8. package/dist/emissaoNota.js +34 -24
  9. package/dist/emissaoNota.js.map +1 -1
  10. package/dist/fiscalValidation.d.ts +26 -3
  11. package/dist/fiscalValidation.js +159 -10
  12. package/dist/fiscalValidation.js.map +1 -1
  13. package/dist/index.d.ts +8 -5
  14. package/dist/index.js +5 -3
  15. package/dist/index.js.map +1 -1
  16. package/dist/sefinClient.d.ts +50 -0
  17. package/dist/sefinClient.js +136 -10
  18. package/dist/sefinClient.js.map +1 -1
  19. package/dist/xsdValidation.d.ts +6 -0
  20. package/dist/xsdValidation.js +46 -0
  21. package/dist/xsdValidation.js.map +1 -0
  22. package/docs/METRICS.md +249 -0
  23. package/llms.txt +80 -0
  24. package/package.json +5 -2
  25. package/schemas/nfse/v1.01/Schemas/1.00/CNC_v1.00.xsd +13 -0
  26. package/schemas/nfse/v1.01/Schemas/1.00/DPS_v1.00.xsd +13 -0
  27. package/schemas/nfse/v1.01/Schemas/1.00/NFSe_v1.00.xsd +14 -0
  28. package/schemas/nfse/v1.01/Schemas/1.00/evento_v1.00.xsd +15 -0
  29. package/schemas/nfse/v1.01/Schemas/1.00/pedRegEvento_v1.00.xsd +15 -0
  30. package/schemas/nfse/v1.01/Schemas/1.00/tiposCnc_v1.00.xsd +181 -0
  31. package/schemas/nfse/v1.01/Schemas/1.00/tiposComplexos_v1.00.xsd +1828 -0
  32. package/schemas/nfse/v1.01/Schemas/1.00/tiposEventos_v1.00.xsd +733 -0
  33. package/schemas/nfse/v1.01/Schemas/1.00/tiposSimples_v1.00.xsd +1658 -0
  34. package/schemas/nfse/v1.01/Schemas/1.00/xmldsig-core-schema.xsd +92 -0
  35. package/schemas/nfse/v1.01/Schemas/1.01/CNC_v1.00.xsd +14 -0
  36. package/schemas/nfse/v1.01/Schemas/1.01/DPS_v1.01.xsd +14 -0
  37. package/schemas/nfse/v1.01/Schemas/1.01/NFSe_v1.01.xsd +15 -0
  38. package/schemas/nfse/v1.01/Schemas/1.01/evento_v1.01.xsd +15 -0
  39. package/schemas/nfse/v1.01/Schemas/1.01/pedRegEvento_v1.01.xsd +15 -0
  40. package/schemas/nfse/v1.01/Schemas/1.01/tiposCnc_v1.00.xsd +166 -0
  41. package/schemas/nfse/v1.01/Schemas/1.01/tiposComplexos_v1.01.xsd +2709 -0
  42. package/schemas/nfse/v1.01/Schemas/1.01/tiposEventos_v1.01.xsd +780 -0
  43. package/schemas/nfse/v1.01/Schemas/1.01/tiposSimples_v1.01.xsd +1844 -0
  44. package/schemas/nfse/v1.01/Schemas/1.01/xmldsig-core-schema.xsd +318 -0
package/llms.txt ADDED
@@ -0,0 +1,80 @@
1
+ # @useinvio/nfse-sdk LLM Guide
2
+
3
+ This is a TypeScript SDK for Brazil's NFS-e Nacional (SEFIN). It handles the protocol layer for issuing and querying national service invoices: DPS JSON/XML generation, XMLDSIG signing, GZip/Base64 compression, mTLS transport, and structured SEFIN rejection extraction.
4
+
5
+ It is not a fiscal decision engine. Do not infer tax codes, accounting rules, tenant state, invoice numbering policy, or legal advice from this SDK.
6
+
7
+ ## Start Here
8
+
9
+ - `README.md`: primary Portuguese documentation and examples.
10
+ - `ENGLISH.md`: English documentation with the same conceptual flow.
11
+ - `docs/METRICS.md`: detailed SEFIN latency metrics guide, including the `NFSE_SEFIN_LATENCY_METRICS` env switch, observer setup, optional P99 snapshots, and export guidance.
12
+ - `index.ts`: public exports. Treat this as the supported API surface.
13
+ - `examples/`: runnable usage examples.
14
+ - `JSON_MAPPING.md`: mapping notes for the declarative JSON input.
15
+ - `test/`: behavior examples and regression coverage.
16
+
17
+ ## Public Entry Points
18
+
19
+ - `NfseClient`: resource-oriented client. Configure certificate, environment, and defaults once, then use `client.invoices.create(...)`, `client.invoices.buildDpsJson(...)`, and `client.invoices.get(...)`.
20
+ - `emitirNfse(input, pfx, options?)`: issue an invoice from a DPS XML string or `DpsJsonRequest`.
21
+ - `buildDpsFromJson(input)`: build unsigned DPS XML from declarative JSON.
22
+ - `buildDpsId(prestador, nDPS, serie?)`: derive the 45-character DPS Id.
23
+ - `loadPfx(...)` and `loadPfxFromBuffer(...)`: extract key/certificate material from an A1/PFX certificate.
24
+ - `consultarNfse(...)`, `enviarEvento(...)`, `extrairErros(...)`: lower-level SEFIN helpers.
25
+ - `setSefinRequestObserver(...)` and `createSefinLatencyTracker(...)`: observe SEFIN round-trip latency when `NFSE_SEFIN_LATENCY_METRICS` is enabled; percentiles require `includePercentiles: true`.
26
+ - `gzipBase64(...)`, `gunzipBase64(...)`, `signDps(...)`, `verifyDps(...)`: protocol utilities for custom flows.
27
+
28
+ ## File Map
29
+
30
+ - `client.ts`: friendly client API and default merging.
31
+ - `emissaoNota.ts`: central issue flow: prepare input, sign DPS, gzip/base64, transmit, unzip authorized XML, normalize errors.
32
+ - `dpsJson.ts`: JSON-to-DPS XML builder, XML escaping, DPS Id generation, value formatting, and XML block assembly.
33
+ - `fiscalValidation.ts`: structural and layout-oriented validation for the JSON input. This intentionally rejects unsupported or ambiguous fiscal shapes.
34
+ - `sefinClient.ts`: HTTPS mTLS requests to SEFIN, latency observation, response parsing, error normalization, invoice query, issue transport, and event transport.
35
+ - `config.ts`: SEFIN base URLs, environment names, and `tpAmb` mapping.
36
+ - `loadPfx.ts`: PFX/A1 certificate decoding with `node-forge`.
37
+ - `signXml.ts`: XMLDSIG signing and verification helpers.
38
+ - `gzipB64.ts`: GZip/Base64 helpers.
39
+
40
+ ## Core Data Shape
41
+
42
+ Declarative issuing uses `DpsJsonRequest`:
43
+
44
+ - `ambiente`: optional, `restrita` or `producao`; defaults to `restrita`.
45
+ - `prestador`: issuer profile such as `cnpj`, `cLocEmi`, `serie`, `opSimpNac`, and `regEspTrib`.
46
+ - `servico`: service defaults such as `cTribNac`, `xDescServ`, `cLocPrestacao`, and optional `cNBS`.
47
+ - `emissao`: invoice-specific data such as `nDPS`, dates, `valores`, optional parties, municipal/federal taxation blocks, and `totTrib`.
48
+
49
+ Keep values as strings when they represent fiscal codes, identifiers, decimals, or exact XML values. Many fields are numeric-looking but must preserve leading zeroes.
50
+
51
+ ## Important Invariants
52
+
53
+ - Node.js >= 20 and ESM are expected.
54
+ - Public imports should come from the package root (`index.ts` exports), not internal files, unless you are editing the SDK itself.
55
+ - `DEFAULT_AMBIENTE` is `restrita`; `NfseClient` also accepts `sandbox` and `production` aliases.
56
+ - `buildDpsFromJson` validates first via `validateDpsJsonRequest`.
57
+ - The SDK intentionally avoids silent fiscal defaults for required tax fields such as `tributacaoMunicipal` and `totTrib`.
58
+ - `emissao.totTrib` follows an `xs:choice`: provide exactly one branch among value totals, percentage totals, `indTotTrib`, or `pTotTribSN`.
59
+ - `buildDpsId` must return a 45-character Id beginning with `DPS`.
60
+ - `emitirNfse` signs the DPS before transport and throws `EmitirNotaError` when SEFIN rejects or no authorized XML is returned.
61
+ - `sefinClient.ts` uses PEM key/cert material for mTLS, not the raw PFX in the Node TLS handshake.
62
+ - SEFIN latency metrics are off by default, enabled through `NFSE_SEFIN_LATENCY_METRICS`, and emitted for the external request only; keep them separate from API route latency when integrating observability.
63
+
64
+ ## Change Guidance for LLMs
65
+
66
+ - Preserve the public API names exported by `index.ts` unless the task explicitly asks for a breaking change.
67
+ - Prefer adding or adjusting focused tests in `test/` when changing XML generation, validation, signing, transport parsing, or client defaults.
68
+ - When adding support for a new NFS-e layout field, update the TypeScript interface, validation rules, builder output, docs/examples, and tests together.
69
+ - Do not add fiscal assumptions to make examples pass. Required fiscal choices should stay explicit in user input.
70
+ - Be careful with XML ordering. The generated order should follow the SEFIN schema, and tests may compare XML snippets.
71
+ - Do not hand-wave certificate handling. PFX content may arrive as a `Buffer` or base64 string.
72
+ - Network calls to SEFIN should stay isolated in `sefinClient.ts` so tests can mock transport boundaries.
73
+
74
+ ## Useful Commands
75
+
76
+ ```bash
77
+ npm run build
78
+ npm run typecheck
79
+ npm test
80
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useinvio/nfse-sdk",
3
- "version": "1.0.2",
3
+ "version": "2.0.0",
4
4
  "description": "TypeScript SDK for Brazil's national NFS-e: JSON to DPS/XML, XMLDSIG, GZip/Base64, mTLS and SEFIN errors.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -16,12 +16,15 @@
16
16
  "dist/*.d.ts",
17
17
  "dist/*.js",
18
18
  "dist/*.js.map",
19
+ "dist/schemas/**/*.xsd",
19
20
  "docs/*.md",
20
21
  "examples/*.ts",
21
22
  "examples/README.md",
22
23
  "README.md",
23
24
  "JSON_MAPPING.md",
24
- "LICENSE"
25
+ "llms.txt",
26
+ "LICENSE",
27
+ "schemas/**/*.xsd"
25
28
  ],
26
29
  "scripts": {
27
30
  "build": "tsc -p tsconfig.json",
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
+ targetNamespace="http://www.sped.fazenda.gov.br/nfse"
4
+ xmlns="http://www.sped.fazenda.gov.br/nfse"
5
+ attributeFormDefault="unqualified"
6
+ elementFormDefault="qualified">
7
+ <xs:include schemaLocation="tiposCnc_v1.00.xsd"/>
8
+ <xs:element name="CNC" type="TCNC">
9
+ <xs:annotation>
10
+ <xs:documentation>Schema XML Leiaute do arquivo para upload - CNC</xs:documentation>
11
+ </xs:annotation>
12
+ </xs:element>
13
+ </xs:schema>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
+ targetNamespace="http://www.sped.fazenda.gov.br/nfse"
4
+ xmlns="http://www.sped.fazenda.gov.br/nfse"
5
+ attributeFormDefault="unqualified"
6
+ elementFormDefault="qualified">
7
+ <xs:include schemaLocation="tiposComplexos_v1.00.xsd"/>
8
+ <xs:element name="DPS" type="TCDPS">
9
+ <xs:annotation>
10
+ <xs:documentation>Schema XML da Declaração de Prestação de Serviços - DPS</xs:documentation>
11
+ </xs:annotation>
12
+ </xs:element>
13
+ </xs:schema>
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
+ xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
4
+ targetNamespace="http://www.sped.fazenda.gov.br/nfse"
5
+ xmlns="http://www.sped.fazenda.gov.br/nfse"
6
+ attributeFormDefault="unqualified"
7
+ elementFormDefault="qualified">
8
+ <xs:include schemaLocation="tiposComplexos_v1.00.xsd"/>
9
+ <xs:element name="NFSe" type="TCNFSe">
10
+ <xs:annotation>
11
+ <xs:documentation>Schema XML da Nota Fiscal de Serviços Eletrônica - NFS-e</xs:documentation>
12
+ </xs:annotation>
13
+ </xs:element>
14
+ </xs:schema>
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
+ xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
4
+ targetNamespace="http://www.sped.fazenda.gov.br/nfse"
5
+ xmlns="http://www.sped.fazenda.gov.br/nfse"
6
+ attributeFormDefault="unqualified"
7
+ elementFormDefault="qualified">
8
+ <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
9
+ <xs:include schemaLocation="tiposEventos_v1.00.xsd"/>
10
+ <xs:element name="evento" type="TCEvento">
11
+ <xs:annotation>
12
+ <xs:documentation>Schema XML do Pedido de Registro de Eventos</xs:documentation>
13
+ </xs:annotation>
14
+ </xs:element>
15
+ </xs:schema>
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
+ xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
4
+ targetNamespace="http://www.sped.fazenda.gov.br/nfse"
5
+ xmlns="http://www.sped.fazenda.gov.br/nfse"
6
+ attributeFormDefault="unqualified"
7
+ elementFormDefault="qualified">
8
+ <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
9
+ <xs:include schemaLocation="tiposEventos_v1.00.xsd"/>
10
+ <xs:element name="pedRegEvento" type="TCPedRegEvt">
11
+ <xs:annotation>
12
+ <xs:documentation>Schema XML do Pedido de Registro de Eventos</xs:documentation>
13
+ </xs:annotation>
14
+ </xs:element>
15
+ </xs:schema>
@@ -0,0 +1,181 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
+ xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
4
+ targetNamespace="http://www.sped.fazenda.gov.br/nfse"
5
+ xmlns="http://www.sped.fazenda.gov.br/nfse"
6
+ attributeFormDefault="unqualified"
7
+ elementFormDefault="qualified">
8
+ <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
9
+ <xs:include schemaLocation="tiposComplexos_v1.00.xsd"/>
10
+ <xs:include schemaLocation="tiposSimples_v1.00.xsd"/>
11
+
12
+
13
+ <!--TIPO COMPLEXO PARA ENDEREÇO UPLOAD DE CONTRIBUINTES -->
14
+ <xs:complexType name="TCEnderContribuinteCNC">
15
+ <xs:sequence>
16
+ <xs:element name="CEP" type="TSCEP">
17
+ <xs:annotation>
18
+ <xs:documentation>Código de endereçamento postal do estabelecimento do contribuinte</xs:documentation>
19
+ </xs:annotation>
20
+ </xs:element>
21
+ <xs:element name="xLgr" type="TSLogradouro">
22
+ <xs:annotation>
23
+ <xs:documentation>Nome do logradouro</xs:documentation>
24
+ </xs:annotation>
25
+ </xs:element>
26
+ <xs:element name="nro" type="TSNumeroEndereco">
27
+ <xs:annotation>
28
+ <xs:documentation>Número do estabelecimento no logradouro informado</xs:documentation>
29
+ </xs:annotation>
30
+ </xs:element>
31
+ <xs:element name="xCpl" type="TSComplementoEndereco" minOccurs="0">
32
+ <xs:annotation>
33
+ <xs:documentation>Informação complementar para identificação do endereço do contribuinte</xs:documentation>
34
+ </xs:annotation>
35
+ </xs:element>
36
+ <xs:element name="xBairro" type="TSBairro">
37
+ <xs:annotation>
38
+ <xs:documentation>Nome do bairro</xs:documentation>
39
+ </xs:annotation>
40
+ </xs:element>
41
+ </xs:sequence>
42
+ </xs:complexType>
43
+ <!--TIPO COMPLEXO PARA UPLOAD DE CONTRIBUINTES DO CNC -->
44
+ <xs:complexType name="TCNC">
45
+ <xs:sequence>
46
+ <xs:element name="infCNC" type="TCInfCNC"/>
47
+ </xs:sequence>
48
+ <xs:attribute name="versao" type="TVerNFSe" use="required"/>
49
+ </xs:complexType>
50
+
51
+
52
+ <!--TIPO COMPLEXO PARA INFORMAÇÕES DO UPLOAD DE CONTRIBUINTES DO CNC -->
53
+ <xs:complexType name="TCInfCNC">
54
+ <xs:sequence>
55
+ <xs:element name="cMun" type="TSCodMunIBGE">
56
+ <xs:annotation>
57
+ <xs:documentation>Código do Municipio</xs:documentation>
58
+ </xs:annotation>
59
+ </xs:element>
60
+ <xs:element name="cnpjMun" type="TSCNPJ">
61
+ <xs:annotation>
62
+ <xs:documentation>CNPJ do Municipio</xs:documentation>
63
+ </xs:annotation>
64
+ </xs:element>
65
+ <xs:element name="CPFAgTrib" type="TSCPF">
66
+ <xs:annotation>
67
+ <xs:documentation>CPF do agente tributário</xs:documentation>
68
+ </xs:annotation>
69
+ </xs:element>
70
+ <xs:element name="tpAmb" type="TSTipoAmbiente">
71
+ <xs:annotation>
72
+ <xs:documentation>Identificação do Ambiente: 1 - Produção; 2 - Homologação</xs:documentation>
73
+ </xs:annotation>
74
+ </xs:element>
75
+ <xs:element name="verAplic" type="TSVerAplic">
76
+ <xs:annotation>
77
+ <xs:documentation>Versão do aplicativo que gerou Informações para cadastramento de novos contribuintes CNC</xs:documentation>
78
+ </xs:annotation>
79
+ </xs:element>
80
+ <xs:element name="infContrib" type="TCInfoContribuinteCNC">
81
+ <xs:annotation>
82
+ <xs:documentation>Grupo de informações cadastramento de novo contribuinte CNC</xs:documentation>
83
+ </xs:annotation>
84
+ </xs:element>
85
+ </xs:sequence>
86
+ <xs:attribute name="Id" type="TSIdCNC" use="required"/>
87
+ </xs:complexType>
88
+
89
+
90
+ <!--TIPO COMPLEXO PARA INFORMAÇÕES DE UMA PESSOA MANTIDA PELO CADASTRO DO CNC (CNPJ,CPF)-->
91
+ <xs:complexType name="TCInfoContribuinteCNC">
92
+ <xs:annotation>
93
+ <xs:documentation>Informações para cadastramento de novos contribuintes CNC </xs:documentation>
94
+ </xs:annotation>
95
+ <xs:sequence>
96
+ <xs:choice>
97
+ <xs:element name="CNPJ" type="TSCNPJ">
98
+ <xs:annotation>
99
+ <xs:documentation>Número do CNPJ do contribuinte.</xs:documentation>
100
+ </xs:annotation>
101
+ </xs:element>
102
+ <xs:element name="CPF" type="TSCPF">
103
+ <xs:annotation>
104
+ <xs:documentation>Número do CPF do contribuinte.</xs:documentation>
105
+ </xs:annotation>
106
+ </xs:element>
107
+ </xs:choice>
108
+ <xs:element name="IM" type="TSInscMun">
109
+ <xs:annotation>
110
+ <xs:documentation>Número da inscrição municipal</xs:documentation>
111
+ </xs:annotation>
112
+ </xs:element>
113
+ <xs:element name="dIM" type="TSDataCNC">
114
+ <xs:annotation>
115
+ <xs:documentation> Data da Inscrição Municipal: Dia, mês e ano (AAAAMMDD)</xs:documentation>
116
+ </xs:annotation>
117
+ </xs:element>
118
+ <xs:element name="xFantasia" type="TSNomeFantasia" minOccurs="0">
119
+ <xs:annotation>
120
+ <xs:documentation>Nome fantasia do contribuinte.</xs:documentation>
121
+ </xs:annotation>
122
+ </xs:element>
123
+ <xs:element name="ender" type="TCEnderContribuinteCNC" minOccurs="0">
124
+ <xs:annotation>
125
+ <xs:documentation>Grupo de informações do endereço do contribuinte do CNC</xs:documentation>
126
+ </xs:annotation>
127
+ </xs:element>
128
+ <xs:element name="fone" type="TSTelefone" minOccurs="0">
129
+ <xs:annotation>
130
+ <xs:documentation>
131
+ Número do telefone do prestador:
132
+ Preencher com o Código DDD + número do telefone.
133
+ Nas operações com exterior é permitido informar o código do país + código da localidade + número do telefone)
134
+ </xs:documentation>
135
+ </xs:annotation>
136
+ </xs:element>
137
+ <xs:element name="email" type="TSEmail" minOccurs="0">
138
+ <xs:annotation>
139
+ <xs:documentation>Endereço de e-mail para contato com o contribuinte</xs:documentation>
140
+ </xs:annotation>
141
+ </xs:element>
142
+ <xs:element name="dAutEmiss" type="TSDataCNC">
143
+ <xs:annotation>
144
+ <xs:documentation> Data de autorização de uso dos emissores públicos: Dia, mês e ano (AAAAMMDD)</xs:documentation>
145
+ </xs:annotation>
146
+ </xs:element>
147
+ <xs:element name="cStatEmiss" type="TSSituacaoEmissaoNFSE">
148
+ <xs:annotation>
149
+ <xs:documentation>
150
+ Situação Emissão NFS-e:
151
+ 0 - Não Habilitado;
152
+ 1 - Habilitado;
153
+ </xs:documentation>
154
+ </xs:annotation>
155
+ </xs:element>
156
+ <xs:element name="cSitCNC" type="TSSituacaoCadastroContribuinteCNC">
157
+ <xs:annotation>
158
+ <xs:documentation>
159
+ Identificação da situação do cadastro do contribuinte
160
+ </xs:documentation>
161
+ </xs:annotation>
162
+ </xs:element>
163
+ <xs:element name="xSitCadMun" type="TSSituacaoCadastroContribuinte" minOccurs="0">
164
+ <xs:annotation>
165
+ <xs:documentation>
166
+ Identificação da situação do cadastro do contribuinte
167
+ </xs:documentation>
168
+ </xs:annotation>
169
+ </xs:element>
170
+ <xs:element name="xMotivoSitCadMun" type="TSMotivoSituacaoCadastroContribuinte" minOccurs="0">
171
+ <xs:annotation>
172
+ <xs:documentation>
173
+ Motivo pelo qual o contribuinte se enquadra na situação informada
174
+ </xs:documentation>
175
+ </xs:annotation>
176
+ </xs:element>
177
+ </xs:sequence>
178
+ </xs:complexType>
179
+
180
+
181
+ </xs:schema>