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
@@ -17,8 +17,7 @@ module EInvoiceAPI
17
17
  nil?: true
18
18
 
19
19
  # @!attribute amount_due
20
- # The amount due of the invoice. Must be positive and rounded to maximum 2
21
- # decimals
20
+ # The amount due for payment. Must be positive and rounded to maximum 2 decimals
22
21
  #
23
22
  # @return [String, nil]
24
23
  optional :amount_due, String, nil?: true
@@ -31,11 +30,13 @@ module EInvoiceAPI
31
30
  nil?: true
32
31
 
33
32
  # @!attribute billing_address
33
+ # The billing address (if different from customer address)
34
34
  #
35
35
  # @return [String, nil]
36
36
  optional :billing_address, String, nil?: true
37
37
 
38
38
  # @!attribute billing_address_recipient
39
+ # The recipient name at the billing address
39
40
  #
40
41
  # @return [String, nil]
41
42
  optional :billing_address_recipient, String, nil?: true
@@ -48,69 +49,88 @@ module EInvoiceAPI
48
49
  nil?: true
49
50
 
50
51
  # @!attribute currency
51
- # Currency of the invoice
52
+ # Currency of the invoice (ISO 4217 currency code)
52
53
  #
53
54
  # @return [Symbol, EInvoiceAPI::Models::CurrencyCode, nil]
54
55
  optional :currency, enum: -> { EInvoiceAPI::CurrencyCode }
55
56
 
56
57
  # @!attribute customer_address
58
+ # The address of the customer/buyer
57
59
  #
58
60
  # @return [String, nil]
59
61
  optional :customer_address, String, nil?: true
60
62
 
61
63
  # @!attribute customer_address_recipient
64
+ # The recipient name at the customer address
62
65
  #
63
66
  # @return [String, nil]
64
67
  optional :customer_address_recipient, String, nil?: true
65
68
 
69
+ # @!attribute customer_company_id
70
+ # Customer company ID. For Belgium this is the CBE number or their EUID (European
71
+ # Unique Identifier) number. In the Netherlands this is the KVK number.
72
+ #
73
+ # @return [String, nil]
74
+ optional :customer_company_id, String, nil?: true
75
+
66
76
  # @!attribute customer_email
77
+ # The email address of the customer
67
78
  #
68
79
  # @return [String, nil]
69
80
  optional :customer_email, String, nil?: true
70
81
 
71
82
  # @!attribute customer_id
83
+ # The unique identifier for the customer in your system
72
84
  #
73
85
  # @return [String, nil]
74
86
  optional :customer_id, String, nil?: true
75
87
 
76
88
  # @!attribute customer_name
89
+ # The company name of the customer/buyer
77
90
  #
78
91
  # @return [String, nil]
79
92
  optional :customer_name, String, nil?: true
80
93
 
81
94
  # @!attribute customer_tax_id
95
+ # Customer tax ID. For Belgium this is the VAT number. Must include the country
96
+ # prefix
82
97
  #
83
98
  # @return [String, nil]
84
99
  optional :customer_tax_id, String, nil?: true
85
100
 
86
101
  # @!attribute direction
102
+ # The direction of the document: INBOUND (purchases) or OUTBOUND (sales)
87
103
  #
88
104
  # @return [Symbol, EInvoiceAPI::Models::DocumentDirection, nil]
89
105
  optional :direction, enum: -> { EInvoiceAPI::DocumentDirection }
90
106
 
91
107
  # @!attribute document_type
108
+ # The type of document: INVOICE, CREDIT_NOTE, or DEBIT_NOTE
92
109
  #
93
110
  # @return [Symbol, EInvoiceAPI::Models::DocumentType, nil]
94
111
  optional :document_type, enum: -> { EInvoiceAPI::DocumentType }
95
112
 
96
113
  # @!attribute due_date
114
+ # The date when payment is due
97
115
  #
98
116
  # @return [Date, nil]
99
117
  optional :due_date, Date, nil?: true
100
118
 
101
119
  # @!attribute invoice_date
120
+ # The date when the invoice was issued
102
121
  #
103
122
  # @return [Date, nil]
104
123
  optional :invoice_date, Date, nil?: true
105
124
 
106
125
  # @!attribute invoice_id
126
+ # The unique invoice identifier/number
107
127
  #
108
128
  # @return [String, nil]
109
129
  optional :invoice_id, String, nil?: true
110
130
 
111
131
  # @!attribute invoice_total
112
- # The total amount of the invoice (so invoice_total = subtotal + total_tax +
113
- # total_discount). Must be positive and rounded to maximum 2 decimals
132
+ # The total amount of the invoice including tax (invoice_total = subtotal +
133
+ # total_tax + total_discount). Must be positive and rounded to maximum 2 decimals
114
134
  #
115
135
  # @return [String, nil]
116
136
  optional :invoice_total, String, nil?: true
@@ -123,6 +143,7 @@ module EInvoiceAPI
123
143
  nil?: true
124
144
 
125
145
  # @!attribute note
146
+ # Additional notes or comments for the invoice
126
147
  #
127
148
  # @return [String, nil]
128
149
  optional :note, String, nil?: true
@@ -135,63 +156,74 @@ module EInvoiceAPI
135
156
  nil?: true
136
157
 
137
158
  # @!attribute payment_term
159
+ # The payment terms (e.g., 'Net 30', 'Due on receipt', '2/10 Net 30')
138
160
  #
139
161
  # @return [String, nil]
140
162
  optional :payment_term, String, nil?: true
141
163
 
142
164
  # @!attribute previous_unpaid_balance
143
- # The previous unpaid balance of the invoice, if any. Must be positive and rounded
144
- # to maximum 2 decimals
165
+ # The previous unpaid balance from prior invoices, if any. Must be positive and
166
+ # rounded to maximum 2 decimals
145
167
  #
146
168
  # @return [String, nil]
147
169
  optional :previous_unpaid_balance, String, nil?: true
148
170
 
149
171
  # @!attribute purchase_order
172
+ # The purchase order reference number
150
173
  #
151
174
  # @return [String, nil]
152
175
  optional :purchase_order, String, nil?: true
153
176
 
154
177
  # @!attribute remittance_address
178
+ # The address where payment should be sent or remitted to
155
179
  #
156
180
  # @return [String, nil]
157
181
  optional :remittance_address, String, nil?: true
158
182
 
159
183
  # @!attribute remittance_address_recipient
184
+ # The recipient name at the remittance address
160
185
  #
161
186
  # @return [String, nil]
162
187
  optional :remittance_address_recipient, String, nil?: true
163
188
 
164
189
  # @!attribute service_address
190
+ # The address where services were performed or goods were delivered
165
191
  #
166
192
  # @return [String, nil]
167
193
  optional :service_address, String, nil?: true
168
194
 
169
195
  # @!attribute service_address_recipient
196
+ # The recipient name at the service address
170
197
  #
171
198
  # @return [String, nil]
172
199
  optional :service_address_recipient, String, nil?: true
173
200
 
174
201
  # @!attribute service_end_date
202
+ # The end date of the service period or delivery period
175
203
  #
176
204
  # @return [Date, nil]
177
205
  optional :service_end_date, Date, nil?: true
178
206
 
179
207
  # @!attribute service_start_date
208
+ # The start date of the service period or delivery period
180
209
  #
181
210
  # @return [Date, nil]
182
211
  optional :service_start_date, Date, nil?: true
183
212
 
184
213
  # @!attribute shipping_address
214
+ # The shipping/delivery address
185
215
  #
186
216
  # @return [String, nil]
187
217
  optional :shipping_address, String, nil?: true
188
218
 
189
219
  # @!attribute shipping_address_recipient
220
+ # The recipient name at the shipping address
190
221
  #
191
222
  # @return [String, nil]
192
223
  optional :shipping_address_recipient, String, nil?: true
193
224
 
194
225
  # @!attribute state
226
+ # The current state of the document: DRAFT, TRANSIT, FAILED, SENT, or RECEIVED
195
227
  #
196
228
  # @return [Symbol, EInvoiceAPI::Models::DocumentState, nil]
197
229
  optional :state, enum: -> { EInvoiceAPI::DocumentState }
@@ -205,7 +237,8 @@ module EInvoiceAPI
205
237
  optional :subtotal, String, nil?: true
206
238
 
207
239
  # @!attribute tax_code
208
- # Tax category code of the invoice
240
+ # Tax category code of the invoice (e.g., S for standard rate, Z for zero rate, E
241
+ # for exempt)
209
242
  #
210
243
  # @return [Symbol, EInvoiceAPI::Models::DocumentResponse::TaxCode, nil]
211
244
  optional :tax_code, enum: -> { EInvoiceAPI::DocumentResponse::TaxCode }
@@ -218,14 +251,16 @@ module EInvoiceAPI
218
251
  nil?: true
219
252
 
220
253
  # @!attribute total_discount
221
- # The total financial discount of the invoice (so discounts not subject to VAT).
222
- # Must be positive and rounded to maximum 2 decimals
254
+ # The net financial discount/charge of the invoice (non-VAT charges minus non-VAT
255
+ # allowances). Can be positive (net charge), negative (net discount), or zero.
256
+ # Must be rounded to maximum 2 decimals
223
257
  #
224
258
  # @return [String, nil]
225
259
  optional :total_discount, String, nil?: true
226
260
 
227
261
  # @!attribute total_tax
228
- # The total tax of the invoice. Must be positive and rounded to maximum 2 decimals
262
+ # The total tax amount of the invoice. Must be positive and rounded to maximum 2
263
+ # decimals
229
264
  #
230
265
  # @return [String, nil]
231
266
  optional :total_tax, String, nil?: true
@@ -239,37 +274,50 @@ module EInvoiceAPI
239
274
  optional :vatex, enum: -> { EInvoiceAPI::DocumentResponse::Vatex }, nil?: true
240
275
 
241
276
  # @!attribute vatex_note
242
- # VAT exemption note of the invoice
277
+ # Textual explanation for VAT exemption
243
278
  #
244
279
  # @return [String, nil]
245
280
  optional :vatex_note, String, nil?: true
246
281
 
247
282
  # @!attribute vendor_address
283
+ # The address of the vendor/seller
248
284
  #
249
285
  # @return [String, nil]
250
286
  optional :vendor_address, String, nil?: true
251
287
 
252
288
  # @!attribute vendor_address_recipient
289
+ # The recipient name at the vendor address
253
290
  #
254
291
  # @return [String, nil]
255
292
  optional :vendor_address_recipient, String, nil?: true
256
293
 
294
+ # @!attribute vendor_company_id
295
+ # Vendor company ID. For Belgium this is the CBE number or their EUID (European
296
+ # Unique Identifier) number. In the Netherlands this is the KVK number.
297
+ #
298
+ # @return [String, nil]
299
+ optional :vendor_company_id, String, nil?: true
300
+
257
301
  # @!attribute vendor_email
302
+ # The email address of the vendor
258
303
  #
259
304
  # @return [String, nil]
260
305
  optional :vendor_email, String, nil?: true
261
306
 
262
307
  # @!attribute vendor_name
308
+ # The name of the vendor/seller/supplier
263
309
  #
264
310
  # @return [String, nil]
265
311
  optional :vendor_name, String, nil?: true
266
312
 
267
313
  # @!attribute vendor_tax_id
314
+ # Vendor tax ID. For Belgium this is the VAT number. Must include the country
315
+ # prefix
268
316
  #
269
317
  # @return [String, nil]
270
318
  optional :vendor_tax_id, String, nil?: true
271
319
 
272
- # @!method initialize(id:, allowances: nil, amount_due: nil, attachments: nil, billing_address: nil, billing_address_recipient: nil, charges: nil, currency: nil, customer_address: nil, customer_address_recipient: nil, customer_email: nil, customer_id: nil, customer_name: nil, customer_tax_id: nil, direction: nil, document_type: nil, due_date: nil, invoice_date: nil, invoice_id: nil, invoice_total: nil, items: nil, note: nil, payment_details: nil, payment_term: nil, previous_unpaid_balance: nil, purchase_order: nil, remittance_address: nil, remittance_address_recipient: nil, service_address: nil, service_address_recipient: nil, service_end_date: nil, service_start_date: nil, shipping_address: nil, shipping_address_recipient: nil, state: nil, subtotal: nil, tax_code: nil, tax_details: nil, total_discount: nil, total_tax: nil, vatex: nil, vatex_note: nil, vendor_address: nil, vendor_address_recipient: nil, vendor_email: nil, vendor_name: nil, vendor_tax_id: nil)
320
+ # @!method initialize(id:, allowances: nil, amount_due: nil, attachments: nil, billing_address: nil, billing_address_recipient: nil, charges: nil, currency: nil, customer_address: nil, customer_address_recipient: nil, customer_company_id: nil, customer_email: nil, customer_id: nil, customer_name: nil, customer_tax_id: nil, direction: nil, document_type: nil, due_date: nil, invoice_date: nil, invoice_id: nil, invoice_total: nil, items: nil, note: nil, payment_details: nil, payment_term: nil, previous_unpaid_balance: nil, purchase_order: nil, remittance_address: nil, remittance_address_recipient: nil, service_address: nil, service_address_recipient: nil, service_end_date: nil, service_start_date: nil, shipping_address: nil, shipping_address_recipient: nil, state: nil, subtotal: nil, tax_code: nil, tax_details: nil, total_discount: nil, total_tax: nil, vatex: nil, vatex_note: nil, vendor_address: nil, vendor_address_recipient: nil, vendor_company_id: nil, vendor_email: nil, vendor_name: nil, vendor_tax_id: nil)
273
321
  # Some parameter documentations has been truncated, see
274
322
  # {EInvoiceAPI::Models::DocumentResponse} for more details.
275
323
  #
@@ -277,95 +325,99 @@ module EInvoiceAPI
277
325
  #
278
326
  # @param allowances [Array<EInvoiceAPI::Models::DocumentResponse::Allowance>, nil]
279
327
  #
280
- # @param amount_due [String, nil] The amount due of the invoice. Must be positive and rounded to maximum 2 decimal
328
+ # @param amount_due [String, nil] The amount due for payment. Must be positive and rounded to maximum 2 decimals
281
329
  #
282
330
  # @param attachments [Array<EInvoiceAPI::Models::Documents::DocumentAttachment>, nil]
283
331
  #
284
- # @param billing_address [String, nil]
332
+ # @param billing_address [String, nil] The billing address (if different from customer address)
285
333
  #
286
- # @param billing_address_recipient [String, nil]
334
+ # @param billing_address_recipient [String, nil] The recipient name at the billing address
287
335
  #
288
336
  # @param charges [Array<EInvoiceAPI::Models::DocumentResponse::Charge>, nil]
289
337
  #
290
- # @param currency [Symbol, EInvoiceAPI::Models::CurrencyCode] Currency of the invoice
338
+ # @param currency [Symbol, EInvoiceAPI::Models::CurrencyCode] Currency of the invoice (ISO 4217 currency code)
339
+ #
340
+ # @param customer_address [String, nil] The address of the customer/buyer
291
341
  #
292
- # @param customer_address [String, nil]
342
+ # @param customer_address_recipient [String, nil] The recipient name at the customer address
293
343
  #
294
- # @param customer_address_recipient [String, nil]
344
+ # @param customer_company_id [String, nil] Customer company ID. For Belgium this is the CBE number or their EUID (European
295
345
  #
296
- # @param customer_email [String, nil]
346
+ # @param customer_email [String, nil] The email address of the customer
297
347
  #
298
- # @param customer_id [String, nil]
348
+ # @param customer_id [String, nil] The unique identifier for the customer in your system
299
349
  #
300
- # @param customer_name [String, nil]
350
+ # @param customer_name [String, nil] The company name of the customer/buyer
301
351
  #
302
- # @param customer_tax_id [String, nil]
352
+ # @param customer_tax_id [String, nil] Customer tax ID. For Belgium this is the VAT number. Must include the country pr
303
353
  #
304
- # @param direction [Symbol, EInvoiceAPI::Models::DocumentDirection]
354
+ # @param direction [Symbol, EInvoiceAPI::Models::DocumentDirection] The direction of the document: INBOUND (purchases) or OUTBOUND (sales)
305
355
  #
306
- # @param document_type [Symbol, EInvoiceAPI::Models::DocumentType]
356
+ # @param document_type [Symbol, EInvoiceAPI::Models::DocumentType] The type of document: INVOICE, CREDIT_NOTE, or DEBIT_NOTE
307
357
  #
308
- # @param due_date [Date, nil]
358
+ # @param due_date [Date, nil] The date when payment is due
309
359
  #
310
- # @param invoice_date [Date, nil]
360
+ # @param invoice_date [Date, nil] The date when the invoice was issued
311
361
  #
312
- # @param invoice_id [String, nil]
362
+ # @param invoice_id [String, nil] The unique invoice identifier/number
313
363
  #
314
- # @param invoice_total [String, nil] The total amount of the invoice (so invoice_total = subtotal + total_tax + total
364
+ # @param invoice_total [String, nil] The total amount of the invoice including tax (invoice*total = subtotal + total*
315
365
  #
316
366
  # @param items [Array<EInvoiceAPI::Models::DocumentResponse::Item>, nil]
317
367
  #
318
- # @param note [String, nil]
368
+ # @param note [String, nil] Additional notes or comments for the invoice
319
369
  #
320
370
  # @param payment_details [Array<EInvoiceAPI::Models::DocumentResponse::PaymentDetail>, nil]
321
371
  #
322
- # @param payment_term [String, nil]
372
+ # @param payment_term [String, nil] The payment terms (e.g., 'Net 30', 'Due on receipt', '2/10 Net 30')
323
373
  #
324
- # @param previous_unpaid_balance [String, nil] The previous unpaid balance of the invoice, if any. Must be positive and rounded
374
+ # @param previous_unpaid_balance [String, nil] The previous unpaid balance from prior invoices, if any. Must be positive and ro
325
375
  #
326
- # @param purchase_order [String, nil]
376
+ # @param purchase_order [String, nil] The purchase order reference number
327
377
  #
328
- # @param remittance_address [String, nil]
378
+ # @param remittance_address [String, nil] The address where payment should be sent or remitted to
329
379
  #
330
- # @param remittance_address_recipient [String, nil]
380
+ # @param remittance_address_recipient [String, nil] The recipient name at the remittance address
331
381
  #
332
- # @param service_address [String, nil]
382
+ # @param service_address [String, nil] The address where services were performed or goods were delivered
333
383
  #
334
- # @param service_address_recipient [String, nil]
384
+ # @param service_address_recipient [String, nil] The recipient name at the service address
335
385
  #
336
- # @param service_end_date [Date, nil]
386
+ # @param service_end_date [Date, nil] The end date of the service period or delivery period
337
387
  #
338
- # @param service_start_date [Date, nil]
388
+ # @param service_start_date [Date, nil] The start date of the service period or delivery period
339
389
  #
340
- # @param shipping_address [String, nil]
390
+ # @param shipping_address [String, nil] The shipping/delivery address
341
391
  #
342
- # @param shipping_address_recipient [String, nil]
392
+ # @param shipping_address_recipient [String, nil] The recipient name at the shipping address
343
393
  #
344
- # @param state [Symbol, EInvoiceAPI::Models::DocumentState]
394
+ # @param state [Symbol, EInvoiceAPI::Models::DocumentState] The current state of the document: DRAFT, TRANSIT, FAILED, SENT, or RECEIVED
345
395
  #
346
396
  # @param subtotal [String, nil] The taxable base of the invoice. Should be the sum of all line items - allowance
347
397
  #
348
- # @param tax_code [Symbol, EInvoiceAPI::Models::DocumentResponse::TaxCode] Tax category code of the invoice
398
+ # @param tax_code [Symbol, EInvoiceAPI::Models::DocumentResponse::TaxCode] Tax category code of the invoice (e.g., S for standard rate, Z for zero rate, E
349
399
  #
350
400
  # @param tax_details [Array<EInvoiceAPI::Models::DocumentResponse::TaxDetail>, nil]
351
401
  #
352
- # @param total_discount [String, nil] The total financial discount of the invoice (so discounts not subject to VAT). M
402
+ # @param total_discount [String, nil] The net financial discount/charge of the invoice (non-VAT charges minus non-VAT
353
403
  #
354
- # @param total_tax [String, nil] The total tax of the invoice. Must be positive and rounded to maximum 2 decimals
404
+ # @param total_tax [String, nil] The total tax amount of the invoice. Must be positive and rounded to maximum 2 d
355
405
  #
356
406
  # @param vatex [Symbol, EInvoiceAPI::Models::DocumentResponse::Vatex, nil] VATEX code list for VAT exemption reasons
357
407
  #
358
- # @param vatex_note [String, nil] VAT exemption note of the invoice
408
+ # @param vatex_note [String, nil] Textual explanation for VAT exemption
359
409
  #
360
- # @param vendor_address [String, nil]
410
+ # @param vendor_address [String, nil] The address of the vendor/seller
361
411
  #
362
- # @param vendor_address_recipient [String, nil]
412
+ # @param vendor_address_recipient [String, nil] The recipient name at the vendor address
363
413
  #
364
- # @param vendor_email [String, nil]
414
+ # @param vendor_company_id [String, nil] Vendor company ID. For Belgium this is the CBE number or their EUID (European Un
365
415
  #
366
- # @param vendor_name [String, nil]
416
+ # @param vendor_email [String, nil] The email address of the vendor
367
417
  #
368
- # @param vendor_tax_id [String, nil]
418
+ # @param vendor_name [String, nil] The name of the vendor/seller/supplier
419
+ #
420
+ # @param vendor_tax_id [String, nil] Vendor tax ID. For Belgium this is the VAT number. Must include the country pref
369
421
 
370
422
  class Allowance < EInvoiceAPI::Internal::Type::BaseModel
371
423
  # @!attribute amount
@@ -383,7 +435,8 @@ module EInvoiceAPI
383
435
 
384
436
  # @!attribute multiplier_factor
385
437
  # The percentage that may be used, in conjunction with the allowance base amount,
386
- # to calculate the allowance amount. To state 20%, use value 20
438
+ # to calculate the allowance amount. To state 20%, use value 20. Must be rounded
439
+ # to maximum 2 decimals
387
440
  #
388
441
  # @return [String, nil]
389
442
  optional :multiplier_factor, String, nil?: true
@@ -395,21 +448,20 @@ module EInvoiceAPI
395
448
  optional :reason, String, nil?: true
396
449
 
397
450
  # @!attribute reason_code
398
- # The code for the allowance reason
451
+ # Allowance reason codes for invoice discounts and charges
399
452
  #
400
- # @return [String, nil]
401
- optional :reason_code, String, nil?: true
453
+ # @return [Symbol, EInvoiceAPI::Models::DocumentResponse::Allowance::ReasonCode, nil]
454
+ optional :reason_code, enum: -> { EInvoiceAPI::DocumentResponse::Allowance::ReasonCode }, nil?: true
402
455
 
403
456
  # @!attribute tax_code
404
- # Duty or tax or fee category codes (Subset of UNCL5305)
405
- #
406
- # Agency: UN/CEFACT Version: D.16B Subset: OpenPEPPOL
457
+ # The VAT category code that applies to the allowance
407
458
  #
408
459
  # @return [Symbol, EInvoiceAPI::Models::DocumentResponse::Allowance::TaxCode, nil]
409
- optional :tax_code, enum: -> { EInvoiceAPI::DocumentResponse::Allowance::TaxCode }, nil?: true
460
+ optional :tax_code, enum: -> { EInvoiceAPI::DocumentResponse::Allowance::TaxCode }
410
461
 
411
462
  # @!attribute tax_rate
412
- # The VAT rate, represented as percentage that applies to the allowance
463
+ # The VAT rate, represented as percentage that applies to the allowance. Must be
464
+ # rounded to maximum 2 decimals
413
465
  #
414
466
  # @return [String, nil]
415
467
  optional :tax_rate, String, nil?: true
@@ -426,15 +478,43 @@ module EInvoiceAPI
426
478
  #
427
479
  # @param reason [String, nil] The reason for the allowance
428
480
  #
429
- # @param reason_code [String, nil] The code for the allowance reason
481
+ # @param reason_code [Symbol, EInvoiceAPI::Models::DocumentResponse::Allowance::ReasonCode, nil] Allowance reason codes for invoice discounts and charges
430
482
  #
431
- # @param tax_code [Symbol, EInvoiceAPI::Models::DocumentResponse::Allowance::TaxCode, nil] Duty or tax or fee category codes (Subset of UNCL5305)
483
+ # @param tax_code [Symbol, EInvoiceAPI::Models::DocumentResponse::Allowance::TaxCode] The VAT category code that applies to the allowance
432
484
  #
433
- # @param tax_rate [String, nil] The VAT rate, represented as percentage that applies to the allowance
485
+ # @param tax_rate [String, nil] The VAT rate, represented as percentage that applies to the allowance. Must be r
434
486
 
435
- # Duty or tax or fee category codes (Subset of UNCL5305)
487
+ # Allowance reason codes for invoice discounts and charges
436
488
  #
437
- # Agency: UN/CEFACT Version: D.16B Subset: OpenPEPPOL
489
+ # @see EInvoiceAPI::Models::DocumentResponse::Allowance#reason_code
490
+ module ReasonCode
491
+ extend EInvoiceAPI::Internal::Type::Enum
492
+
493
+ REASON_CODE_41 = :"41"
494
+ REASON_CODE_42 = :"42"
495
+ REASON_CODE_60 = :"60"
496
+ REASON_CODE_62 = :"62"
497
+ REASON_CODE_63 = :"63"
498
+ REASON_CODE_64 = :"64"
499
+ REASON_CODE_65 = :"65"
500
+ REASON_CODE_66 = :"66"
501
+ REASON_CODE_67 = :"67"
502
+ REASON_CODE_68 = :"68"
503
+ REASON_CODE_70 = :"70"
504
+ REASON_CODE_71 = :"71"
505
+ REASON_CODE_88 = :"88"
506
+ REASON_CODE_95 = :"95"
507
+ REASON_CODE_100 = :"100"
508
+ REASON_CODE_102 = :"102"
509
+ REASON_CODE_103 = :"103"
510
+ REASON_CODE_104 = :"104"
511
+ REASON_CODE_105 = :"105"
512
+
513
+ # @!method self.values
514
+ # @return [Array<Symbol>]
515
+ end
516
+
517
+ # The VAT category code that applies to the allowance
438
518
  #
439
519
  # @see EInvoiceAPI::Models::DocumentResponse::Allowance#tax_code
440
520
  module TaxCode
@@ -484,10 +564,10 @@ module EInvoiceAPI
484
564
  optional :reason, String, nil?: true
485
565
 
486
566
  # @!attribute reason_code
487
- # The code for the charge reason
567
+ # Charge reason codes for invoice charges and fees
488
568
  #
489
- # @return [String, nil]
490
- optional :reason_code, String, nil?: true
569
+ # @return [Symbol, EInvoiceAPI::Models::DocumentResponse::Charge::ReasonCode, nil]
570
+ optional :reason_code, enum: -> { EInvoiceAPI::DocumentResponse::Charge::ReasonCode }, nil?: true
491
571
 
492
572
  # @!attribute tax_code
493
573
  # Duty or tax or fee category codes (Subset of UNCL5305)
@@ -515,12 +595,201 @@ module EInvoiceAPI
515
595
  #
516
596
  # @param reason [String, nil] The reason for the charge
517
597
  #
518
- # @param reason_code [String, nil] The code for the charge reason
598
+ # @param reason_code [Symbol, EInvoiceAPI::Models::DocumentResponse::Charge::ReasonCode, nil] Charge reason codes for invoice charges and fees
519
599
  #
520
600
  # @param tax_code [Symbol, EInvoiceAPI::Models::DocumentResponse::Charge::TaxCode, nil] Duty or tax or fee category codes (Subset of UNCL5305)
521
601
  #
522
602
  # @param tax_rate [String, nil] The VAT rate, represented as percentage that applies to the charge
523
603
 
604
+ # Charge reason codes for invoice charges and fees
605
+ #
606
+ # @see EInvoiceAPI::Models::DocumentResponse::Charge#reason_code
607
+ module ReasonCode
608
+ extend EInvoiceAPI::Internal::Type::Enum
609
+
610
+ AA = :AA
611
+ AAA = :AAA
612
+ AAC = :AAC
613
+ AAD = :AAD
614
+ AAE = :AAE
615
+ AAF = :AAF
616
+ AAH = :AAH
617
+ AAI = :AAI
618
+ AAS = :AAS
619
+ AAT = :AAT
620
+ AAV = :AAV
621
+ AAY = :AAY
622
+ AAZ = :AAZ
623
+ ABA = :ABA
624
+ ABB = :ABB
625
+ ABC = :ABC
626
+ ABD = :ABD
627
+ ABF = :ABF
628
+ ABK = :ABK
629
+ ABL = :ABL
630
+ ABN = :ABN
631
+ ABR = :ABR
632
+ ABS = :ABS
633
+ ABT = :ABT
634
+ ABU = :ABU
635
+ ACF = :ACF
636
+ ACG = :ACG
637
+ ACH = :ACH
638
+ ACI = :ACI
639
+ ACJ = :ACJ
640
+ ACK = :ACK
641
+ ACL = :ACL
642
+ ACM = :ACM
643
+ ACS = :ACS
644
+ ADC = :ADC
645
+ ADE = :ADE
646
+ ADJ = :ADJ
647
+ ADK = :ADK
648
+ ADL = :ADL
649
+ ADM = :ADM
650
+ ADN = :ADN
651
+ ADO = :ADO
652
+ ADP = :ADP
653
+ ADQ = :ADQ
654
+ ADR = :ADR
655
+ ADT = :ADT
656
+ ADW = :ADW
657
+ ADY = :ADY
658
+ ADZ = :ADZ
659
+ AEA = :AEA
660
+ AEB = :AEB
661
+ AEC = :AEC
662
+ AED = :AED
663
+ AEF = :AEF
664
+ AEH = :AEH
665
+ AEI = :AEI
666
+ AEJ = :AEJ
667
+ AEK = :AEK
668
+ AEL = :AEL
669
+ AEM = :AEM
670
+ AEN = :AEN
671
+ AEO = :AEO
672
+ AEP = :AEP
673
+ AES = :AES
674
+ AET = :AET
675
+ AEU = :AEU
676
+ AEV = :AEV
677
+ AEW = :AEW
678
+ AEX = :AEX
679
+ AEY = :AEY
680
+ AEZ = :AEZ
681
+ AJ = :AJ
682
+ AU = :AU
683
+ CA = :CA
684
+ CAB = :CAB
685
+ CAD = :CAD
686
+ CAE = :CAE
687
+ CAF = :CAF
688
+ CAI = :CAI
689
+ CAJ = :CAJ
690
+ CAK = :CAK
691
+ CAL = :CAL
692
+ CAM = :CAM
693
+ CAN = :CAN
694
+ CAO = :CAO
695
+ CAP = :CAP
696
+ CAQ = :CAQ
697
+ CAR = :CAR
698
+ CAS = :CAS
699
+ CAT = :CAT
700
+ CAU = :CAU
701
+ CAV = :CAV
702
+ CAW = :CAW
703
+ CAX = :CAX
704
+ CAY = :CAY
705
+ CAZ = :CAZ
706
+ CD = :CD
707
+ CG = :CG
708
+ CS = :CS
709
+ CT = :CT
710
+ DAB = :DAB
711
+ DAC = :DAC
712
+ DAD = :DAD
713
+ DAF = :DAF
714
+ DAG = :DAG
715
+ DAH = :DAH
716
+ DAI = :DAI
717
+ DAJ = :DAJ
718
+ DAK = :DAK
719
+ DAL = :DAL
720
+ DAM = :DAM
721
+ DAN = :DAN
722
+ DAO = :DAO
723
+ DAP = :DAP
724
+ DAQ = :DAQ
725
+ DL = :DL
726
+ EG = :EG
727
+ EP = :EP
728
+ ER = :ER
729
+ FAA = :FAA
730
+ FAB = :FAB
731
+ FAC = :FAC
732
+ FC = :FC
733
+ FH = :FH
734
+ FI = :FI
735
+ GAA = :GAA
736
+ HAA = :HAA
737
+ HD = :HD
738
+ HH = :HH
739
+ IAA = :IAA
740
+ IAB = :IAB
741
+ ID = :ID
742
+ IF = :IF
743
+ IR = :IR
744
+ IS = :IS
745
+ KO = :KO
746
+ L1 = :L1
747
+ LA = :LA
748
+ LAA = :LAA
749
+ LAB = :LAB
750
+ LF = :LF
751
+ MAE = :MAE
752
+ MI = :MI
753
+ ML = :ML
754
+ NAA = :NAA
755
+ OA = :OA
756
+ PA = :PA
757
+ PAA = :PAA
758
+ PC = :PC
759
+ PL = :PL
760
+ PRV = :PRV
761
+ RAB = :RAB
762
+ RAC = :RAC
763
+ RAD = :RAD
764
+ RAF = :RAF
765
+ RE = :RE
766
+ RF = :RF
767
+ RH = :RH
768
+ RV = :RV
769
+ SA = :SA
770
+ SAA = :SAA
771
+ SAD = :SAD
772
+ SAE = :SAE
773
+ SAI = :SAI
774
+ SG = :SG
775
+ SH = :SH
776
+ SM = :SM
777
+ SU = :SU
778
+ TAB = :TAB
779
+ TAC = :TAC
780
+ TT = :TT
781
+ TV = :TV
782
+ V1 = :V1
783
+ V2 = :V2
784
+ WH = :WH
785
+ XAA = :XAA
786
+ YY = :YY
787
+ ZZZ = :ZZZ
788
+
789
+ # @!method self.values
790
+ # @return [Array<Symbol>]
791
+ end
792
+
524
793
  # Duty or tax or fee category codes (Subset of UNCL5305)
525
794
  #
526
795
  # Agency: UN/CEFACT Version: D.16B Subset: OpenPEPPOL
@@ -553,9 +822,9 @@ module EInvoiceAPI
553
822
  optional :allowances, -> { EInvoiceAPI::Internal::Type::ArrayOf[EInvoiceAPI::Allowance] }, nil?: true
554
823
 
555
824
  # @!attribute amount
556
- # The total amount of the line item, exclusive of VAT, after subtracting line
557
- # level allowances and adding line level charges. Must be rounded to maximum 2
558
- # decimals
825
+ # The invoice line net amount (BT-131), exclusive of VAT, inclusive of line level
826
+ # allowances and charges. Calculated as: ((unit_price / price_base_quantity) \*
827
+ # quantity) - allowances + charges. Must be rounded to maximum 2 decimals
559
828
  #
560
829
  # @return [String, nil]
561
830
  optional :amount, String, nil?: true
@@ -577,6 +846,13 @@ module EInvoiceAPI
577
846
  # @return [String, nil]
578
847
  optional :description, String, nil?: true
579
848
 
849
+ # @!attribute price_base_quantity
850
+ # The item price base quantity (BT-149). The number of item units to which the
851
+ # price applies. Defaults to 1. Must be rounded to maximum 4 decimals
852
+ #
853
+ # @return [String, nil]
854
+ optional :price_base_quantity, String, nil?: true
855
+
580
856
  # @!attribute product_code
581
857
  # The product code of the line item.
582
858
  #
@@ -609,18 +885,19 @@ module EInvoiceAPI
609
885
  optional :unit, enum: -> { EInvoiceAPI::UnitOfMeasureCode }, nil?: true
610
886
 
611
887
  # @!attribute unit_price
612
- # The unit price of the line item. Must be rounded to maximum 2 decimals
888
+ # The item net price (BT-146). The price of an item, exclusive of VAT, after
889
+ # subtracting item price discount. Must be rounded to maximum 4 decimals
613
890
  #
614
891
  # @return [String, nil]
615
892
  optional :unit_price, String, nil?: true
616
893
 
617
- # @!method initialize(allowances: nil, amount: nil, charges: nil, date: nil, description: nil, product_code: nil, quantity: nil, tax: nil, tax_rate: nil, unit: nil, unit_price: nil)
894
+ # @!method initialize(allowances: nil, amount: nil, charges: nil, date: nil, description: nil, price_base_quantity: nil, product_code: nil, quantity: nil, tax: nil, tax_rate: nil, unit: nil, unit_price: nil)
618
895
  # Some parameter documentations has been truncated, see
619
896
  # {EInvoiceAPI::Models::DocumentResponse::Item} for more details.
620
897
  #
621
898
  # @param allowances [Array<EInvoiceAPI::Models::Allowance>, nil] The allowances of the line item.
622
899
  #
623
- # @param amount [String, nil] The total amount of the line item, exclusive of VAT, after subtracting line leve
900
+ # @param amount [String, nil] The invoice line net amount (BT-131), exclusive of VAT, inclusive of line level
624
901
  #
625
902
  # @param charges [Array<EInvoiceAPI::Models::Charge>, nil] The charges of the line item.
626
903
  #
@@ -628,6 +905,8 @@ module EInvoiceAPI
628
905
  #
629
906
  # @param description [String, nil] The description of the line item.
630
907
  #
908
+ # @param price_base_quantity [String, nil] The item price base quantity (BT-149). The number of item units to which the pri
909
+ #
631
910
  # @param product_code [String, nil] The product code of the line item.
632
911
  #
633
912
  # @param quantity [String, nil] The quantity of items (goods or services) that is the subject of the line item.
@@ -638,38 +917,50 @@ module EInvoiceAPI
638
917
  #
639
918
  # @param unit [Symbol, EInvoiceAPI::Models::UnitOfMeasureCode, nil] Unit of Measure Codes from UNECERec20 used in Peppol BIS Billing 3.0.
640
919
  #
641
- # @param unit_price [String, nil] The unit price of the line item. Must be rounded to maximum 2 decimals
920
+ # @param unit_price [String, nil] The item net price (BT-146). The price of an item, exclusive of VAT, after subtr
642
921
  end
643
922
 
644
923
  class PaymentDetail < EInvoiceAPI::Internal::Type::BaseModel
645
924
  # @!attribute bank_account_number
925
+ # Bank account number (for non-IBAN accounts)
646
926
  #
647
927
  # @return [String, nil]
648
928
  optional :bank_account_number, String, nil?: true
649
929
 
650
930
  # @!attribute iban
931
+ # International Bank Account Number for payment transfers
651
932
  #
652
933
  # @return [String, nil]
653
934
  optional :iban, String, nil?: true
654
935
 
655
936
  # @!attribute payment_reference
937
+ # Structured payment reference or communication (e.g., structured communication
938
+ # for Belgian bank transfers)
656
939
  #
657
940
  # @return [String, nil]
658
941
  optional :payment_reference, String, nil?: true
659
942
 
660
943
  # @!attribute swift
944
+ # SWIFT/BIC code of the bank
661
945
  #
662
946
  # @return [String, nil]
663
947
  optional :swift, String, nil?: true
664
948
 
665
949
  # @!method initialize(bank_account_number: nil, iban: nil, payment_reference: nil, swift: nil)
666
- # @param bank_account_number [String, nil]
667
- # @param iban [String, nil]
668
- # @param payment_reference [String, nil]
669
- # @param swift [String, nil]
950
+ # Some parameter documentations has been truncated, see
951
+ # {EInvoiceAPI::Models::DocumentResponse::PaymentDetail} for more details.
952
+ #
953
+ # @param bank_account_number [String, nil] Bank account number (for non-IBAN accounts)
954
+ #
955
+ # @param iban [String, nil] International Bank Account Number for payment transfers
956
+ #
957
+ # @param payment_reference [String, nil] Structured payment reference or communication (e.g., structured communication fo
958
+ #
959
+ # @param swift [String, nil] SWIFT/BIC code of the bank
670
960
  end
671
961
 
672
- # Tax category code of the invoice
962
+ # Tax category code of the invoice (e.g., S for standard rate, Z for zero rate, E
963
+ # for exempt)
673
964
  #
674
965
  # @see EInvoiceAPI::Models::DocumentResponse#tax_code
675
966
  module TaxCode
@@ -692,18 +983,21 @@ module EInvoiceAPI
692
983
 
693
984
  class TaxDetail < EInvoiceAPI::Internal::Type::BaseModel
694
985
  # @!attribute amount
986
+ # The tax amount for this tax category. Must be rounded to maximum 2 decimals
695
987
  #
696
988
  # @return [String, nil]
697
989
  optional :amount, String, nil?: true
698
990
 
699
991
  # @!attribute rate
992
+ # The tax rate as a percentage (e.g., '21.00', '6.00', '0.00')
700
993
  #
701
994
  # @return [String, nil]
702
995
  optional :rate, String, nil?: true
703
996
 
704
997
  # @!method initialize(amount: nil, rate: nil)
705
- # @param amount [String, nil]
706
- # @param rate [String, nil]
998
+ # @param amount [String, nil] The tax amount for this tax category. Must be rounded to maximum 2 decimals
999
+ #
1000
+ # @param rate [String, nil] The tax rate as a percentage (e.g., '21.00', '6.00', '0.00')
707
1001
  end
708
1002
 
709
1003
  # VATEX code list for VAT exemption reasons