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