@notabene/javascript-sdk 2.16.0-next.1 → 2.16.0-next.4

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.
@@ -10,6 +10,26 @@ export declare interface Account {
10
10
  identifier?: string;
11
11
  }
12
12
 
13
+ /**
14
+ * Additional Document Reference
15
+ * Reference to an additional document related to the invoice
16
+ */
17
+ declare interface AdditionalDocumentReference {
18
+ /**
19
+ * Document identifier
20
+ */
21
+ id: string;
22
+ /**
23
+ * Type of document
24
+ * Uses UBL Document Type Code standard
25
+ */
26
+ documentType?: DocumentTypeCode;
27
+ /**
28
+ * URL where the document can be accessed
29
+ */
30
+ url?: string;
31
+ }
32
+
13
33
  /**
14
34
  * Address
15
35
  * Represents a physical address
@@ -226,8 +246,8 @@ export declare enum AgentType {
226
246
  }
227
247
 
228
248
  declare interface BaseRequestConfig {
229
- originatorId?: DID_2;
230
- beneficiaryId?: DID_2;
249
+ originatorId?: IRI;
250
+ beneficiaryId?: IRI;
231
251
  }
232
252
 
233
253
  /**
@@ -252,7 +272,6 @@ declare type BeneficiaryFields = {
252
272
 
253
273
  declare type BeneficiaryV2 = {
254
274
  beneficiaryPerson: PersonV2[];
255
- customerIdentification?: string;
256
275
  };
257
276
 
258
277
  /**
@@ -896,6 +915,33 @@ export declare type DID = `did:${string}:${string}`;
896
915
  */
897
916
  declare type DID_2 = `did:${string}:${string}`;
898
917
 
918
+ /**
919
+ * UBL Document Type Code standard
920
+ * Based on UBL 2.1 document types
921
+ *
922
+ * @see {@link http://docs.oasis-open.org/ubl/os-UBL-2.1/cl/gc/default/DocumentTypeCode-2.1.gc | UBL Document Type Codes}
923
+ */
924
+ declare enum DocumentTypeCode {
925
+ Order = "Order",
926
+ OrderResponse = "OrderResponse",
927
+ OrderChange = "OrderChange",
928
+ OrderCancellation = "OrderCancellation",
929
+ Quotation = "Quotation",
930
+ DespatchAdvice = "DespatchAdvice",
931
+ ReceiptAdvice = "ReceiptAdvice",
932
+ Invoice = "Invoice",
933
+ CreditNote = "CreditNote",
934
+ DebitNote = "DebitNote",
935
+ SelfBilledInvoice = "SelfBilledInvoice",
936
+ RemittanceAdvice = "RemittanceAdvice",
937
+ Statement = "Statement",
938
+ CertificateOfOrigin = "CertificateOfOrigin",
939
+ Contract = "Contract",
940
+ Timesheet = "Timesheet",
941
+ Waybill = "Waybill",
942
+ Manifest = "Manifest"
943
+ }
944
+
899
945
  /**
900
946
  * Digital Token Identifier (DTI) following ISO 24165 standard
901
947
  *
@@ -1143,6 +1189,113 @@ export declare type InvalidValue<T> = {
1143
1189
  errors: ValidationError[];
1144
1190
  };
1145
1191
 
1192
+ /**
1193
+ * Invoice
1194
+ * Represents a detailed invoice as defined in TAIP-16
1195
+ *
1196
+ * @see {@link https://github.com/TransactionAuthorizationProtocol/TAIPs/blob/main/TAIPs/taip-16.md | TAIP-16: Invoices}
1197
+ */
1198
+ export declare interface Invoice {
1199
+ /**
1200
+ * Unique identifier for the invoice
1201
+ *
1202
+ * @example "INV001"
1203
+ * @validation Must be a unique identifier for the invoice
1204
+ */
1205
+ id: string;
1206
+ /**
1207
+ * Date when the invoice was issued
1208
+ * ISO 8601 date format (YYYY-MM-DD)
1209
+ *
1210
+ * @example "2025-04-22"
1211
+ * @validation Must be a valid date in ISO 8601 format
1212
+ */
1213
+ issueDate: string;
1214
+ /**
1215
+ * Currency code for the invoice amounts
1216
+ * ISO 4217 currency code
1217
+ * Should be consistent with the currency field in the Payment Request if present
1218
+ *
1219
+ * @example "USD"
1220
+ * @example "EUR"
1221
+ * @validation Must be a valid ISO 4217 currency code
1222
+ */
1223
+ currencyCode: IsoCurrency;
1224
+ /**
1225
+ * Individual items being invoiced
1226
+ *
1227
+ * @validation Must be an array of LineItem objects
1228
+ */
1229
+ lineItems: LineItem[];
1230
+ /**
1231
+ * Aggregate tax information
1232
+ *
1233
+ * @validation Must be a TaxTotal object if present
1234
+ */
1235
+ taxTotal?: TaxTotal;
1236
+ /**
1237
+ * Total amount of the invoice, including taxes
1238
+ * Must match the amount in the Payment Request body
1239
+ *
1240
+ * @validation Must be a positive number
1241
+ */
1242
+ total: number;
1243
+ /**
1244
+ * Sum of line totals before taxes
1245
+ *
1246
+ * @validation Must be a positive number if present
1247
+ */
1248
+ subTotal?: number;
1249
+ /**
1250
+ * Date when payment is due
1251
+ * ISO 8601 date format (YYYY-MM-DD)
1252
+ *
1253
+ * @example "2025-05-22"
1254
+ * @validation Must be a valid date in ISO 8601 format if present
1255
+ */
1256
+ dueDate?: string;
1257
+ /**
1258
+ * Additional notes or terms for the invoice
1259
+ *
1260
+ * @validation Must be a string if present
1261
+ */
1262
+ note?: string;
1263
+ /**
1264
+ * Terms of payment
1265
+ *
1266
+ * @example "Net 30"
1267
+ * @validation Must be a string if present
1268
+ */
1269
+ paymentTerms?: string;
1270
+ /**
1271
+ * Buyer's accounting code
1272
+ * Used to route costs to specific accounts
1273
+ *
1274
+ * @validation Must be a string if present
1275
+ */
1276
+ accountingCost?: string;
1277
+ /**
1278
+ * Reference to a related order
1279
+ *
1280
+ * @validation Must be an OrderReference object if present
1281
+ */
1282
+ orderReference?: OrderReference;
1283
+ /**
1284
+ * References to additional documents
1285
+ *
1286
+ * @validation Must be an array of AdditionalDocumentReference objects if present
1287
+ */
1288
+ additionalDocumentReference?: AdditionalDocumentReference[];
1289
+ }
1290
+
1291
+ /** Output fields populated by the component on completion */
1292
+ export declare interface InvoiceReaderResponse {
1293
+ /** TAIP-16 compliant invoice data (populated by the component after PDF parsing) */
1294
+ invoice?: Invoice;
1295
+ merchant?: Party;
1296
+ customer?: Party;
1297
+ }
1298
+
1146
1299
  /**
1147
1300
  * Internationalized Resource Identifier (IRI)
1148
1301
  * A unique identifier that may contain international characters.
@@ -1165,6 +1318,326 @@ declare type ISOCountryCode = string;
1165
1318
  */
1166
1319
  declare type ISOCurrency = string;
1167
1320
 
1321
+ /**
1322
+ * ISO 4217 Currency Codes
1323
+ * Three-letter codes representing currencies according to the ISO 4217 standard.
1324
+ *
1325
+ * @see {@link https://www.iso.org/iso-4217-currency-codes.html | ISO 4217}
1326
+ */
1327
+ declare type IsoCurrency =
1328
+ /** United Arab Emirates Dirham */
1329
+ "AED"
1330
+ /** Afghan Afghani */
1331
+ | "AFN"
1332
+ /** Albanian Lek */
1333
+ | "ALL"
1334
+ /** Armenian Dram */
1335
+ | "AMD"
1336
+ /** Netherlands Antillean Guilder */
1337
+ | "ANG"
1338
+ /** Angolan Kwanza */
1339
+ | "AOA"
1340
+ /** Argentine Peso */
1341
+ | "ARS"
1342
+ /** Australian Dollar */
1343
+ | "AUD"
1344
+ /** Aruban Florin */
1345
+ | "AWG"
1346
+ /** Azerbaijani Manat */
1347
+ | "AZN"
1348
+ /** Bosnia and Herzegovina Convertible Mark */
1349
+ | "BAM"
1350
+ /** Barbados Dollar */
1351
+ | "BBD"
1352
+ /** Bangladeshi Taka */
1353
+ | "BDT"
1354
+ /** Bulgarian Lev */
1355
+ | "BGN"
1356
+ /** Bahraini Dinar */
1357
+ | "BHD"
1358
+ /** Burundian Franc */
1359
+ | "BIF"
1360
+ /** Bermudian Dollar */
1361
+ | "BMD"
1362
+ /** Brunei Dollar */
1363
+ | "BND"
1364
+ /** Boliviano */
1365
+ | "BOB"
1366
+ /** Brazilian Real */
1367
+ | "BRL"
1368
+ /** Bahamian Dollar */
1369
+ | "BSD"
1370
+ /** Bhutanese Ngultrum */
1371
+ | "BTN"
1372
+ /** Botswana Pula */
1373
+ | "BWP"
1374
+ /** Belarusian Ruble */
1375
+ | "BYN"
1376
+ /** Belize Dollar */
1377
+ | "BZD"
1378
+ /** Canadian Dollar */
1379
+ | "CAD"
1380
+ /** Congolese Franc */
1381
+ | "CDF"
1382
+ /** Swiss Franc */
1383
+ | "CHF"
1384
+ /** Chilean Peso */
1385
+ | "CLP"
1386
+ /** Chinese Yuan */
1387
+ | "CNY"
1388
+ /** Colombian Peso */
1389
+ | "COP"
1390
+ /** Costa Rican Colon */
1391
+ | "CRC"
1392
+ /** Cuban Peso */
1393
+ | "CUP"
1394
+ /** Cape Verde Escudo */
1395
+ | "CVE"
1396
+ /** Czech Koruna */
1397
+ | "CZK"
1398
+ /** Djiboutian Franc */
1399
+ | "DJF"
1400
+ /** Danish Krone */
1401
+ | "DKK"
1402
+ /** Dominican Peso */
1403
+ | "DOP"
1404
+ /** Algerian Dinar */
1405
+ | "DZD"
1406
+ /** Egyptian Pound */
1407
+ | "EGP"
1408
+ /** Eritrean Nakfa */
1409
+ | "ERN"
1410
+ /** Ethiopian Birr */
1411
+ | "ETB"
1412
+ /** Euro */
1413
+ | "EUR"
1414
+ /** Fiji Dollar */
1415
+ | "FJD"
1416
+ /** Falkland Islands Pound */
1417
+ | "FKP"
1418
+ /** Pound Sterling */
1419
+ | "GBP"
1420
+ /** Georgian Lari */
1421
+ | "GEL"
1422
+ /** Ghanaian Cedi */
1423
+ | "GHS"
1424
+ /** Gibraltar Pound */
1425
+ | "GIP"
1426
+ /** Gambian Dalasi */
1427
+ | "GMD"
1428
+ /** Guinean Franc */
1429
+ | "GNF"
1430
+ /** Guatemalan Quetzal */
1431
+ | "GTQ"
1432
+ /** Guyanese Dollar */
1433
+ | "GYD"
1434
+ /** Hong Kong Dollar */
1435
+ | "HKD"
1436
+ /** Honduran Lempira */
1437
+ | "HNL"
1438
+ /** Croatian Kuna */
1439
+ | "HRK"
1440
+ /** Haitian Gourde */
1441
+ | "HTG"
1442
+ /** Hungarian Forint */
1443
+ | "HUF"
1444
+ /** Indonesian Rupiah */
1445
+ | "IDR"
1446
+ /** Israeli New Shekel */
1447
+ | "ILS"
1448
+ /** Indian Rupee */
1449
+ | "INR"
1450
+ /** Iraqi Dinar */
1451
+ | "IQD"
1452
+ /** Iranian Rial */
1453
+ | "IRR"
1454
+ /** Icelandic Króna */
1455
+ | "ISK"
1456
+ /** Jamaican Dollar */
1457
+ | "JMD"
1458
+ /** Jordanian Dinar */
1459
+ | "JOD"
1460
+ /** Japanese Yen */
1461
+ | "JPY"
1462
+ /** Kenyan Shilling */
1463
+ | "KES"
1464
+ /** Kyrgyzstani Som */
1465
+ | "KGS"
1466
+ /** Cambodian Riel */
1467
+ | "KHR"
1468
+ /** Comoro Franc */
1469
+ | "KMF"
1470
+ /** North Korean Won */
1471
+ | "KPW"
1472
+ /** South Korean Won */
1473
+ | "KRW"
1474
+ /** Kuwaiti Dinar */
1475
+ | "KWD"
1476
+ /** Cayman Islands Dollar */
1477
+ | "KYD"
1478
+ /** Kazakhstani Tenge */
1479
+ | "KZT"
1480
+ /** Lao Kip */
1481
+ | "LAK"
1482
+ /** Lebanese Pound */
1483
+ | "LBP"
1484
+ /** Sri Lankan Rupee */
1485
+ | "LKR"
1486
+ /** Liberian Dollar */
1487
+ | "LRD"
1488
+ /** Lesotho Loti */
1489
+ | "LSL"
1490
+ /** Libyan Dinar */
1491
+ | "LYD"
1492
+ /** Moroccan Dirham */
1493
+ | "MAD"
1494
+ /** Moldovan Leu */
1495
+ | "MDL"
1496
+ /** Malagasy Ariary */
1497
+ | "MGA"
1498
+ /** Macedonian Denar */
1499
+ | "MKD"
1500
+ /** Myanmar Kyat */
1501
+ | "MMK"
1502
+ /** Mongolian Tugrik */
1503
+ | "MNT"
1504
+ /** Macanese Pataca */
1505
+ | "MOP"
1506
+ /** Mauritanian Ouguiya */
1507
+ | "MRU"
1508
+ /** Mauritian Rupee */
1509
+ | "MUR"
1510
+ /** Maldivian Rufiyaa */
1511
+ | "MVR"
1512
+ /** Malawian Kwacha */
1513
+ | "MWK"
1514
+ /** Mexican Peso */
1515
+ | "MXN"
1516
+ /** Malaysian Ringgit */
1517
+ | "MYR"
1518
+ /** Mozambican Metical */
1519
+ | "MZN"
1520
+ /** Namibian Dollar */
1521
+ | "NAD"
1522
+ /** Nigerian Naira */
1523
+ | "NGN"
1524
+ /** Nicaraguan Córdoba */
1525
+ | "NIO"
1526
+ /** Norwegian Krone */
1527
+ | "NOK"
1528
+ /** Nepalese Rupee */
1529
+ | "NPR"
1530
+ /** New Zealand Dollar */
1531
+ | "NZD"
1532
+ /** Omani Rial */
1533
+ | "OMR"
1534
+ /** Panamanian Balboa */
1535
+ | "PAB"
1536
+ /** Peruvian Sol */
1537
+ | "PEN"
1538
+ /** Papua New Guinean Kina */
1539
+ | "PGK"
1540
+ /** Philippine Peso */
1541
+ | "PHP"
1542
+ /** Pakistani Rupee */
1543
+ | "PKR"
1544
+ /** Polish Złoty */
1545
+ | "PLN"
1546
+ /** Paraguayan Guaraní */
1547
+ | "PYG"
1548
+ /** Qatari Riyal */
1549
+ | "QAR"
1550
+ /** Romanian Leu */
1551
+ | "RON"
1552
+ /** Serbian Dinar */
1553
+ | "RSD"
1554
+ /** Russian Ruble */
1555
+ | "RUB"
1556
+ /** Rwandan Franc */
1557
+ | "RWF"
1558
+ /** Saudi Riyal */
1559
+ | "SAR"
1560
+ /** Solomon Islands Dollar */
1561
+ | "SBD"
1562
+ /** Seychelles Rupee */
1563
+ | "SCR"
1564
+ /** Sudanese Pound */
1565
+ | "SDG"
1566
+ /** Swedish Krona */
1567
+ | "SEK"
1568
+ /** Singapore Dollar */
1569
+ | "SGD"
1570
+ /** Saint Helena Pound */
1571
+ | "SHP"
1572
+ /** Sierra Leonean Leone */
1573
+ | "SLL"
1574
+ /** Somali Shilling */
1575
+ | "SOS"
1576
+ /** Surinamese Dollar */
1577
+ | "SRD"
1578
+ /** South Sudanese Pound */
1579
+ | "SSP"
1580
+ /** São Tomé and Príncipe Dobra */
1581
+ | "STN"
1582
+ /** Salvadoran Colón */
1583
+ | "SVC"
1584
+ /** Syrian Pound */
1585
+ | "SYP"
1586
+ /** Swazi Lilangeni */
1587
+ | "SZL"
1588
+ /** Thai Baht */
1589
+ | "THB"
1590
+ /** Tajikistani Somoni */
1591
+ | "TJS"
1592
+ /** Turkmenistan Manat */
1593
+ | "TMT"
1594
+ /** Tunisian Dinar */
1595
+ | "TND"
1596
+ /** Tongan Paʻanga */
1597
+ | "TOP"
1598
+ /** Turkish Lira */
1599
+ | "TRY"
1600
+ /** Trinidad and Tobago Dollar */
1601
+ | "TTD"
1602
+ /** New Taiwan Dollar */
1603
+ | "TWD"
1604
+ /** Tanzanian Shilling */
1605
+ | "TZS"
1606
+ /** Ukrainian Hryvnia */
1607
+ | "UAH"
1608
+ /** Ugandan Shilling */
1609
+ | "UGX"
1610
+ /** United States Dollar */
1611
+ | "USD"
1612
+ /** Uruguayan Peso */
1613
+ | "UYU"
1614
+ /** Uzbekistan Som */
1615
+ | "UZS"
1616
+ /** Venezuelan Bolívar Soberano */
1617
+ | "VES"
1618
+ /** Vietnamese Đồng */
1619
+ | "VND"
1620
+ /** Vanuatu Vatu */
1621
+ | "VUV"
1622
+ /** Samoan Tala */
1623
+ | "WST"
1624
+ /** CFA Franc BEAC */
1625
+ | "XAF"
1626
+ /** East Caribbean Dollar */
1627
+ | "XCD"
1628
+ /** CFA Franc BCEAO */
1629
+ | "XOF"
1630
+ /** CFP Franc */
1631
+ | "XPF"
1632
+ /** Yemeni Rial */
1633
+ | "YER"
1634
+ /** South African Rand */
1635
+ | "ZAR"
1636
+ /** Zambian Kwacha */
1637
+ | "ZMW"
1638
+ /** Zimbabwean Dollar */
1639
+ | "ZWL";
1640
+
1168
1641
  /**
1169
1642
  * A point in time, represented as a day within the calendar year. Compliant with ISO 8601.
1170
1643
  * Format: YYYY-MM-DD
@@ -1324,6 +1797,69 @@ export declare type LEI = string;
1324
1797
  */
1325
1798
  declare type LEICode = string;
1326
1799
 
1800
+ /**
1801
+ * Line Item
1802
+ * Represents an individual item in an invoice
1803
+ */
1804
+ declare interface LineItem {
1805
+ /**
1806
+ * Unique identifier for the line item within the invoice
1807
+ */
1808
+ id: string;
1809
+ /**
1810
+ * Description of the item or service
1811
+ */
1812
+ description: string;
1813
+ /**
1814
+ * Product name
1815
+ * Based on schema.org/Product
1816
+ * If not provided, description serves as the display name
1817
+ *
1818
+ * @example "Premium Widget Model A"
1819
+ */
1820
+ name?: string;
1821
+ /**
1822
+ * URL to an image of the product
1823
+ * Based on schema.org/Product
1824
+ *
1825
+ * @example "https://example.com/products/widget-a.jpg"
1826
+ */
1827
+ image?: string;
1828
+ /**
1829
+ * URL to the product page
1830
+ * Based on schema.org/Product
1831
+ *
1832
+ * @example "https://example.com/products/widget-a"
1833
+ */
1834
+ url?: string;
1835
+ /**
1836
+ * Quantity of the item
1837
+ */
1838
+ quantity: number;
1839
+ /**
1840
+ * Unit of measure code
1841
+ * Uses UBL Unit of Measure Code standard
1842
+ *
1843
+ * @example UnitCode.Each
1844
+ * @example UnitCode.Kilogram
1845
+ * @example UnitCode.Hour
1846
+ */
1847
+ unitCode?: UnitCode;
1848
+ /**
1849
+ * Price per unit
1850
+ */
1851
+ unitPrice: number;
1852
+ /**
1853
+ * Total amount for this line item
1854
+ * Typically quantity × unitPrice
1855
+ */
1856
+ lineTotal: number;
1857
+ /**
1858
+ * Tax category information specific to this line item
1859
+ */
1860
+ taxCategory?: TaxCategory;
1861
+ }
1862
+
1327
1863
  /**
1328
1864
  * Local Legal Person Name ID
1329
1865
  * Represents a local name identifier for a legal person
@@ -1530,6 +2066,16 @@ declare type NaturalPersonNameID = {
1530
2066
  nameIdentifierType?: NaturalPersonNameTypeCode;
1531
2067
  };
1532
2068
 
2069
+ /** Represents a natural person's name identifier */
2070
+ declare interface NaturalPersonNameId {
2071
+ /** This may be the family name, maiden name, or married name */
2072
+ primaryIdentifier: string;
2073
+ /** These may be forenames, given names, initials, or other secondary names */
2074
+ secondaryIdentifier?: string;
2075
+ /** The nature of the name specified */
2076
+ naturalPersonNameIdentifierType: NaturalPersonNameTypeCode_2;
2077
+ }
2078
+
1533
2079
  declare type NaturalPersonNameIDV2 = {
1534
2080
  primaryIdentifier?: string;
1535
2081
  secondaryIdentifier?: string;
@@ -1544,12 +2090,23 @@ declare type NaturalPersonNameIDV2 = {
1544
2090
  */
1545
2091
  declare type NaturalPersonNameTypeCode = 'ALIA' | 'BIRT' | 'MAID' | 'LEGL' | 'MISC';
1546
2092
 
2093
+ /**
2094
+ * IVMS101 Core Types
2095
+ * Shared type definitions used by both IVMS101.2020 and IVMS101.2023 versions
2096
+ */
2097
+
2098
+ /** Codes representing the nature of a natural person's name */
2099
+ declare type NaturalPersonNameTypeCode_2 = "ALIA" | "BIRT" | "MAID" | "LEGL" | "MISC";
2100
+
1547
2101
  declare type NaturalPersonNameV2 = Omit<NaturalPersonName, 'nameIdentifier'> & {
1548
2102
  nameIdentifier?: NaturalPersonNameIDV2[];
1549
2103
  };
1550
2104
 
2105
+ declare type NaturalPersonNationalIdentifierTypeCode = Omit<NationalIdentifierTypeCode_2, "LEIX" | "RAID">;
2106
+
1551
2107
  declare type NaturalPersonV2 = Omit<NaturalPerson_2, 'name'> & {
1552
2108
  name: NaturalPersonNameV2;
2109
+ customerIdentification?: string;
1553
2110
  };
1554
2111
 
1555
2112
  /**
@@ -1624,6 +2181,17 @@ declare class Notabene {
1624
2181
  * @public
1625
2182
  */
1626
2183
  createDepositRequest(value: DepositRequest, options?: DepositRequestOptions, callbacks?: CallbackOptions): EmbeddedComponent<DepositRequest, DepositRequestOptions>;
2184
+ /**
2185
+ * Creates an invoice reader component for extracting TAIP-16 invoice data from PDF invoices
2186
+ *
2187
+ * The component provides a PDF drag-and-drop upload UI. On upload, the PDF is
2188
+ * parsed and the extracted invoice data is returned. On completion,
2189
+ * the response contains the TAIP-16 invoice data.
2190
+ *
2191
+ * @returns A new EmbeddedComponent instance for invoice reader creation
2192
+ * @public
2193
+ */
2194
+ createInvoiceReader(): EmbeddedComponent<InvoiceReaderResponse, Record<string, never>>;
1627
2195
  /**
1628
2196
  * Creates a deposit assist component
1629
2197
  *
@@ -1685,6 +2253,22 @@ export declare interface NotabeneConfig {
1685
2253
  locale?: string;
1686
2254
  }
1687
2255
 
2256
+ /**
2257
+ * Order Reference
2258
+ * Reference to a related order
2259
+ */
2260
+ declare interface OrderReference {
2261
+ /**
2262
+ * Order identifier
2263
+ */
2264
+ id: string;
2265
+ /**
2266
+ * Date when the order was issued
2267
+ * ISO 8601 date format (YYYY-MM-DD)
2268
+ */
2269
+ issueDate?: string;
2270
+ }
2271
+
1688
2272
  /**
1689
2273
  * Organization Interface
1690
2274
  * Represents a legal entity (company, institution, merchant) in TAP transactions.
@@ -1866,7 +2450,6 @@ declare type OriginatorFields = {
1866
2450
 
1867
2451
  declare type OriginatorV2 = {
1868
2452
  originatorPerson: PersonV2[];
1869
- customerIdentification?: string;
1870
2453
  };
1871
2454
 
1872
2455
  /**
@@ -1927,6 +2510,8 @@ declare interface Participant {
1927
2510
  telephone?: string;
1928
2511
  }
1929
2512
 
2513
+ declare type Party = Person_2 | Organization;
2514
+
1930
2515
  declare type PartyType = "originator" | "beneficiary" | "customer" | "merchant" | "principal";
1931
2516
 
1932
2517
  /**
@@ -1962,6 +2547,115 @@ declare type Person = {
1962
2547
  legalPerson?: LegalPerson_2;
1963
2548
  };
1964
2549
 
2550
+ /**
2551
+ * Person Interface
2552
+ * Represents a natural person (individual) in TAP transactions.
2553
+ * Supports both schema.org/Person properties and IVMS101 identity data for compliance.
2554
+ *
2555
+ * **Privacy Considerations**: For natural person information, consider using selective disclosure
2556
+ * (TAIP-8) to protect sensitive data, especially when including IVMS101 fields like national
2557
+ * identifiers and detailed addresses.
2558
+ *
2559
+ * @example
2560
+ * ```typescript
2561
+ * // Basic person with schema.org properties
2562
+ * const basicPerson: Person = {
2563
+ * "@id": "did:example:alice",
2564
+ * "@type": "https://schema.org/Person",
2565
+ * name: "Alice Johnson",
2566
+ * email: "alice@example.com"
2567
+ * };
2568
+ *
2569
+ * // Person with IVMS101 compliance data
2570
+ * const compliancePerson: Person = {
2571
+ * "@id": "did:example:bob",
2572
+ * "@type": "https://schema.org/Person",
2573
+ * name: [{
2574
+ * primaryIdentifier: "Robert",
2575
+ * secondaryIdentifier: "Smith",
2576
+ * nameIdentifierType: "LEGL"
2577
+ * }],
2578
+ * geographicAddress: [{
2579
+ * addressType: "HOME",
2580
+ * streetName: "123 Main Street",
2581
+ * buildingNumber: "123",
2582
+ * postCode: "12345",
2583
+ * townName: "Example City",
2584
+ * country: "US"
2585
+ * }],
2586
+ * nationalIdentifier: {
2587
+ * nationalIdentifier: "123-45-6789",
2588
+ * nationalIdentifierType: "ARNU", // Social Security Number
2589
+ * countryOfIssue: "US"
2590
+ * },
2591
+ * dateAndPlaceOfBirth: {
2592
+ * dateOfBirth: "1990-01-15",
2593
+ * placeOfBirth: "New York, NY, US"
2594
+ * },
2595
+ * countryOfResidence: "US"
2596
+ * };
2597
+ * ```
2598
+ *
2599
+ * @see {@link https://github.com/TransactionAuthorizationProtocol/TAIPs/blob/main/TAIPs/taip-6.md | TAIP-6: Party Identification}
2600
+ * @see {@link https://github.com/TransactionAuthorizationProtocol/TAIPs/blob/main/TAIPs/taip-8.md | TAIP-8: Selective Disclosure}
2601
+ */
2602
+ declare interface Person_2 extends Participant {
2603
+ "@type": "https://schema.org/Person";
2604
+ /**
2605
+ * SHA-256 hash of the normalized participant name
2606
+ * Used for privacy-preserving name matching per TAIP-12
2607
+ * @see {@link https://github.com/TransactionAuthorizationProtocol/TAIPs/blob/main/TAIPs/taip-12.md | TAIP-12: Privacy-Preserving Name Matching}
2608
+ */
2609
+ nameHash?: string;
2610
+ /**
2611
+ * Customer identification string
2612
+ * Internal identifier used by the institution for this person
2613
+ * @example "CUST-123456"
2614
+ */
2615
+ customerIdentification?: string;
2616
+ /**
2617
+ * Person's name
2618
+ * Can be a simple string or structured IVMS101 name identifiers
2619
+ * For compliance use cases, IVMS101 format provides more detailed name structure
2620
+ * @example "Alice Johnson" // Simple string
2621
+ * @example [{ primaryIdentifier: "Alice", secondaryIdentifier: "Johnson", nameIdentifierType: "LEGL" }] // IVMS101
2622
+ */
2623
+ name?: string | NaturalPersonNameId[];
2624
+ /**
2625
+ * Geographic addresses associated with the person
2626
+ * IVMS101 format addresses for travel rule compliance
2627
+ * Supports multiple address types (HOME, BIZZ, etc.)
2628
+ * @example [{ addressType: "HOME", streetName: "123 Main St", townName: "City", country: "US" }]
2629
+ */
2630
+ geographicAddress?: Address_2[];
2631
+ /**
2632
+ * National identification documents
2633
+ * Government-issued identifiers like passport, SSN, driver's license
2634
+ * **Privacy**: Consider selective disclosure for sensitive ID information
2635
+ * @example { nationalIdentifier: "123-45-6789", nationalIdentifierType: "ARNU", countryOfIssue: "US" }
2636
+ */
2637
+ nationalIdentifier?: NationalIdentification_2<NaturalPersonNationalIdentifierTypeCode>;
2638
+ /**
2639
+ * Date and place of birth information
2640
+ * Used for identity verification and compliance
2641
+ * **Privacy**: Highly sensitive data - recommend selective disclosure
2642
+ */
2643
+ dateAndPlaceOfBirth?: {
2644
+ /** Date of birth in ISO 8601 format (YYYY-MM-DD) */
2645
+ dateOfBirth: string;
2646
+ /** Place of birth (city, state/province, country) */
2647
+ placeOfBirth: string;
2648
+ };
2649
+ /**
2650
+ * Country of residence
2651
+ * ISO 3166-1 alpha-2 country code where the person resides
2652
+ * @example "US"
2653
+ * @example "CA"
2654
+ * @example "GB"
2655
+ */
2656
+ countryOfResidence?: CountryCode;
2657
+ }
2658
+
1965
2659
  /**
1966
2660
  * The type of counterparty. Either a natural person or a legal person. If the customer is the same as the counterparty then the counterparty is a self.
1967
2661
  * @public
@@ -2340,6 +3034,131 @@ export declare enum Status {
2340
3034
  BANNED = "banned"
2341
3035
  }
2342
3036
 
3037
+ /**
3038
+ * Tax Category
3039
+ * Represents a tax category with its rate and scheme
3040
+ */
3041
+ declare interface TaxCategory {
3042
+ /**
3043
+ * Tax category identifier
3044
+ * Uses UBL Tax Category Code standard
3045
+ *
3046
+ * @example TaxCategoryCode.StandardRate
3047
+ * @example TaxCategoryCode.ZeroRated
3048
+ * @example TaxCategoryCode.ExemptFromTax
3049
+ */
3050
+ id: TaxCategoryCode;
3051
+ /**
3052
+ * Tax rate percentage
3053
+ *
3054
+ * @example 20.0 // 20% VAT
3055
+ * @example 0.0 // Zero rate
3056
+ */
3057
+ percent: number;
3058
+ /**
3059
+ * Tax scheme identifier
3060
+ * Uses UBL Tax Scheme Code standard
3061
+ *
3062
+ * @example TaxSchemeCode.ValueAddedTax
3063
+ * @example TaxSchemeCode.GoodsAndServicesTax
3064
+ * @example TaxSchemeCode.SalesTax
3065
+ */
3066
+ taxScheme: TaxSchemeCode | string;
3067
+ }
3068
+
3069
+ /**
3070
+ * UBL Tax Category Code standard (UN/ECE 5305 Tax Category Code)
3071
+ * Based on UN/CEFACT and EU tax categories
3072
+ *
3073
+ * @see {@link http://docs.oasis-open.org/ubl/os-UBL-2.1/cl/gc/default/TaxCategory-2.1.gc | UBL Tax Category Codes}
3074
+ * @see {@link https://docs.peppol.eu/poacc/billing/3.0/codelist/UNCL5305/ | PEPPOL BIS 3.0 Tax Category Codes}
3075
+ */
3076
+ declare enum TaxCategoryCode {
3077
+ StandardRate = "S",
3078
+ ZeroRated = "Z",
3079
+ ExemptFromTax = "E",
3080
+ VATReverseCharge = "AE",
3081
+ FreeExportItem = "G",
3082
+ OutsideScopeOfTax = "O",
3083
+ VATExemptIntraCommunity = "K",
3084
+ CanaryIslandsIndirectTax = "L",
3085
+ CeutaMelillaTax = "M",
3086
+ HigherRate = "H",
3087
+ LowerRate = "AA",
3088
+ TransferredVAT = "B",
3089
+ MixedTaxRate = "A",
3090
+ ExemptForResale = "AB",
3091
+ VATReverseChargeAlt = "AC",
3092
+ VATExemptIntraCommunityAlt = "AD",
3093
+ ExemptFromTaxDeprecated = "C",
3094
+ ExemptArticle309 = "D"
3095
+ }
3096
+
3097
+ /**
3098
+ * UBL Tax Scheme Code standard (UN/ECE 5305 Tax Type Code)
3099
+ * Based on UN/CEFACT tax types
3100
+ *
3101
+ * @see {@link http://docs.oasis-open.org/ubl/os-UBL-2.1/cl/gc/default/TaxScheme-2.1.gc | UBL Tax Scheme Codes}
3102
+ */
3103
+ declare enum TaxSchemeCode {
3104
+ ProfitTax = "AAA",
3105
+ CorporateIncomeTax = "AAB",
3106
+ PersonalIncomeTax = "AAC",
3107
+ SocialSecurityTax = "AAD",
3108
+ PropertyTax = "AAE",
3109
+ InheritanceTax = "AAF",
3110
+ GiftTax = "AAG",
3111
+ CapitalGainsTax = "AAH",
3112
+ WealthTax = "AAI",
3113
+ StampDuty = "AAJ",
3114
+ ConsumptionTax = "CST",
3115
+ CustomsDuty = "CUS",
3116
+ EnvironmentalTax = "ENV",
3117
+ ExciseTax = "EXC",
3118
+ ExportTax = "EXP",
3119
+ FreightTax = "FRT",
3120
+ GoodsAndServicesTax = "GST",
3121
+ ImportTax = "IMP",
3122
+ OtherTax = "OTH",
3123
+ SalesTax = "SAL",
3124
+ TurnoverTax = "TOT",
3125
+ ValueAddedTax = "VAT"
3126
+ }
3127
+
3128
+ /**
3129
+ * Tax Subtotal
3130
+ * Breakdown of taxes by category
3131
+ */
3132
+ declare interface TaxSubtotal {
3133
+ /**
3134
+ * Amount subject to this tax
3135
+ */
3136
+ taxableAmount: number;
3137
+ /**
3138
+ * Tax amount for this category
3139
+ */
3140
+ taxAmount: number;
3141
+ /**
3142
+ * Tax category information
3143
+ */
3144
+ taxCategory: TaxCategory;
3145
+ }
3146
+
3147
+ /**
3148
+ * Tax Total
3149
+ * Aggregate tax information for the invoice
3150
+ */
3151
+ declare interface TaxTotal {
3152
+ /**
3153
+ * Total tax amount for the invoice
3154
+ */
3155
+ taxAmount: number;
3156
+ /**
3157
+ * Breakdown of taxes by category
3158
+ */
3159
+ taxSubtotal?: TaxSubtotal[];
3160
+ }
3161
+
2343
3162
  /**
2344
3163
  * The theme of the Notabene SDK
2345
3164
  * @public
@@ -2549,6 +3368,43 @@ declare type TransliterationMethodCode = 'arab' | 'aran' | 'armn' | 'cyrl' | 'de
2549
3368
 
2550
3369
  */ export declare type TravelAddress = `ta${string}`;
2551
3370
 
3371
+ /**
3372
+ * UBL Unit of Measure Code standard
3373
+ * Based on UN/CEFACT code list
3374
+ *
3375
+ * @see {@link http://docs.oasis-open.org/ubl/os-UBL-2.1/cl/gc/default/UnitOfMeasureCode-2.1.gc | UBL Unit of Measure Codes}
3376
+ */
3377
+ declare enum UnitCode {
3378
+ Kilogram = "KGM",
3379
+ Gram = "GRM",
3380
+ Milligram = "MGM",
3381
+ Tonne = "TNE",
3382
+ Liter = "LTR",
3383
+ Milliliter = "MLT",
3384
+ CubicMillimeter = "MMQ",
3385
+ CubicCentimeter = "CMQ",
3386
+ CubicDecimeter = "DMQ",
3387
+ CubicMeter = "MTQ",
3388
+ Millimeter = "MMT",
3389
+ Centimeter = "CMT",
3390
+ Decimeter = "DMT",
3391
+ Meter = "MTR",
3392
+ Kilometer = "KMT",
3393
+ SquareMeter = "MTK",
3394
+ Each = "EA",
3395
+ Piece = "PCE",
3396
+ NumberOfPairs = "NPR",
3397
+ Second = "SEC",
3398
+ Minute = "MIN",
3399
+ Hour = "HUR",
3400
+ Day = "DAY",
3401
+ Week = "WEE",
3402
+ Month = "MON",
3403
+ Year = "ANN",
3404
+ KilowattHour = "KWH",
3405
+ NumberOfArticles = "NAR"
3406
+ }
3407
+
2552
3408
  /**
2553
3409
  * Message type for updating component state and configuration from host application
2554
3410
  *
@@ -2576,6 +3432,7 @@ export declare type UpdateValue<T, O> = {
2576
3432
 
2577
3433
  /**
2578
3434
  * A Uniform Resource Identifier
3435
+ * @remarks This type will be narrowed to `` `${string}:${string}` `` in the next major release.
2579
3436
  * @public
2580
3437
  */
2581
3438
  declare type URI = string;