gobl 0.24.1 → 0.24.3

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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/data/addons/br-nfe-v4.json +481 -0
  3. data/data/addons/br-nfse-v1.json +235 -0
  4. data/data/addons/co-dian-v2.json +311 -0
  5. data/data/addons/de-xrechnung-v3.json +16 -0
  6. data/data/addons/de-zugferd-v2.json +16 -0
  7. data/data/addons/es-facturae-v3.json +359 -0
  8. data/data/addons/es-tbai-v1.json +225 -0
  9. data/data/addons/es-verifactu-v1.json +609 -0
  10. data/data/addons/eu-en16931-v2017.json +92 -0
  11. data/data/addons/fr-choruspro-v1.json +260 -0
  12. data/data/addons/fr-facturx-v1.json +16 -0
  13. data/data/addons/gr-mydata-v1.json +1495 -0
  14. data/data/addons/it-sdi-v1.json +1570 -0
  15. data/data/addons/it-ticket-v1.json +144 -0
  16. data/data/addons/mx-cfdi-v4.json +908 -0
  17. data/data/addons/pl-favat-v2.json +235 -0
  18. data/data/addons/pt-saft-v1.json +950 -0
  19. data/data/catalogues/cef.json +374 -0
  20. data/data/catalogues/iso.json +19 -0
  21. data/data/catalogues/untdid.json +10669 -0
  22. data/data/currency/iso.json +2378 -0
  23. data/data/currency/non-iso.json +128 -0
  24. data/data/schemas/bill/charge.json +125 -0
  25. data/data/schemas/bill/correction-options.json +54 -0
  26. data/data/schemas/bill/delivery-details.json +41 -0
  27. data/data/schemas/bill/delivery.json +412 -0
  28. data/data/schemas/bill/discount.json +137 -0
  29. data/data/schemas/bill/invoice.json +423 -0
  30. data/data/schemas/bill/line.json +433 -0
  31. data/data/schemas/bill/order.json +401 -0
  32. data/data/schemas/bill/ordering.json +107 -0
  33. data/data/schemas/bill/payment-details.json +36 -0
  34. data/data/schemas/bill/payment.json +424 -0
  35. data/data/schemas/bill/tax.json +45 -0
  36. data/data/schemas/bill/totals.json +84 -0
  37. data/data/schemas/cal/date-time.json +13 -0
  38. data/data/schemas/cal/date.json +13 -0
  39. data/data/schemas/cal/period.json +32 -0
  40. data/data/schemas/cal/time.json +13 -0
  41. data/data/schemas/cbc/code-map.json +16 -0
  42. data/data/schemas/cbc/code.json +15 -0
  43. data/data/schemas/cbc/definition.json +67 -0
  44. data/data/schemas/cbc/key.json +15 -0
  45. data/data/schemas/cbc/meta.json +16 -0
  46. data/data/schemas/cbc/source.json +37 -0
  47. data/data/schemas/currency/amount.json +32 -0
  48. data/data/schemas/currency/code.json +734 -0
  49. data/data/schemas/currency/exchange-rate.json +43 -0
  50. data/data/schemas/dsig/digest.json +27 -0
  51. data/data/schemas/dsig/signature.json +12 -0
  52. data/data/schemas/envelope.json +41 -0
  53. data/data/schemas/head/header.json +62 -0
  54. data/data/schemas/head/link.json +42 -0
  55. data/data/schemas/head/stamp.json +27 -0
  56. data/data/schemas/i18n/string.json +18 -0
  57. data/data/schemas/l10n/code.json +13 -0
  58. data/data/schemas/l10n/iso-country-code.json +1010 -0
  59. data/data/schemas/l10n/tax-country-code.json +1022 -0
  60. data/data/schemas/note/message.json +43 -0
  61. data/data/schemas/num/amount.json +13 -0
  62. data/data/schemas/num/percentage.json +13 -0
  63. data/data/schemas/org/address.json +105 -0
  64. data/data/schemas/org/attachment.json +58 -0
  65. data/data/schemas/org/coordinates.json +33 -0
  66. data/data/schemas/org/document-ref.json +117 -0
  67. data/data/schemas/org/email.json +37 -0
  68. data/data/schemas/org/identity.json +57 -0
  69. data/data/schemas/org/image.json +70 -0
  70. data/data/schemas/org/inbox.json +49 -0
  71. data/data/schemas/org/item.json +96 -0
  72. data/data/schemas/org/name.json +59 -0
  73. data/data/schemas/org/note.json +184 -0
  74. data/data/schemas/org/party.json +129 -0
  75. data/data/schemas/org/person.json +90 -0
  76. data/data/schemas/org/registration.json +66 -0
  77. data/data/schemas/org/telephone.json +32 -0
  78. data/data/schemas/org/unit.json +350 -0
  79. data/data/schemas/org/website.json +38 -0
  80. data/data/schemas/pay/advance.json +211 -0
  81. data/data/schemas/pay/instructions.json +245 -0
  82. data/data/schemas/pay/terms.json +128 -0
  83. data/data/schemas/regimes/mx/food-vouchers.json +111 -0
  84. data/data/schemas/regimes/mx/fuel-account-balance.json +179 -0
  85. data/data/schemas/schema/object.json +12 -0
  86. data/data/schemas/tax/addon-def.json +288 -0
  87. data/data/schemas/tax/catalogue-def.json +37 -0
  88. data/data/schemas/tax/extensions.json +16 -0
  89. data/data/schemas/tax/identity.json +45 -0
  90. data/data/schemas/tax/regime-def.json +513 -0
  91. data/data/schemas/tax/set.json +139 -0
  92. data/data/schemas/tax/total.json +135 -0
  93. data/lib/gobl/extensions/tax/addon_helper.rb +37 -0
  94. data/lib/gobl/version.rb +1 -1
  95. data/lib/gobl.rb +1 -0
  96. metadata +93 -1
@@ -0,0 +1,950 @@
1
+ {
2
+ "$schema": "https://gobl.org/draft-0/tax/addon-def",
3
+ "key": "pt-saft-v1",
4
+ "name": {
5
+ "en": "Portugal SAF-T"
6
+ },
7
+ "description": {
8
+ "en": "Portugal doesn't have an e-invoicing format per se. Tax information is reported\nelectronically to the AT (Autoridade Tributária e Aduaneira) either periodically in\nbatches via a SAF-T (PT) report or individually in real time via a web service. This addon\nensures that the GOBL documents have all the required fields to be able to be reported to\nthe AT."
9
+ },
10
+ "sources": [
11
+ {
12
+ "title": {
13
+ "en": "Portaria n.o 302/2016 – SAF-T Data Structure \u0026 Taxonomies"
14
+ },
15
+ "url": "https://info.portaldasfinancas.gov.pt/pt/informacao_fiscal/legislacao/diplomas_legislativos/Documents/Portaria_302_2016.pdf",
16
+ "content_type": "application/pdf"
17
+ },
18
+ {
19
+ "title": {
20
+ "en": "Portaria n.o 195/2020 – Comunicação de Séries Documentais, Aspetos Específicos"
21
+ },
22
+ "url": "https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/Faturacao/Comunicacao_Series_ATCUD/Documents/Comunicacao_de_Series_Documentais_Manual_de_Integracao_de_SW_Aspetos_Genericos.pdf",
23
+ "content_type": "application/pdf"
24
+ },
25
+ {
26
+ "title": {
27
+ "en": "Portaria n.o 195/2020 – Especificações Técnicas Código QR"
28
+ },
29
+ "url": "https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/Novas_regras_faturacao/Documents/Especificacoes_Tecnicas_Codigo_QR.pdf",
30
+ "content_type": "application/pdf"
31
+ },
32
+ {
33
+ "title": {
34
+ "en": "Comunicação dos elementos dos documentos de faturação à AT, por webservice"
35
+ },
36
+ "url": "https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/Faturacao/Fatcorews/Documents/Comunicacao_dos_elementos_dos_documentos_de_faturacao.pdf",
37
+ "content_type": "application/pdf"
38
+ }
39
+ ],
40
+ "extensions": [
41
+ {
42
+ "key": "pt-saft-invoice-type",
43
+ "name": {
44
+ "en": "Invoice Type",
45
+ "pt": "Tipo de Fatura"
46
+ },
47
+ "desc": {
48
+ "en": "SAF-T's `InvoiceType` (Tipo de documento) specifies the type of a sales invoice. In GOBL,\nthis type can be set using the `pt-saft-invoice-type` extension in the tax section. GOBL\nwill set the extension for you based on the type and the tax tags you set in your invoice.\n\nThe table below shows how this mapping is done:\n\n| Code | Name | GOBL Type | GOBL Tax Tag |\n| ---- | ------------------- | ------------- | --------------- |\n| `FT` | Standard Invoice | `standard` | |\n| `FS` | Simplified Invoice | `standard` | `simplified` |\n| `FR` | Invoice-Receipt | `standard` | `invoice-receipt` |\n| `ND` | Debit Note | `debit-note` | |\n| `NC` | Credit Note | `credit-note` | |\n\nExample:\n\n```js\n{\n\t\"$schema\": \"https://gobl.org/draft-0/bill/invoice\",\n\t\"$tags\": [\n\t\t\"invoice-receipt\"\n\t],\n\t// ...\n\t\"type\": \"standard\",\n\t// ...\n\t\"tax\": {\n\t\t\"ext\": {\n\t\t\t\"pt-saft-invoice-type\": \"FR\"\n\t\t}\n\t},\n\t// ...\n```"
49
+ },
50
+ "values": [
51
+ {
52
+ "code": "FT",
53
+ "name": {
54
+ "en": "Standard Invoice",
55
+ "pt": "Fatura"
56
+ },
57
+ "desc": {
58
+ "en": "Invoice issued under article 36 of the VAT code.",
59
+ "pt": "Fatura, emitida nos termos do artigo 36.o do Código do IVA"
60
+ }
61
+ },
62
+ {
63
+ "code": "FS",
64
+ "name": {
65
+ "en": "Simplified Invoice",
66
+ "pt": "Fatura Simplificada"
67
+ },
68
+ "desc": {
69
+ "en": "Simplified invoice issued under article 40 of the VAT code.",
70
+ "pt": "Fatura simplificada, emitida nos termos do artigo 40.o do Código do IVA"
71
+ }
72
+ },
73
+ {
74
+ "code": "FR",
75
+ "name": {
76
+ "en": "Invoice-Receipt",
77
+ "pt": "Fatura-Recibo"
78
+ },
79
+ "desc": {
80
+ "en": "Invoice issued after payment.",
81
+ "pt": "Fatura-recibo"
82
+ }
83
+ },
84
+ {
85
+ "code": "ND",
86
+ "name": {
87
+ "en": "Debit Note",
88
+ "pt": "Nota de Débito"
89
+ }
90
+ },
91
+ {
92
+ "code": "NC",
93
+ "name": {
94
+ "en": "Credit Note",
95
+ "pt": "Nota de Crédito"
96
+ }
97
+ }
98
+ ]
99
+ },
100
+ {
101
+ "key": "pt-saft-payment-type",
102
+ "name": {
103
+ "en": "Payment Type",
104
+ "pt": "Tipo de Pagamento"
105
+ },
106
+ "desc": {
107
+ "en": "To report payment receipts to the AT, GOBL provides conversion from `bill.Payment`\ndocuments. In a payment, the SAF-T's `PaymentType` (Tipo de documento) field specifies its\ntype. In GOBL, this type can be set using the `pt-saft-payment-type` extension. GOBL will\nset the extension automatically based on the type and the tax tags you set. The table\nbelow shows how this mapping is done:\n\n| Code | Name | GOBL Type | GOBL Tax Tag |\n| ---- | ------------------------------------------ | --------- | ------------ |\n| RG | Outro Recibo | `receipt` | |\n| RC | Recibo no âmbito do regime de IVA de Caixa | `receipt` | `vat-cash` |\n\nFor example:\n\n```js\n{\n\t\"$schema\": \"https://gobl.org/draft-0/bill/payment\",\n\t// ...\n\t\"type\": \"receipt\",\n\t// ...\n\t\"ext\": {\n\t\t\"pt-saft-receipt-type\": \"RG\"\n\t},\n\t// ...\n```"
108
+ },
109
+ "values": [
110
+ {
111
+ "code": "RC",
112
+ "name": {
113
+ "en": "Receipt under the VAT Cash scheme",
114
+ "pt": "Recibo no âmbito do regime de IVA de Caixa"
115
+ }
116
+ },
117
+ {
118
+ "code": "RG",
119
+ "name": {
120
+ "en": "Other Receipt",
121
+ "pt": "Outro Recibo"
122
+ }
123
+ }
124
+ ]
125
+ },
126
+ {
127
+ "key": "pt-saft-tax-rate",
128
+ "name": {
129
+ "en": "Tax Rate Code",
130
+ "pt": "Código da Taxa de Imposto"
131
+ },
132
+ "desc": {
133
+ "en": "The SAF-T's `TaxCode` (Código do imposto) is required for invoice items that apply VAT.\nGOBL provides the `pt-saft-tax-rate` extension to set this code at line tax level. It also\ndetermines it automatically this code using the `rate` field (when present). The following\ntable lists the supported tax codes and how GOBL will map them:\n\n| Code | Name | GOBL Tax Rate |\n| ------ | --------------- | -------------- |\n| `NOR` | Tipo Geral | `standard` |\n| `INT` | Taxa Intermédia | `intermediate` |\n| `RED` | Taxa Reduzida | `reduced` |\n| `ISE` | Isenta | `exempt` |"
134
+ },
135
+ "values": [
136
+ {
137
+ "code": "RED",
138
+ "name": {
139
+ "en": "Reduced",
140
+ "pt": "Redução"
141
+ }
142
+ },
143
+ {
144
+ "code": "INT",
145
+ "name": {
146
+ "en": "Intermediate",
147
+ "pt": "Intermédio"
148
+ }
149
+ },
150
+ {
151
+ "code": "NOR",
152
+ "name": {
153
+ "en": "Normal",
154
+ "pt": "Normal"
155
+ }
156
+ },
157
+ {
158
+ "code": "ISE",
159
+ "name": {
160
+ "en": "Exempt",
161
+ "pt": "Isento"
162
+ }
163
+ },
164
+ {
165
+ "code": "OUT",
166
+ "name": {
167
+ "en": "Other",
168
+ "pt": "Outro"
169
+ }
170
+ }
171
+ ]
172
+ },
173
+ {
174
+ "key": "pt-saft-exemption",
175
+ "name": {
176
+ "en": "Tax exemption reason code",
177
+ "pt": "Código do motivo de isenção de imposto"
178
+ },
179
+ "desc": {
180
+ "en": "The SAF-T's `TaxExemptionCode` (Código do motivo de isenção de imposto) is a code that\nspecifies the reason the VAT tax is exempt in a Portuguese invoice. When the `exempt` tag\nis used in a tax combo, the `ext` map's `pt-saft-exemption` property is required.\n\nThe SAF-T's `TaxExemptionReason` (Motivo da isenção de imposto) is a text that justifies\nthe exemption referencing the relevant legislation. In GOBL, this is provided with a\nspecial line-level `note`.\n\nBy default, if no note is provided, GOBL will automatically assign a default one\nconsistent with the exemption code. However, note that default texts are generic and not\nalways sufficiently precise to comply with the regulations. The invoice issuer should be\ngiven the option to provide a custom note with the appropriate descriptive text.\n\nFor example, you could define an invoice line exempt of tax with the exemption code and\nthe reason as follows:\n\n```js\n{\n\t\"$schema\": \"https://gobl.org/draft-0/bill/invoice\",\n\t// ...\n\t\"lines\": [\n\t\t{\n\t\t\t// ...\n\t\t\"item\": {\n\t\t\t\t\"name\": \"Some service exempt of tax\",\n\t\t\t\t\"price\": \"25.00\"\n\t\t\t},\n\t\t\t\"tax\": [\n\t\t\t\t{\n\t\t\t\t\t\t\"cat\": \"VAT\",\n\t\t\t\t\t\t\"rate\": \"exempt\",\n\t\t\t\t\t\t\"ext\": {\n\t\t\t\t\t\t\t\"pt-saft-tax-rate\": \"ISE\",\n\t\t\t\t\t\t\t\"pt-saft-exemption\": \"M40\"\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"notes\": [\n\t\t\t{\n\t\t\t\t\"key\": \"legal\",\n\t\t\t\t\"code\": \"M40\",\n\t\t\t\t\"src\": \"pt-saft-exemption\",\n\t\t\t\t\"text\": \"Artigo 6.º n.º 6 alínea a) do CIVA, a contrário\"\n\t\t\t}\n\t\t]\n\t]\n}\n```"
181
+ },
182
+ "sources": [
183
+ {
184
+ "title": {
185
+ "en": "AT Tax Exemption Codes",
186
+ "pt": "Códigos de motivo de isenção"
187
+ },
188
+ "url": "https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/Faturacao/Fatcorews/Documents/Tabela_Codigos_Motivo_Isencao.pdf",
189
+ "content_type": "application/pdf"
190
+ },
191
+ {
192
+ "title": {
193
+ "en": "Art. 2.2.14 of Despacho nº8632/2014",
194
+ "pt": "Art. 2.2.14 do Despacho nº8632/2014"
195
+ },
196
+ "url": "https://files.diariodarepublica.pt/2s/2014/07/126000000/1725517261.pdf",
197
+ "content_type": "application/pdf"
198
+ },
199
+ {
200
+ "title": {
201
+ "en": "Field 4.4.19.7 of Portaria nº302/2016",
202
+ "pt": "Campo 4.4.19.7 da Portaria nº302/2016"
203
+ },
204
+ "url": "https://files.diariodarepublica.pt/1s/2016/12/23100/0427304379.pdf",
205
+ "content_type": "application/pdf"
206
+ }
207
+ ],
208
+ "values": [
209
+ {
210
+ "code": "M01",
211
+ "name": {
212
+ "en": "Article 16, No. 6, paragraphs a) to d) of the VAT code",
213
+ "pt": "Artigo 16.º, n.º 6, alíneas a) a d) do CIVA"
214
+ },
215
+ "desc": {
216
+ "en": "Amounts invoiced as being received on behalf of the purchaser\n— e.g. agency sales or third-party collections; supplier records\nfunds in “accounts of third parties”, no VAT is added by the\nsupplier."
217
+ }
218
+ },
219
+ {
220
+ "code": "M02",
221
+ "name": {
222
+ "en": "Article 6 of Decree-Law No. 198/90 of 19th June",
223
+ "pt": "Artigo 6.º do Decreto-Lei n.º 198/90, de 19 de junho"
224
+ },
225
+ "desc": {
226
+ "en": "B2B deliveries above €1,000 from a domestic supplier to a\ntaxable person in Portugal who exports in the same state — VAT\nzero-rated when export is immediate."
227
+ }
228
+ },
229
+ {
230
+ "code": "M04",
231
+ "name": {
232
+ "en": "Article 13 of the VAT code",
233
+ "pt": "Artigo 13.º do CIVA"
234
+ },
235
+ "desc": {
236
+ "en": "Certain types of importation or re-importation expressly exempt\nunder Portuguese VAT rules."
237
+ }
238
+ },
239
+ {
240
+ "code": "M05",
241
+ "name": {
242
+ "en": "Article 14 of the VAT code",
243
+ "pt": "Artigo 14.º do CIVA"
244
+ },
245
+ "desc": {
246
+ "en": "Exports, deemed exports or international transport services\nprovided from Portugal — zero-rated for VAT."
247
+ }
248
+ },
249
+ {
250
+ "code": "M06",
251
+ "name": {
252
+ "en": "Article 15 of the VAT code",
253
+ "pt": "Artigo 15.º do CIVA"
254
+ },
255
+ "desc": {
256
+ "en": "Goods or services under suspension regimes (e.g. transhipment,\nprocessing), or special transitional exemption schemes."
257
+ }
258
+ },
259
+ {
260
+ "code": "M07",
261
+ "name": {
262
+ "en": "Article 9 of the VAT code",
263
+ "pt": "Artigo 9.º do CIVA"
264
+ },
265
+ "desc": {
266
+ "en": "Activities such as health, education, culture, insurance,\nrentals, or authorized lotteries — exempt goods and services, but\nwithout VAT recovery rights."
267
+ }
268
+ },
269
+ {
270
+ "code": "M09",
271
+ "name": {
272
+ "en": "Article 62 paragraph b) of the VAT code",
273
+ "pt": "Artigo 62.º alínea b) do CIVA"
274
+ },
275
+ "desc": {
276
+ "en": "Retailers under the “small trader regime” (volume below threshold)\nwho cannot recover VAT on inputs. The VAT is not levied, but the\ntaxpayer has no deduction rights."
277
+ }
278
+ },
279
+ {
280
+ "code": "M10",
281
+ "name": {
282
+ "en": "Article 57 of the VAT code",
283
+ "pt": "Artigo 57.º do CIVA"
284
+ },
285
+ "desc": {
286
+ "en": "Flat-rate VAT scheme for small taxpayers (typically individuals\nwith turnover below €15,000 in the preceding year). Exemption\napplies, albeit with a limited VAT recovery regime."
287
+ }
288
+ },
289
+ {
290
+ "code": "M11",
291
+ "name": {
292
+ "en": "Decree-Law No. 346/85 of 23rd August",
293
+ "pt": "Decreto-Lei n.º 346/85, de 23 de agosto"
294
+ },
295
+ "desc": {
296
+ "en": "Suppliers or resellers of manufactured tobacco or matches taxed\nunder the special tobacco tax regime — VAT is either not due or\ntreated under excise rules."
297
+ }
298
+ },
299
+ {
300
+ "code": "M12",
301
+ "name": {
302
+ "en": "Decree-Law No. 221/85 of 3rd July",
303
+ "pt": "Decreto-Lei n.º 221/85, de 3 de julho"
304
+ },
305
+ "desc": {
306
+ "en": "Travel agencies selling tours in their own name (even when\nbooking services from others) are taxed only on their margin, not\non the full amount."
307
+ }
308
+ },
309
+ {
310
+ "code": "M13",
311
+ "name": {
312
+ "en": "Decree-Law No. 199/96 of 18th October",
313
+ "pt": "Decreto-Lei n.º 199/96, de 18 de outubro"
314
+ },
315
+ "desc": {
316
+ "en": "Resale of used goods under the margin scheme — VAT applies solely\nto the profit margin."
317
+ }
318
+ },
319
+ {
320
+ "code": "M14",
321
+ "name": {
322
+ "en": "Decree-Law No. 199/96 of 18th October",
323
+ "pt": "Decreto-Lei n.º 199/96, de 18 de outubro"
324
+ },
325
+ "desc": {
326
+ "en": "Art pieces sold under the margin taxation rule — VAT calculated\nonly on the dealer's margin."
327
+ }
328
+ },
329
+ {
330
+ "code": "M15",
331
+ "name": {
332
+ "en": "Decree-Law No. 199/96 of 18th October",
333
+ "pt": "Decreto-Lei n.º 199/96, de 18 de outubro"
334
+ },
335
+ "desc": {
336
+ "en": "Antiques or collectibles treated under a margin-based VAT regime,\nmeaning VAT on margin only."
337
+ }
338
+ },
339
+ {
340
+ "code": "M16",
341
+ "name": {
342
+ "en": "Article 14 of the RITI",
343
+ "pt": "Artigo 14.º do RITI"
344
+ },
345
+ "desc": {
346
+ "en": "Standard rule for intra-EU goods transfers (Normal\nintra-Community supplies) — zero-VAT, no import VAT regime;\nrecipient accounts for VAT via VAT return."
347
+ }
348
+ },
349
+ {
350
+ "code": "M19",
351
+ "name": {
352
+ "en": "Other exemptions",
353
+ "pt": "Outras isenções"
354
+ },
355
+ "desc": {
356
+ "en": "Temporary, sector-specific or exceptional exemptions established\nby specific legislation (e.g. emergency relief)."
357
+ }
358
+ },
359
+ {
360
+ "code": "M20",
361
+ "name": {
362
+ "en": "Article 59-D No. 2 of the VAT code",
363
+ "pt": "Artigo 59.º-D n.º 2 do CIVA"
364
+ },
365
+ "desc": {
366
+ "en": "Flat-rate VAT exemption for certain agricultural activities under\nthe “forfetário” scheme (simplified turnover-based regime)."
367
+ }
368
+ },
369
+ {
370
+ "code": "M21",
371
+ "name": {
372
+ "en": "Article 72 No. 4 of the VAT code",
373
+ "pt": "Artigo 72.º n.º 4 do CIVA"
374
+ },
375
+ "desc": {
376
+ "en": "Fuel resellers operating on behalf of distributors cannot deduct\nVAT they incur — vendor issues invoice at 0%, no VAT recovery by\nreseller."
377
+ }
378
+ },
379
+ {
380
+ "code": "M25",
381
+ "name": {
382
+ "en": "Article 38 No. 1 paragraph a) of the VAT code",
383
+ "pt": "Artigo 38.º n.º 1 alínea a) do CIVA"
384
+ },
385
+ "desc": {
386
+ "en": "Consignment stock sales — consignor issues invoice to consignee,\nbut goods remain under consignment; VAT is not yet due until\nfinal sale."
387
+ }
388
+ },
389
+ {
390
+ "code": "M26",
391
+ "name": {
392
+ "en": "Law No. 17/2023 of 14th April",
393
+ "pt": "Lei n.º 17/2023, de 14 de abril"
394
+ },
395
+ "desc": {
396
+ "en": "“IVA Zero” food-basket scheme allowed VAT exemption with right to\ndeduction. Active 18 Apr 2023 to 4 Jan 2024, now expired. "
397
+ }
398
+ },
399
+ {
400
+ "code": "M30",
401
+ "name": {
402
+ "en": "Article 2 No. 1 paragraph i) of the VAT code",
403
+ "pt": "Artigo 2.º n.º 1 alínea i) do CIVA"
404
+ },
405
+ "desc": {
406
+ "en": "Reverse-charge on purchase of waste, scrap or recyclable materials\nlisted in Annex E of VAT Code — purchaser self-accounts VAT."
407
+ }
408
+ },
409
+ {
410
+ "code": "M31",
411
+ "name": {
412
+ "en": "Article 2 No. 1 paragraph j) of the VAT code",
413
+ "pt": "Artigo 2.º n.º 1 alínea j) do CIVA"
414
+ },
415
+ "desc": {
416
+ "en": "Reverse-charge for construction or civil-works services under\nsubcontracting; client self-accounts VAT."
417
+ }
418
+ },
419
+ {
420
+ "code": "M32",
421
+ "name": {
422
+ "en": "Article 2 No. 1 paragraph l) of the VAT code",
423
+ "pt": "Artigo 2.º n.º 1 alínea l) do CIVA"
424
+ },
425
+ "desc": {
426
+ "en": "Reverse-charge on services involving emission rights, certified\nreductions or reduction units (environmental credits)."
427
+ }
428
+ },
429
+ {
430
+ "code": "M33",
431
+ "name": {
432
+ "en": "Article 2 No. 1 paragraph m) of the VAT code",
433
+ "pt": "Artigo 2.º n.º 1 alínea m) do CIVA"
434
+ },
435
+ "desc": {
436
+ "en": "Reverse-charge on raw cork, wood, pine-cones with shell — \npurchaser accounts for VAT."
437
+ }
438
+ },
439
+ {
440
+ "code": "M34",
441
+ "name": {
442
+ "en": "Article 2 No. 1 paragraph n) of the VAT code",
443
+ "pt": "Artigo 2.º n.º 1 alínea n) do CIVA"
444
+ },
445
+ "desc": {
446
+ "en": "Reverse-charge on electricity sold for self-consumption (≤1MW\ncapacity); the supplier issues invoice at 0% VAT."
447
+ }
448
+ },
449
+ {
450
+ "code": "M40",
451
+ "name": {
452
+ "en": "Article 6 No. 6 paragraph a) of the VAT code, to the contrary",
453
+ "pt": "Artigo 6.º n.º 6 alínea a) do CIVA, a contrário"
454
+ },
455
+ "desc": {
456
+ "en": "Reverse-charge for cross-border B2B services from suppliers\nwithout a fixed establishment in Portugal — Portuguese client\nself-accounts."
457
+ }
458
+ },
459
+ {
460
+ "code": "M41",
461
+ "name": {
462
+ "en": "Article 8 No. 3 of the RITI",
463
+ "pt": "Artigo 8.º n.º 3 do RITI"
464
+ },
465
+ "desc": {
466
+ "en": "Reverse-charge for intracommunity triangular transactions (RITI\nart. 8.3) — recipient (third party) must self-liquidate VAT."
467
+ }
468
+ },
469
+ {
470
+ "code": "M42",
471
+ "name": {
472
+ "en": "Decree-Law No. 21/2007 of 29th January",
473
+ "pt": "Decreto-Lei n.º 21/2007, de 29 de janeiro"
474
+ },
475
+ "desc": {
476
+ "en": "When supplier renounces to VAT exemption on a real-estate sale,\nthe buyer must self-account VAT."
477
+ }
478
+ },
479
+ {
480
+ "code": "M43",
481
+ "name": {
482
+ "en": "Decree-Law No. 362/99 of 16th September",
483
+ "pt": "Decreto-Lei n.º 362/99, de 16 de setembro"
484
+ },
485
+ "desc": {
486
+ "en": "Reverse-charge on investment gold transactions that are not\nVAT-exempt under special gold regulations; buyer reports VAT."
487
+ }
488
+ },
489
+ {
490
+ "code": "M99",
491
+ "name": {
492
+ "en": "Not subject to tax or not taxed",
493
+ "pt": "Não sujeito ou não tributado"
494
+ },
495
+ "desc": {
496
+ "en": "Other cases where VAT is legally not due — e.g. not subject due\nto CIVA articles 2, 3, or 4 (outside scope of VAT)."
497
+ }
498
+ }
499
+ ]
500
+ },
501
+ {
502
+ "key": "pt-saft-product-type",
503
+ "name": {
504
+ "en": "Product Type",
505
+ "pt": "Tipo de Produto"
506
+ },
507
+ "desc": {
508
+ "en": "SAF-T's `ProductType` (Indicador de produto ou serviço) indicates the type of each line\nitem in an invoice. The `pt-saft-product-type` extension used at line item level allows to\nset the product type to one of the allowed values.\n\nExample:\n\n```js\n{\n\t\"$schema\": \"https://gobl.org/draft-0/bill/invoice\",\n\t// ...\n\t\"lines\": [\n\t\t{\n\t\t\t// ...\n\t\t\t\"item\": {\n\t\t\t\t\"name\": \"Some service\",\n\t\t\t\t\"price\": \"25.00\",\n\t\t\t\t\"ext\": {\n\t\t\t\t\t\"pt-saft-product-type\": \"S\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t// ...\n\t\t}\n\t]\n}\n```"
509
+ },
510
+ "values": [
511
+ {
512
+ "code": "P",
513
+ "name": {
514
+ "en": "Goods",
515
+ "pt": "Produtos"
516
+ }
517
+ },
518
+ {
519
+ "code": "S",
520
+ "name": {
521
+ "en": "Services",
522
+ "pt": "Serviços"
523
+ }
524
+ },
525
+ {
526
+ "code": "O",
527
+ "name": {
528
+ "en": "Other",
529
+ "pt": "Outros"
530
+ },
531
+ "desc": {
532
+ "en": "Other (e.g., debited postage, advances received or disposal of assets)",
533
+ "pt": "Outros (ex., portes debitados, adiantamentos recebidos ou alienação de ativos)"
534
+ }
535
+ },
536
+ {
537
+ "code": "E",
538
+ "name": {
539
+ "en": "Excise Duties",
540
+ "pt": "Impostos Especiais"
541
+ },
542
+ "desc": {
543
+ "en": "Excise Duties (e.g., IABA, ISP, IT)",
544
+ "pt": "Impostos Especiais de Consumo (ex., IABA, ISP, IT)"
545
+ }
546
+ },
547
+ {
548
+ "code": "I",
549
+ "name": {
550
+ "en": "Taxes/Fees",
551
+ "pt": "Impostos/Taxas"
552
+ },
553
+ "desc": {
554
+ "en": "Taxes, fees and parafiscal charges (except VAT and IS which should be reflected in table 2.5 - TaxTable and Excise Duties, which should be filled in with code 'E')",
555
+ "pt": "Impostos, taxas e encargos parafiscais – exceto IVA e IS que deverão ser refletidos na tabela 2.5 – Tabela de impostos (TaxTable) e Impostos Especiais de Consumo, que deverão ser preenchidos com o código 'E'."
556
+ }
557
+ }
558
+ ]
559
+ },
560
+ {
561
+ "key": "pt-saft-work-type",
562
+ "name": {
563
+ "en": "Document Type",
564
+ "pt": "Tipo de documento"
565
+ },
566
+ "desc": {
567
+ "en": "SAF-T's `WorkType` (Tipo de documento de conferência) specifies the type of a working\ndocument. In GOBL, this type can be set using the `pt-saft-work-type` extension in either\n`bill.Invoice` or `bill.Order` documents. GOBL will set the extension for you based on the\ndocument type in some cases.\n\nThe table below shows the supported work type codes and their compatibility with GOBL objects:\n\n| Code | Name | GOBL Doc | GOBL Type |\n| ------ | ------------------------------- | -------- | ---------- |\n| `PF` | Pró-forma | Invoice | `proforma` |\n| `FC` | Fatura de consignação | Invoice | |\n| `CC` | Credito de consignação | Invoice | |\n| `CM` | Consultas de mesa | Order | |\n| `FO` | Folhas de obra | Order | |\n| `NE` | Nota de Encomenda | Order | `purchase` |\n| `OU` | Outros | Order | |\n| `OR` | Orçamentos | Order | `quote` |\n| `DC` | Documentos de conferência | Order | |\n| `RP` | Prémio ou recibo de prémio | Order | |\n| `RE` | Estorno ou recibo de estorno | Order | |\n| `CS` | Imputação a co-seguradoras | Order | |\n| `LD` | Imputação a co-seguradora líder | Order | |\n| `RA` | Resseguro aceite | Order | |\n\nExample for a proforma invoice:\n\n```js\n{\n\t\"$schema\": \"https://gobl.org/draft-0/bill/invoice\",\n\t\"type\": \"proforma\",\n\t// ...\n\t\"tax\": {\n\t\t\"ext\": {\n\t\t\t\"pt-saft-work-type\": \"PF\"\n\t\t}\n\t},\n\t// ...\n```\n\nExample for a purchase order:\n\n```js\n{\n\t\"$schema\": \"https://gobl.org/draft-0/bill/order\",\n\t\"type\": \"purchase\",\n\t// ...\n\t\"tax\": {\n\t\t\"ext\": {\n\t\t\t\"pt-saft-work-type\": \"NE\"\n\t\t}\n\t},\n\t// ...\n```"
568
+ },
569
+ "values": [
570
+ {
571
+ "code": "CM",
572
+ "name": {
573
+ "en": "Table orders",
574
+ "pt": "Consultas de mesa"
575
+ }
576
+ },
577
+ {
578
+ "code": "CC",
579
+ "name": {
580
+ "en": "Consignment credit note",
581
+ "pt": "Credito de consignação"
582
+ }
583
+ },
584
+ {
585
+ "code": "FC",
586
+ "name": {
587
+ "en": "VAT-compliant consignment invoice (Article 38)",
588
+ "pt": "Fatura de consignação nos termos do art.º 38º do código do IVA"
589
+ }
590
+ },
591
+ {
592
+ "code": "FO",
593
+ "name": {
594
+ "en": "Work orders",
595
+ "pt": "Folhas de obra"
596
+ }
597
+ },
598
+ {
599
+ "code": "NE",
600
+ "name": {
601
+ "en": "Purchase order",
602
+ "pt": "Nota de Encomenda"
603
+ }
604
+ },
605
+ {
606
+ "code": "OU",
607
+ "name": {
608
+ "en": "Other documents",
609
+ "pt": "Outros"
610
+ }
611
+ },
612
+ {
613
+ "code": "OR",
614
+ "name": {
615
+ "en": "Quotations",
616
+ "pt": "Orçamentos"
617
+ }
618
+ },
619
+ {
620
+ "code": "PF",
621
+ "name": {
622
+ "en": "Pro forma invoice",
623
+ "pt": "Pró-forma"
624
+ }
625
+ },
626
+ {
627
+ "code": "DC",
628
+ "name": {
629
+ "en": "Delivery verification documents",
630
+ "pt": "Documentos emitidos que sejam suscetíveis de apresentação ao cliente para conferência de mercadorias ou de prestação de serviços"
631
+ },
632
+ "desc": {
633
+ "en": "For data up to 2017-06-30",
634
+ "pt": "Para dados até 2017-06-30"
635
+ }
636
+ },
637
+ {
638
+ "code": "RP",
639
+ "name": {
640
+ "en": "Premium Receipt",
641
+ "pt": "Prémio ou recibo de prémio"
642
+ }
643
+ },
644
+ {
645
+ "code": "RE",
646
+ "name": {
647
+ "en": "Chargeback Receipt",
648
+ "pt": "Estorno ou recibo de estorno"
649
+ }
650
+ },
651
+ {
652
+ "code": "CS",
653
+ "name": {
654
+ "en": "Co-insurers Allocation",
655
+ "pt": "Imputação a co-seguradoras"
656
+ }
657
+ },
658
+ {
659
+ "code": "LD",
660
+ "name": {
661
+ "en": "Lead Co-insurer Allocation",
662
+ "pt": "Imputação a co-seguradora líder"
663
+ }
664
+ },
665
+ {
666
+ "code": "RA",
667
+ "name": {
668
+ "en": "Accepted Reinsurance",
669
+ "pt": "Resseguro aceite"
670
+ }
671
+ }
672
+ ]
673
+ },
674
+ {
675
+ "key": "pt-saft-payment-means",
676
+ "name": {
677
+ "en": "Payment Means",
678
+ "pt": "Meio de Pagamento"
679
+ },
680
+ "desc": {
681
+ "en": "The SAF-T's `PaymentMechanism` (Meios de pagamento) field specifies the payment means in a\nsales invoice or payment. GOBL provides the `pt-saft-payment-means` extension to set this\nvalue in your `bill.Invoice` advances or in you `bill.Payment` method. GOBL maps certain\npayment mean keys automatically to this extension:\n\n| Code | Name | GOBL Payment Means |\n| ---- | -------------------------------------------------- | ----------------------------------------------------- |\n| `CC` | Cartão crédito | `card` |\n| `CD` | Cartão débito | (*) |\n| `CH` | Cheque bancário | `cheque` |\n| `CI` | Letter of credit | (*) |\n| `CO` | Cheque ou cartão oferta | (*) |\n| `CS` | Compensação de saldos em conta corrente | `netting` |\n| `DE` | Dinheiro eletrónico | `online` |\n| `LC` | Letra comercial | `promissory-note` |\n| `MB` | Referências de pagamento para Multibanco | (*) |\n| `NU` | Numerário | `cash` |\n| `OU` | Outro | `other` |\n| `PR` | Permuta de bens | (*) |\n| `TB` | Transferência bancária ou débito direto autorizado | `credit-transfer`, `debit-transfer` or `direct-debit` |\n| `TR` | Títulos de compensação extrassalarial | (*) |\n\n(*) For codes not mapped from a GOBL Payment Mean, use `other` and explicitly set the\nextension.\n\nFor example, in an GOBL invoice:\n\n```js\n{\n\t\"$schema\": \"https://gobl.org/draft-0/bill/invoice\",\n\t// ...\n\t\"payment\": {\n\t\t\"advances\": [\n\t\t\t{\n\t\t\t\t\"date\": \"2023-01-30\",\n\t\t\t\t\"key\": \"credit-transfer\",\n\t\t\t\t\"description\": \"Adiantamento\",\n\t\t\t\t\"amount\": \"100.00\",\n\t\t\t\t\"ext\": {\n\t\t\t\t\t\"pt-saft-payment-means\": \"TB\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\t// ...\n}\n```\n\nFor example, in a GOBL receipt:\n\n```js\n{\n\t\"$schema\": \"https://gobl.org/draft-0/bill/receipt\",\n\t// ...\n\t\"method\": {\n\t\t\"key\": \"other\",\n\t\t\"detail\": \"Compensação extrassalarial\",\n\t\t\"ext\": {\n\t\t\t\"pt-saft-payment-means\": \"TR\"\n\t\t}\n\t},\n\t// ...\n}\n```"
682
+ },
683
+ "values": [
684
+ {
685
+ "code": "CC",
686
+ "name": {
687
+ "en": "Credit card",
688
+ "pt": "Cartão crédito"
689
+ }
690
+ },
691
+ {
692
+ "code": "CD",
693
+ "name": {
694
+ "en": "Debit card",
695
+ "pt": "Cartão débito"
696
+ }
697
+ },
698
+ {
699
+ "code": "CH",
700
+ "name": {
701
+ "en": "Bank cheque",
702
+ "pt": "Cheque bancário"
703
+ }
704
+ },
705
+ {
706
+ "code": "CI",
707
+ "name": {
708
+ "en": "International documentary credit",
709
+ "pt": "Letter of credit"
710
+ }
711
+ },
712
+ {
713
+ "code": "CO",
714
+ "name": {
715
+ "en": "Gift cheque or card",
716
+ "pt": "Cheque ou cartão oferta"
717
+ }
718
+ },
719
+ {
720
+ "code": "CS",
721
+ "name": {
722
+ "en": "Settlement of balances in current account",
723
+ "pt": "Compensação de saldos em conta corrente"
724
+ }
725
+ },
726
+ {
727
+ "code": "DE",
728
+ "name": {
729
+ "en": "Electronic money",
730
+ "pt": "Dinheiro eletrónico"
731
+ }
732
+ },
733
+ {
734
+ "code": "LC",
735
+ "name": {
736
+ "en": "Commercial bill",
737
+ "pt": "Letra comercial"
738
+ }
739
+ },
740
+ {
741
+ "code": "MB",
742
+ "name": {
743
+ "en": "Multibanco payment references",
744
+ "pt": "Referências de pagamento para Multibanco"
745
+ }
746
+ },
747
+ {
748
+ "code": "NU",
749
+ "name": {
750
+ "en": "Cash",
751
+ "pt": "Numerário"
752
+ }
753
+ },
754
+ {
755
+ "code": "OU",
756
+ "name": {
757
+ "en": "Other",
758
+ "pt": "Outro"
759
+ }
760
+ },
761
+ {
762
+ "code": "PR",
763
+ "name": {
764
+ "en": "Barter",
765
+ "pt": "Permuta de bens"
766
+ }
767
+ },
768
+ {
769
+ "code": "TB",
770
+ "name": {
771
+ "en": "Bank transfer or direct debit",
772
+ "pt": "Transferência bancária ou débito direto autorizado"
773
+ }
774
+ },
775
+ {
776
+ "code": "TR",
777
+ "name": {
778
+ "en": "Supplementary compensation",
779
+ "pt": "Títulos de compensação extrassalarial"
780
+ }
781
+ }
782
+ ]
783
+ },
784
+ {
785
+ "key": "pt-saft-source",
786
+ "name": {
787
+ "en": "Document Source",
788
+ "pt": "Origem do documento"
789
+ },
790
+ "desc": {
791
+ "en": "SAF-T's `SourceBilling` (Origem do documento) field specifies the source of the document.\nGOBL provides the `pt-saft-source` extension to set this value in your documents.\nBy default, GOBL will set this extension to \"P\" (Produced).\n\nThe table below shows the supported source billing codes:\n\n| Code | Name | Description |\n| ---- | ---------- | --------------------------------------------------- |\n| `P` | Produced | Document produced by the application |\n| `I` | Integrated | Integrated document produced by another application |\n| `M` | Manual | Document from recovery or issued manually |\n\nExample:\n\n```js\n{\n\t\"$schema\": \"https://gobl.org/draft-0/bill/invoice\",\n\t// ...\n\t\"ext\": {\n\t\t\"pt-saft-source\": \"P\"\n\t},\n\t// ...\n}\n```"
792
+ },
793
+ "values": [
794
+ {
795
+ "code": "P",
796
+ "name": {
797
+ "en": "Produced",
798
+ "pt": "Produzido"
799
+ },
800
+ "desc": {
801
+ "en": "Document produced by the application",
802
+ "pt": "Documento produzido na aplicação"
803
+ }
804
+ },
805
+ {
806
+ "code": "I",
807
+ "name": {
808
+ "en": "Integrated",
809
+ "pt": "Integrado"
810
+ },
811
+ "desc": {
812
+ "en": "Integrated document produced by another application",
813
+ "pt": "Documento integrado e produzido noutra aplicação"
814
+ }
815
+ },
816
+ {
817
+ "code": "M",
818
+ "name": {
819
+ "en": "Manual",
820
+ "pt": "Manual"
821
+ },
822
+ "desc": {
823
+ "en": "Document from recovery or issued manually",
824
+ "pt": "Documento proveniente de recuperação ou de emissão manual"
825
+ }
826
+ }
827
+ ]
828
+ },
829
+ {
830
+ "key": "pt-saft-source-ref",
831
+ "name": {
832
+ "en": "Source Document Reference",
833
+ "pt": "Referência do documento de origem"
834
+ },
835
+ "desc": {
836
+ "en": "GOBL provides the `pt-saft-source-ref` extension to provide the full reference to a document\nintegrated from another system, recovered or issued manually.\n\nThis extension is required when the document source (`pt-saft-source` extension) is\n\"M\" (manual) or \"I\" (integrated). It must contain the complete document reference to be appended\nto the SAF-T's `HashControl` field as stipulated by Despacho n.o 8632/2014.\n\nExample with a manual document:\n\n```js\n{\n\t\"$schema\": \"https://gobl.org/draft-0/bill/invoice\",\n\t// ...\n\t\"ext\": {\n\t\t\"pt-saft-source\": \"M\",\n\t\t\"pt-saft-source-ref\": \"FTM abc/00001\"\n\t},\n\t// ...\n}\n```\n\nExample with a recovered document:\n\n```js\n{\n\t\"$schema\": \"https://gobl.org/draft-0/bill/invoice\",\n\t// ...\n\t\"ext\": {\n\t\t\"pt-saft-source\": \"M\",\n\t\t\"pt-saft-source-ref\": \"FTD FT SERIESA/123\"\n\t},\n\t// ...\n}\n```"
837
+ }
838
+ },
839
+ {
840
+ "key": "pt-saft-movement-type",
841
+ "name": {
842
+ "en": "Movement Type",
843
+ "pt": "Tipo de documento"
844
+ },
845
+ "desc": {
846
+ "en": "SAF-T's `MovementType` (Tipo de documento de movimentação de mercadorias) specifies the type of\na delivery document. In GOBL,this type can be set using the `pt-saft-movement-type` extension.\nIf not provided explicitly, GOBL will set the extension for you based on the type of your delivery\ndocument.\n\nThe table below shows how this mapping is done:\n\n| Code | Name | GOBL Type |\n| ---- | ------------------- | ------------- |\n| `GR` | Delivery note | `note` |\n| `GT` | Waybill | `waybill` |\n\nExample:\n\n```js\n{\n\t\"$schema\": \"https://gobl.org/draft-0/bill/delivery\",\n\t// ...\n\t\"type\": \"note\",\n\t// ...\n\t\"ext\": {\n\t\t\"pt-saft-movement-type\": \"GR\"\n\t},\n\t// ...\n```"
847
+ },
848
+ "values": [
849
+ {
850
+ "code": "GR",
851
+ "name": {
852
+ "en": "Delivery note",
853
+ "pt": "Guia de remessa"
854
+ }
855
+ },
856
+ {
857
+ "code": "GT",
858
+ "name": {
859
+ "en": "Waybill",
860
+ "pt": "Guia de transporte"
861
+ },
862
+ "desc": {
863
+ "en": "Include global waybills here",
864
+ "pt": "Incluir aqui as guias globais"
865
+ }
866
+ },
867
+ {
868
+ "code": "GA",
869
+ "name": {
870
+ "en": "Guide to the movement own fixed assets",
871
+ "pt": "Guia de movimentação de ativos fixos próprios"
872
+ }
873
+ },
874
+ {
875
+ "code": "GC",
876
+ "name": {
877
+ "en": "Consignment note",
878
+ "pt": "Guia de consignação"
879
+ }
880
+ },
881
+ {
882
+ "code": "GD",
883
+ "name": {
884
+ "en": "Returns slip or note",
885
+ "pt": "Guia ou nota de devolução"
886
+ }
887
+ }
888
+ ]
889
+ }
890
+ ],
891
+ "scenarios": [
892
+ {
893
+ "schema": "bill/invoice",
894
+ "list": [
895
+ {
896
+ "type": [
897
+ "standard"
898
+ ],
899
+ "ext": {
900
+ "pt-saft-invoice-type": "FT"
901
+ }
902
+ },
903
+ {
904
+ "type": [
905
+ "standard"
906
+ ],
907
+ "tags": [
908
+ "simplified"
909
+ ],
910
+ "ext": {
911
+ "pt-saft-invoice-type": "FS"
912
+ }
913
+ },
914
+ {
915
+ "type": [
916
+ "standard"
917
+ ],
918
+ "ext": {
919
+ "pt-saft-invoice-type": "FR"
920
+ }
921
+ },
922
+ {
923
+ "type": [
924
+ "debit-note"
925
+ ],
926
+ "ext": {
927
+ "pt-saft-invoice-type": "ND"
928
+ }
929
+ },
930
+ {
931
+ "type": [
932
+ "credit-note"
933
+ ],
934
+ "ext": {
935
+ "pt-saft-invoice-type": "NC"
936
+ }
937
+ },
938
+ {
939
+ "type": [
940
+ "proforma"
941
+ ],
942
+ "ext": {
943
+ "pt-saft-work-type": "PF"
944
+ }
945
+ }
946
+ ]
947
+ }
948
+ ],
949
+ "corrections": null
950
+ }