gobl 0.15.2 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/data/regimes/co.json +18 -17
  3. data/data/regimes/es.json +95 -96
  4. data/data/regimes/fr.json +1 -0
  5. data/data/regimes/gb.json +1 -0
  6. data/data/regimes/it.json +816 -1944
  7. data/data/regimes/mx.json +576 -0
  8. data/data/regimes/nl.json +1 -0
  9. data/data/regimes/pt.json +206 -317
  10. data/data/regimes/us.json +1 -0
  11. data/lib/generated/gobl/bill/charge.rb +1 -1
  12. data/lib/generated/gobl/bill/correction_options.rb +52 -0
  13. data/lib/generated/gobl/bill/delivery.rb +1 -1
  14. data/lib/generated/gobl/bill/discount.rb +1 -1
  15. data/lib/generated/gobl/bill/document_reference.rb +1 -1
  16. data/lib/generated/gobl/bill/invoice.rb +31 -34
  17. data/lib/generated/gobl/bill/line.rb +1 -1
  18. data/lib/generated/gobl/bill/line_charge.rb +1 -1
  19. data/lib/generated/gobl/bill/line_discount.rb +1 -1
  20. data/lib/generated/gobl/bill/ordering.rb +1 -1
  21. data/lib/generated/gobl/bill/outlay.rb +1 -1
  22. data/lib/generated/gobl/bill/payment.rb +1 -1
  23. data/lib/generated/gobl/bill/preceding.rb +1 -1
  24. data/lib/generated/gobl/bill/tax.rb +1 -1
  25. data/lib/generated/gobl/bill/totals.rb +1 -1
  26. data/lib/generated/gobl/cal/date.rb +1 -1
  27. data/lib/generated/gobl/cal/period.rb +1 -1
  28. data/lib/generated/gobl/cbc/code.rb +1 -1
  29. data/lib/generated/gobl/cbc/code_map.rb +15 -0
  30. data/lib/generated/gobl/cbc/key.rb +1 -1
  31. data/lib/generated/gobl/cbc/meta.rb +1 -1
  32. data/lib/generated/gobl/cbc/note.rb +1 -1
  33. data/lib/generated/gobl/cbc/stamp.rb +1 -1
  34. data/lib/generated/gobl/currency/code.rb +1 -1
  35. data/lib/generated/gobl/currency/exchange_rate.rb +1 -1
  36. data/lib/generated/gobl/document.rb +1 -1
  37. data/lib/generated/gobl/dsig/digest.rb +1 -1
  38. data/lib/generated/gobl/dsig/signature.rb +1 -1
  39. data/lib/generated/gobl/envelope.rb +1 -1
  40. data/lib/generated/gobl/header.rb +1 -1
  41. data/lib/generated/gobl/i18n/string.rb +1 -1
  42. data/lib/generated/gobl/l10n/code.rb +1 -1
  43. data/lib/generated/gobl/l10n/country_code.rb +1 -1
  44. data/lib/generated/gobl/note/message.rb +1 -1
  45. data/lib/generated/gobl/org/address.rb +1 -1
  46. data/lib/generated/gobl/org/coordinates.rb +2 -2
  47. data/lib/generated/gobl/org/email.rb +1 -1
  48. data/lib/generated/gobl/org/identity.rb +7 -2
  49. data/lib/generated/gobl/org/image.rb +1 -1
  50. data/lib/generated/gobl/org/inbox.rb +1 -1
  51. data/lib/generated/gobl/org/item.rb +8 -3
  52. data/lib/generated/gobl/org/name.rb +1 -1
  53. data/lib/generated/gobl/org/party.rb +18 -13
  54. data/lib/generated/gobl/org/person.rb +1 -1
  55. data/lib/generated/gobl/org/registration.rb +1 -1
  56. data/lib/generated/gobl/org/telephone.rb +1 -1
  57. data/lib/generated/gobl/org/unit.rb +4 -1
  58. data/lib/generated/gobl/org/website.rb +2 -2
  59. data/lib/generated/gobl/pay/advance.rb +1 -1
  60. data/lib/generated/gobl/pay/card.rb +1 -1
  61. data/lib/generated/gobl/pay/credit_transfer.rb +1 -1
  62. data/lib/generated/gobl/pay/direct_debit.rb +1 -1
  63. data/lib/generated/gobl/pay/due_date.rb +1 -1
  64. data/lib/generated/gobl/pay/instructions.rb +1 -1
  65. data/lib/generated/gobl/pay/online.rb +1 -1
  66. data/lib/generated/gobl/pay/terms.rb +2 -3
  67. data/lib/generated/gobl/tax/category.rb +10 -5
  68. data/lib/generated/gobl/tax/category_total.rb +1 -1
  69. data/lib/generated/gobl/tax/code_definition.rb +33 -0
  70. data/lib/generated/gobl/tax/combo.rb +6 -1
  71. data/lib/generated/gobl/tax/identity.rb +1 -1
  72. data/lib/generated/gobl/tax/key_definition.rb +8 -8
  73. data/lib/generated/gobl/tax/preceding_definitions.rb +1 -1
  74. data/lib/generated/gobl/tax/rate.rb +10 -5
  75. data/lib/generated/gobl/tax/rate_total.rb +6 -1
  76. data/lib/generated/gobl/tax/rate_total_surcharge.rb +1 -1
  77. data/lib/generated/gobl/tax/rate_value.rb +1 -1
  78. data/lib/generated/gobl/tax/regime.rb +12 -1
  79. data/lib/generated/gobl/tax/scenario.rb +3 -3
  80. data/lib/generated/gobl/tax/scenario_set.rb +1 -1
  81. data/lib/generated/gobl/tax/set.rb +1 -1
  82. data/lib/generated/gobl/tax/total.rb +1 -1
  83. data/lib/generated/gobl/tax/zone.rb +3 -3
  84. data/lib/generated/gobl/uuid/uuid.rb +1 -1
  85. data/lib/gobl/operations.rb +2 -3
  86. data/lib/gobl/version.rb +1 -1
  87. metadata +5 -2
data/data/regimes/mx.json CHANGED
@@ -4,8 +4,584 @@
4
4
  "en": "Mexico",
5
5
  "es": "México"
6
6
  },
7
+ "time_zone": "America/Mexico_City",
7
8
  "country": "MX",
8
9
  "currency": "MXN",
10
+ "extensions": [
11
+ {
12
+ "key": "mx-cfdi-prod-serv",
13
+ "name": {
14
+ "en": "Product or Service Code",
15
+ "es": "Clave de Producto o Servicio"
16
+ },
17
+ "desc": {
18
+ "en": "Code defined in the CFDI catalogue used to identify a product or service.",
19
+ "es": "Código definido en el catálogo del CFDI utilizado para identificar un producto o servicio."
20
+ }
21
+ },
22
+ {
23
+ "key": "mx-cfdi-fiscal-regime",
24
+ "name": {
25
+ "en": "Fiscal Regime Code",
26
+ "es": "Código de Régimen Fiscal"
27
+ },
28
+ "desc": {
29
+ "en": "Fiscal regime associated with suppliers and customers.",
30
+ "es": "Régimen fiscal asociado con el emisor y receptor."
31
+ },
32
+ "codes": [
33
+ {
34
+ "code": "601",
35
+ "name": {
36
+ "es": "General de Ley Personas Morales"
37
+ }
38
+ },
39
+ {
40
+ "code": "603",
41
+ "name": {
42
+ "es": "Personas Morales con Fines no Lucrativos"
43
+ }
44
+ },
45
+ {
46
+ "code": "605",
47
+ "name": {
48
+ "es": "Sueldos y Salarios e Ingresos Asimilados a Salarios"
49
+ }
50
+ },
51
+ {
52
+ "code": "606",
53
+ "name": {
54
+ "es": "Arrendamiento"
55
+ }
56
+ },
57
+ {
58
+ "code": "607",
59
+ "name": {
60
+ "es": "Régimen de Enajenación o Adquisición de Bienes"
61
+ }
62
+ },
63
+ {
64
+ "code": "608",
65
+ "name": {
66
+ "es": "Demás ingresos"
67
+ }
68
+ },
69
+ {
70
+ "code": "610",
71
+ "name": {
72
+ "es": "Residentes en el Extranjero sin Establecimiento Permanente en México"
73
+ }
74
+ },
75
+ {
76
+ "code": "611",
77
+ "name": {
78
+ "es": "Ingresos por Dividendos (socios y accionistas)"
79
+ }
80
+ },
81
+ {
82
+ "code": "612",
83
+ "name": {
84
+ "es": "Personas Físicas con Actividades Empresariales y Profesionales"
85
+ }
86
+ },
87
+ {
88
+ "code": "614",
89
+ "name": {
90
+ "es": "Ingresos por intereses"
91
+ }
92
+ },
93
+ {
94
+ "code": "615",
95
+ "name": {
96
+ "es": "Régimen de los ingresos por obtención de premios"
97
+ }
98
+ },
99
+ {
100
+ "code": "616",
101
+ "name": {
102
+ "es": "Sin obligaciones fiscales"
103
+ }
104
+ },
105
+ {
106
+ "code": "620",
107
+ "name": {
108
+ "es": "Sociedades Cooperativas de Producción que optan por diferir sus ingresos"
109
+ }
110
+ },
111
+ {
112
+ "code": "621",
113
+ "name": {
114
+ "es": "Incorporación Fiscal"
115
+ }
116
+ },
117
+ {
118
+ "code": "622",
119
+ "name": {
120
+ "es": "Actividades Agrícolas, Ganaderas, Silvícolas y Pesqueras"
121
+ }
122
+ },
123
+ {
124
+ "code": "623",
125
+ "name": {
126
+ "es": "Opcional para Grupos de Sociedades"
127
+ }
128
+ },
129
+ {
130
+ "code": "624",
131
+ "name": {
132
+ "es": "Coordinados"
133
+ }
134
+ },
135
+ {
136
+ "code": "625",
137
+ "name": {
138
+ "es": "Régimen de las Actividades Empresariales con ingresos a través de Plataformas Tecnológicas"
139
+ }
140
+ },
141
+ {
142
+ "code": "626",
143
+ "name": {
144
+ "es": "Régimen Simplificado de Confianza"
145
+ }
146
+ }
147
+ ]
148
+ },
149
+ {
150
+ "key": "mx-cfdi-use",
151
+ "name": {
152
+ "en": "CFDI Use Code",
153
+ "es": "Código de Uso CFDI"
154
+ },
155
+ "desc": {
156
+ "en": "Chosen by the customer to indicate the purpose of an invoice.",
157
+ "es": "Elegido por el cliente para indicar el propósito de una factura."
158
+ },
159
+ "codes": [
160
+ {
161
+ "code": "G01",
162
+ "name": {
163
+ "en": "Acquisition of goods",
164
+ "es": "Adquisición de mercancías"
165
+ }
166
+ },
167
+ {
168
+ "code": "G02",
169
+ "name": {
170
+ "en": "Returns, discounts or rebates",
171
+ "es": "Devoluciones, descuentos o bonificaciones"
172
+ }
173
+ },
174
+ {
175
+ "code": "G03",
176
+ "name": {
177
+ "en": "General expenses",
178
+ "es": "Gastos en general"
179
+ }
180
+ },
181
+ {
182
+ "code": "I01",
183
+ "name": {
184
+ "en": "Construction",
185
+ "es": "Construcciones"
186
+ }
187
+ },
188
+ {
189
+ "code": "I02",
190
+ "name": {
191
+ "en": "Office furniture and equipment as investmen",
192
+ "es": "Mobiliario y equipo de oficina por inversiones"
193
+ }
194
+ },
195
+ {
196
+ "code": "I03",
197
+ "name": {
198
+ "en": "Transport equipment",
199
+ "es": "Equipo de transporte"
200
+ }
201
+ },
202
+ {
203
+ "code": "I04",
204
+ "name": {
205
+ "en": "Computer equipment and accessories",
206
+ "es": "Equipo de computo y accesorios"
207
+ }
208
+ },
209
+ {
210
+ "code": "I05",
211
+ "name": {
212
+ "en": "Dies, punches, molds, matrices and other toolin",
213
+ "es": "Dados, troqueles, moldes, matrices y herramental"
214
+ }
215
+ },
216
+ {
217
+ "code": "I06",
218
+ "name": {
219
+ "en": "Telephone communications",
220
+ "es": "Comunicaciones telefónicas"
221
+ }
222
+ },
223
+ {
224
+ "code": "I07",
225
+ "name": {
226
+ "en": "Satellite communications",
227
+ "es": "Comunicaciones satelitales"
228
+ }
229
+ },
230
+ {
231
+ "code": "I08",
232
+ "name": {
233
+ "en": "Other machinery and equipment",
234
+ "es": "Otra maquinaria y equipo"
235
+ }
236
+ },
237
+ {
238
+ "code": "D01",
239
+ "name": {
240
+ "en": "Medical and dental fees and hospital expenses",
241
+ "es": "Honorarios médicos, dentales y gastos hospitalarios"
242
+ }
243
+ },
244
+ {
245
+ "code": "D02",
246
+ "name": {
247
+ "en": "Medical expenses for disability or incapacity",
248
+ "es": "Gastos médicos por incapacidad o discapacidad"
249
+ }
250
+ },
251
+ {
252
+ "code": "D03",
253
+ "name": {
254
+ "en": "Funeral expenses",
255
+ "es": "Gastos funerales"
256
+ }
257
+ },
258
+ {
259
+ "code": "D04",
260
+ "name": {
261
+ "en": "Donations",
262
+ "es": "Donativos"
263
+ }
264
+ },
265
+ {
266
+ "code": "D05",
267
+ "name": {
268
+ "en": "Interest actually paid on mortgage loans (housing)",
269
+ "es": "Intereses reales efectivamente pagados por créditos hipotecarios (casa habitación)"
270
+ }
271
+ },
272
+ {
273
+ "code": "D06",
274
+ "name": {
275
+ "en": "Voluntary contributions to the SAR",
276
+ "es": "Aportaciones voluntarias al SAR"
277
+ }
278
+ },
279
+ {
280
+ "code": "D07",
281
+ "name": {
282
+ "en": "Medical insurance premiums",
283
+ "es": "Primas por seguros de gastos médicos"
284
+ }
285
+ },
286
+ {
287
+ "code": "D08",
288
+ "name": {
289
+ "en": "Mandatory school transportation expenses",
290
+ "es": "Gastos de transportación escolar obligatoria"
291
+ }
292
+ },
293
+ {
294
+ "code": "D09",
295
+ "name": {
296
+ "en": "Deposits in savings accounts, pension plans premiums",
297
+ "es": "Depósitos en cuentas para el ahorro, primas que tengan como base planes de pensiones"
298
+ }
299
+ },
300
+ {
301
+ "code": "D10",
302
+ "name": {
303
+ "en": "Payments for educational services (school fees)",
304
+ "es": "Pagos por servicios educativos (colegiaturas)"
305
+ }
306
+ },
307
+ {
308
+ "code": "S01",
309
+ "name": {
310
+ "en": "Without tax effects",
311
+ "es": "Sin efectos fiscales"
312
+ }
313
+ },
314
+ {
315
+ "code": "CP01",
316
+ "name": {
317
+ "en": "Payments",
318
+ "es": "Pagos"
319
+ }
320
+ },
321
+ {
322
+ "code": "CN01",
323
+ "name": {
324
+ "en": "Payroll",
325
+ "es": "Nómina"
326
+ }
327
+ }
328
+ ]
329
+ }
330
+ ],
331
+ "payment_means": [
332
+ {
333
+ "key": "cash",
334
+ "name": {
335
+ "en": "Cash",
336
+ "es": "Efectivo"
337
+ },
338
+ "map": {
339
+ "sat-forma-pago": "01"
340
+ }
341
+ },
342
+ {
343
+ "key": "cheque",
344
+ "name": {
345
+ "en": "Nominative cheque",
346
+ "es": "Cheque nominativo"
347
+ },
348
+ "map": {
349
+ "sat-forma-pago": "02"
350
+ }
351
+ },
352
+ {
353
+ "key": "credit-transfer",
354
+ "name": {
355
+ "en": "Electronic funds transfer",
356
+ "es": "Transferencia electrónica de fondos"
357
+ },
358
+ "map": {
359
+ "sat-forma-pago": "03"
360
+ }
361
+ },
362
+ {
363
+ "key": "card",
364
+ "name": {
365
+ "en": "Credit card",
366
+ "es": "Tarjeta de crédito"
367
+ },
368
+ "map": {
369
+ "sat-forma-pago": "04"
370
+ }
371
+ },
372
+ {
373
+ "key": "online+wallet",
374
+ "name": {
375
+ "en": "Electronic wallet",
376
+ "es": "Monedero electrónico"
377
+ },
378
+ "map": {
379
+ "sat-forma-pago": "05"
380
+ }
381
+ },
382
+ {
383
+ "key": "online",
384
+ "name": {
385
+ "en": "Online or electronic payment",
386
+ "es": "Dinero electrónico"
387
+ },
388
+ "map": {
389
+ "sat-forma-pago": "06"
390
+ }
391
+ },
392
+ {
393
+ "key": "other+grocery-vouchers",
394
+ "name": {
395
+ "en": "Grocery vouchers",
396
+ "es": "Vales de despensa"
397
+ },
398
+ "map": {
399
+ "sat-forma-pago": "08"
400
+ }
401
+ },
402
+ {
403
+ "key": "other+in-kind",
404
+ "name": {
405
+ "en": "Payment in kind",
406
+ "es": "Dación en pago"
407
+ },
408
+ "map": {
409
+ "sat-forma-pago": "12"
410
+ }
411
+ },
412
+ {
413
+ "key": "other+subrogation",
414
+ "name": {
415
+ "en": "Payment by subrogation",
416
+ "es": "Pago por subrogación"
417
+ },
418
+ "map": {
419
+ "sat-forma-pago": "13"
420
+ }
421
+ },
422
+ {
423
+ "key": "other+consignment",
424
+ "name": {
425
+ "en": "Payment by consignment",
426
+ "es": "Pago por consignación"
427
+ },
428
+ "map": {
429
+ "sat-forma-pago": "14"
430
+ }
431
+ },
432
+ {
433
+ "key": "other+debt-relief",
434
+ "name": {
435
+ "en": "Debt relief",
436
+ "es": "Condonación"
437
+ },
438
+ "map": {
439
+ "sat-forma-pago": "15"
440
+ }
441
+ },
442
+ {
443
+ "key": "netting",
444
+ "name": {
445
+ "en": "Netting",
446
+ "es": "Compensación"
447
+ },
448
+ "map": {
449
+ "sat-forma-pago": "17"
450
+ }
451
+ },
452
+ {
453
+ "key": "other+novation",
454
+ "name": {
455
+ "en": "Novation",
456
+ "es": "Novación"
457
+ },
458
+ "map": {
459
+ "sat-forma-pago": "23"
460
+ }
461
+ },
462
+ {
463
+ "key": "other+merger",
464
+ "name": {
465
+ "en": "Merger",
466
+ "es": "Confusión"
467
+ },
468
+ "map": {
469
+ "sat-forma-pago": "24"
470
+ }
471
+ },
472
+ {
473
+ "key": "other+remission",
474
+ "name": {
475
+ "en": "Debt remission",
476
+ "es": "Remisión de deuda"
477
+ },
478
+ "map": {
479
+ "sat-forma-pago": "25"
480
+ }
481
+ },
482
+ {
483
+ "key": "other+expiration",
484
+ "name": {
485
+ "en": "Expiration of payment obligation",
486
+ "es": "Prescripción o caducidad"
487
+ },
488
+ "map": {
489
+ "sat-forma-pago": "26"
490
+ }
491
+ },
492
+ {
493
+ "key": "other+satisfy-creditor",
494
+ "name": {
495
+ "en": "To the creditor's satisfaction",
496
+ "es": "A satisfacción del acreedor"
497
+ },
498
+ "map": {
499
+ "sat-forma-pago": "27"
500
+ }
501
+ },
502
+ {
503
+ "key": "card+debit",
504
+ "name": {
505
+ "en": "Debit card",
506
+ "es": "Tarjeta de débito"
507
+ },
508
+ "map": {
509
+ "sat-forma-pago": "28"
510
+ }
511
+ },
512
+ {
513
+ "key": "card+services",
514
+ "name": {
515
+ "en": "Services card",
516
+ "es": "Tarjeta de servicios"
517
+ },
518
+ "map": {
519
+ "sat-forma-pago": "29"
520
+ }
521
+ },
522
+ {
523
+ "key": "other+advance",
524
+ "name": {
525
+ "en": "Advance payment",
526
+ "es": "Aplicación de anticipos"
527
+ },
528
+ "map": {
529
+ "sat-forma-pago": "30"
530
+ }
531
+ },
532
+ {
533
+ "key": "other+intermediary",
534
+ "name": {
535
+ "en": "Payment via intermediary",
536
+ "es": "Intermediario pagos"
537
+ },
538
+ "map": {
539
+ "sat-forma-pago": "31"
540
+ }
541
+ },
542
+ {
543
+ "key": "other",
544
+ "name": {
545
+ "en": "To be defined",
546
+ "es": "Por definir"
547
+ },
548
+ "map": {
549
+ "sat-forma-pago": "99"
550
+ }
551
+ }
552
+ ],
553
+ "scenarios": [
554
+ {
555
+ "schema": "bill/invoice",
556
+ "list": [
557
+ {
558
+ "type": [
559
+ "standard"
560
+ ],
561
+ "codes": {
562
+ "sat-tipo-de-comprobante": "I"
563
+ }
564
+ },
565
+ {
566
+ "type": [
567
+ "credit-note"
568
+ ],
569
+ "codes": {
570
+ "sat-tipo-de-comprobante": "E",
571
+ "sat-tipo-relacion": "01"
572
+ }
573
+ }
574
+ ]
575
+ }
576
+ ],
577
+ "preceding": {
578
+ "types": [
579
+ "credit-note"
580
+ ],
581
+ "stamps": [
582
+ "sat-uuid"
583
+ ]
584
+ },
9
585
  "categories": [
10
586
  {
11
587
  "code": "VAT",
data/data/regimes/nl.json CHANGED
@@ -4,6 +4,7 @@
4
4
  "en": "The Netherlands",
5
5
  "nl": "Nederland"
6
6
  },
7
+ "time_zone": "Europe/Amsterdam",
7
8
  "country": "NL",
8
9
  "currency": "EUR",
9
10
  "categories": [