focus_nfe 1.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 (206) hide show
  1. checksums.yaml +7 -0
  2. data/.git-hooks/pre_push/steep.rb +18 -0
  3. data/.git-hooks/pre_push/yard_doc.rb +18 -0
  4. data/.gitattributes +1 -0
  5. data/.overcommit.yml +69 -0
  6. data/.rspec +3 -0
  7. data/.yardopts +11 -0
  8. data/CHANGELOG.md +77 -0
  9. data/CLAUDE.md +118 -0
  10. data/CODE_OF_CONDUCT.md +10 -0
  11. data/LICENSE.txt +21 -0
  12. data/README.md +348 -0
  13. data/Rakefile +105 -0
  14. data/data/schemas/schema_cte.json +2793 -0
  15. data/data/schemas/schema_cte_os.json +1335 -0
  16. data/data/schemas/schema_cte_os_transporte_rodoviario.json +109 -0
  17. data/data/schemas/schema_cte_transporte_aereo.json +115 -0
  18. data/data/schemas/schema_cte_transporte_aquaviario.json +174 -0
  19. data/data/schemas/schema_cte_transporte_dutoviario.json +65 -0
  20. data/data/schemas/schema_cte_transporte_ferroviario.json +144 -0
  21. data/data/schemas/schema_cte_transporte_multimodal.json +45 -0
  22. data/data/schemas/schema_cte_transporte_rodoviario.json +78 -0
  23. data/data/schemas/schema_dce.json +549 -0
  24. data/data/schemas/schema_mdfe.json +1102 -0
  25. data/data/schemas/schema_mdfe_transporte_aereo.json +44 -0
  26. data/data/schemas/schema_mdfe_transporte_aquaviario.json +209 -0
  27. data/data/schemas/schema_mdfe_transporte_ferroviario.json +99 -0
  28. data/data/schemas/schema_mdfe_transporte_rodoviario.json +628 -0
  29. data/data/schemas/schema_nfcom.json +1859 -0
  30. data/data/schemas/schema_nfe.json +4750 -0
  31. data/data/schemas/schema_nfe_forma_pagamento.json +97 -0
  32. data/data/schemas/schema_nfe_item.json +2574 -0
  33. data/data/schemas/schema_nfgas.json +2316 -0
  34. data/data/schemas/schema_nfse_nacional.json +1847 -0
  35. data/data/schemas/schema_nfse_recebida.json +548 -0
  36. data/lib/focus_nfe/client.rb +162 -0
  37. data/lib/focus_nfe/configuration.rb +104 -0
  38. data/lib/focus_nfe/errors.rb +123 -0
  39. data/lib/focus_nfe/esquemas/campo.rb +171 -0
  40. data/lib/focus_nfe/esquemas/catalogo.rb +34 -0
  41. data/lib/focus_nfe/esquemas/decimal.rb +66 -0
  42. data/lib/focus_nfe/esquemas/esquema.rb +72 -0
  43. data/lib/focus_nfe/esquemas/validador.rb +87 -0
  44. data/lib/focus_nfe/http/adapter.rb +25 -0
  45. data/lib/focus_nfe/http/adapters/net_http.rb +99 -0
  46. data/lib/focus_nfe/http/authentication.rb +23 -0
  47. data/lib/focus_nfe/http/connection.rb +118 -0
  48. data/lib/focus_nfe/http/logging.rb +100 -0
  49. data/lib/focus_nfe/http/response.rb +75 -0
  50. data/lib/focus_nfe/modelos/documento.rb +113 -0
  51. data/lib/focus_nfe/modelos/inutilizacao.rb +75 -0
  52. data/lib/focus_nfe/modelos/pagina.rb +54 -0
  53. data/lib/focus_nfe/recursos/backups.rb +17 -0
  54. data/lib/focus_nfe/recursos/base.rb +91 -0
  55. data/lib/focus_nfe/recursos/ceps.rb +16 -0
  56. data/lib/focus_nfe/recursos/cfops.rb +16 -0
  57. data/lib/focus_nfe/recursos/cnaes.rb +16 -0
  58. data/lib/focus_nfe/recursos/cnpjs.rb +13 -0
  59. data/lib/focus_nfe/recursos/concerns/baixavel.rb +41 -0
  60. data/lib/focus_nfe/recursos/concerns/baixavel_eventos.rb +34 -0
  61. data/lib/focus_nfe/recursos/concerns/cancelavel.rb +25 -0
  62. data/lib/focus_nfe/recursos/concerns/conciliavel.rb +66 -0
  63. data/lib/focus_nfe/recursos/concerns/consultavel.rb +26 -0
  64. data/lib/focus_nfe/recursos/concerns/corrigivel.rb +45 -0
  65. data/lib/focus_nfe/recursos/concerns/corrigivel_cte.rb +60 -0
  66. data/lib/focus_nfe/recursos/concerns/emitivel.rb +51 -0
  67. data/lib/focus_nfe/recursos/concerns/enviavel.rb +40 -0
  68. data/lib/focus_nfe/recursos/concerns/eventavel.rb +46 -0
  69. data/lib/focus_nfe/recursos/concerns/inutilizavel.rb +96 -0
  70. data/lib/focus_nfe/recursos/concerns/listavel.rb +22 -0
  71. data/lib/focus_nfe/recursos/concerns/localizavel.rb +22 -0
  72. data/lib/focus_nfe/recursos/concerns/notificavel.rb +23 -0
  73. data/lib/focus_nfe/recursos/concerns/removivel.rb +20 -0
  74. data/lib/focus_nfe/recursos/concerns/visualizavel.rb +28 -0
  75. data/lib/focus_nfe/recursos/cte.rb +35 -0
  76. data/lib/focus_nfe/recursos/cte_os.rb +29 -0
  77. data/lib/focus_nfe/recursos/ctes_recebidas.rb +38 -0
  78. data/lib/focus_nfe/recursos/dce.rb +16 -0
  79. data/lib/focus_nfe/recursos/emails_bloqueados.rb +31 -0
  80. data/lib/focus_nfe/recursos/empresas.rb +35 -0
  81. data/lib/focus_nfe/recursos/mdfe.rb +78 -0
  82. data/lib/focus_nfe/recursos/municipios.rb +60 -0
  83. data/lib/focus_nfe/recursos/ncms.rb +16 -0
  84. data/lib/focus_nfe/recursos/nfce.rb +19 -0
  85. data/lib/focus_nfe/recursos/nfcom.rb +16 -0
  86. data/lib/focus_nfe/recursos/nfe.rb +106 -0
  87. data/lib/focus_nfe/recursos/nfes_recebidas.rb +56 -0
  88. data/lib/focus_nfe/recursos/nfgas.rb +16 -0
  89. data/lib/focus_nfe/recursos/nfse.rb +18 -0
  90. data/lib/focus_nfe/recursos/nfse_nacional.rb +16 -0
  91. data/lib/focus_nfe/recursos/nfses_nacionais_recebidas.rb +21 -0
  92. data/lib/focus_nfe/recursos/webhooks.rb +22 -0
  93. data/lib/focus_nfe/version.rb +6 -0
  94. data/lib/focus_nfe/webhook.rb +68 -0
  95. data/lib/focus_nfe.rb +124 -0
  96. data/sig/focus_nfe/client.rbs +38 -0
  97. data/sig/focus_nfe/configuration.rbs +29 -0
  98. data/sig/focus_nfe/errors.rbs +59 -0
  99. data/sig/focus_nfe/esquemas/campo.rbs +47 -0
  100. data/sig/focus_nfe/esquemas/catalogo.rbs +8 -0
  101. data/sig/focus_nfe/esquemas/decimal.rbs +25 -0
  102. data/sig/focus_nfe/esquemas/esquema.rbs +30 -0
  103. data/sig/focus_nfe/esquemas/validador.rbs +20 -0
  104. data/sig/focus_nfe/http/adapter.rbs +7 -0
  105. data/sig/focus_nfe/http/adapters/net_http.rbs +25 -0
  106. data/sig/focus_nfe/http/authentication.rbs +9 -0
  107. data/sig/focus_nfe/http/connection.rbs +32 -0
  108. data/sig/focus_nfe/http/logging.rbs +30 -0
  109. data/sig/focus_nfe/http/response.rbs +28 -0
  110. data/sig/focus_nfe/modelos/documento.rbs +34 -0
  111. data/sig/focus_nfe/modelos/inutilizacao.rbs +24 -0
  112. data/sig/focus_nfe/modelos/pagina.rbs +21 -0
  113. data/sig/focus_nfe/recursos/backups.rbs +7 -0
  114. data/sig/focus_nfe/recursos/base.rbs +25 -0
  115. data/sig/focus_nfe/recursos/ceps.rbs +10 -0
  116. data/sig/focus_nfe/recursos/cfops.rbs +10 -0
  117. data/sig/focus_nfe/recursos/cnaes.rbs +10 -0
  118. data/sig/focus_nfe/recursos/cnpjs.rbs +7 -0
  119. data/sig/focus_nfe/recursos/concerns/baixavel.rbs +12 -0
  120. data/sig/focus_nfe/recursos/concerns/baixavel_eventos.rbs +14 -0
  121. data/sig/focus_nfe/recursos/concerns/cancelavel.rbs +9 -0
  122. data/sig/focus_nfe/recursos/concerns/conciliavel.rbs +15 -0
  123. data/sig/focus_nfe/recursos/concerns/consultavel.rbs +9 -0
  124. data/sig/focus_nfe/recursos/concerns/corrigivel.rbs +15 -0
  125. data/sig/focus_nfe/recursos/concerns/corrigivel_cte.rbs +17 -0
  126. data/sig/focus_nfe/recursos/concerns/emitivel.rbs +14 -0
  127. data/sig/focus_nfe/recursos/concerns/enviavel.rbs +15 -0
  128. data/sig/focus_nfe/recursos/concerns/eventavel.rbs +12 -0
  129. data/sig/focus_nfe/recursos/concerns/inutilizavel.rbs +20 -0
  130. data/sig/focus_nfe/recursos/concerns/listavel.rbs +9 -0
  131. data/sig/focus_nfe/recursos/concerns/localizavel.rbs +9 -0
  132. data/sig/focus_nfe/recursos/concerns/notificavel.rbs +9 -0
  133. data/sig/focus_nfe/recursos/concerns/removivel.rbs +9 -0
  134. data/sig/focus_nfe/recursos/concerns/visualizavel.rbs +9 -0
  135. data/sig/focus_nfe/recursos/cte.rbs +17 -0
  136. data/sig/focus_nfe/recursos/cte_os.rbs +17 -0
  137. data/sig/focus_nfe/recursos/ctes_recebidas.rbs +14 -0
  138. data/sig/focus_nfe/recursos/dce.rbs +10 -0
  139. data/sig/focus_nfe/recursos/emails_bloqueados.rbs +12 -0
  140. data/sig/focus_nfe/recursos/empresas.rbs +12 -0
  141. data/sig/focus_nfe/recursos/mdfe.rbs +21 -0
  142. data/sig/focus_nfe/recursos/municipios.rbs +19 -0
  143. data/sig/focus_nfe/recursos/ncms.rbs +10 -0
  144. data/sig/focus_nfe/recursos/nfce.rbs +12 -0
  145. data/sig/focus_nfe/recursos/nfcom.rbs +10 -0
  146. data/sig/focus_nfe/recursos/nfe.rbs +23 -0
  147. data/sig/focus_nfe/recursos/nfes_recebidas.rbs +16 -0
  148. data/sig/focus_nfe/recursos/nfgas.rbs +10 -0
  149. data/sig/focus_nfe/recursos/nfse.rbs +11 -0
  150. data/sig/focus_nfe/recursos/nfse_nacional.rbs +10 -0
  151. data/sig/focus_nfe/recursos/nfses_nacionais_recebidas.rbs +11 -0
  152. data/sig/focus_nfe/recursos/webhooks.rbs +11 -0
  153. data/sig/focus_nfe/webhook.rbs +11 -0
  154. data/sig/focus_nfe.rbs +10 -0
  155. data/spec/focus_nfe/client_spec.rb +208 -0
  156. data/spec/focus_nfe/configuration_spec.rb +121 -0
  157. data/spec/focus_nfe/errors_mapping_spec.rb +68 -0
  158. data/spec/focus_nfe/errors_spec.rb +107 -0
  159. data/spec/focus_nfe/esquemas/campo_spec.rb +291 -0
  160. data/spec/focus_nfe/esquemas/decimal_spec.rb +54 -0
  161. data/spec/focus_nfe/esquemas/esquema_spec.rb +73 -0
  162. data/spec/focus_nfe/esquemas/validador_spec.rb +167 -0
  163. data/spec/focus_nfe/esquemas_spec.rb +42 -0
  164. data/spec/focus_nfe/http/adapter_spec.rb +8 -0
  165. data/spec/focus_nfe/http/adapters/net_http_spec.rb +181 -0
  166. data/spec/focus_nfe/http/authentication_spec.rb +24 -0
  167. data/spec/focus_nfe/http/connection_spec.rb +255 -0
  168. data/spec/focus_nfe/http/logging_spec.rb +83 -0
  169. data/spec/focus_nfe/http/response_spec.rb +161 -0
  170. data/spec/focus_nfe/modelos/documento_spec.rb +150 -0
  171. data/spec/focus_nfe/modelos/inutilizacao_spec.rb +91 -0
  172. data/spec/focus_nfe/modelos/pagina_spec.rb +77 -0
  173. data/spec/focus_nfe/recursos/backups_spec.rb +29 -0
  174. data/spec/focus_nfe/recursos/base_spec.rb +56 -0
  175. data/spec/focus_nfe/recursos/ceps_spec.rb +16 -0
  176. data/spec/focus_nfe/recursos/cfops_spec.rb +16 -0
  177. data/spec/focus_nfe/recursos/cnaes_spec.rb +20 -0
  178. data/spec/focus_nfe/recursos/cnpjs_spec.rb +11 -0
  179. data/spec/focus_nfe/recursos/concerns/emitivel_validacao_spec.rb +158 -0
  180. data/spec/focus_nfe/recursos/cte_os_spec.rb +9 -0
  181. data/spec/focus_nfe/recursos/cte_spec.rb +9 -0
  182. data/spec/focus_nfe/recursos/ctes_recebidas_spec.rb +56 -0
  183. data/spec/focus_nfe/recursos/dce_spec.rb +8 -0
  184. data/spec/focus_nfe/recursos/emails_bloqueados_spec.rb +29 -0
  185. data/spec/focus_nfe/recursos/empresas_spec.rb +45 -0
  186. data/spec/focus_nfe/recursos/mdfe_spec.rb +100 -0
  187. data/spec/focus_nfe/recursos/municipios_spec.rb +58 -0
  188. data/spec/focus_nfe/recursos/ncms_spec.rb +16 -0
  189. data/spec/focus_nfe/recursos/nfce_spec.rb +10 -0
  190. data/spec/focus_nfe/recursos/nfcom_spec.rb +8 -0
  191. data/spec/focus_nfe/recursos/nfe_spec.rb +262 -0
  192. data/spec/focus_nfe/recursos/nfes_recebidas_spec.rb +87 -0
  193. data/spec/focus_nfe/recursos/nfgas_spec.rb +8 -0
  194. data/spec/focus_nfe/recursos/nfse_nacional_spec.rb +8 -0
  195. data/spec/focus_nfe/recursos/nfse_spec.rb +9 -0
  196. data/spec/focus_nfe/recursos/nfses_nacionais_recebidas_spec.rb +17 -0
  197. data/spec/focus_nfe/recursos/webhooks_spec.rb +22 -0
  198. data/spec/focus_nfe/webhook_spec.rb +66 -0
  199. data/spec/focus_nfe_global_configuration_spec.rb +70 -0
  200. data/spec/focus_nfe_require_spec.rb +87 -0
  201. data/spec/focus_nfe_spec.rb +11 -0
  202. data/spec/spec_helper.rb +58 -0
  203. data/spec/support/shared_examples/recurso_fiscal.rb +445 -0
  204. data/spec/support/shared_examples/recurso_leitura.rb +217 -0
  205. data/tools/pull_fields.rb +62 -0
  206. metadata +420 -0
@@ -0,0 +1,548 @@
1
+ [
2
+ {
3
+ "name": "chave",
4
+ "description": "Chave do documento fiscal recebido, identificador único em nossa API",
5
+ "type": "String",
6
+ "required": false
7
+ },
8
+ {
9
+ "name": "versao",
10
+ "description": "Versão do documento fiscal recebido, numero sequencial único em nossa API",
11
+ "type": "Integer",
12
+ "required": false
13
+ },
14
+ {
15
+ "name": "status",
16
+ "description": "Status do documento fiscal",
17
+ "type": null,
18
+ "required": false,
19
+ "enum": "* +1+: autorizado\\n* +2+: cancelado\\n* +3+: substituido"
20
+ },
21
+ {
22
+ "name": "numero",
23
+ "description": "Número da NFSe",
24
+ "type": "String",
25
+ "required": false
26
+ },
27
+ {
28
+ "name": "serie",
29
+ "description": "Série da NFSe",
30
+ "type": "String",
31
+ "required": false
32
+ },
33
+ {
34
+ "name": "codigo_verificacao",
35
+ "description": "Codigo de verificação da NFSe",
36
+ "type": "String",
37
+ "required": false
38
+ },
39
+ {
40
+ "name": "data_emissao",
41
+ "description": "Data e Hora de emissão da NFSe",
42
+ "type": "String[25] Padrão ISO",
43
+ "required": false
44
+ },
45
+ {
46
+ "name": "numero_rps",
47
+ "description": "Número do RPS",
48
+ "type": "String",
49
+ "required": false
50
+ },
51
+ {
52
+ "name": "serie_rps",
53
+ "description": "Série do RPS",
54
+ "type": "String",
55
+ "required": false
56
+ },
57
+ {
58
+ "name": "tipo_rps",
59
+ "description": "Tipo do RPS",
60
+ "type": "String",
61
+ "required": false
62
+ },
63
+ {
64
+ "name": "data_emissao_rps",
65
+ "description": "Data e Hora de emissão do RPS",
66
+ "type": "String[25] Padrão ISO",
67
+ "required": false
68
+ },
69
+ {
70
+ "name": "natureza_operacao",
71
+ "description": "Natureza da operação (conforme definição da prefeitura)",
72
+ "type": "String",
73
+ "required": false
74
+ },
75
+ {
76
+ "name": "regime_especial_tributacao",
77
+ "description": "Código de identificação do regime especial de tributação (conforme definição da prefeitura)",
78
+ "type": "String",
79
+ "required": false
80
+ },
81
+ {
82
+ "name": "optante_simples_nacional",
83
+ "description": "Empresa prestadora é optante pelo Simples Nacional",
84
+ "type": "Boolean",
85
+ "required": false
86
+ },
87
+ {
88
+ "name": "incentivador_cultural",
89
+ "description": "Empresa prestadora possui incentivo fiscal (ex: incentivador cultural)",
90
+ "type": "Boolean",
91
+ "required": false
92
+ },
93
+ {
94
+ "name": "competencia",
95
+ "description": "Data da prestação de serviço",
96
+ "type": "String[10] Padrão ISO (YYYY-MM-DD)",
97
+ "required": false
98
+ },
99
+ {
100
+ "name": "numero_nfse_substituida",
101
+ "description": "Número da NFSe substituída",
102
+ "type": "String",
103
+ "required": false
104
+ },
105
+ {
106
+ "name": "outras_informacoes",
107
+ "description": "Outras informações fornecidas pela prefeitura",
108
+ "type": "String",
109
+ "required": false
110
+ },
111
+ {
112
+ "name": "informacoes_adicionais_contribuinte",
113
+ "description": "Informações adicionais fornecidas pelo prestador",
114
+ "type": "String",
115
+ "required": false
116
+ },
117
+ {
118
+ "name": "prestador",
119
+ "description": "Dados do prestador (emitente) do documento fiscal",
120
+ "type": null,
121
+ "required": false,
122
+ "collection_type": "PessoaEmpresa",
123
+ "collection": {
124
+ "object_type": "PessoaEmpresa",
125
+ "object_description": "Dados da Pessoa Física ou Empresa",
126
+ "object_attributes": [
127
+ {
128
+ "name": "cpf",
129
+ "description": "Número do CPF, se Pessoa Física (apenas dígitos)",
130
+ "type": "String[11]",
131
+ "required": false
132
+ },
133
+ {
134
+ "name": "cnpj",
135
+ "description": "Número do CNPJ, se Empresa (apenas dígitos)",
136
+ "type": "String[14]",
137
+ "required": false
138
+ },
139
+ {
140
+ "name": "inscricao_municipal",
141
+ "description": "Número de Inscrição Municipal",
142
+ "type": "String",
143
+ "required": false
144
+ },
145
+ {
146
+ "name": "razao_social",
147
+ "description": "Razão Social da Empresa ou Nome da Pessoa Física",
148
+ "type": "String",
149
+ "required": false
150
+ },
151
+ {
152
+ "name": "nome_fantasia",
153
+ "description": "Nome fantasia da Empresa (apenas para Prestador)",
154
+ "type": "String",
155
+ "required": false
156
+ },
157
+ {
158
+ "name": "telefone",
159
+ "description": "Número de telefone de contato",
160
+ "type": "String",
161
+ "required": false
162
+ },
163
+ {
164
+ "name": "email",
165
+ "description": "Endereço eletrônico (e-mail) de contato",
166
+ "type": "String",
167
+ "required": false
168
+ },
169
+ {
170
+ "name": "endereco",
171
+ "description": "Endereço",
172
+ "type": null,
173
+ "required": false,
174
+ "collection_type": "Endereco",
175
+ "collection": {
176
+ "object_type": "Endereco",
177
+ "object_description": "Dados de endereço",
178
+ "object_attributes": [
179
+ {
180
+ "name": "logradouro",
181
+ "description": "Tipo e nome do logradouro",
182
+ "type": "String",
183
+ "required": false
184
+ },
185
+ {
186
+ "name": "numero",
187
+ "description": "Número do imóvel",
188
+ "type": "String",
189
+ "required": false
190
+ },
191
+ {
192
+ "name": "complemento",
193
+ "description": "Complemento do endereço",
194
+ "type": "String",
195
+ "required": false
196
+ },
197
+ {
198
+ "name": "bairro",
199
+ "description": "Bairro",
200
+ "type": "String",
201
+ "required": false
202
+ },
203
+ {
204
+ "name": "codigo_municipio",
205
+ "description": "Código do município (conforme tabela do IBGE)",
206
+ "type": "String[7]",
207
+ "required": false
208
+ },
209
+ {
210
+ "name": "nome_municipio",
211
+ "description": "Nome do município",
212
+ "type": "String",
213
+ "required": false
214
+ },
215
+ {
216
+ "name": "uf",
217
+ "description": "Sigla da Unidade de Federação",
218
+ "type": "String[2]",
219
+ "required": false
220
+ },
221
+ {
222
+ "name": "codigo_pais",
223
+ "description": "Código do país (conforme tabela do IBGE)",
224
+ "type": "String[4]",
225
+ "required": false
226
+ },
227
+ {
228
+ "name": "cep",
229
+ "description": "Número do CEP (apenas dígitos)",
230
+ "type": "String[8]",
231
+ "required": false
232
+ }
233
+ ]
234
+ }
235
+ }
236
+ ]
237
+ }
238
+ },
239
+ {
240
+ "name": "tomador",
241
+ "description": "Dados do tomador (remetente) do documento fiscal",
242
+ "type": null,
243
+ "required": false,
244
+ "collection_type": "PessoaEmpresa",
245
+ "collection": {
246
+ "object_type": "PessoaEmpresa",
247
+ "object_description": "Dados da Pessoa Física ou Empresa",
248
+ "object_attributes": [
249
+ {
250
+ "name": "cpf",
251
+ "description": "Número do CPF, se Pessoa Física (apenas dígitos)",
252
+ "type": "String[11]",
253
+ "required": false
254
+ },
255
+ {
256
+ "name": "cnpj",
257
+ "description": "Número do CNPJ, se Empresa (apenas dígitos)",
258
+ "type": "String[14]",
259
+ "required": false
260
+ },
261
+ {
262
+ "name": "inscricao_municipal",
263
+ "description": "Número de Inscrição Municipal",
264
+ "type": "String",
265
+ "required": false
266
+ },
267
+ {
268
+ "name": "razao_social",
269
+ "description": "Razão Social da Empresa ou Nome da Pessoa Física",
270
+ "type": "String",
271
+ "required": false
272
+ },
273
+ {
274
+ "name": "nome_fantasia",
275
+ "description": "Nome fantasia da Empresa (apenas para Prestador)",
276
+ "type": "String",
277
+ "required": false
278
+ },
279
+ {
280
+ "name": "telefone",
281
+ "description": "Número de telefone de contato",
282
+ "type": "String",
283
+ "required": false
284
+ },
285
+ {
286
+ "name": "email",
287
+ "description": "Endereço eletrônico (e-mail) de contato",
288
+ "type": "String",
289
+ "required": false
290
+ },
291
+ {
292
+ "name": "endereco",
293
+ "description": "Endereço",
294
+ "type": null,
295
+ "required": false,
296
+ "collection_type": "Endereco",
297
+ "collection": {
298
+ "object_type": "Endereco",
299
+ "object_description": "Dados de endereço",
300
+ "object_attributes": [
301
+ {
302
+ "name": "logradouro",
303
+ "description": "Tipo e nome do logradouro",
304
+ "type": "String",
305
+ "required": false
306
+ },
307
+ {
308
+ "name": "numero",
309
+ "description": "Número do imóvel",
310
+ "type": "String",
311
+ "required": false
312
+ },
313
+ {
314
+ "name": "complemento",
315
+ "description": "Complemento do endereço",
316
+ "type": "String",
317
+ "required": false
318
+ },
319
+ {
320
+ "name": "bairro",
321
+ "description": "Bairro",
322
+ "type": "String",
323
+ "required": false
324
+ },
325
+ {
326
+ "name": "codigo_municipio",
327
+ "description": "Código do município (conforme tabela do IBGE)",
328
+ "type": "String[7]",
329
+ "required": false
330
+ },
331
+ {
332
+ "name": "nome_municipio",
333
+ "description": "Nome do município",
334
+ "type": "String",
335
+ "required": false
336
+ },
337
+ {
338
+ "name": "uf",
339
+ "description": "Sigla da Unidade de Federação",
340
+ "type": "String[2]",
341
+ "required": false
342
+ },
343
+ {
344
+ "name": "codigo_pais",
345
+ "description": "Código do país (conforme tabela do IBGE)",
346
+ "type": "String[4]",
347
+ "required": false
348
+ },
349
+ {
350
+ "name": "cep",
351
+ "description": "Número do CEP (apenas dígitos)",
352
+ "type": "String[8]",
353
+ "required": false
354
+ }
355
+ ]
356
+ }
357
+ }
358
+ ]
359
+ }
360
+ },
361
+ {
362
+ "name": "servicos",
363
+ "description": "Dados dos serviços prestados",
364
+ "type": "Array de Servico",
365
+ "required": false,
366
+ "collection_type": "Servico",
367
+ "collection": {
368
+ "object_type": "Servico",
369
+ "object_description": "Dados de um item de serviço prestado",
370
+ "object_attributes": [
371
+ {
372
+ "name": "valor_servicos",
373
+ "description": "Valor do serviço",
374
+ "type": "Decimal[13.2]",
375
+ "required": false
376
+ },
377
+ {
378
+ "name": "valor_deducoes",
379
+ "description": "Valor total das deduções",
380
+ "type": "Decimal[13.2]",
381
+ "required": false
382
+ },
383
+ {
384
+ "name": "valor_pis",
385
+ "description": "Valor do PIS",
386
+ "type": "Decimal[13.2]",
387
+ "required": false
388
+ },
389
+ {
390
+ "name": "valor_cofins",
391
+ "description": "Valor do COFINS",
392
+ "type": "Decimal[13.2]",
393
+ "required": false
394
+ },
395
+ {
396
+ "name": "valor_inss",
397
+ "description": "Valor do INSS",
398
+ "type": "Decimal[13.2]",
399
+ "required": false
400
+ },
401
+ {
402
+ "name": "valor_ir",
403
+ "description": "Valor do imposto de renda",
404
+ "type": "Decimal[13.2]",
405
+ "required": false
406
+ },
407
+ {
408
+ "name": "valor_csll",
409
+ "description": "Valor do CSLL",
410
+ "type": "Decimal[13.2]",
411
+ "required": false
412
+ },
413
+ {
414
+ "name": "iss_retido",
415
+ "description": "O ISS foi retido na fonte",
416
+ "type": "Boolean",
417
+ "required": false
418
+ },
419
+ {
420
+ "name": "valor_iss",
421
+ "description": "Valor do ISS devido, informado pelo prestador ou município",
422
+ "type": "Decimal[13.2]",
423
+ "required": false
424
+ },
425
+ {
426
+ "name": "valor_iss_retido",
427
+ "description": "Valor do ISS quando retido",
428
+ "type": "Decimal[13.2]",
429
+ "required": false
430
+ },
431
+ {
432
+ "name": "outras_retencoes",
433
+ "description": "Valor total de outras retenções na Fonte",
434
+ "type": "Decimal[13.2]",
435
+ "required": false
436
+ },
437
+ {
438
+ "name": "base_calculo",
439
+ "description": "Base de cálculo da NFSe",
440
+ "type": "Decimal[13.2]",
441
+ "required": false
442
+ },
443
+ {
444
+ "name": "aliquota",
445
+ "description": "Alíquota do serviço prestado (valor percentual, entre 0% e 100%)",
446
+ "type": "Decimal[3.4]",
447
+ "required": false
448
+ },
449
+ {
450
+ "name": "valor_liquido",
451
+ "description": "Valor líquido da NFSe",
452
+ "type": "Decimal[13.2]",
453
+ "required": false
454
+ },
455
+ {
456
+ "name": "valor_credito",
457
+ "description": "Valor do crédito gerado pela NFSe",
458
+ "type": "Decimal[13.2]",
459
+ "required": false
460
+ },
461
+ {
462
+ "name": "desconto_incondicionado",
463
+ "description": "Valor desconto incondicionado (deduzido no cômputo da base de cálculo)",
464
+ "type": "Decimal[13.2]",
465
+ "required": false
466
+ },
467
+ {
468
+ "name": "desconto_condicionado",
469
+ "description": "Valor desconto condicionado (não deduzido no cômputo da base de cálculo)",
470
+ "type": "Decimal[13.2]",
471
+ "required": false
472
+ },
473
+ {
474
+ "name": "item_lista_servico",
475
+ "description": "Código do subitem do serviço prestado (conforme Lei Complementar 116/2003)",
476
+ "type": "String[5] Padrão NF-e (0#.0#)",
477
+ "required": false
478
+ },
479
+ {
480
+ "name": "codigo_cnae",
481
+ "description": "Código CNAE do serviço prestado",
482
+ "type": "String[7]",
483
+ "required": false
484
+ },
485
+ {
486
+ "name": "codigo_tributario_municipio",
487
+ "description": "Código do serviço prestado próprio do município",
488
+ "type": "String",
489
+ "required": false
490
+ },
491
+ {
492
+ "name": "discriminacao",
493
+ "description": "Discriminação dos serviços",
494
+ "type": "String",
495
+ "required": false
496
+ },
497
+ {
498
+ "name": "codigo_municipio",
499
+ "description": "Código do município (conforme tabela do IBGE) da prestação do serviço",
500
+ "type": "String[7]",
501
+ "required": false
502
+ },
503
+ {
504
+ "name": "codigo_pais",
505
+ "description": "Código do país (conforme tabela do IBGE) da prestação do serviço",
506
+ "type": "String[4]",
507
+ "required": false
508
+ },
509
+ {
510
+ "name": "codigo_municipio_incidencia",
511
+ "description": "Código do município (conforme tabela do IBGE) da incidência do ISS",
512
+ "type": "String[7]",
513
+ "required": false
514
+ },
515
+ {
516
+ "name": "quantidade",
517
+ "description": "Quantidade do item de serviço prestado",
518
+ "type": "Decimal[13.2]",
519
+ "required": false
520
+ },
521
+ {
522
+ "name": "valor_unitario",
523
+ "description": "Valor de cada unidade do item de serviço prestado",
524
+ "type": "Decimal[13.2]",
525
+ "required": false
526
+ }
527
+ ]
528
+ }
529
+ },
530
+ {
531
+ "name": "url",
532
+ "description": "URL para acesso ao espelho da NFSe",
533
+ "type": "String",
534
+ "required": false
535
+ },
536
+ {
537
+ "name": "url_xml",
538
+ "description": "URL para acesso ao XML da NFSe",
539
+ "type": "String",
540
+ "required": false
541
+ },
542
+ {
543
+ "name": "erros",
544
+ "description": "Eventuais erros e mensagens adicionais de processamento da API Focus NFe",
545
+ "type": "Array de Mensagem",
546
+ "required": false
547
+ }
548
+ ]