-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtype.ts
1300 lines (1251 loc) · 33.6 KB
/
type.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/**
* Represents an invoice period.
*/
export type InvoicePeriod = {
/**
* Invoicing period start date.
*
* Example value: 2017-10-01
*
* The date when the Invoice period starts. Format = "YYYY-MM-DD".
*/
StartDate?: string;
/**
* Invoicing period end date.
*
* Example value: 2017-10-31
*
* The date when the Invoice period ends. Format = "YYYY-MM-DD".
*/
EndDate?: string;
/**
* Value added tax point date code.
*
* Example value: 35
*
* The code of the date when the VAT becomes accountable for the Seller and for the Buyer.
*/
DescriptionCode?: string;
};
/**
* Represents an order reference.
*/
export type OrderReference = {
/**
* Purchase order reference.
*
* Example value: 98776
*
* An identifier of a referenced purchase order, issued by the Buyer. An invoice must have buyer reference (BT-10) or purchase order reference. In cases where sales order reference is provided, but there's no purchase order reference, then use value "NA" as this element is mandatory in UBL.
*/
ID: string;
/**
* Sales order reference.
*
* Example value: 112233
*
* An identifier of a referenced sales order, issued by the Seller. In cases where sales order reference is provided, but there's no purchase order reference, then set cac:OrderReference/cbc:ID to value "NA" as this element is mandatory in UBL.
*/
SalesOrderId?: string;
};
/**
* Represents a billing reference.
*/
export type BillingReference = {
/**
* Invoice document reference.
*
* The identification of an Invoice that was previously sent by the Seller.
*/
InvoiceDocumentReference: DocumentReference;
};
/**
* Represents a document reference.
*/
export type DocumentReference = {
/**
* Reference identifier.
*
* Example value: inv123
*
* The identification of an Invoice that was previously sent by the Seller.
*/
ID: string;
/**
* Issue date.
*
* Example value: 2017-09-15
*
* The date when the Preceding Invoice was issued.Shall be provided in case the Preceding Invoice identifier is not unique. Format = "YYYY-MM-DD".
*/
IssueDate?: string;
};
/**
* Represents an additional document reference.
*/
export type AdditionalDocumentReference = {
/**
* Supporting document reference.
*
* Example value: AB23456
*
* An identifier for an object on which the invoice is based, given by the Seller, or the identifier for the supporting document.
*/
ID: string;
/**
* Scheme identifier.
*
* Example value: AUN
*
* The identification scheme identifier of the Invoiced object identifier.
*/
SchemeId?: string;
/**
* Document export type code.
*
* Default value: 130
*
* Code "130" MUST be used to indicate an invoice object reference. Not used for other additional documents.
*/
DocumentTypeCode?: string;
/**
* Supporting document description.
*
* Example value: Time list
*
* A description of the supporting document, such as: timesheet, usage report etc.
*/
DocumentDescription?: string;
/** Attachment. */
Attachment?: Attachment;
};
/**
* Represents a project reference.
*/
export type ProjectReference = {
/**
* Project reference.
*
* Example value: PID33
*
* The identification of the project the invoice refers to.
*/
ID: string;
};
/**
* Represents a supplier party.
*/
export type SupplierParty = {
/** Party. */
Party: Party;
};
/**
* Represents a customer party.
*/
export type CustomerParty = {
/** Party. */
Party: Party;
};
/**
* Represents a payee party.
*/
export type PayeeParty = {
/** Party identification. */
PartyIdentification: PartyIdentification;
/** Party name. */
PartyName: PartyName;
/** Party legal entity. */
PartyLegalEntity?: PartyLegalEntity;
};
/**
* Represents a tax representative party.
*/
export type TaxRepresentativeParty = {
/** Seller tax representative name. */
PartyName: PartyName;
/** Seller tax representative postal address. */
PostalAddress: PostalAddress;
/** Party VAT identifier. */
PartyTaxScheme: PartyTaxScheme;
};
/**
* Represents a delivery.
*/
export type Delivery = {
/**
* Actual delivery date.
*
* Example value: 2017-12-01
*
* The date on which the supply of goods or services was made or completed. Format = "YYYY-MM-DD".
*/
ActualDeliveryDate?: string;
/** Delivery location. */
DeliveryLocation?: DeliveryLocation;
/** Deliver to address. */
Address?: Address;
/** Delivery party. */
DeliveryParty?: DeliveryParty;
};
/**
* Represents a payment means.
*/
export type PaymentMeans = {
/**
* Payment means export type code.
*
* Example value: 30
*
* The means, expressed as code, for how a payment is expected to be or has been settled.
*/
PaymentMeansCode: string;
/**
* Remittance information.
*
* Example value: 432948234234234
*
* A textual value used to establish a link between the payment and the Invoice, issued by the Seller. Used for creditor's critical reconciliation information. This information element helps the Seller to assign an incoming payment to the relevant payment process.
*/
PaymentId?: string;
/** Payment card information. */
CardAccount?: CardAccount;
/** Credit transfer. */
PayeeFinancialAccount?: FinancialAccount;
/** Direct debit. */
PaymentMandate?: PaymentMandate;
};
/**
* Represents payment terms.
*/
export type PaymentTerms = {
/**
* Payment terms.
*
* Example value: Net within 30 days
*
* A textual description of the payment terms that apply to the amount due for payment (Including description of possible penalties). In case the Amount due for payment (BT-115) is positive, either the Payment due date (BT-9) or the Payment terms (BT-20) shall be present.
*/
Note: string;
};
/**
* Represents an allowance charge.
*/
export type AllowanceCharge = {
/**
* Charge indicator.
*
* Example value: false
*
* Use “true” when informing about Charges and “false” when informing about Allowances.
*/
ChargeIndicator: boolean;
/**
* Document level allowance or charge reason code.
*
* Example value: 95
*
* The reason for the document level allowance or charge, expressed as a code. For allowances a subset of codelist UNCL5189 is to be used, and for charges codelist UNCL7161 applies. The Document level allowance reason code and the Document level allowance reason shall indicate the same allowance reason.
*/
AllowanceChargeReasonCode?: string;
/**
* Document level allowance or charge reason.
*
* Example value: Discount
*
* The reason for the document level allowance or charge, expressed as text. The Document level allowance reason code and the Document level allowance reason shall indicate the same allowance reason.
*/
AllowanceChargeReason?: string;
/**
* Document level allowance or charge percentage.
*
* Example value: 20
*
* The percentage that may be used, in conjunction with the document level allowance base amount, to calculate the document level allowance or charge amount. To state 20%, use value 20.
*/
MultiplierFactorNumeric?: number;
/** Document level allowance or charge amount. */
Amount: Amount;
/**
* Document level allowance or charge base amount.
*
* The base amount that may be used, in conjunction with the document level allowance or charge percentage, to calculate the document level allowance or charge amount. Must be rounded to maximum 2 decimals.
*/
BaseAmount?: Amount;
/** Tax category. */
TaxCategory: TaxCategory;
};
/**
* Represents a tax total.
*/
export type TaxTotal = {
/**
* Invoice total VAT amount.
*
* Example value: 486.25
*
* The total VAT amount for the Invoice or the VAT total amount expressed in the accounting currency accepted or required in the country of the Seller. Must be rounded to maximum 2 decimals.
*/
TaxAmount: Amount;
/** VAT breakdown. */
TaxSubtotal?: TaxSubtotal[];
};
/**
* Represents legal monetary total.
*/
export type LegalMonetaryTotal = {
/**
* Sum of Invoice line net amount.
*
* Example value: 3800.0
*
* Sum of all Invoice line net amounts in the Invoice. Must be rounded to maximum 2 decimals.
*/
LineExtensionAmount: Amount;
/**
* Invoice total amount without VAT.
*
* Example value: 3600.0
*
* The total amount of the Invoice without VAT. Must be rounded to maximum 2 decimals.
*/
TaxExclusiveAmount: Amount;
/**
* Invoice total amount with VAT.
*
* Example value: 4500.0
*
* The total amount of the Invoice with VAT. Must be rounded to maximum 2 decimals.
*/
TaxInclusiveAmount: Amount;
/**
* Sum of allowances on document level.
*
* Example value: 200.0
*
* Sum of all allowances on document level in the Invoice. Must be rounded to maximum 2 decimals.
*/
AllowanceTotalAmount?: Amount;
/**
* Sum of charges on document level.
*
* Example value: 0.0
*
* Sum of all charges on document level in the Invoice. Must be rounded to maximum 2 decimals.
*/
ChargeTotalAmount?: Amount;
/**
* Paid amount.
*
* Example value: 1000.0
*
* The sum of amounts which have been paid in advance. Must be rounded to maximum 2 decimals.
*/
PrepaidAmount?: Amount;
/**
* Rounding amount.
*
* Example value: 0.0
*
* The amount to be added to the invoice total to round the amount to be paid. Must be rounded to maximum 2 decimals.
*/
PayableRoundingAmount?: Amount;
/**
* Amount due for payment.
*
* Example value: 3500.0
*
* The outstanding amount that is requested to be paid. Must be rounded to maximum 2 decimals.
*/
PayableAmount: Amount;
};
/**
* Represents an invoice line.
*/
export type InvoiceLine = {
/**
* Invoice line identifier.
*
* Example value: 12
*
* A unique identifier for the individual line within the Invoice.
*/
ID: string;
/**
* Invoice line note.
*
* Example value: New article number 12345
*
* A textual note that gives unstructured information that is relevant to the Invoice line.
*/
Note?: string;
/** Invoiced quantity. */
InvoicedQuantity: Quantity;
/** Invoice line net amount. */
LineExtensionAmount: Amount;
/**
* Invoice line Buyer accounting reference.
*
* Example value: 1287:65464
*
* A textual value that specifies where to book the relevant data into the Buyer's financial accounts.
*/
AccountingCost?: string;
/** Invoice line period. */
InvoicePeriod?: InvoicePeriod;
/** Order line reference. */
OrderLineReference?: OrderLineReference;
/** Line object identifier. */
DocumentReference?: DocumentReference;
/** Invoice line allowances or charges. */
AllowanceCharge?: AllowanceCharge[];
/** Item information. */
Item: Item;
/** Price details. */
Price: Price;
};
/**
* Represents a party.
*/
export type Party = {
/** Seller electronic address. */
EndpointID: EndpointID;
/** Party identification. */
PartyIdentification?: PartyIdentification[];
/** Party name. */
PartyName: PartyName;
/** Postal address. */
PostalAddress: PostalAddress;
/** Party VAT/Tax identifiers. */
PartyTaxScheme?: PartyTaxScheme[];
/** Party legal entity. */
PartyLegalEntity: PartyLegalEntity;
/** Contact. */
Contact?: Contact;
};
/**
* Represents party identification.
*/
export type PartyIdentification = {
/**
* Seller identifier or bank assigned creditor identifier.
*
* Example value: 5060012349998
*
* This element is used for both the identification of the Seller, or the unique banking reference identifier of Seller (assigned by the Seller bank.). For seller identification use ICD code list, for SEPA bank assigned creditor reference, use SEPA. In order for the buyer to automatically identify a supplier, the Seller identifier (BT-29), the Seller legal registration identifier (BT-30) and/or the Seller VAT identifier (BT-31) shall be present.
*/
ID: string;
/**
* Seller or bank assigned creditor identifier identification scheme identifier.
*
* Example value: 0088
*
* The identification scheme identifier of the Seller identifier. For bank assigned creditor identifier (BT-90), value MUST be "SEPA".
*/
SchemeId?: string;
};
/**
* Represents a party name.
*/
export type PartyName = {
/**
* Seller trading name.
*
* Example value: Seller Business Name AS
*
* A name by which the Seller is known, other than Seller name (also known as Business name).
*/
Name: string;
};
/**
* Represents a postal address.
*/
export type PostalAddress = {
/**
* Seller address line 1.
*
* Example value: Main Street 1
*
* The main address line in an address.
*/
StreetName?: string;
/**
* Seller address line 2.
*
* Example value: Po Box 351
*
* An additional address line in an address that can be used to give further details supplementing the main line.
*/
AdditionalStreetName?: string;
/**
* Seller city.
*
* Example value: London
*
* The common name of the city, town or village, where the Seller address is located.
*/
CityName?: string;
/**
* Seller post code.
*
* Example value: W1G 8LZ
*
* The identifier for an addressable group of properties according to the relevant postal service.
*/
PostalZone?: string;
/**
* Seller country subdivision.
*
* Example value: Region A
*
* The subdivision of a country.
*/
CountrySubentity?: string;
/** Address line. */
AddressLine?: AddressLine;
/** Country. */
Country: Country;
};
/**
* Represents an address line.
*/
export type AddressLine = {
/**
* Seller address line 3.
*
* Example value: Building 23
*
* An additional address line in an address that can be used to give further details supplementing the main line.
*/
Line: string;
};
/**
* Represents a country.
*/
export type Country = {
/**
* Seller country code.
*
* Example value: GB
*
* A code that identifies the country.
*/
IdentificationCode: string;
};
/**
* Represents a party tax scheme.
*/
export type PartyTaxScheme = {
/**
* Seller VAT identifier, Seller tax registration identifier.
*
* Example value: NO999888777
*
* The Seller's VAT identifier (also known as Seller VAT identification number) or the local identification (defined by the Seller’s address) of the Seller for tax purposes or a reference that enables the Seller to state his registered tax status. In order for the buyer to automatically identify a supplier, the Seller identifier (BT-29), the Seller legal registration identifier (BT-30) and/or the Seller VAT identifier (BT-31) shall be present.
*/
CompanyID: string;
/** Tax scheme. */
TaxScheme: TaxScheme;
};
/**
* Represents a tax scheme.
*/
export type TaxScheme = {
/**
* Mandatory element.
*
* Use “VAT”.
*
* Example value: VAT
*
* For Seller VAT identifier (BT-31), use value “VAT”, for the seller tax registration identifier (BT-32), use != "VAT".
*/
ID: string;
};
/**
* Represents a party legal entity.
*/
export type PartyLegalEntity = {
/**
* Seller name.
*
* Example value: Full Formal Seller Name LTD.
*
* The full formal name by which the Seller is registered in the national registry of legal entities or as a Taxable person or otherwise trades as a person or persons.
*/
RegistrationName: string;
/**
* Seller legal registration identifier.
*
* Example value: 987654321
*
* An identifier issued by an official registrar that identifies the Seller as a legal entity or person. In order for the buyer to automatically identify a supplier, the Seller identifier (BT-29), the Seller legal registration identifier (BT-30) and/or the Seller VAT identifier (BT-31) shall be present.
*/
CompanyId?: string;
/**
* Seller legal registration identifier identification scheme identifier.
*
* Example value: 0002
*
* The identification scheme identifier of the Seller legal registration identifier.
*/
SchemeId?: string;
/**
* Seller additional legal information.
*
* Example value: Share capital
*
* Additional legal information relevant for the Seller.
*/
CompanyLegalForm?: string;
};
/**
* Represents a contact.
*/
export type Contact = {
/**
* Seller contact point.
*
* Example value: xyz123
*
* A contact point for a legal entity or person.
*/
Name?: string;
/**
* Seller contact telephone number.
*
* Example value: 887 654 321
*
* A phone number for the contact point.
*/
Telephone?: string;
/**
* Seller contact email address.
*
* Example value: test.name@foo.bar
*
* An e-mail address for the contact point.
*/
ElectronicMail?: string;
};
/**
* Represents a delivery location.
*/
export type DeliveryLocation = {
/**
* Deliver to location identifier.
*
* Example value: 83745498753497
*
* An identifier for the location at which the goods and services are delivered.
*/
ID: string;
/**
* Deliver to location identifier identification scheme identifier.
*
* Example value: 0088
*
* The identification scheme identifier of the Deliver to location identifier.
*/
SchemeId?: string;
};
/**
* Represents an address.
*/
export type Address = {
/**
* Deliver to address line 1.
*
* Example value: Delivery Street 1
*
* The main address line in an address.
*/
StreetName?: string;
/**
* Deliver to address line 2.
*
* Example value: Delivery Street 2
*
* An additional address line in an address that can be used to give further details supplementing the main line.
*/
AdditionalStreetName?: string;
/**
* Deliver to city.
*
* Example value: Malmö
*
* The common name of the city, town or village, where the deliver to address is located.
*/
CityName?: string;
/**
* Deliver to post code.
*
* Example value: 86756
*
* The identifier for an addressable group of properties according to the relevant postal service.
*/
PostalZone?: string;
/**
* Deliver to country subdivision.
*
* Example value: South Region
*
* The subdivision of a country.
*/
CountrySubentity?: string;
/** Address line. */
AddressLine?: AddressLine;
/** Country. */
Country: Country;
};
/**
* Represents a delivery party.
*/
export type DeliveryParty = {
/**
* Deliver to party name.
*
* Example value: Deliver name
*
* The name of the party to which the goods and services are delivered.
*/
PartyName: PartyName;
};
/**
* Represents a card account.
*/
export type CardAccount = {
/**
* Payment card primary account number.
*
* Example value: 1234
*
* The Primary Account Number (PAN) of the card used for payment.In accordance with card payments security standards, an invoice should never include a full card primary account number.
*/
PrimaryAccountNumberID: string;
/**
* Network ID.
*
* Example value: NA
*
* Syntax required element not related to a business term.
*/
NetworkID: string;
/**
* Payment card holder name.
*
* Example value: John Doe
*
* The name of the payment card holder.
*/
HolderName?: string;
};
/**
* Represents a financial account.
*/
export type FinancialAccount = {
/**
* Payment account identifier.
*
* Example value: NO99991122222
*
* A unique identifier of the financial payment account, at a payment service provider, to which payment should be made. Such as IBAN or BBAN.
*/
ID: string;
/**
* Payment account name.
*
* Example value: Payment Account
*
* The name of the payment account, at a payment service provider, to which payment should be made.
*/
Name?: string;
/** Financial institution branch. */
FinancialInstitutionBranch?: FinancialInstitutionBranch;
};
/**
* Represents a financial institution branch.
*/
export type FinancialInstitutionBranch = {
/**
* Payment service provider identifier.
*
* Example value: 9999
*
* An identifier for the payment service provider where a payment account is located. Such as a BIC or a national clearing code where required. No identification scheme Identifier to be used.
*/
ID: string;
};
/**
* Represents a payment mandate.
*/
export type PaymentMandate = {
/**
* Mandate reference identifier.
*
* Example value: 123456
*
* Unique identifier assigned by the Payee for referencing the direct debit mandate. Used in order to pre-notify the Buyer of a SEPA direct debit.
*/
ID: string;
/** Payer financial account. */
PayerFinancialAccount?: FinancialAccount;
};
/**
* Represents an amount.
*/
export type Amount = {
/** Amount value. */
Value: number;
/**
* Currency ID.
*
* Example value: EUR
*
* The currency in which all Invoice amounts are given, except for the Total VAT amount in accounting currency. Only one currency shall be used in the Invoice, except for the VAT accounting currency code (BT-6) and the invoice total VAT amount in accounting currency (BT-111).
*/
CurrencyID: string;
};
/**
* Represents a quantity.
*/
export type Quantity = {
/** Quantity value. */
Value: number;
/**
* Invoiced quantity unit of measure.
*
* Example value: C62
*
* The unit of measure that applies to the invoiced quantity. Codes for unit of packaging from UNECE Recommendation No. 21 can be used in accordance with the descriptions in the "Intro" section of UN/ECE Recommendation 20, Revision 11 (2015): The 2 character alphanumeric code values in UNECE Recommendation 21 shall be used. To avoid duplication with existing code values in UNECE Recommendation No. 20, each code value from UNECE Recommendation 21 shall be prefixed with an “X”, resulting in a 3 alphanumeric code when used as a unit of measure.
*/
UnitCode: string;
};
/**
* Represents an order line reference.
*/
export type OrderLineReference = {
/**
* Referenced purchase order line reference.
*
* Example value: 3
*
* An identifier for a referenced line within a purchase order, issued by the Buyer.
*/
LineID: string;
};
/**
* Represents an item.
*/
export type Item = {
/**
* Item description.
*
* Example value: Long description of the item on the invoice line
*
* A description for an item.The item description allows for describing the item and its features in more detail than the Item name.
*/
Description?: string;
/**
* Item name.
*
* Example value: Item name
*
* A name for an item.
*/
Name: string;
/** Buyers item identification. */
BuyersItemIdentification?: ItemIdentification;
/** Sellers item identification. */
SellersItemIdentification?: ItemIdentification;
/** Standard item identification. */
StandardItemIdentification?: StandardItemIdentification;
/** Origin country. */
OriginCountry?: Country;
/** Commodity classification. */
CommodityClassification?: CommodityClassification[];
/** Line VAT information. */
ClassifiedTaxCategory: ClassifiedTaxCategory;
/** Item attributes. */
AdditionalItemProperty?: AdditionalItemProperty[];
};
/**
* Represents an item identification.
*/
export type ItemIdentification = {
/**
* Item identifier.
*
* Example value: 123455
*
* An identifier, assigned by the Buyer, for the item.
*/
ID: string;
};
/**
* Represents a standard item identification.
*/
export type StandardItemIdentification = {
/**
* Item standard identifier.
*
* Example value: 10986700
*
* An item identifier based on a registered scheme.
*/
ID: string;
/**
* Item standard identifier identification scheme identifier.
*
* Example value: 0160
*
* The identification scheme identifier of the Item standard identifier.
*/
SchemeID: string;
};
/**
* Represents a commodity classification.
*/
export type CommodityClassification = {
/**
* Item classification identifier.
*
* Example value: 9873242
*
* A code for classifying the item by its type or nature.
*/
ItemClassificationCode: string;
/**
* Item classification identifier identification scheme identifier.
*
* Example value: STI
*
* The identification scheme identifier of the Item classification identifier.
*/
ListID: string;
/** Item classification identifier version identification scheme identifier. */
ListVersionId?: string;
};
/**
* Represents a classified tax category.
*/
export type ClassifiedTaxCategory = {
/**
* Invoiced item VAT category code.
*
* Example value: S
*
* The VAT category code for the invoiced item.
*/
ID: string;
/**
* Invoiced item VAT rate.
*
* Example value: 25
*
* The VAT rate, represented as percentage that applies to the invoiced item.
*/
Percent?: number;
/** Tax scheme. */
TaxScheme: TaxScheme;
};
/**
* Represents an additional item property.
*/
export type AdditionalItemProperty = {
/**
* Item attribute name.
*
* Example value: Color