@notabene/javascript-sdk 2.0.0-next.9 → 2.0.1

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.
package/src/ivms/types.ts CHANGED
@@ -1,123 +1,120 @@
1
1
  /**
2
- * 5.3.8
3
- * NaturalPersonNameTypeCode
2
+ * ISO-3166 Alpha-2 country code
3
+ * @example "US" for United States, "GB" for United Kingdom
4
+ * @public
5
+ */
6
+ export type ISOCountryCode = string;
7
+
8
+ /**
9
+ * A point in time, represented as a day within the calendar year. Compliant with ISO 8601.
10
+ * Format: YYYY-MM-DD
11
+ * @example "2023-05-15" for May 15, 2023
12
+ * @public
13
+ */
14
+ export type ISODate = `${number}-${number}-${number}`;
15
+
16
+ /**
17
+ * Natural Person Name Type Code
18
+ * Specifies the type of name for a natural person
4
19
  *
5
- * `ALIA` Alias name - A name other than the legal name by which a natural person is also known.
6
- * `BIRT` Name at birth - The name given to a natural person at birth.
7
- * `MAID` Maiden name - The original name of a natural person who has changed their name after marriage.
8
- * `LEGL` Legal name - The name that identifies a natural person for legal, official or administrative purposes.
9
- * `MISC` Unspecified - A name by which a natural person may be known but which cannot otherwise be categorized or the category of which the sender is unable to determine.
20
+ * @public
10
21
  */
11
22
  export type NaturalPersonNameTypeCode =
12
- | 'ALIA'
13
- | 'BIRT'
14
- | 'MAID'
15
- | 'LEGL'
16
- | 'MISC';
23
+ | 'ALIA' // Alias name: A name other than the legal name by which a natural person is also known
24
+ | 'BIRT' // Name at birth: The name given to a natural person at birth
25
+ | 'MAID' // Maiden name: The original name of a natural person who has changed their name after marriage
26
+ | 'LEGL' // Legal name: The name that identifies a natural person for legal, official or administrative purposes
27
+ | 'MISC'; // Unspecified: A name by which a natural person may be known but which cannot otherwise be categorized
17
28
 
18
29
  /**
19
- * 5.3.9
20
- * LegalPersonNameTypeCode
21
- *
22
- * `LEGL` Legal name - Official name under which an organisation is registered.
23
- * `SHRT` Short name - Specifies the short name of the organisation.
24
- * `TRAD` Trading name - Name used by a business for commercial purposes, although its registered legal name, used for contracts and other formal situations, may be another.
30
+ * Legal Person Name Type Code
31
+ * Specifies the type of name for a legal person
32
+ * @public
25
33
  */
26
- export type LegalPersonNameTypeCode = 'LEGL' | 'SHRT' | 'TRAD';
34
+ export type LegalPersonNameTypeCode =
35
+ | 'LEGL' // Legal name: Official name under which an organisation is registered
36
+ | 'SHRT' // Short name: Specifies the short name of the organisation
37
+ | 'TRAD'; // Trading name: Name used by a business for commercial purposes
27
38
 
28
39
  /**
29
- * 5.3.11
30
- * AddressTypeCode
31
- *
32
- * `HOME` Residential - Address is the home address.
33
- * `BIZZ` Business - Address is the business address.
34
- * `GEOG` Geographic - Address is the unspecified physical (geographical) address suitable for identification of the natural or legal person.
40
+ * Address Type Code
41
+ * Specifies the type of address
42
+ * @public
35
43
  */
36
- export type AddressTypeCode = 'HOME' | 'BIZZ' | 'GEOG';
44
+ export type AddressTypeCode =
45
+ | 'HOME' // Residential: Address is the home address
46
+ | 'BIZZ' // Business: Address is the business address
47
+ | 'GEOG'; // Geographic: Address is the unspecified physical (geographical) address
37
48
 
38
49
  /**
39
- * 5.3.14
40
- * NationalIdentifierTypeCode
41
- *
42
- * `ARNU` Alien registration number - Number assigned by a government agency to identify foreign nationals.
43
- * `CCPT` Passport number - Number assigned by a passport authority.
44
- * `RAID` Registration authority identifier - Identifier of a legal entity as maintained by a registration authority.
45
- * `DRLC` Driver license number - Number assigned to a driver's license.
46
- * `FIIN` Foreign investment identity number - Number assigned to a foreign investor (other than the alien number).
47
- * `TXID` Tax identification number - Number assigned by a tax authority to an entity.
48
- * `SOCS` Social security number - Number assigned by a social security agency.
49
- * `IDCD` Identity card number - Number assigned by a national authority to an identity card.
50
- * `LEIX` Legal Entity Identifier - Legal Entity Identifier (LEI) assigned in accordance with ISO 17442 11 .
51
- * `MISC` Unspecified - A national identifier which may be known but which cannot otherwise be categorized or the category of which the sender is unable to determine.
50
+ * National Identifier Type Code
51
+ * Specifies the type of national identifier
52
+ * @public
52
53
  */
53
54
  export type NationalIdentifierTypeCode =
54
- | 'ARNU'
55
- | 'CCPT'
56
- | 'RAID'
57
- | 'DRLC'
58
- | 'FIIN'
59
- | 'TXID'
60
- | 'SOCS'
61
- | 'IDCD'
62
- | 'LEIX'
63
- | 'MISC';
55
+ | 'ARNU' // Alien registration number
56
+ | 'CCPT' // Passport number
57
+ | 'RAID' // Registration authority identifier
58
+ | 'DRLC' // Driver license number
59
+ | 'FIIN' // Foreign investment identity number
60
+ | 'TXID' // Tax identification number
61
+ | 'SOCS' // Social security number
62
+ | 'IDCD' // Identity card number
63
+ | 'LEIX' // Legal Entity Identifier
64
+ | 'MISC'; // Unspecified
64
65
 
65
66
  /**
66
- * 5.3.16
67
- * TransliterationMethodCode
68
- *
69
- * `arab` Arabic (Arabic language) - ISO 233-2:1993
70
- * `aran` Arabic (Persian language) - ISO 233-3:1999
71
- * `armn` Armenian - ISO 9985:1996
72
- * `cyrl` Cyrillic - ISO 9:1995
73
- * `deva` Devanagari & related Indic - ISO 15919:2001
74
- * `geor` Georgian - ISO 9984:1996
75
- * `grek` Greek - ISO 843:1997
76
- * `hani` Han (Hanzi, Kanji, Hanja) - ISO 7098:2015
77
- * `hebr` Hebrew - ISO 259-2:1994
78
- * `kana` Kana - ISO 3602:1989
79
- * `kore` Korean - Revised Romanization of Korean
80
- * `thai` Thai - ISO 11940-2:2007
81
- * `othr` Script other than those listed above - Unspecified
67
+ * Transliteration Method Code
68
+ * Specifies the method used to transliterate text
69
+ * @public
82
70
  */
83
71
  export type TransliterationMethodCode =
84
- | 'arab'
85
- | 'aran'
86
- | 'armn'
87
- | 'cyrl'
88
- | 'deva'
89
- | 'geor'
90
- | 'grek'
91
- | 'hani'
92
- | 'hebr'
93
- | 'kana'
94
- | 'kore'
95
- | 'thai'
96
- | 'othr';
72
+ | 'arab' // Arabic (Arabic language) - ISO 233-2:1993
73
+ | 'aran' // Arabic (Persian language) - ISO 233-3:1999
74
+ | 'armn' // Armenian - ISO 9985:1996
75
+ | 'cyrl' // Cyrillic - ISO 9:1995
76
+ | 'deva' // Devanagari & related Indic - ISO 15919:2001
77
+ | 'geor' // Georgian - ISO 9984:1996
78
+ | 'grek' // Greek - ISO 843:1997
79
+ | 'hani' // Han (Hanzi, Kanji, Hanja) - ISO 7098:2015
80
+ | 'hebr' // Hebrew - ISO 259-2:1994
81
+ | 'kana' // Kana - ISO 3602:1989
82
+ | 'kore' // Korean - Revised Romanization of Korean
83
+ | 'thai' // Thai - ISO 11940-2:2007
84
+ | 'othr'; // Script other than those listed above - Unspecified
97
85
 
98
86
  /**
99
- * 5.2.8
100
- * NationalIdentification
87
+ * National Identification
88
+ * Represents a national identifier for a person or entity
89
+ * @public
101
90
  */
102
91
  export type NationalIdentification = {
103
- nationalIdentifier?: string; //Max35Text
92
+ /** National identifier (max 35 characters) */
93
+ nationalIdentifier?: string;
94
+ /** Type of national identifier */
104
95
  nationalIdentifierType?: NationalIdentifierTypeCode;
105
- countryOfIssue?: string; //CountryCode (^[A-Z]{2}$)
106
- registrationAuthority?: string; //RegistrationAuthority (^RA([0-9]{6})$)
96
+ /** Country that issued the national identifier */
97
+ countryOfIssue?: ISOCountryCode;
98
+ /** Registration authority (format: RA followed by 6 digits) */
99
+ registrationAuthority?: string;
107
100
  };
108
101
 
109
102
  /**
110
- * 5.2.7
111
- * DateAndPlaceOfBirth
103
+ * Date and Place of Birth
104
+ * Represents the date and place of birth for a natural person
105
+ * @public
112
106
  */
113
107
  export type DateAndPlaceOfBirth = {
114
- dateOfBirth?: string; //YYYY-MM-DD
115
- placeOfBirth?: string; //Max70Text
108
+ /** Date of birth in ISO 8601 format (YYYY-MM-DD) */
109
+ dateOfBirth?: ISODate;
110
+ /** Place of birth (max 70 characters) */
111
+ placeOfBirth?: string;
116
112
  };
117
113
 
118
114
  /**
119
- * 5.2.6
120
115
  * Address
116
+ * Represents a physical address
117
+ * @public
121
118
  */
122
119
  export type Address = {
123
120
  /** Identifies the nature of the address. */
@@ -151,162 +148,202 @@ export type Address = {
151
148
  /** Information that locates and identifies a specific address, presented in free format text. */
152
149
  addressLine?: string[];
153
150
  /** Nation with its own government. */
154
- country: string;
151
+ country: ISOCountryCode;
155
152
  };
156
153
 
157
154
  /**
158
- * 5.2.5
159
- * LocalNaturalPersonNameID
155
+ * Local Natural Person Name ID
156
+ * Represents a local name identifier for a natural person
157
+ * @public
160
158
  */
161
159
  export type LocalNaturalPersonNameID = {
162
- primaryIdentifier?: string; //LocalMax100Text
163
- secondaryIdentifier?: string; //LocalMax100Text
160
+ /** Primary identifier, maximum 100 characters in local format */
161
+ primaryIdentifier?: string;
162
+ /** Secondary identifier, maximum 100 characters in local format */
163
+ secondaryIdentifier?: string;
164
+ /** Type of name identifier */
164
165
  nameIdentifierType?: NaturalPersonNameTypeCode;
165
166
  };
166
167
 
167
168
  /**
168
- * 5.2.4
169
- * NaturalPersonNameID
169
+ * Natural Person Name ID
170
+ * Represents a name identifier for a natural person
171
+ * @public
170
172
  */
171
173
  export type NaturalPersonNameID = {
172
- primaryIdentifier?: string; //Max100Text
173
- secondaryIdentifier?: string; //Max100Text
174
+ /** Primary identifier, maximum 100 characters */
175
+ primaryIdentifier?: string;
176
+ /** Secondary identifier, maximum 100 characters */
177
+ secondaryIdentifier?: string;
178
+ /** Type of name identifier */
174
179
  nameIdentifierType?: NaturalPersonNameTypeCode;
175
180
  };
176
181
 
177
182
  /**
178
- * 5.2.3
179
- * NaturalPersonName
183
+ * Natural Person Name
184
+ * Represents the full name structure for a natural person
185
+ * @public
180
186
  */
181
187
  export type NaturalPersonName = {
188
+ /** Array of name identifiers */
182
189
  nameIdentifier?: NaturalPersonNameID[];
190
+ /** Array of local name identifiers */
183
191
  localNameIdentifier?: LocalNaturalPersonNameID[];
192
+ /** Array of phonetic name identifiers */
184
193
  phoneticNameIdentifier?: LocalNaturalPersonNameID[];
185
194
  };
186
195
 
187
196
  /**
188
- * 5.2.2
189
- * NaturalPerson
197
+ * Natural Person
198
+ * Represents a natural person with all associated information
199
+ * @public
190
200
  */
191
201
  export type NaturalPerson = {
192
- /** The distinct words used as identification for an individual. */
202
+ /** The distinct words used as identification for an individual */
193
203
  name: NaturalPersonName;
194
- /** The particulars of a location at which a person may be communicated with. */
204
+ /** The particulars of a location at which a person may be communicated with */
195
205
  geographicAddress?: Address[];
196
- /** A distinct identifier used by governments to uniquely identify a natural person. */
206
+ /** A distinct identifier used by governments to uniquely identify a natural person */
197
207
  nationalIdentification?: NationalIdentification;
198
- /** A distinct identifier that uniquely identifies the person to the institution in context. */
208
+ /** A distinct identifier that uniquely identifies the person to the institution in context */
199
209
  customerIdentification?: string;
200
- /** Date and place of birth of a person. */
210
+ /** Date and place of birth of a person */
201
211
  dateAndPlaceOfBirth?: DateAndPlaceOfBirth;
202
- /** Country in which a person resides (the place of a person's home). */
203
- countryOfResidence?: string;
212
+ /** Country in which a person resides (the place of a person's home) */
213
+ countryOfResidence?: ISOCountryCode;
204
214
  };
205
215
 
206
216
  /**
207
- * 5.2.12
208
- * LocalLegalPersonNameID
217
+ * Local Legal Person Name ID
218
+ * Represents a local name identifier for a legal person
219
+ * @public
209
220
  */
210
221
  export type LocalLegalPersonNameID = {
211
- legalPersonName?: string; //LocalMax100Text
222
+ /** Name of the legal person, maximum 100 characters in local format */
223
+ legalPersonName?: string;
224
+ /** Type of legal person name identifier */
212
225
  legalPersonNameIdentifierType?: LegalPersonNameTypeCode;
213
226
  };
214
227
 
215
228
  /**
216
- * 5.2.11
217
- * LegalPersonNameID
229
+ * Legal Person Name ID
230
+ * Represents a name identifier for a legal person
231
+ * @public
218
232
  */
219
233
  export type LegalPersonNameID = {
220
- /** Name by which the legal person is known. */
234
+ /** Name by which the legal person is known */
221
235
  legalPersonName: string;
222
- /** The nature of the name specified. */
236
+ /** The nature of the name specified */
223
237
  legalPersonNameIdentifierType: LegalPersonNameTypeCode;
224
238
  };
225
239
 
226
240
  /**
227
- * 5.2.10
228
- * LegalPersonName
241
+ * Legal Person Name
242
+ * Represents the full name structure for a legal person
243
+ * @public
229
244
  */
230
245
  export type LegalPersonName = {
246
+ /** Array of name identifiers */
231
247
  nameIdentifier: LegalPersonNameID[];
248
+ /** Array of local name identifiers */
232
249
  localNameIdentifier?: LocalLegalPersonNameID[];
250
+ /** Array of phonetic name identifiers */
233
251
  phoneticNameIdentifier?: LocalLegalPersonNameID[];
234
252
  };
235
253
 
236
254
  /**
237
- * 5.2.9
238
- * LegalPerson
255
+ * Legal Person
256
+ * Represents a legal person with all associated information
257
+ * @public
239
258
  */
240
259
  export type LegalPerson = {
241
- /** The name of the legal person. */
260
+ /** The name of the legal person */
242
261
  name: LegalPersonName;
243
- /** The address of the legal person. */
262
+ /** The address of the legal person */
244
263
  geographicAddress?: Address[];
245
- /** A distinct identifier that uniquely identifies the person to the institution in context. */
264
+ /** A distinct identifier that uniquely identifies the person to the institution in context */
246
265
  customerNumber?: string;
247
- /** A distinct identifier used by governments to uniquely identify a legal person. */
266
+ /** A distinct identifier used by governments to uniquely identify a legal person */
248
267
  nationalIdentification?: NationalIdentification;
249
- /** The country in which the legal person is registered. */
250
- countryOfRegistration?: string;
268
+ /** The country in which the legal person is registered */
269
+ countryOfRegistration?: ISOCountryCode;
251
270
  };
252
271
 
253
272
  /**
254
- * 5.2.1
255
273
  * Person
274
+ * Represents either a natural person or a legal person
275
+ * @public
256
276
  */
257
277
  export type Person = {
278
+ /** Natural person information */
258
279
  naturalPerson?: NaturalPerson;
280
+ /** Legal person information */
259
281
  legalPerson?: LegalPerson;
260
282
  };
261
283
 
262
284
  /**
263
- * 5.2.13
264
- * IntermediaryVASP
285
+ * Intermediary VASP
286
+ * Represents an intermediary Virtual Asset Service Provider
287
+ * @public
265
288
  */
266
289
  export type IntermediaryVASP = {
290
+ /** The intermediary VASP information */
267
291
  intermediaryVASP?: Person;
292
+ /** The sequence number of this VASP in the transfer path */
268
293
  sequence?: number;
269
294
  };
270
295
 
271
296
  /**
272
- * 6.2
273
- * The originator is defined in Section 1.1 as the account holder who allows the VA transfer from that account or, where there is no account, the natural or legal person that places the order with the originating VASP to perform the VA transfer.
297
+ * Originator
298
+ * Represents the account holder who initiates the VA transfer
299
+ * @public
274
300
  */
275
301
  export type Originator = {
302
+ /** Array of persons associated with the originator */
276
303
  originatorPersons?: Person[];
277
- accountNumber?: string[]; //Max100Text
304
+ /** Array of account numbers, maximum 100 characters each */
305
+ accountNumber?: string[];
278
306
  };
279
307
 
280
308
  /**
281
- * 6.3
282
- * The beneficiary is defined in Section 1.1 as the natural or legal person or legal arrangement who is identified by the originator as the receiver of the requested VA transfer.
309
+ * Beneficiary
310
+ * Represents the receiver of the requested VA transfer
311
+ * @public
283
312
  */
284
313
  export type Beneficiary = {
314
+ /** Array of persons associated with the beneficiary */
285
315
  beneficiaryPersons?: Person[];
286
- accountNumber?: string[]; //max100
316
+ /** Array of account numbers, maximum 100 characters each */
317
+ accountNumber?: string[];
287
318
  };
288
319
 
289
320
  /**
290
- * 6.4
291
- * The originating VASP is defined in Section 1.1 as the VASP which initiates the VA transfer, and transfers the VA upon receiving the request for a VA transfer on behalf of the originator.
321
+ * Originating VASP
322
+ * Represents the VASP which initiates the VA transfer
323
+ * @public
292
324
  */
293
325
  export type OriginatingVASP = {
326
+ /** The originating VASP information */
294
327
  originatingVASP?: Person;
295
328
  };
296
329
 
297
330
  /**
298
- * 6.5
299
- * The originating VASP is defined in Section 1.1 as the VASP which initiates the VA transfer, and transfers the VA upon receiving the request for a VA transfer on behalf of the originator.
331
+ * Beneficiary VASP
332
+ * Represents the VASP which receives the VA transfer
333
+ * @public
300
334
  */
301
335
  export type BeneficiaryVASP = {
336
+ /** The beneficiary VASP information */
302
337
  beneficiaryVASP?: Person;
303
338
  };
304
339
 
305
340
  /**
306
- * 6.6
307
- * The transfer path refers to the intermediary VASP(s) participating in a serial chain that receive(s) and retransmit(s) a VA transfer on behalf of the originating VASP and the beneficiary VASP, or another intermediary VASP, together with their corresponding sequence number.
341
+ * Transfer Path
342
+ * Represents the path of intermediary VASPs in a transfer
343
+ * @public
308
344
  */
309
345
  export type TransferPath = {
346
+ /** Array of intermediary VASPs involved in the transfer */
310
347
  transferPath?: IntermediaryVASP[];
311
348
  };
312
349
 
package/src/locales.ts ADDED
@@ -0,0 +1,48 @@
1
+ export const languages = {
2
+ ar: 'العربية (Arabic)',
3
+ bg: 'български (Bulgarian)',
4
+ ca: 'Català (Catalan)',
5
+ cs: 'Čeština (Czech)',
6
+ da: 'Dansk (Danish)',
7
+ de: 'Deutsch (German)',
8
+ el: 'Ελληνικά (Greek)',
9
+ en: 'English (English)',
10
+ es: 'Español (Spanish)',
11
+ et: 'Eesti (Estonian)',
12
+ fa: 'فارسی (Persian)',
13
+ fi: 'Suomi (Finnish)',
14
+ fr: 'Français (French)',
15
+ he: 'עברית (Hebrew)',
16
+ hr: 'Hrvatski (Croatian)',
17
+ hu: 'Magyar (Hungarian)',
18
+ hy: 'Հայերեն (Armenian)',
19
+ id: 'Bahasa Indonesia (Indonesian)',
20
+ is: 'Íslenska (Icelandic)',
21
+ it: 'Italiano (Italian)',
22
+ ja: '日本語 (Japanese)',
23
+ ka: 'ქართული (Georgian)',
24
+ ko: '한국어 (Korean)',
25
+ lt: 'Lietuvių (Lithuanian)',
26
+ lv: 'Latviešu (Latvian)',
27
+ mn: 'Монгол (Mongolian)',
28
+ ms: 'Bahasa Melayu (Malay)',
29
+ mt: 'Malti (Maltese)',
30
+ nl: 'Nederlands (Dutch)',
31
+ no: 'Norsk (Norwegian)',
32
+ pl: 'Polski (Polish)',
33
+ pt: 'Português (Portuguese)',
34
+ ro: 'Română (Romanian)',
35
+ ru: 'Русский (Russian)',
36
+ sk: 'Slovenčina (Slovak)',
37
+ sl: 'Slovenščina (Slovenian)',
38
+ sr: 'Српски (Serbian)',
39
+ sv: 'Svenska (Swedish)',
40
+ sw: 'Kiswahili (Swahili)',
41
+ th: 'ไทย (Thai)',
42
+ tl: 'Tagalog (Tagalog)',
43
+ tr: 'Türkçe (Turkish)',
44
+ uk: 'Українська (Ukrainian)',
45
+ vi: 'Tiếng Việt (Vietnamese)',
46
+ 'zh-CN': '中文 (Chinese)',
47
+ 'zh-TW': '中文 (Chinese)',
48
+ };