e-invoice-api 0.10.1 → 0.12.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 (31) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +2 -2
  4. data/lib/e_invoice_api/models/allowance.rb +42 -14
  5. data/lib/e_invoice_api/models/charge.rb +193 -4
  6. data/lib/e_invoice_api/models/document_create.rb +728 -125
  7. data/lib/e_invoice_api/models/document_create_from_pdf_response.rb +127 -61
  8. data/lib/e_invoice_api/models/document_response.rb +377 -83
  9. data/lib/e_invoice_api/models/me_retrieve_response.rb +21 -7
  10. data/lib/e_invoice_api/models/payment_detail_create.rb +15 -4
  11. data/lib/e_invoice_api/resources/documents.rb +43 -39
  12. data/lib/e_invoice_api/resources/validate.rb +43 -39
  13. data/lib/e_invoice_api/version.rb +1 -1
  14. data/rbi/e_invoice_api/models/allowance.rbi +81 -21
  15. data/rbi/e_invoice_api/models/charge.rbi +202 -5
  16. data/rbi/e_invoice_api/models/document_create.rbi +3094 -708
  17. data/rbi/e_invoice_api/models/document_create_from_pdf_response.rbi +142 -34
  18. data/rbi/e_invoice_api/models/document_response.rbi +1238 -62
  19. data/rbi/e_invoice_api/models/me_retrieve_response.rbi +20 -6
  20. data/rbi/e_invoice_api/models/payment_detail_create.rbi +10 -0
  21. data/rbi/e_invoice_api/resources/documents.rbi +54 -12
  22. data/rbi/e_invoice_api/resources/validate.rbi +54 -12
  23. data/sig/e_invoice_api/models/allowance.rbs +59 -8
  24. data/sig/e_invoice_api/models/charge.rbs +369 -4
  25. data/sig/e_invoice_api/models/document_create.rbs +939 -44
  26. data/sig/e_invoice_api/models/document_create_from_pdf_response.rbs +15 -0
  27. data/sig/e_invoice_api/models/document_response.rbs +443 -12
  28. data/sig/e_invoice_api/models/me_retrieve_response.rbs +5 -0
  29. data/sig/e_invoice_api/resources/documents.rbs +2 -0
  30. data/sig/e_invoice_api/resources/validate.rbs +2 -0
  31. metadata +2 -2
@@ -14,8 +14,7 @@ module EInvoiceAPI
14
14
  sig { returns(T.nilable(T::Array[EInvoiceAPI::Allowance])) }
15
15
  attr_accessor :allowances
16
16
 
17
- # The amount due of the invoice. Must be positive and rounded to maximum 2
18
- # decimals
17
+ # The amount due for payment. Must be positive and rounded to maximum 2 decimals
19
18
  sig { returns(T.nilable(String)) }
20
19
  attr_accessor :amount_due
21
20
 
@@ -24,63 +23,82 @@ module EInvoiceAPI
24
23
  end
25
24
  attr_accessor :attachments
26
25
 
26
+ # The billing address (if different from customer address)
27
27
  sig { returns(T.nilable(String)) }
28
28
  attr_accessor :billing_address
29
29
 
30
+ # The recipient name at the billing address
30
31
  sig { returns(T.nilable(String)) }
31
32
  attr_accessor :billing_address_recipient
32
33
 
33
34
  sig { returns(T.nilable(T::Array[EInvoiceAPI::Charge])) }
34
35
  attr_accessor :charges
35
36
 
36
- # Currency of the invoice
37
+ # Currency of the invoice (ISO 4217 currency code)
37
38
  sig { returns(T.nilable(EInvoiceAPI::CurrencyCode::TaggedSymbol)) }
38
39
  attr_reader :currency
39
40
 
40
41
  sig { params(currency: EInvoiceAPI::CurrencyCode::OrSymbol).void }
41
42
  attr_writer :currency
42
43
 
44
+ # The address of the customer/buyer
43
45
  sig { returns(T.nilable(String)) }
44
46
  attr_accessor :customer_address
45
47
 
48
+ # The recipient name at the customer address
46
49
  sig { returns(T.nilable(String)) }
47
50
  attr_accessor :customer_address_recipient
48
51
 
52
+ # Customer company ID. For Belgium this is the CBE number or their EUID (European
53
+ # Unique Identifier) number. In the Netherlands this is the KVK number.
54
+ sig { returns(T.nilable(String)) }
55
+ attr_accessor :customer_company_id
56
+
57
+ # The email address of the customer
49
58
  sig { returns(T.nilable(String)) }
50
59
  attr_accessor :customer_email
51
60
 
61
+ # The unique identifier for the customer in your system
52
62
  sig { returns(T.nilable(String)) }
53
63
  attr_accessor :customer_id
54
64
 
65
+ # The company name of the customer/buyer
55
66
  sig { returns(T.nilable(String)) }
56
67
  attr_accessor :customer_name
57
68
 
69
+ # Customer tax ID. For Belgium this is the VAT number. Must include the country
70
+ # prefix
58
71
  sig { returns(T.nilable(String)) }
59
72
  attr_accessor :customer_tax_id
60
73
 
74
+ # The direction of the document: INBOUND (purchases) or OUTBOUND (sales)
61
75
  sig { returns(T.nilable(EInvoiceAPI::DocumentDirection::TaggedSymbol)) }
62
76
  attr_reader :direction
63
77
 
64
78
  sig { params(direction: EInvoiceAPI::DocumentDirection::OrSymbol).void }
65
79
  attr_writer :direction
66
80
 
81
+ # The type of document: INVOICE, CREDIT_NOTE, or DEBIT_NOTE
67
82
  sig { returns(T.nilable(EInvoiceAPI::DocumentType::TaggedSymbol)) }
68
83
  attr_reader :document_type
69
84
 
70
85
  sig { params(document_type: EInvoiceAPI::DocumentType::OrSymbol).void }
71
86
  attr_writer :document_type
72
87
 
88
+ # The date when payment is due
73
89
  sig { returns(T.nilable(Date)) }
74
90
  attr_accessor :due_date
75
91
 
92
+ # The date when the invoice was issued
76
93
  sig { returns(T.nilable(Date)) }
77
94
  attr_accessor :invoice_date
78
95
 
96
+ # The unique invoice identifier/number
79
97
  sig { returns(T.nilable(String)) }
80
98
  attr_accessor :invoice_id
81
99
 
82
- # The total amount of the invoice (so invoice_total = subtotal + total_tax +
83
- # total_discount). Must be positive and rounded to maximum 2 decimals
100
+ # The total amount of the invoice including tax (invoice_total = subtotal +
101
+ # total_tax + total_discount). Must be positive and rounded to maximum 2 decimals
84
102
  sig { returns(T.nilable(String)) }
85
103
  attr_accessor :invoice_total
86
104
 
@@ -104,47 +122,59 @@ module EInvoiceAPI
104
122
  end
105
123
  attr_writer :items
106
124
 
125
+ # Additional notes or comments for the invoice
107
126
  sig { returns(T.nilable(String)) }
108
127
  attr_accessor :note
109
128
 
110
129
  sig { returns(T.nilable(T::Array[EInvoiceAPI::PaymentDetailCreate])) }
111
130
  attr_accessor :payment_details
112
131
 
132
+ # The payment terms (e.g., 'Net 30', 'Due on receipt', '2/10 Net 30')
113
133
  sig { returns(T.nilable(String)) }
114
134
  attr_accessor :payment_term
115
135
 
116
- # The previous unpaid balance of the invoice, if any. Must be positive and rounded
117
- # to maximum 2 decimals
136
+ # The previous unpaid balance from prior invoices, if any. Must be positive and
137
+ # rounded to maximum 2 decimals
118
138
  sig { returns(T.nilable(String)) }
119
139
  attr_accessor :previous_unpaid_balance
120
140
 
141
+ # The purchase order reference number
121
142
  sig { returns(T.nilable(String)) }
122
143
  attr_accessor :purchase_order
123
144
 
145
+ # The address where payment should be sent or remitted to
124
146
  sig { returns(T.nilable(String)) }
125
147
  attr_accessor :remittance_address
126
148
 
149
+ # The recipient name at the remittance address
127
150
  sig { returns(T.nilable(String)) }
128
151
  attr_accessor :remittance_address_recipient
129
152
 
153
+ # The address where services were performed or goods were delivered
130
154
  sig { returns(T.nilable(String)) }
131
155
  attr_accessor :service_address
132
156
 
157
+ # The recipient name at the service address
133
158
  sig { returns(T.nilable(String)) }
134
159
  attr_accessor :service_address_recipient
135
160
 
161
+ # The end date of the service period or delivery period
136
162
  sig { returns(T.nilable(Date)) }
137
163
  attr_accessor :service_end_date
138
164
 
165
+ # The start date of the service period or delivery period
139
166
  sig { returns(T.nilable(Date)) }
140
167
  attr_accessor :service_start_date
141
168
 
169
+ # The shipping/delivery address
142
170
  sig { returns(T.nilable(String)) }
143
171
  attr_accessor :shipping_address
144
172
 
173
+ # The recipient name at the shipping address
145
174
  sig { returns(T.nilable(String)) }
146
175
  attr_accessor :shipping_address_recipient
147
176
 
177
+ # The current state of the document: DRAFT, TRANSIT, FAILED, SENT, or RECEIVED
148
178
  sig { returns(T.nilable(EInvoiceAPI::DocumentState::TaggedSymbol)) }
149
179
  attr_reader :state
150
180
 
@@ -164,7 +194,8 @@ module EInvoiceAPI
164
194
  sig { params(success: T::Boolean).void }
165
195
  attr_writer :success
166
196
 
167
- # Tax category code of the invoice
197
+ # Tax category code of the invoice (e.g., S for standard rate, Z for zero rate, E
198
+ # for exempt)
168
199
  sig do
169
200
  returns(
170
201
  T.nilable(
@@ -193,12 +224,14 @@ module EInvoiceAPI
193
224
  end
194
225
  attr_accessor :tax_details
195
226
 
196
- # The total financial discount of the invoice (so discounts not subject to VAT).
197
- # Must be positive and rounded to maximum 2 decimals
227
+ # The net financial discount/charge of the invoice (non-VAT charges minus non-VAT
228
+ # allowances). Can be positive (net charge), negative (net discount), or zero.
229
+ # Must be rounded to maximum 2 decimals
198
230
  sig { returns(T.nilable(String)) }
199
231
  attr_accessor :total_discount
200
232
 
201
- # The total tax of the invoice. Must be positive and rounded to maximum 2 decimals
233
+ # The total tax amount of the invoice. Must be positive and rounded to maximum 2
234
+ # decimals
202
235
  sig { returns(T.nilable(String)) }
203
236
  attr_accessor :total_tax
204
237
 
@@ -218,22 +251,33 @@ module EInvoiceAPI
218
251
  end
219
252
  attr_accessor :vatex
220
253
 
221
- # VAT exemption note of the invoice
254
+ # Textual explanation for VAT exemption
222
255
  sig { returns(T.nilable(String)) }
223
256
  attr_accessor :vatex_note
224
257
 
258
+ # The address of the vendor/seller
225
259
  sig { returns(T.nilable(String)) }
226
260
  attr_accessor :vendor_address
227
261
 
262
+ # The recipient name at the vendor address
228
263
  sig { returns(T.nilable(String)) }
229
264
  attr_accessor :vendor_address_recipient
230
265
 
266
+ # Vendor company ID. For Belgium this is the CBE number or their EUID (European
267
+ # Unique Identifier) number. In the Netherlands this is the KVK number.
268
+ sig { returns(T.nilable(String)) }
269
+ attr_accessor :vendor_company_id
270
+
271
+ # The email address of the vendor
231
272
  sig { returns(T.nilable(String)) }
232
273
  attr_accessor :vendor_email
233
274
 
275
+ # The name of the vendor/seller/supplier
234
276
  sig { returns(T.nilable(String)) }
235
277
  attr_accessor :vendor_name
236
278
 
279
+ # Vendor tax ID. For Belgium this is the VAT number. Must include the country
280
+ # prefix
237
281
  sig { returns(T.nilable(String)) }
238
282
  attr_accessor :vendor_tax_id
239
283
 
@@ -249,6 +293,7 @@ module EInvoiceAPI
249
293
  currency: EInvoiceAPI::CurrencyCode::OrSymbol,
250
294
  customer_address: T.nilable(String),
251
295
  customer_address_recipient: T.nilable(String),
296
+ customer_company_id: T.nilable(String),
252
297
  customer_email: T.nilable(String),
253
298
  customer_id: T.nilable(String),
254
299
  customer_name: T.nilable(String),
@@ -298,6 +343,7 @@ module EInvoiceAPI
298
343
  vatex_note: T.nilable(String),
299
344
  vendor_address: T.nilable(String),
300
345
  vendor_address_recipient: T.nilable(String),
346
+ vendor_company_id: T.nilable(String),
301
347
  vendor_email: T.nilable(String),
302
348
  vendor_name: T.nilable(String),
303
349
  vendor_tax_id: T.nilable(String)
@@ -305,46 +351,74 @@ module EInvoiceAPI
305
351
  end
306
352
  def self.new(
307
353
  allowances: nil,
308
- # The amount due of the invoice. Must be positive and rounded to maximum 2
309
- # decimals
354
+ # The amount due for payment. Must be positive and rounded to maximum 2 decimals
310
355
  amount_due: nil,
311
356
  attachments: nil,
357
+ # The billing address (if different from customer address)
312
358
  billing_address: nil,
359
+ # The recipient name at the billing address
313
360
  billing_address_recipient: nil,
314
361
  charges: nil,
315
- # Currency of the invoice
362
+ # Currency of the invoice (ISO 4217 currency code)
316
363
  currency: nil,
364
+ # The address of the customer/buyer
317
365
  customer_address: nil,
366
+ # The recipient name at the customer address
318
367
  customer_address_recipient: nil,
368
+ # Customer company ID. For Belgium this is the CBE number or their EUID (European
369
+ # Unique Identifier) number. In the Netherlands this is the KVK number.
370
+ customer_company_id: nil,
371
+ # The email address of the customer
319
372
  customer_email: nil,
373
+ # The unique identifier for the customer in your system
320
374
  customer_id: nil,
375
+ # The company name of the customer/buyer
321
376
  customer_name: nil,
377
+ # Customer tax ID. For Belgium this is the VAT number. Must include the country
378
+ # prefix
322
379
  customer_tax_id: nil,
380
+ # The direction of the document: INBOUND (purchases) or OUTBOUND (sales)
323
381
  direction: nil,
382
+ # The type of document: INVOICE, CREDIT_NOTE, or DEBIT_NOTE
324
383
  document_type: nil,
384
+ # The date when payment is due
325
385
  due_date: nil,
386
+ # The date when the invoice was issued
326
387
  invoice_date: nil,
388
+ # The unique invoice identifier/number
327
389
  invoice_id: nil,
328
- # The total amount of the invoice (so invoice_total = subtotal + total_tax +
329
- # total_discount). Must be positive and rounded to maximum 2 decimals
390
+ # The total amount of the invoice including tax (invoice_total = subtotal +
391
+ # total_tax + total_discount). Must be positive and rounded to maximum 2 decimals
330
392
  invoice_total: nil,
331
393
  # At least one line item is required
332
394
  items: nil,
395
+ # Additional notes or comments for the invoice
333
396
  note: nil,
334
397
  payment_details: nil,
398
+ # The payment terms (e.g., 'Net 30', 'Due on receipt', '2/10 Net 30')
335
399
  payment_term: nil,
336
- # The previous unpaid balance of the invoice, if any. Must be positive and rounded
337
- # to maximum 2 decimals
400
+ # The previous unpaid balance from prior invoices, if any. Must be positive and
401
+ # rounded to maximum 2 decimals
338
402
  previous_unpaid_balance: nil,
403
+ # The purchase order reference number
339
404
  purchase_order: nil,
405
+ # The address where payment should be sent or remitted to
340
406
  remittance_address: nil,
407
+ # The recipient name at the remittance address
341
408
  remittance_address_recipient: nil,
409
+ # The address where services were performed or goods were delivered
342
410
  service_address: nil,
411
+ # The recipient name at the service address
343
412
  service_address_recipient: nil,
413
+ # The end date of the service period or delivery period
344
414
  service_end_date: nil,
415
+ # The start date of the service period or delivery period
345
416
  service_start_date: nil,
417
+ # The shipping/delivery address
346
418
  shipping_address: nil,
419
+ # The recipient name at the shipping address
347
420
  shipping_address_recipient: nil,
421
+ # The current state of the document: DRAFT, TRANSIT, FAILED, SENT, or RECEIVED
348
422
  state: nil,
349
423
  # The taxable base of the invoice. Should be the sum of all line items -
350
424
  # allowances (for example commercial discounts) + charges with impact on VAT. Must
@@ -352,13 +426,16 @@ module EInvoiceAPI
352
426
  subtotal: nil,
353
427
  # Whether the PDF was successfully converted into a compliant e-invoice
354
428
  success: nil,
355
- # Tax category code of the invoice
429
+ # Tax category code of the invoice (e.g., S for standard rate, Z for zero rate, E
430
+ # for exempt)
356
431
  tax_code: nil,
357
432
  tax_details: nil,
358
- # The total financial discount of the invoice (so discounts not subject to VAT).
359
- # Must be positive and rounded to maximum 2 decimals
433
+ # The net financial discount/charge of the invoice (non-VAT charges minus non-VAT
434
+ # allowances). Can be positive (net charge), negative (net discount), or zero.
435
+ # Must be rounded to maximum 2 decimals
360
436
  total_discount: nil,
361
- # The total tax of the invoice. Must be positive and rounded to maximum 2 decimals
437
+ # The total tax amount of the invoice. Must be positive and rounded to maximum 2
438
+ # decimals
362
439
  total_tax: nil,
363
440
  # The UBL document as an XML string
364
441
  ubl_document: nil,
@@ -366,12 +443,21 @@ module EInvoiceAPI
366
443
  #
367
444
  # Agency: CEF Identifier: vatex
368
445
  vatex: nil,
369
- # VAT exemption note of the invoice
446
+ # Textual explanation for VAT exemption
370
447
  vatex_note: nil,
448
+ # The address of the vendor/seller
371
449
  vendor_address: nil,
450
+ # The recipient name at the vendor address
372
451
  vendor_address_recipient: nil,
452
+ # Vendor company ID. For Belgium this is the CBE number or their EUID (European
453
+ # Unique Identifier) number. In the Netherlands this is the KVK number.
454
+ vendor_company_id: nil,
455
+ # The email address of the vendor
373
456
  vendor_email: nil,
457
+ # The name of the vendor/seller/supplier
374
458
  vendor_name: nil,
459
+ # Vendor tax ID. For Belgium this is the VAT number. Must include the country
460
+ # prefix
375
461
  vendor_tax_id: nil
376
462
  )
377
463
  end
@@ -389,6 +475,7 @@ module EInvoiceAPI
389
475
  currency: EInvoiceAPI::CurrencyCode::TaggedSymbol,
390
476
  customer_address: T.nilable(String),
391
477
  customer_address_recipient: T.nilable(String),
478
+ customer_company_id: T.nilable(String),
392
479
  customer_email: T.nilable(String),
393
480
  customer_id: T.nilable(String),
394
481
  customer_name: T.nilable(String),
@@ -438,6 +525,7 @@ module EInvoiceAPI
438
525
  vatex_note: T.nilable(String),
439
526
  vendor_address: T.nilable(String),
440
527
  vendor_address_recipient: T.nilable(String),
528
+ vendor_company_id: T.nilable(String),
441
529
  vendor_email: T.nilable(String),
442
530
  vendor_name: T.nilable(String),
443
531
  vendor_tax_id: T.nilable(String)
@@ -460,9 +548,9 @@ module EInvoiceAPI
460
548
  sig { returns(T.nilable(T::Array[EInvoiceAPI::Allowance])) }
461
549
  attr_accessor :allowances
462
550
 
463
- # The total amount of the line item, exclusive of VAT, after subtracting line
464
- # level allowances and adding line level charges. Must be rounded to maximum 2
465
- # decimals
551
+ # The invoice line net amount (BT-131), exclusive of VAT, inclusive of line level
552
+ # allowances and charges. Calculated as: ((unit_price / price_base_quantity) \*
553
+ # quantity) - allowances + charges. Must be rounded to maximum 2 decimals
466
554
  sig { returns(T.nilable(String)) }
467
555
  attr_accessor :amount
468
556
 
@@ -477,6 +565,11 @@ module EInvoiceAPI
477
565
  sig { returns(T.nilable(String)) }
478
566
  attr_accessor :description
479
567
 
568
+ # The item price base quantity (BT-149). The number of item units to which the
569
+ # price applies. Defaults to 1. Must be rounded to maximum 4 decimals
570
+ sig { returns(T.nilable(String)) }
571
+ attr_accessor :price_base_quantity
572
+
480
573
  # The product code of the line item.
481
574
  sig { returns(T.nilable(String)) }
482
575
  attr_accessor :product_code
@@ -498,7 +591,8 @@ module EInvoiceAPI
498
591
  sig { returns(T.nilable(EInvoiceAPI::UnitOfMeasureCode::TaggedSymbol)) }
499
592
  attr_accessor :unit
500
593
 
501
- # The unit price of the line item. Must be rounded to maximum 2 decimals
594
+ # The item net price (BT-146). The price of an item, exclusive of VAT, after
595
+ # subtracting item price discount. Must be rounded to maximum 4 decimals
502
596
  sig { returns(T.nilable(String)) }
503
597
  attr_accessor :unit_price
504
598
 
@@ -509,6 +603,7 @@ module EInvoiceAPI
509
603
  charges: T.nilable(T::Array[EInvoiceAPI::Charge::OrHash]),
510
604
  date: NilClass,
511
605
  description: T.nilable(String),
606
+ price_base_quantity: T.nilable(String),
512
607
  product_code: T.nilable(String),
513
608
  quantity: T.nilable(String),
514
609
  tax: T.nilable(String),
@@ -520,15 +615,18 @@ module EInvoiceAPI
520
615
  def self.new(
521
616
  # The allowances of the line item.
522
617
  allowances: nil,
523
- # The total amount of the line item, exclusive of VAT, after subtracting line
524
- # level allowances and adding line level charges. Must be rounded to maximum 2
525
- # decimals
618
+ # The invoice line net amount (BT-131), exclusive of VAT, inclusive of line level
619
+ # allowances and charges. Calculated as: ((unit_price / price_base_quantity) \*
620
+ # quantity) - allowances + charges. Must be rounded to maximum 2 decimals
526
621
  amount: nil,
527
622
  # The charges of the line item.
528
623
  charges: nil,
529
624
  date: nil,
530
625
  # The description of the line item.
531
626
  description: nil,
627
+ # The item price base quantity (BT-149). The number of item units to which the
628
+ # price applies. Defaults to 1. Must be rounded to maximum 4 decimals
629
+ price_base_quantity: nil,
532
630
  # The product code of the line item.
533
631
  product_code: nil,
534
632
  # The quantity of items (goods or services) that is the subject of the line item.
@@ -540,7 +638,8 @@ module EInvoiceAPI
540
638
  tax_rate: nil,
541
639
  # Unit of Measure Codes from UNECERec20 used in Peppol BIS Billing 3.0.
542
640
  unit: nil,
543
- # The unit price of the line item. Must be rounded to maximum 2 decimals
641
+ # The item net price (BT-146). The price of an item, exclusive of VAT, after
642
+ # subtracting item price discount. Must be rounded to maximum 4 decimals
544
643
  unit_price: nil
545
644
  )
546
645
  end
@@ -553,6 +652,7 @@ module EInvoiceAPI
553
652
  charges: T.nilable(T::Array[EInvoiceAPI::Charge]),
554
653
  date: NilClass,
555
654
  description: T.nilable(String),
655
+ price_base_quantity: T.nilable(String),
556
656
  product_code: T.nilable(String),
557
657
  quantity: T.nilable(String),
558
658
  tax: T.nilable(String),
@@ -566,7 +666,8 @@ module EInvoiceAPI
566
666
  end
567
667
  end
568
668
 
569
- # Tax category code of the invoice
669
+ # Tax category code of the invoice (e.g., S for standard rate, Z for zero rate, E
670
+ # for exempt)
570
671
  module TaxCode
571
672
  extend EInvoiceAPI::Internal::Type::Enum
572
673
 
@@ -650,9 +751,11 @@ module EInvoiceAPI
650
751
  )
651
752
  end
652
753
 
754
+ # The tax amount for this tax category. Must be rounded to maximum 2 decimals
653
755
  sig { returns(T.nilable(String)) }
654
756
  attr_accessor :amount
655
757
 
758
+ # The tax rate as a percentage (e.g., '21.00', '6.00', '0.00')
656
759
  sig { returns(T.nilable(String)) }
657
760
  attr_accessor :rate
658
761
 
@@ -661,7 +764,12 @@ module EInvoiceAPI
661
764
  T.attached_class
662
765
  )
663
766
  end
664
- def self.new(amount: nil, rate: nil)
767
+ def self.new(
768
+ # The tax amount for this tax category. Must be rounded to maximum 2 decimals
769
+ amount: nil,
770
+ # The tax rate as a percentage (e.g., '21.00', '6.00', '0.00')
771
+ rate: nil
772
+ )
665
773
  end
666
774
 
667
775
  sig do