@notabene/javascript-sdk 2.15.0 → 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.
@@ -1,6 +1,3 @@
1
- import type { Agent as Agent_2 } from '@taprsvp/types';
2
- import type { DID as DID_2 } from '@taprsvp/types';
3
-
4
1
  /**
5
2
  * A blockchain account
6
3
  * @public
@@ -13,6 +10,26 @@ export declare interface Account {
13
10
  identifier?: string;
14
11
  }
15
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
+
16
33
  /**
17
34
  * Address
18
35
  * Represents a physical address
@@ -53,6 +70,59 @@ declare type Address = {
53
70
  country: ISOCountryCode;
54
71
  };
55
72
 
73
+ /**
74
+ * Represents an address
75
+ *
76
+ * Per IVMS101 spec section 5.2.6.1, an address contains location information
77
+ * that can be expressed either as:
78
+ * - Structured fields (streetName, buildingNumber, etc.)
79
+ * - Unstructured addressLine array (free-form text)
80
+ *
81
+ * Constraint C8 requires at least one of:
82
+ * - addressLine OR
83
+ * - (streetName AND (buildingName OR buildingNumber))
84
+ */
85
+ declare interface Address_2 {
86
+ /** Identifies the nature of the address */
87
+ addressType: AddressTypeCode_2;
88
+ /** Identification of a division of a large organisation or building */
89
+ department?: string;
90
+ /** Identification of a sub-division of a large organisation or building */
91
+ subDepartment?: string;
92
+ /** Name of a street or thoroughfare */
93
+ streetName?: string;
94
+ /** Number that identifies the position of a building on a street */
95
+ buildingNumber?: string;
96
+ /** Name of the building or house */
97
+ buildingName?: string;
98
+ /** Floor or storey within a building */
99
+ floor?: string;
100
+ /** Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for */
101
+ postBox?: string;
102
+ /** Building room number */
103
+ room?: string;
104
+ /** Identifier consisting of a group of letters and/or numbers */
105
+ postcode?: string;
106
+ /** Name of a built-up area, with defined boundaries, and a local government */
107
+ townName: string;
108
+ /** Specific location name within the town */
109
+ townLocationName?: string;
110
+ /** Identifies a subdivision within a country subdivision */
111
+ districtName?: string;
112
+ /** Identifies a subdivision of a country */
113
+ countrySubDivision?: string;
114
+ /** Nation with its own government */
115
+ country: CountryCode;
116
+ /**
117
+ * Information that locates and identifies a specific address, as defined by postal services,
118
+ * presented in free format text.
119
+ *
120
+ * Array of 0 to 7 lines, each max 70 characters (Max70Text)
121
+ * @maxItems 7
122
+ */
123
+ addressLine?: string[];
124
+ }
125
+
56
126
  /**
57
127
  * Address Type Code
58
128
  * Specifies the type of address
@@ -60,6 +130,9 @@ declare type Address = {
60
130
  */
61
131
  declare type AddressTypeCode = 'HOME' | 'BIZZ' | 'GEOG';
62
132
 
133
+ /** Codes identifying the nature of an address */
134
+ declare type AddressTypeCode_2 = "HOME" | "BIZZ" | "GEOG";
135
+
63
136
  /**
64
137
  * Who is the agent acting on behalf of the counterparty
65
138
  * @public
@@ -73,6 +146,76 @@ export declare interface Agent {
73
146
  verified?: boolean;
74
147
  }
75
148
 
149
+ /**
150
+ * Agent Interface
151
+ * Represents software acting on behalf of participants in TAP transactions.
152
+ * Agents handle communication, compliance, and transaction processing.
153
+ *
154
+ * @example
155
+ * ```typescript
156
+ * const originatorAgent: Agent = {
157
+ * "@id": "did:web:vasp.example.com",
158
+ * role: "SourceAddress",
159
+ * for: "did:example:customer123",
160
+ * name: "Example VASP Agent",
161
+ * leiCode: "969500KN90DZLPGW6898",
162
+ * url: "https://vasp.example.com",
163
+ * email: "compliance@vasp.example.com",
164
+ * geographicAddress: [{
165
+ * addressType: "HOME",
166
+ * streetName: "123 Main St",
167
+ * buildingNumber: "123",
168
+ * postCode: "12345",
169
+ * townName: "Example City",
170
+ * country: "US"
171
+ * }],
172
+ * policies: [{
173
+ * "@type": "RequireAuthorization",
174
+ * purpose: "AML compliance verification"
175
+ * }],
176
+ * serviceUrl: "https://vasp.example.com/didcomm"
177
+ * };
178
+ * ```
179
+ */
180
+ declare interface Agent_2 extends Partial<Organization> {
181
+ /**
182
+ * Unique identifier for the participant
183
+ * Can be either a DID or an IRI
184
+ */
185
+ "@id": DID_2 | IRI;
186
+ /**
187
+ * Role of the participant in the transaction
188
+ * Standard values for Agents are: "SettlementAddress", "SourceAddress", "CustodialService"
189
+ * All role values MUST use PascalCase
190
+ * Optional for all participant types
191
+ */
192
+ role?: AgentRoles;
193
+ /**
194
+ * DID of the party this participant acts for
195
+ * Used when participant is an agent acting on behalf of another party
196
+ * Required for type "Agent", optional for other types
197
+ * Can be a single DID or an array of DIDs representing multiple parties
198
+ */
199
+ for: DID_2 | DID_2[];
200
+ /**
201
+ * List of policies that apply to this participant
202
+ * Defines requirements and constraints on the participant's actions
203
+ */
204
+ policies?: Policies[];
205
+ /**
206
+ * Optional DIDComm service endpoint URL
207
+ * This field SHOULD only be used as a fallback when no DIDComm service endpoint
208
+ * is resolvable from the agent's DID document. Particularly useful for self-hosted
209
+ * and decentralized agents. For security purposes, this field SHOULD be ignored
210
+ * if a valid DIDComm service endpoint is already listed in the DID document.
211
+ *
212
+ * @example "https://agent.example.com/didcomm"
213
+ */
214
+ serviceUrl?: IRI;
215
+ }
216
+
217
+ declare type AgentRoles = "SettlementAddress" | "SourceAddress" | "CustodialService" | "EscrowAgent" | string;
218
+
76
219
  /**
77
220
  * Explicit layout configuration for the agent selection step.
78
221
  *
@@ -103,8 +246,8 @@ export declare enum AgentType {
103
246
  }
104
247
 
105
248
  declare interface BaseRequestConfig {
106
- originatorId?: DID_2;
107
- beneficiaryId?: DID_2;
249
+ originatorId?: IRI;
250
+ beneficiaryId?: IRI;
108
251
  }
109
252
 
110
253
  /**
@@ -677,6 +820,8 @@ export declare type CounterpartyAssistConfig = boolean | {
677
820
  identityVerification?: IdentityVerificationConfig;
678
821
  };
679
822
 
823
+ declare type CountryCode = "AF" | "AL" | "DZ" | "AS" | "AD" | "AO" | "AI" | "AQ" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BM" | "BT" | "BO" | "BQ" | "BA" | "BW" | "BV" | "BR" | "IO" | "BN" | "BG" | "BF" | "BI" | "CV" | "KH" | "CM" | "CA" | "KY" | "CF" | "TD" | "CL" | "CN" | "CX" | "CC" | "CO" | "KM" | "CD" | "CG" | "CK" | "CR" | "HR" | "CU" | "CW" | "CY" | "CZ" | "CI" | "DK" | "DJ" | "DM" | "DO" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "SZ" | "ET" | "FK" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "TF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GI" | "GR" | "GL" | "GD" | "GP" | "GU" | "GT" | "GG" | "GN" | "GW" | "GY" | "HT" | "HM" | "VA" | "HN" | "HK" | "HU" | "IS" | "IN" | "ID" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "KP" | "KR" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LY" | "LI" | "LT" | "LU" | "MO" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MH" | "MQ" | "MR" | "MU" | "YT" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "MM" | "NA" | "NR" | "NP" | "NL" | "NC" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "MK" | "MP" | "NO" | "OM" | "PK" | "PW" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PN" | "PL" | "PT" | "PR" | "QA" | "RO" | "RU" | "RW" | "RE" | "BL" | "SH" | "KN" | "LC" | "MF" | "PM" | "VC" | "WS" | "SM" | "ST" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SX" | "SK" | "SI" | "SB" | "SO" | "ZA" | "GS" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "SE" | "CH" | "SY" | "TW" | "TJ" | "TZ" | "TH" | "TL" | "TG" | "TK" | "TO" | "TT" | "TN" | "TR" | "TM" | "TC" | "TV" | "UG" | "UA" | "AE" | "GB" | "UM" | "US" | "UY" | "UZ" | "VU" | "VE" | "VN" | "VG" | "VI" | "WF" | "EH" | "YE" | "ZM" | "ZW" | "AX" | "XX";
824
+
680
825
  /**
681
826
  * A crypto credential
682
827
  * @public
@@ -759,6 +904,45 @@ export declare type Destination = BlockchainAddress | CAIP10 | CryptoCredential
759
904
  */
760
905
  export declare type DID = `did:${string}:${string}`;
761
906
 
907
+ /**
908
+ * Decentralized Identifier (DID)
909
+ * A globally unique persistent identifier that doesn't require a centralized registration authority.
910
+ *
911
+ * Format: `did:method:method-specific-id`
912
+ *
913
+ * @example "did:web:example.com"
914
+ * @example "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"
915
+ * @see {@link https://www.w3.org/TR/did-core/ | DID Core Specification}
916
+ */
917
+ declare type DID_2 = `did:${string}:${string}`;
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
+
762
946
  /**
763
947
  * Digital Token Identifier (DTI) following ISO 24165 standard
764
948
  *
@@ -1006,6 +1190,122 @@ export declare type InvalidValue<T> = {
1006
1190
  errors: ValidationError[];
1007
1191
  };
1008
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
+
1300
+ /**
1301
+ * Internationalized Resource Identifier (IRI)
1302
+ * A unique identifier that may contain international characters.
1303
+ * Used for identifying resources, particularly in JSON-LD contexts.
1304
+ *
1305
+ * @see {@link https://www.w3.org/TR/json-ld11/#iris | JSON-LD 1.1 IRIs}
1306
+ */
1307
+ declare type IRI = `${string}:${string}`;
1308
+
1009
1309
  /**
1010
1310
  * ISO-3166 Alpha-2 country code
1011
1311
  * @example "US" for United States, "GB" for United Kingdom
@@ -1019,6 +1319,326 @@ declare type ISOCountryCode = string;
1019
1319
  */
1020
1320
  declare type ISOCurrency = string;
1021
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
+
1022
1642
  /**
1023
1643
  * A point in time, represented as a day within the calendar year. Compliant with ISO 8601.
1024
1644
  * Format: YYYY-MM-DD
@@ -1041,6 +1661,19 @@ export declare type IVMS101 = {
1041
1661
  payloadMetadata?: PayloadMetadata;
1042
1662
  };
1043
1663
 
1664
+ /**
1665
+ * Base interface for JSON-LD objects
1666
+ * Provides the core structure for JSON-LD compatible objects with type information.
1667
+ *
1668
+ * @template T - The type string that identifies the object type
1669
+ */
1670
+ declare interface JsonLdObject<T extends string> {
1671
+ "@context"?: IRI | Record<string, string>;
1672
+ "@type": T;
1673
+ }
1674
+
1675
+ declare type LegalEntityNationalIdentifierTypeCode = Omit<NationalIdentifierTypeCode_2, "ARNU" | "CCPT" | "DRLC" | "SOCS" | "IDCD">;
1676
+
1044
1677
  /**
1045
1678
  * Interface representing a legal entity (organization/company) involved in a transaction
1046
1679
  *
@@ -1132,6 +1765,14 @@ declare type LegalPersonNameID = {
1132
1765
  legalPersonNameIdentifierType: LegalPersonNameTypeCode;
1133
1766
  };
1134
1767
 
1768
+ /** Represents a legal person's name identifier */
1769
+ declare interface LegalPersonNameId {
1770
+ /** Name by which the legal person is known */
1771
+ legalPersonName: string;
1772
+ /** The nature of the name specified */
1773
+ legalPersonNameIdentifierType: LegalPersonNameTypeCode_2;
1774
+ }
1775
+
1135
1776
  /**
1136
1777
  * Legal Person Name Type Code
1137
1778
  * Specifies the type of name for a legal person
@@ -1139,12 +1780,87 @@ declare type LegalPersonNameID = {
1139
1780
  */
1140
1781
  declare type LegalPersonNameTypeCode = 'LEGL' | 'SHRT' | 'TRAD';
1141
1782
 
1783
+ /** Codes representing the nature of a legal person's name */
1784
+ declare type LegalPersonNameTypeCode_2 = "LEGL" | "SHRT" | "TRAD";
1785
+
1142
1786
  /**
1143
1787
  * A LEI Legal Entity Identifier
1144
1788
  * @public
1145
1789
  */
1146
1790
  export declare type LEI = string;
1147
1791
 
1792
+ /**
1793
+ * Legal Entity Identifier (LEI)
1794
+ * A 20-character alphanumeric code that uniquely identifies legal entities globally.
1795
+ *
1796
+ * @example "969500KN90DZLPGW6898"
1797
+ * @see {@link https://www.iso.org/standard/59771.html | ISO 17442}
1798
+ */
1799
+ declare type LEICode = string;
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
+
1148
1864
  /**
1149
1865
  * Local Legal Person Name ID
1150
1866
  * Represents a local name identifier for a legal person
@@ -1209,6 +1925,18 @@ export declare type NationalIdentification = {
1209
1925
  registrationAuthority?: string;
1210
1926
  };
1211
1927
 
1928
+ /** Represents a national identification */
1929
+ declare interface NationalIdentification_2<C> {
1930
+ /** An identifier issued by an appropriate issuing authority */
1931
+ nationalIdentifier: string;
1932
+ /** Specifies the type of identifier */
1933
+ nationalIdentifierType: C;
1934
+ /** Country of the issuing authority */
1935
+ countryOfIssue?: CountryCode;
1936
+ /** A code specifying the registration authority */
1937
+ registrationAuthority?: string;
1938
+ }
1939
+
1212
1940
  /**
1213
1941
  * National Identifier Type Code
1214
1942
  * Specifies the type of national identifier
@@ -1216,6 +1944,22 @@ export declare type NationalIdentification = {
1216
1944
  */
1217
1945
  declare type NationalIdentifierTypeCode = 'ARNU' | 'CCPT' | 'RAID' | 'DRLC' | 'FIIN' | 'TXID' | 'SOCS' | 'IDCD' | 'LEIX' | 'MISC';
1218
1946
 
1947
+ /**
1948
+ * Codes identifying the type of national identification
1949
+ *
1950
+ * - **ARNU**: Alien registration number - Number assigned by a government agency to identify foreign nationals
1951
+ * - **CCPT**: Passport number - Number assigned by a passport authority
1952
+ * - **RAID**: Registration authority identifier - Identifier of a legal entity as maintained by a registration authority
1953
+ * - **DRLC**: Driver license number - Number assigned to a driver's license
1954
+ * - **FIIN**: Foreign investment identity number - Number assigned to a foreign investor (other than the alien number)
1955
+ * - **TXID**: Tax identification number - Number assigned by a tax authority to an entity
1956
+ * - **SOCS**: Social security number - Number assigned by a social security agency
1957
+ * - **IDCD**: Identity card number - Number assigned by a national authority to an identity card
1958
+ * - **LEIX**: Legal Entity Identifier - Legal Entity Identifier (LEI) assigned in accordance with ISO 17442
1959
+ * - **MISC**: Miscellaneous - Other types of national identification not covered by the above codes
1960
+ */
1961
+ declare type NationalIdentifierTypeCode_2 = "ARNU" | "CCPT" | "RAID" | "DRLC" | "FIIN" | "TXID" | "SOCS" | "IDCD" | "LEIX" | "MISC";
1962
+
1219
1963
  /**
1220
1964
  * Field properties for national identifier type selection
1221
1965
  * @public
@@ -1323,6 +2067,16 @@ declare type NaturalPersonNameID = {
1323
2067
  nameIdentifierType?: NaturalPersonNameTypeCode;
1324
2068
  };
1325
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
+
1326
2080
  declare type NaturalPersonNameIDV2 = {
1327
2081
  primaryIdentifier?: string;
1328
2082
  secondaryIdentifier?: string;
@@ -1337,10 +2091,20 @@ declare type NaturalPersonNameIDV2 = {
1337
2091
  */
1338
2092
  declare type NaturalPersonNameTypeCode = 'ALIA' | 'BIRT' | 'MAID' | 'LEGL' | 'MISC';
1339
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
+
1340
2102
  declare type NaturalPersonNameV2 = Omit<NaturalPersonName, 'nameIdentifier'> & {
1341
2103
  nameIdentifier?: NaturalPersonNameIDV2[];
1342
2104
  };
1343
2105
 
2106
+ declare type NaturalPersonNationalIdentifierTypeCode = Omit<NationalIdentifierTypeCode_2, "LEIX" | "RAID">;
2107
+
1344
2108
  declare type NaturalPersonV2 = Omit<NaturalPerson_2, 'name'> & {
1345
2109
  name: NaturalPersonNameV2;
1346
2110
  };
@@ -1417,6 +2181,17 @@ declare class Notabene {
1417
2181
  * @public
1418
2182
  */
1419
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>>;
1420
2195
  /**
1421
2196
  * Creates a deposit assist component
1422
2197
  *
@@ -1478,6 +2253,171 @@ export declare interface NotabeneConfig {
1478
2253
  locale?: string;
1479
2254
  }
1480
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
+
2272
+ /**
2273
+ * Organization Interface
2274
+ * Represents a legal entity (company, institution, merchant) in TAP transactions.
2275
+ * Supports both schema.org/Organization properties and IVMS101 identity data for compliance.
2276
+ *
2277
+ * Organizations typically have less privacy concerns than natural persons, making direct
2278
+ * inclusion of IVMS101 data more common for transparency and compliance purposes.
2279
+ *
2280
+ * @example
2281
+ * ```typescript
2282
+ * // Basic organization with schema.org properties
2283
+ * const basicOrg: Organization = {
2284
+ * "@id": "did:web:example.com",
2285
+ * "@type": "https://schema.org/Organization",
2286
+ * name: "Example Corp",
2287
+ * url: "https://example.com",
2288
+ * email: "contact@example.com"
2289
+ * };
2290
+ *
2291
+ * // VASP with full compliance data
2292
+ * const vasp: Organization = {
2293
+ * "@id": "did:web:vasp.example.com",
2294
+ * "@type": "https://schema.org/Organization",
2295
+ * name: "Example Virtual Asset Service Provider",
2296
+ * leiCode: "969500KN90DZLPGW6898",
2297
+ * url: "https://vasp.example.com",
2298
+ * logo: "https://vasp.example.com/logo.png",
2299
+ * description: "Licensed Virtual Asset Service Provider",
2300
+ * email: "compliance@vasp.example.com",
2301
+ * telephone: "+1-555-123-4567",
2302
+ * geographicAddress: [{
2303
+ * addressType: "BIZZ",
2304
+ * streetName: "456 Financial District",
2305
+ * buildingNumber: "456",
2306
+ * postCode: "10005",
2307
+ * townName: "New York",
2308
+ * country: "US"
2309
+ * }],
2310
+ * nationalIdentifier: {
2311
+ * nationalIdentifier: "12-3456789",
2312
+ * nationalIdentifierType: "TXID", // Tax ID
2313
+ * countryOfIssue: "US"
2314
+ * },
2315
+ * countryOfRegistration: "US"
2316
+ * };
2317
+ *
2318
+ * // Merchant with MCC
2319
+ * const merchant: Organization = {
2320
+ * "@id": "did:web:coffee.example.com",
2321
+ * "@type": "https://schema.org/Organization",
2322
+ * name: "Downtown Coffee Shop",
2323
+ * mcc: "5812", // Restaurant
2324
+ * url: "https://coffee.example.com",
2325
+ * geographicAddress: [{
2326
+ * addressType: "BIZZ",
2327
+ * streetName: "123 Main Street",
2328
+ * buildingNumber: "123",
2329
+ * postCode: "12345",
2330
+ * townName: "Anytown",
2331
+ * country: "US"
2332
+ * }]
2333
+ * };
2334
+ * ```
2335
+ *
2336
+ * @see {@link https://github.com/TransactionAuthorizationProtocol/TAIPs/blob/main/TAIPs/taip-6.md | TAIP-6: Party Identification}
2337
+ * @see {@link https://schema.org/Organization | schema.org/Organization}
2338
+ */
2339
+ declare interface Organization extends Participant {
2340
+ "@type": "https://schema.org/Organization";
2341
+ /**
2342
+ * Legal Entity Identifier (LEI) code
2343
+ * 20-character alphanumeric code that uniquely identifies legal entities globally
2344
+ * Used to uniquely identify legal entities involved in financial transactions
2345
+ * @example "969500KN90DZLPGW6898"
2346
+ * @see {@link https://www.iso.org/standard/59771.html | ISO 17442}
2347
+ */
2348
+ leiCode?: LEICode;
2349
+ /**
2350
+ * Legal name of the organization
2351
+ * Can be a simple string or structured IVMS101 name identifiers
2352
+ * For regulated entities, IVMS101 format may be required for compliance
2353
+ * @example "Example Corporation Inc." // Simple string
2354
+ * @example [{ legalPersonName: "Example Corp", legalPersonNameIdentifierType: "LEGL" }] // IVMS101
2355
+ */
2356
+ name?: string | LegalPersonNameId[];
2357
+ /**
2358
+ * Customer identification string
2359
+ * Internal identifier used by the institution for this organization
2360
+ * @example "CORP-789012"
2361
+ */
2362
+ customerIdentification?: string;
2363
+ /**
2364
+ * National identification documents
2365
+ * Government-issued identifiers like tax ID, business registration number
2366
+ * @example { nationalIdentifier: "12-3456789", nationalIdentifierType: "TXID", countryOfIssue: "US" }
2367
+ */
2368
+ nationalIdentifier?: NationalIdentification_2<LegalEntityNationalIdentifierTypeCode>;
2369
+ /**
2370
+ * Merchant Category Code (ISO 18245)
2371
+ * Standard classification code for merchant types in payment transactions
2372
+ * Used primarily for merchants in payment requests
2373
+ *
2374
+ * @example "5411" // Grocery stores and supermarkets
2375
+ * @example "5812" // Restaurants
2376
+ * @example "5734" // Computer software stores
2377
+ * @example "6012" // Financial institutions
2378
+ * @see {@link https://www.iso.org/standard/33365.html | ISO 18245}
2379
+ */
2380
+ mcc?: string;
2381
+ /**
2382
+ * URL pointing to the organization's website
2383
+ * Based on schema.org/Organization
2384
+ * @example "https://example.vasp.com"
2385
+ * @example "https://merchant.example.com"
2386
+ */
2387
+ url?: string;
2388
+ /**
2389
+ * URL pointing to the organization's logo image
2390
+ * Based on schema.org/Organization
2391
+ * @example "https://example.vasp.com/logo.png"
2392
+ * @example "https://cdn.example.com/assets/logo.svg"
2393
+ */
2394
+ logo?: string;
2395
+ /**
2396
+ * Description of the organization
2397
+ * Based on schema.org/Organization
2398
+ * @example "Licensed Virtual Asset Service Provider"
2399
+ * @example "Online marketplace for digital assets and collectibles"
2400
+ * @example "Full-service financial institution"
2401
+ */
2402
+ description?: string;
2403
+ /**
2404
+ * Physical addresses of the organization
2405
+ * IVMS101 format addresses for regulatory compliance
2406
+ * Supports multiple address types (BIZZ for business, etc.)
2407
+ * @example [{ addressType: "BIZZ", streetName: "456 Business Ave", townName: "Finance City", country: "US" }]
2408
+ */
2409
+ geographicAddress?: Address_2[];
2410
+ /**
2411
+ * Country of registration/incorporation
2412
+ * ISO 3166-1 alpha-2 country code where the organization is legally registered
2413
+ * @example "US" // United States
2414
+ * @example "GB" // United Kingdom
2415
+ * @example "SG" // Singapore
2416
+ * @example "CH" // Switzerland
2417
+ */
2418
+ countryOfRegistration?: CountryCode;
2419
+ }
2420
+
1481
2421
  /**
1482
2422
  * Originating VASP
1483
2423
  * Represents the VASP which initiates the VA transfer
@@ -1541,6 +2481,40 @@ export declare interface OwnershipProof {
1541
2481
  address: CAIP10;
1542
2482
  }
1543
2483
 
2484
+ /**
2485
+ * Participant in a TAP transaction
2486
+ * Represents either a party (originator/beneficiary) or an agent in the transaction.
2487
+ * Can include verification methods and policies.
2488
+ *
2489
+ * @see {@link https://github.com/TransactionAuthorizationProtocol/TAIPs/blob/main/TAIPs/taip-5.md | TAIP-5: Agents}
2490
+ * @see {@link https://github.com/TransactionAuthorizationProtocol/TAIPs/blob/main/TAIPs/taip-6.md | TAIP-6: Party Identification}
2491
+ */
2492
+ declare interface Participant {
2493
+ /**
2494
+ * Unique identifier for the participant
2495
+ * Can be either a DID or an IRI
2496
+ */
2497
+ "@id": DID_2 | IRI;
2498
+ "@context"?: string | string[];
2499
+ "@type"?: string | string[];
2500
+ /**
2501
+ * Contact email address
2502
+ * Based on schema.org/Organization and schema.org/Person
2503
+ * @example "compliance@example.vasp.com"
2504
+ */
2505
+ email?: string;
2506
+ /**
2507
+ * Contact telephone number
2508
+ * Based on schema.org/Organization and schema.org/Person
2509
+ * @example "+1-555-123-4567"
2510
+ */
2511
+ telephone?: string;
2512
+ }
2513
+
2514
+ declare type Party = Person_2 | Organization;
2515
+
2516
+ declare type PartyType = "originator" | "beneficiary" | "customer" | "merchant" | "principal";
2517
+
1544
2518
  /**
1545
2519
  * 6.7
1546
2520
  * Data describing the contents of the payload.
@@ -1574,6 +2548,115 @@ declare type Person = {
1574
2548
  legalPerson?: LegalPerson_2;
1575
2549
  };
1576
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
+
1577
2660
  /**
1578
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.
1579
2662
  * @public
@@ -1606,6 +2689,46 @@ declare type PersonV2 = Omit<Person, 'naturalPerson'> & {
1606
2689
  accountNumber?: string[];
1607
2690
  };
1608
2691
 
2692
+ /**
2693
+ * Policy type definition
2694
+ * Union type of all possible policy types in TAP.
2695
+ */
2696
+ declare type Policies = RequireAuthorization | RequirePresentation | RequireRelationshipConfirmation | RequirePurpose;
2697
+
2698
+ /**
2699
+ * Base interface for all TAP policy types.
2700
+ * Policies define requirements and constraints that must be satisfied during a transaction.
2701
+ * Each specific policy type extends this base interface with its own requirements.
2702
+ *
2703
+ * @template T - The specific policy type identifier (e.g. "RequireAuthorization", "RequirePresentation")
2704
+ *
2705
+ * @see {@link https://github.com/TransactionAuthorizationProtocol/TAIPs/blob/main/TAIPs/taip-7.md | TAIP-7: Policies}
2706
+ */
2707
+ declare interface Policy<T extends string> extends JsonLdObject<T> {
2708
+ /** The type identifier for this policy */
2709
+ "@type": T;
2710
+ /**
2711
+ * Optional DID of the party or agent required to fulfill this policy
2712
+ * Can be a single DID or an array of DIDs
2713
+ */
2714
+ from?: DID_2 | IRI;
2715
+ /**
2716
+ * Optional role of the party required to fulfill this policy
2717
+ * E.g. 'SettlementAddress', 'SourceAddress', or 'CustodialService'
2718
+ */
2719
+ fromRole?: AgentRoles;
2720
+ /**
2721
+ * Optional agent representing a party required to fulfill this policy
2722
+ * E.g. 'originator' or 'beneficiary' in TAIP-3
2723
+ */
2724
+ fromAgent?: PartyType;
2725
+ /**
2726
+ * Optional human-readable description of the policy's purpose
2727
+ * Used to explain why this requirement exists
2728
+ */
2729
+ purpose?: string;
2730
+ }
2731
+
1609
2732
  /**
1610
2733
  * Status of the ownership proof verification process
1611
2734
  *
@@ -1693,6 +2816,74 @@ export declare interface RefreshSource {
1693
2816
 
1694
2817
  declare type RequestID = UUID;
1695
2818
 
2819
+ /**
2820
+ * Policy requiring authorization before proceeding
2821
+ * Used to ensure specific agents authorize a transaction.
2822
+ *
2823
+ * @see {@link https://github.com/TransactionAuthorizationProtocol/TAIPs/blob/main/TAIPs/taip-7.md | TAIP-7: Policies}
2824
+ */
2825
+ declare interface RequireAuthorization extends Policy<"RequireAuthorization"> {
2826
+ }
2827
+
2828
+ /**
2829
+ * Policy requiring presentation of verifiable credentials
2830
+ * Used to request specific verifiable credentials from participants.
2831
+ *
2832
+ * @see {@link https://github.com/TransactionAuthorizationProtocol/TAIPs/blob/main/TAIPs/taip-7.md | TAIP-7: Policies}
2833
+ * @see {@link https://github.com/TransactionAuthorizationProtocol/TAIPs/blob/main/TAIPs/taip-8.md | TAIP-8: Verifiable Credentials}
2834
+ */
2835
+ declare interface RequirePresentation extends Policy<"RequirePresentation"> {
2836
+ /**
2837
+ * Optional DID of the party the presentation is about
2838
+ * Used when requesting credentials about a specific party
2839
+ */
2840
+ aboutParty?: DID_2 | IRI;
2841
+ /**
2842
+ * Optional DID of the agent the presentation is about
2843
+ * Used when requesting credentials about a specific agent
2844
+ */
2845
+ aboutAgent?: DID_2 | IRI;
2846
+ /**
2847
+ * Presentation Exchange definition
2848
+ * Specifies the required credentials and constraints
2849
+ */
2850
+ presentationDefinition: string;
2851
+ /**
2852
+ * Optional credential type shorthand
2853
+ * Simplified way to request a specific credential type
2854
+ */
2855
+ credentialType?: string;
2856
+ }
2857
+
2858
+ /**
2859
+ * Policy requiring purpose codes for transactions
2860
+ * Used to enforce the inclusion of ISO 20022 purpose codes.
2861
+ *
2862
+ * @see {@link https://github.com/TransactionAuthorizationProtocol/TAIPs/blob/main/TAIPs/taip-13.md | TAIP-13: Purpose Codes}
2863
+ */
2864
+ declare interface RequirePurpose extends Policy<"RequirePurpose"> {
2865
+ /**
2866
+ * Required purpose code fields
2867
+ * Specifies which purpose code types must be included
2868
+ */
2869
+ required: Array<"purpose" | "categoryPurpose">;
2870
+ }
2871
+
2872
+ /**
2873
+ * Policy requiring relationship confirmation
2874
+ * Used to verify control of addresses and relationships between parties.
2875
+ *
2876
+ * @see {@link https://github.com/TransactionAuthorizationProtocol/TAIPs/blob/main/TAIPs/taip-7.md | TAIP-7: Policies}
2877
+ * @see {@link https://github.com/TransactionAuthorizationProtocol/TAIPs/blob/main/TAIPs/taip-9.md | TAIP-9: Proof of Relationship}
2878
+ */
2879
+ declare interface RequireRelationshipConfirmation extends Policy<"RequireRelationshipConfirmation"> {
2880
+ /**
2881
+ * Required nonce for signature
2882
+ * Prevents replay attacks
2883
+ */
2884
+ nonce: string;
2885
+ }
2886
+
1696
2887
  /**
1697
2888
  * Represents a resize request component message. This is handled by the library.
1698
2889
  * @internal
@@ -1844,6 +3035,131 @@ export declare enum Status {
1844
3035
  BANNED = "banned"
1845
3036
  }
1846
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
+
1847
3163
  /**
1848
3164
  * The theme of the Notabene SDK
1849
3165
  * @public
@@ -1972,6 +3288,7 @@ export declare interface TransactionOptions {
1972
3288
  microTransfer?: {
1973
3289
  destination: BlockchainAddress;
1974
3290
  amountSubunits: string;
3291
+ requireHash?: boolean;
1975
3292
  };
1976
3293
  fallbacks?: ProofTypes[];
1977
3294
  deminimis?: ThresholdOptions;
@@ -2052,6 +3369,43 @@ declare type TransliterationMethodCode = 'arab' | 'aran' | 'armn' | 'cyrl' | 'de
2052
3369
 
2053
3370
  */ export declare type TravelAddress = `ta${string}`;
2054
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
+
2055
3409
  /**
2056
3410
  * Message type for updating component state and configuration from host application
2057
3411
  *
@@ -2079,6 +3433,7 @@ export declare type UpdateValue<T, O> = {
2079
3433
 
2080
3434
  /**
2081
3435
  * A Uniform Resource Identifier
3436
+ * @remarks This type will be narrowed to `` `${string}:${string}` `` in the next major release.
2082
3437
  * @public
2083
3438
  */
2084
3439
  declare type URI = string;