@fill-easy/api 1.0.5 → 1.0.7
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/README.md +8 -3
- package/dist/openapi.d.ts +3043 -0
- package/package.json +9 -2
|
@@ -0,0 +1,3043 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was auto-generated by openapi-typescript.
|
|
3
|
+
* Do not make direct changes to the file.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export interface paths {
|
|
7
|
+
"/frontend/wrapper": {
|
|
8
|
+
parameters: {
|
|
9
|
+
query?: never;
|
|
10
|
+
header?: never;
|
|
11
|
+
path?: never;
|
|
12
|
+
cookie?: never;
|
|
13
|
+
};
|
|
14
|
+
get?: never;
|
|
15
|
+
put?: never;
|
|
16
|
+
/** Frontend Wrapper */
|
|
17
|
+
post: operations["frontendWrapper"];
|
|
18
|
+
delete?: never;
|
|
19
|
+
options?: never;
|
|
20
|
+
head?: never;
|
|
21
|
+
patch?: never;
|
|
22
|
+
trace?: never;
|
|
23
|
+
};
|
|
24
|
+
"/iamsmart/v2/request/auth": {
|
|
25
|
+
parameters: {
|
|
26
|
+
query?: never;
|
|
27
|
+
header?: never;
|
|
28
|
+
path?: never;
|
|
29
|
+
cookie?: never;
|
|
30
|
+
};
|
|
31
|
+
get?: never;
|
|
32
|
+
put?: never;
|
|
33
|
+
/**
|
|
34
|
+
* Authentication
|
|
35
|
+
* @description Initialize user authentication with iAM Smart eID service.
|
|
36
|
+
*
|
|
37
|
+
* **Browser Flow:**
|
|
38
|
+
* Returns a TempAuthToken (store for subsequent calls) and a URL to iAM Smart's QR page. User scans the QR code with their iAM Smart mobile app, then the browser redirects to your specified redirect URL.
|
|
39
|
+
*
|
|
40
|
+
* **Mobile App Flow:**
|
|
41
|
+
* Returns a universal link to launch the iAM Smart authentication app. After authentication, iAM Smart returns an auth_code via GET request to your redirect URI. Your mobile app must handle this redirect URI and pass the auth_code to the token endpoint.
|
|
42
|
+
*
|
|
43
|
+
* **Redirect URI Requirements:**
|
|
44
|
+
* - Browser: Must be an HTTPS URL registered with iAM Smart - Mobile: Must be a universal link or custom scheme (e.g., `your-app://auth`)
|
|
45
|
+
* that your mobile app can handle
|
|
46
|
+
*/
|
|
47
|
+
post: operations["iamSmartAuthentication"];
|
|
48
|
+
delete?: never;
|
|
49
|
+
options?: never;
|
|
50
|
+
head?: never;
|
|
51
|
+
patch?: never;
|
|
52
|
+
trace?: never;
|
|
53
|
+
};
|
|
54
|
+
"/iamsmart/v2/request/formfilling": {
|
|
55
|
+
parameters: {
|
|
56
|
+
query?: never;
|
|
57
|
+
header?: never;
|
|
58
|
+
path?: never;
|
|
59
|
+
cookie?: never;
|
|
60
|
+
};
|
|
61
|
+
get?: never;
|
|
62
|
+
put?: never;
|
|
63
|
+
/**
|
|
64
|
+
* Form Filling
|
|
65
|
+
* @description Request form filling data from authenticated user.
|
|
66
|
+
*
|
|
67
|
+
* Pass the form details, source, and AuthToken (from Authentication endpoint) to initialize the form filling request.
|
|
68
|
+
*
|
|
69
|
+
* Returns a temporary token to be used with Poll Data endpoint to retrieve the requested form filling details.
|
|
70
|
+
*
|
|
71
|
+
* **Note on Profile Fields:**
|
|
72
|
+
* If you request overlapping fields in both `profileFields` and `formData.formFields`, the `profileFields` takes precedence. You must display a consent page per iAM Smart UI/UX requirements when using profile fields.
|
|
73
|
+
*
|
|
74
|
+
* **Note on Form Fields:**
|
|
75
|
+
* The `formFields` array specifies which detail fields to request from the user. All requested fields will be displayed to the user in their iAM Smart app for approval.
|
|
76
|
+
*/
|
|
77
|
+
post: operations["iamSmartFormFilling"];
|
|
78
|
+
delete?: never;
|
|
79
|
+
options?: never;
|
|
80
|
+
head?: never;
|
|
81
|
+
patch?: never;
|
|
82
|
+
trace?: never;
|
|
83
|
+
};
|
|
84
|
+
"/iamsmart/v2/request/signing": {
|
|
85
|
+
parameters: {
|
|
86
|
+
query?: never;
|
|
87
|
+
header?: never;
|
|
88
|
+
path?: never;
|
|
89
|
+
cookie?: never;
|
|
90
|
+
};
|
|
91
|
+
get?: never;
|
|
92
|
+
put?: never;
|
|
93
|
+
/**
|
|
94
|
+
* Signing
|
|
95
|
+
* @description Request digital signature for a document hash using iAM Smart.
|
|
96
|
+
*
|
|
97
|
+
* Pass the document details (name and SHA-256 hash), source platform, and the authenticated user token to initialize the signing request.
|
|
98
|
+
*
|
|
99
|
+
* Returns a temporary token and HKIC check digits. Use the token with the Poll Data endpoint to retrieve the signature results after the user approves the signing request in their iAM Smart app.
|
|
100
|
+
*
|
|
101
|
+
* **Hash Requirements:**
|
|
102
|
+
* - Must be a SHA-256 hash of the document content - Must be exactly 64 hexadecimal characters - Use SHA256withRSA signature algorithm (default)
|
|
103
|
+
*/
|
|
104
|
+
post: operations["iamSmartHashSigning"];
|
|
105
|
+
delete?: never;
|
|
106
|
+
options?: never;
|
|
107
|
+
head?: never;
|
|
108
|
+
patch?: never;
|
|
109
|
+
trace?: never;
|
|
110
|
+
};
|
|
111
|
+
"/iamsmart/v2/request/pdf-signing": {
|
|
112
|
+
parameters: {
|
|
113
|
+
query?: never;
|
|
114
|
+
header?: never;
|
|
115
|
+
path?: never;
|
|
116
|
+
cookie?: never;
|
|
117
|
+
};
|
|
118
|
+
get?: never;
|
|
119
|
+
put?: never;
|
|
120
|
+
/**
|
|
121
|
+
* PDF Signing
|
|
122
|
+
* @description Request PDF document signing with embedded digital signature using iAM Smart.
|
|
123
|
+
*
|
|
124
|
+
* Pass the PDF document details (name and base64-encoded hash), service description, and the authenticated user token to initialize the PDF signing request.
|
|
125
|
+
*
|
|
126
|
+
* Returns a temporary token and HKIC check digits. Use the token with the Poll Data endpoint to retrieve the signed PDF after the user approves the signing request in their iAM Smart app.
|
|
127
|
+
*
|
|
128
|
+
* **File Hash Requirements:**
|
|
129
|
+
* - Must be a base64-encoded hash of the PDF file - The signed PDF will be returned with the signature embedded - PDF signature will be visible in PDF readers that support digital signatures
|
|
130
|
+
*/
|
|
131
|
+
post: operations["iamSmartPdfSigning"];
|
|
132
|
+
delete?: never;
|
|
133
|
+
options?: never;
|
|
134
|
+
head?: never;
|
|
135
|
+
patch?: never;
|
|
136
|
+
trace?: never;
|
|
137
|
+
};
|
|
138
|
+
"/iamsmart/v2/request/reauth": {
|
|
139
|
+
parameters: {
|
|
140
|
+
query?: never;
|
|
141
|
+
header?: never;
|
|
142
|
+
path?: never;
|
|
143
|
+
cookie?: never;
|
|
144
|
+
};
|
|
145
|
+
get?: never;
|
|
146
|
+
put?: never;
|
|
147
|
+
/**
|
|
148
|
+
* Re-authentication
|
|
149
|
+
* @description Re-authenticate a previously authenticated user to verify their identity again.
|
|
150
|
+
*
|
|
151
|
+
* Pass the authenticated user token and source platform to initialize the re-authentication request. This is useful for high-security operations that require fresh user verification.
|
|
152
|
+
*
|
|
153
|
+
* Returns a temporary token. Use this token with the Poll Data endpoint to retrieve the re-authentication results after the user approves the request in their iAM Smart app.
|
|
154
|
+
*
|
|
155
|
+
* **Use Cases:**
|
|
156
|
+
* - Verify user identity before sensitive operations - Refresh user authentication for extended sessions - Comply with security policies requiring periodic re-verification
|
|
157
|
+
*/
|
|
158
|
+
post: operations["iamSmartReauthentication"];
|
|
159
|
+
delete?: never;
|
|
160
|
+
options?: never;
|
|
161
|
+
head?: never;
|
|
162
|
+
patch?: never;
|
|
163
|
+
trace?: never;
|
|
164
|
+
};
|
|
165
|
+
"/iamsmart/v2/request/ccic": {
|
|
166
|
+
parameters: {
|
|
167
|
+
query?: never;
|
|
168
|
+
header?: never;
|
|
169
|
+
path?: never;
|
|
170
|
+
cookie?: never;
|
|
171
|
+
};
|
|
172
|
+
get?: never;
|
|
173
|
+
put?: never;
|
|
174
|
+
/** CCIC */
|
|
175
|
+
post: operations["ccic"];
|
|
176
|
+
delete?: never;
|
|
177
|
+
options?: never;
|
|
178
|
+
head?: never;
|
|
179
|
+
patch?: never;
|
|
180
|
+
trace?: never;
|
|
181
|
+
};
|
|
182
|
+
"/iamsmart/v2/request/formfilling-anonymous": {
|
|
183
|
+
parameters: {
|
|
184
|
+
query?: never;
|
|
185
|
+
header?: never;
|
|
186
|
+
path?: never;
|
|
187
|
+
cookie?: never;
|
|
188
|
+
};
|
|
189
|
+
get?: never;
|
|
190
|
+
put?: never;
|
|
191
|
+
/**
|
|
192
|
+
* Anonymous Form Filling
|
|
193
|
+
* @description Request form filling data without requiring prior authentication.
|
|
194
|
+
* This endpoint combines authentication and form filling in a single flow. Pass the scope, language, source, redirect URL, and form details to initialize the anonymous form filling request.
|
|
195
|
+
* Returns a token and URL. The URL redirects users to iAM Smart where they can authenticate and approve the form filling request in one step.
|
|
196
|
+
* **Note on Profile Fields:**
|
|
197
|
+
* If you request overlapping fields in both `profileFields` and `formData.formFields`, the `profileFields` takes precedence. You must display a consent page per iAM Smart UI/UX requirements when using profile fields.
|
|
198
|
+
*/
|
|
199
|
+
post: operations["iamSmartAnonFormFilling"];
|
|
200
|
+
delete?: never;
|
|
201
|
+
options?: never;
|
|
202
|
+
head?: never;
|
|
203
|
+
patch?: never;
|
|
204
|
+
trace?: never;
|
|
205
|
+
};
|
|
206
|
+
"/iamsmart/v2/request/signing-anonymous": {
|
|
207
|
+
parameters: {
|
|
208
|
+
query?: never;
|
|
209
|
+
header?: never;
|
|
210
|
+
path?: never;
|
|
211
|
+
cookie?: never;
|
|
212
|
+
};
|
|
213
|
+
get?: never;
|
|
214
|
+
put?: never;
|
|
215
|
+
/**
|
|
216
|
+
* Anonymous Hash Signing
|
|
217
|
+
* @description Request digital signature for a document hash without requiring prior authentication.
|
|
218
|
+
* This endpoint combines authentication and signing in a single flow. Pass the scope, language, source, redirect URL, and document details to initialize the anonymous signing request.
|
|
219
|
+
* Returns a token, URL, and HKIC check digits. The URL redirects users to iAM Smart where they can authenticate and approve the signing request in one step.
|
|
220
|
+
* **Hash Requirements:**
|
|
221
|
+
* - Must be a SHA-256 hash of the document content - Must be exactly 64 hexadecimal characters
|
|
222
|
+
*/
|
|
223
|
+
post: operations["iamSmartAnonHashSigning"];
|
|
224
|
+
delete?: never;
|
|
225
|
+
options?: never;
|
|
226
|
+
head?: never;
|
|
227
|
+
patch?: never;
|
|
228
|
+
trace?: never;
|
|
229
|
+
};
|
|
230
|
+
"/iamsmart/v2/request/pdf-signing-anonymous": {
|
|
231
|
+
parameters: {
|
|
232
|
+
query?: never;
|
|
233
|
+
header?: never;
|
|
234
|
+
path?: never;
|
|
235
|
+
cookie?: never;
|
|
236
|
+
};
|
|
237
|
+
get?: never;
|
|
238
|
+
put?: never;
|
|
239
|
+
/**
|
|
240
|
+
* Anonymous PDF Signing
|
|
241
|
+
* @description Request digital signature for a PDF document without requiring prior authentication. This endpoint enables anonymous PDF signing where users can sign documents using their iAM Smart identity without a separate authentication step.
|
|
242
|
+
* The response includes a URL to the iAM Smart QR code page and a temporary token. Users scan the QR code with their iAM Smart mobile app (for desktop) or are redirected to the iAM Smart app (for mobile). After signing, users are redirected to the specified redirect URL.
|
|
243
|
+
*
|
|
244
|
+
* **Use the temporary token** with the polling endpoint to retrieve the signed document once the user completes the signing process.
|
|
245
|
+
*/
|
|
246
|
+
post: operations["iamSmartAnonPdfSigning"];
|
|
247
|
+
delete?: never;
|
|
248
|
+
options?: never;
|
|
249
|
+
head?: never;
|
|
250
|
+
patch?: never;
|
|
251
|
+
trace?: never;
|
|
252
|
+
};
|
|
253
|
+
"/iamsmart/v2/callback/gov/{service}": {
|
|
254
|
+
parameters: {
|
|
255
|
+
query?: never;
|
|
256
|
+
header?: never;
|
|
257
|
+
path: {
|
|
258
|
+
/**
|
|
259
|
+
* @description The iAM Smart service type
|
|
260
|
+
* @example auth
|
|
261
|
+
*/
|
|
262
|
+
service: components["parameters"]["IamSmartServicePath"];
|
|
263
|
+
};
|
|
264
|
+
cookie?: never;
|
|
265
|
+
};
|
|
266
|
+
get?: never;
|
|
267
|
+
put?: never;
|
|
268
|
+
/**
|
|
269
|
+
* iAM Smart Government Callback
|
|
270
|
+
* @description This endpoint is called by iAM Smart government servers to deliver the encrypted results of user authentication, form filling, or signing requests. The content is encrypted and must be decrypted using the CEK (Content Encryption Key).
|
|
271
|
+
*/
|
|
272
|
+
post: operations["govCallback"];
|
|
273
|
+
delete?: never;
|
|
274
|
+
options?: never;
|
|
275
|
+
head?: never;
|
|
276
|
+
patch?: never;
|
|
277
|
+
trace?: never;
|
|
278
|
+
};
|
|
279
|
+
"/iamsmart/v2/redirect/user/{service}": {
|
|
280
|
+
parameters: {
|
|
281
|
+
query?: never;
|
|
282
|
+
header?: never;
|
|
283
|
+
path: {
|
|
284
|
+
/**
|
|
285
|
+
* @description The iAM Smart service type
|
|
286
|
+
* @example auth
|
|
287
|
+
*/
|
|
288
|
+
service: components["parameters"]["IamSmartServicePath"];
|
|
289
|
+
};
|
|
290
|
+
cookie?: never;
|
|
291
|
+
};
|
|
292
|
+
/**
|
|
293
|
+
* Redirect
|
|
294
|
+
* @description iAM Smart redirects the user to this endpoint after completing the authentication or service request flow. It processes the authorization code or error from iAM Smart and again redirects to the client's specified redirect URL.
|
|
295
|
+
*/
|
|
296
|
+
get: operations["iamSmartRedirect"];
|
|
297
|
+
put?: never;
|
|
298
|
+
post?: never;
|
|
299
|
+
delete?: never;
|
|
300
|
+
options?: never;
|
|
301
|
+
head?: never;
|
|
302
|
+
patch?: never;
|
|
303
|
+
trace?: never;
|
|
304
|
+
};
|
|
305
|
+
"/iamsmart/v2/callback/client": {
|
|
306
|
+
parameters: {
|
|
307
|
+
query?: never;
|
|
308
|
+
header?: never;
|
|
309
|
+
path?: never;
|
|
310
|
+
cookie?: never;
|
|
311
|
+
};
|
|
312
|
+
get?: never;
|
|
313
|
+
put?: never;
|
|
314
|
+
/**
|
|
315
|
+
* Poll Data
|
|
316
|
+
* @description Used for all iAM Smart services to poll for final results after user action.
|
|
317
|
+
*
|
|
318
|
+
* Short poll this endpoint, passing in the `token` (from any iAM Smart endpoint) to obtain the results.
|
|
319
|
+
*
|
|
320
|
+
* The response's `token` is a JWT or JWE depending if there's sensitive personal data. You should handle them like so:
|
|
321
|
+
*
|
|
322
|
+
* - `JWT` verify\* token
|
|
323
|
+
*
|
|
324
|
+
* - `JWE` decrypt using the private keys that Fill Easy has previously provided.
|
|
325
|
+
*
|
|
326
|
+
* Please note that the data result is returned only once and is deleted immediately.
|
|
327
|
+
*
|
|
328
|
+
* \*you can try using online decoder like [https://jwt.io/](https://jwt.io/)
|
|
329
|
+
*/
|
|
330
|
+
post: operations["pollData"];
|
|
331
|
+
delete?: never;
|
|
332
|
+
options?: never;
|
|
333
|
+
head?: never;
|
|
334
|
+
patch?: never;
|
|
335
|
+
trace?: never;
|
|
336
|
+
};
|
|
337
|
+
"/sgid/request/qr": {
|
|
338
|
+
parameters: {
|
|
339
|
+
query?: never;
|
|
340
|
+
header?: never;
|
|
341
|
+
path?: never;
|
|
342
|
+
cookie?: never;
|
|
343
|
+
};
|
|
344
|
+
get?: never;
|
|
345
|
+
put?: never;
|
|
346
|
+
/**
|
|
347
|
+
* Verify
|
|
348
|
+
* @description Verify
|
|
349
|
+
*/
|
|
350
|
+
post: operations["verify"];
|
|
351
|
+
delete?: never;
|
|
352
|
+
options?: never;
|
|
353
|
+
head?: never;
|
|
354
|
+
patch?: never;
|
|
355
|
+
trace?: never;
|
|
356
|
+
};
|
|
357
|
+
"/sgid/request/auth": {
|
|
358
|
+
parameters: {
|
|
359
|
+
query?: never;
|
|
360
|
+
header?: never;
|
|
361
|
+
path?: never;
|
|
362
|
+
cookie?: never;
|
|
363
|
+
};
|
|
364
|
+
get?: never;
|
|
365
|
+
put?: never;
|
|
366
|
+
/**
|
|
367
|
+
* MyInfo
|
|
368
|
+
* @description **MyInfo** enables relying party to retrieve personal details.
|
|
369
|
+
*/
|
|
370
|
+
post: operations["myinfo"];
|
|
371
|
+
delete?: never;
|
|
372
|
+
options?: never;
|
|
373
|
+
head?: never;
|
|
374
|
+
patch?: never;
|
|
375
|
+
trace?: never;
|
|
376
|
+
};
|
|
377
|
+
"/sgid/request/auth-biz": {
|
|
378
|
+
parameters: {
|
|
379
|
+
query?: never;
|
|
380
|
+
header?: never;
|
|
381
|
+
path?: never;
|
|
382
|
+
cookie?: never;
|
|
383
|
+
};
|
|
384
|
+
get?: never;
|
|
385
|
+
put?: never;
|
|
386
|
+
/**
|
|
387
|
+
* MyInfo Business
|
|
388
|
+
* @description enables business-to-business use case for retrieval of corporate data and applicant's personal data.
|
|
389
|
+
*/
|
|
390
|
+
post: operations["myinfoBusiness"];
|
|
391
|
+
delete?: never;
|
|
392
|
+
options?: never;
|
|
393
|
+
head?: never;
|
|
394
|
+
patch?: never;
|
|
395
|
+
trace?: never;
|
|
396
|
+
};
|
|
397
|
+
"/sgid/redirect": {
|
|
398
|
+
parameters: {
|
|
399
|
+
query?: never;
|
|
400
|
+
header?: never;
|
|
401
|
+
path?: never;
|
|
402
|
+
cookie?: never;
|
|
403
|
+
};
|
|
404
|
+
/**
|
|
405
|
+
* MyInfo Redirect
|
|
406
|
+
* @description This is the URL that `/sgid/request/auth` returns.
|
|
407
|
+
* It stores a cookie on the user's browser and redirects to Singpass authorization site.
|
|
408
|
+
*/
|
|
409
|
+
get: operations["sgidRedirect"];
|
|
410
|
+
put?: never;
|
|
411
|
+
post?: never;
|
|
412
|
+
delete?: never;
|
|
413
|
+
options?: never;
|
|
414
|
+
head?: never;
|
|
415
|
+
patch?: never;
|
|
416
|
+
trace?: never;
|
|
417
|
+
};
|
|
418
|
+
"/sgid/callback/person": {
|
|
419
|
+
parameters: {
|
|
420
|
+
query?: never;
|
|
421
|
+
header?: never;
|
|
422
|
+
path?: never;
|
|
423
|
+
cookie?: never;
|
|
424
|
+
};
|
|
425
|
+
/**
|
|
426
|
+
* MyInfo Callback
|
|
427
|
+
* @description This is the callback URL that Singpass redirects to after user authorizes the data request.
|
|
428
|
+
*/
|
|
429
|
+
get: operations["callbackPerson"];
|
|
430
|
+
put?: never;
|
|
431
|
+
post?: never;
|
|
432
|
+
delete?: never;
|
|
433
|
+
options?: never;
|
|
434
|
+
head?: never;
|
|
435
|
+
patch?: never;
|
|
436
|
+
trace?: never;
|
|
437
|
+
};
|
|
438
|
+
"/sgid/callback/person-biz": {
|
|
439
|
+
parameters: {
|
|
440
|
+
query?: never;
|
|
441
|
+
header?: never;
|
|
442
|
+
path?: never;
|
|
443
|
+
cookie?: never;
|
|
444
|
+
};
|
|
445
|
+
/**
|
|
446
|
+
* Biz Callback
|
|
447
|
+
* @description This is the callback URL that Singpass redirects to after user authorizes the data request.
|
|
448
|
+
*/
|
|
449
|
+
get: operations["callbackPersonBiz"];
|
|
450
|
+
put?: never;
|
|
451
|
+
post?: never;
|
|
452
|
+
delete?: never;
|
|
453
|
+
options?: never;
|
|
454
|
+
head?: never;
|
|
455
|
+
patch?: never;
|
|
456
|
+
trace?: never;
|
|
457
|
+
};
|
|
458
|
+
"/sgid/callback/verify": {
|
|
459
|
+
parameters: {
|
|
460
|
+
query?: never;
|
|
461
|
+
header?: never;
|
|
462
|
+
path?: never;
|
|
463
|
+
cookie?: never;
|
|
464
|
+
};
|
|
465
|
+
/**
|
|
466
|
+
* Verify Callback
|
|
467
|
+
* @description This is the callback URL that Singpass redirects to after user authorizes the data request.
|
|
468
|
+
*/
|
|
469
|
+
get: operations["callbackVerify"];
|
|
470
|
+
put?: never;
|
|
471
|
+
post?: never;
|
|
472
|
+
delete?: never;
|
|
473
|
+
options?: never;
|
|
474
|
+
head?: never;
|
|
475
|
+
patch?: never;
|
|
476
|
+
trace?: never;
|
|
477
|
+
};
|
|
478
|
+
"/sgid/jwks.json": {
|
|
479
|
+
parameters: {
|
|
480
|
+
query?: never;
|
|
481
|
+
header?: never;
|
|
482
|
+
path?: never;
|
|
483
|
+
cookie?: never;
|
|
484
|
+
};
|
|
485
|
+
/** jwks.json */
|
|
486
|
+
get: operations["jwks"];
|
|
487
|
+
put?: never;
|
|
488
|
+
post?: never;
|
|
489
|
+
delete?: never;
|
|
490
|
+
options?: never;
|
|
491
|
+
head?: never;
|
|
492
|
+
patch?: never;
|
|
493
|
+
trace?: never;
|
|
494
|
+
};
|
|
495
|
+
"/sgid/callback/client": {
|
|
496
|
+
parameters: {
|
|
497
|
+
query?: never;
|
|
498
|
+
header?: never;
|
|
499
|
+
path?: never;
|
|
500
|
+
cookie?: never;
|
|
501
|
+
};
|
|
502
|
+
get?: never;
|
|
503
|
+
put?: never;
|
|
504
|
+
/**
|
|
505
|
+
* Poll Data
|
|
506
|
+
* @description That endpoint is used to obtain the requested data.
|
|
507
|
+
*/
|
|
508
|
+
post: operations["singpassPoll"];
|
|
509
|
+
delete?: never;
|
|
510
|
+
options?: never;
|
|
511
|
+
head?: never;
|
|
512
|
+
patch?: never;
|
|
513
|
+
trace?: never;
|
|
514
|
+
};
|
|
515
|
+
"/sino-connect/nfc/callback": {
|
|
516
|
+
parameters: {
|
|
517
|
+
query?: never;
|
|
518
|
+
header?: never;
|
|
519
|
+
path?: never;
|
|
520
|
+
cookie?: never;
|
|
521
|
+
};
|
|
522
|
+
get?: never;
|
|
523
|
+
put?: never;
|
|
524
|
+
/**
|
|
525
|
+
* NFC Poll
|
|
526
|
+
* @description Used in conjunction with the SDK that we provide.
|
|
527
|
+
*/
|
|
528
|
+
post: operations["nfcPoll"];
|
|
529
|
+
delete?: never;
|
|
530
|
+
options?: never;
|
|
531
|
+
head?: never;
|
|
532
|
+
patch?: never;
|
|
533
|
+
trace?: never;
|
|
534
|
+
};
|
|
535
|
+
"/sino-connect/face-rec/request": {
|
|
536
|
+
parameters: {
|
|
537
|
+
query?: never;
|
|
538
|
+
header?: never;
|
|
539
|
+
path?: never;
|
|
540
|
+
cookie?: never;
|
|
541
|
+
};
|
|
542
|
+
get?: never;
|
|
543
|
+
put?: never;
|
|
544
|
+
/**
|
|
545
|
+
* Face Recognition Request
|
|
546
|
+
* @description Initialize a face recognition session by passing your redirect URL.
|
|
547
|
+
*
|
|
548
|
+
* Returns a **launch URL** (open on a **mobile browser**) and a **JWT** **`token`** that you must keep for polling status.
|
|
549
|
+
* Use the returned **`url`** to open an in-app web view or the system browser on the phone.
|
|
550
|
+
* After the user completes or cancels the H5 flow, the browser is redirected to your provided callback URL.
|
|
551
|
+
*/
|
|
552
|
+
post: operations["faceReqRequest"];
|
|
553
|
+
delete?: never;
|
|
554
|
+
options?: never;
|
|
555
|
+
head?: never;
|
|
556
|
+
patch?: never;
|
|
557
|
+
trace?: never;
|
|
558
|
+
};
|
|
559
|
+
"/sino-connect/face-rec/callback": {
|
|
560
|
+
parameters: {
|
|
561
|
+
query?: never;
|
|
562
|
+
header?: never;
|
|
563
|
+
path?: never;
|
|
564
|
+
cookie?: never;
|
|
565
|
+
};
|
|
566
|
+
get?: never;
|
|
567
|
+
put?: never;
|
|
568
|
+
/**
|
|
569
|
+
* Face Recognition Poll
|
|
570
|
+
* @description Used to poll for the face recognition result after user action.
|
|
571
|
+
*/
|
|
572
|
+
post: operations["faceReqPoll"];
|
|
573
|
+
delete?: never;
|
|
574
|
+
options?: never;
|
|
575
|
+
head?: never;
|
|
576
|
+
patch?: never;
|
|
577
|
+
trace?: never;
|
|
578
|
+
};
|
|
579
|
+
"/ocr/request": {
|
|
580
|
+
parameters: {
|
|
581
|
+
query?: never;
|
|
582
|
+
header?: never;
|
|
583
|
+
path?: never;
|
|
584
|
+
cookie?: never;
|
|
585
|
+
};
|
|
586
|
+
get?: never;
|
|
587
|
+
put?: never;
|
|
588
|
+
/**
|
|
589
|
+
* Request
|
|
590
|
+
* @description Initialize a verification session by passing your callback URLs and the document type.
|
|
591
|
+
*
|
|
592
|
+
* **Browser Flow:**
|
|
593
|
+
* Returns a **launch URL** (open on a **mobile browser**) and a **JWT** **`token`** that you must keep for polling status. After the user completes or cancels the H5 flow, the browser is redirected to your provided callback URL.
|
|
594
|
+
*
|
|
595
|
+
* **Mobile App Flow:**
|
|
596
|
+
* Use the returned **`url`** to open an in-app web view or the system browser on the phone. Use the returned **`token`** later with `/ocr/poll` to check the final decision.
|
|
597
|
+
*
|
|
598
|
+
* **Note:** The redirect is **UX-only**; you still need to call `/ocr/poll` with the returned `token` to obtain the authoritative decision.
|
|
599
|
+
*/
|
|
600
|
+
post: operations["request1"];
|
|
601
|
+
delete?: never;
|
|
602
|
+
options?: never;
|
|
603
|
+
head?: never;
|
|
604
|
+
patch?: never;
|
|
605
|
+
trace?: never;
|
|
606
|
+
};
|
|
607
|
+
"/ocr/poll": {
|
|
608
|
+
parameters: {
|
|
609
|
+
query?: never;
|
|
610
|
+
header?: never;
|
|
611
|
+
path?: never;
|
|
612
|
+
cookie?: never;
|
|
613
|
+
};
|
|
614
|
+
get?: never;
|
|
615
|
+
put?: never;
|
|
616
|
+
/**
|
|
617
|
+
* Poll
|
|
618
|
+
* @description Check the status of a verification using the **`token`** returned by `/ocr/request`.
|
|
619
|
+
*
|
|
620
|
+
* - Returns **202 Accepted** while the verification is **in progress**.
|
|
621
|
+
*
|
|
622
|
+
* - Returns **200 OK** when the verification is **completed** (Success / Failure / Void\*).
|
|
623
|
+
*
|
|
624
|
+
* - Always responds with a concise **`summary`** (no raw payloads needed).
|
|
625
|
+
*
|
|
626
|
+
*
|
|
627
|
+
* Send **only the** **`token`**. It already encapsulates the session identifiers.
|
|
628
|
+
*
|
|
629
|
+
* **Terminal states:** `Success`, `Failure`, or `Void\*`.
|
|
630
|
+
*/
|
|
631
|
+
post: operations["ocrPoll"];
|
|
632
|
+
delete?: never;
|
|
633
|
+
options?: never;
|
|
634
|
+
head?: never;
|
|
635
|
+
patch?: never;
|
|
636
|
+
trace?: never;
|
|
637
|
+
};
|
|
638
|
+
"/cra/request": {
|
|
639
|
+
parameters: {
|
|
640
|
+
query?: never;
|
|
641
|
+
header?: never;
|
|
642
|
+
path?: never;
|
|
643
|
+
cookie?: never;
|
|
644
|
+
};
|
|
645
|
+
get?: never;
|
|
646
|
+
put?: never;
|
|
647
|
+
/**
|
|
648
|
+
* Request
|
|
649
|
+
* @description This endpoint initiates a request to retrieve company registry documents.
|
|
650
|
+
* When you have the Company ID of the company (retrieved from /cra/{countryCode}/search/companies endpoint), the system will automatically fetch the document. If documentType is "BRC", it will invoke the BRC script, otherwise the CRA script.
|
|
651
|
+
* When you don't have the Company ID, provide the company name, document type, and optional document year. The system will create a manual request for an agent to process.
|
|
652
|
+
* The endpoint returns a JWT token that should be used with the `/cra/poll` endpoint to retrieve the document when ready.
|
|
653
|
+
*/
|
|
654
|
+
post: operations["craRequest"];
|
|
655
|
+
delete?: never;
|
|
656
|
+
options?: never;
|
|
657
|
+
head?: never;
|
|
658
|
+
patch?: never;
|
|
659
|
+
trace?: never;
|
|
660
|
+
};
|
|
661
|
+
"/cra/{countryCode}/search/documents": {
|
|
662
|
+
parameters: {
|
|
663
|
+
query?: never;
|
|
664
|
+
header?: never;
|
|
665
|
+
path?: never;
|
|
666
|
+
cookie?: never;
|
|
667
|
+
};
|
|
668
|
+
get?: never;
|
|
669
|
+
put?: never;
|
|
670
|
+
/**
|
|
671
|
+
* Search Company Documents
|
|
672
|
+
* @description This endpoint searches for and returns documents filed by a company with the Companies Registry. Documents are grouped by category (e.g., Annual Return, Director/Secretary Changes, Charges Filed, etc.).
|
|
673
|
+
*
|
|
674
|
+
* You can optionally filter by document type and year to narrow down the results.
|
|
675
|
+
*
|
|
676
|
+
* Document categories include: Annual Return, Director / Secretary Changes, Charges Filed, Incorporation & Name Change, Liquidation & Deregistration, Registered Office / Address, Share Capital, and Other.
|
|
677
|
+
*/
|
|
678
|
+
post: operations["searchDocuments"];
|
|
679
|
+
delete?: never;
|
|
680
|
+
options?: never;
|
|
681
|
+
head?: never;
|
|
682
|
+
patch?: never;
|
|
683
|
+
trace?: never;
|
|
684
|
+
};
|
|
685
|
+
"/cra/{countryCode}/search/companies": {
|
|
686
|
+
parameters: {
|
|
687
|
+
query?: never;
|
|
688
|
+
header?: never;
|
|
689
|
+
path?: never;
|
|
690
|
+
cookie?: never;
|
|
691
|
+
};
|
|
692
|
+
get?: never;
|
|
693
|
+
put?: never;
|
|
694
|
+
/**
|
|
695
|
+
* Search Companies by Name
|
|
696
|
+
* @description This endpoint performs a left-partial search for companies in the Companies Registry by company name. It supports both English and Chinese company names and returns a list of matching companies.
|
|
697
|
+
*
|
|
698
|
+
* The search will automatically detect if the input is in Chinese characters and adjust the search parameters accordingly.
|
|
699
|
+
*/
|
|
700
|
+
post: operations["searchCompanies"];
|
|
701
|
+
delete?: never;
|
|
702
|
+
options?: never;
|
|
703
|
+
head?: never;
|
|
704
|
+
patch?: never;
|
|
705
|
+
trace?: never;
|
|
706
|
+
};
|
|
707
|
+
"/cra/{countryCode}/search/company": {
|
|
708
|
+
parameters: {
|
|
709
|
+
query?: never;
|
|
710
|
+
header?: never;
|
|
711
|
+
path?: never;
|
|
712
|
+
cookie?: never;
|
|
713
|
+
};
|
|
714
|
+
get?: never;
|
|
715
|
+
put?: never;
|
|
716
|
+
/**
|
|
717
|
+
* Get Company Base Information
|
|
718
|
+
* @description This endpoint retrieves the base information for a specific company from the Companies Registry using its Company ID (obtained from `/cra/{countryCode}/search/companies` endpoint).
|
|
719
|
+
*
|
|
720
|
+
* The information includes company names (English and Chinese), status, type, category, incorporation date, dissolution date (if applicable), and any remarks.
|
|
721
|
+
*/
|
|
722
|
+
post: operations["searchCompany"];
|
|
723
|
+
delete?: never;
|
|
724
|
+
options?: never;
|
|
725
|
+
head?: never;
|
|
726
|
+
patch?: never;
|
|
727
|
+
trace?: never;
|
|
728
|
+
};
|
|
729
|
+
"/cra/poll": {
|
|
730
|
+
parameters: {
|
|
731
|
+
query?: never;
|
|
732
|
+
header?: never;
|
|
733
|
+
path?: never;
|
|
734
|
+
cookie?: never;
|
|
735
|
+
};
|
|
736
|
+
get?: never;
|
|
737
|
+
put?: never;
|
|
738
|
+
/**
|
|
739
|
+
* Poll Report
|
|
740
|
+
* @description Poll this endpoint to check the status of a company registry report request. Keep polling until you receive a successful response with the message "CRA ready" and a presigned URL to download the document.
|
|
741
|
+
*
|
|
742
|
+
* If the report is not ready yet, you will receive a 202 status code with the message "Report is pending".
|
|
743
|
+
*
|
|
744
|
+
* Once the report is ready, the endpoint will bill the service and return a presigned URL valid for 1 hour to download the PDF document.
|
|
745
|
+
*/
|
|
746
|
+
post: operations["craPoll"];
|
|
747
|
+
delete?: never;
|
|
748
|
+
options?: never;
|
|
749
|
+
head?: never;
|
|
750
|
+
patch?: never;
|
|
751
|
+
trace?: never;
|
|
752
|
+
};
|
|
753
|
+
"/uaepass/request/auth": {
|
|
754
|
+
parameters: {
|
|
755
|
+
query?: never;
|
|
756
|
+
header?: never;
|
|
757
|
+
path?: never;
|
|
758
|
+
cookie?: never;
|
|
759
|
+
};
|
|
760
|
+
get?: never;
|
|
761
|
+
put?: never;
|
|
762
|
+
/**
|
|
763
|
+
* Authentication
|
|
764
|
+
* @description Retrieves user identity details following a successful UAE Pass login.
|
|
765
|
+
*/
|
|
766
|
+
post: operations["uaepassAuth"];
|
|
767
|
+
delete?: never;
|
|
768
|
+
options?: never;
|
|
769
|
+
head?: never;
|
|
770
|
+
patch?: never;
|
|
771
|
+
trace?: never;
|
|
772
|
+
};
|
|
773
|
+
"/uaepass/poll": {
|
|
774
|
+
parameters: {
|
|
775
|
+
query?: never;
|
|
776
|
+
header?: never;
|
|
777
|
+
path?: never;
|
|
778
|
+
cookie?: never;
|
|
779
|
+
};
|
|
780
|
+
get?: never;
|
|
781
|
+
put?: never;
|
|
782
|
+
/**
|
|
783
|
+
* Poll Data
|
|
784
|
+
* @description Short poll this endpoint, passing in the `token` (from endpoints in `Request Data` folder) to obtain the results.
|
|
785
|
+
*
|
|
786
|
+
* For authentication, this includes user data. For signing, this provides a link by which the signed document can be obtained.
|
|
787
|
+
*
|
|
788
|
+
* The response's `token` is a JWT or JWE depending if there's sensitive personal data. You should handle them like so:
|
|
789
|
+
*
|
|
790
|
+
* - `JWT` verify\* token
|
|
791
|
+
*
|
|
792
|
+
* - `JWE` decrypt using the private keys that Fill Easy has previously provided.
|
|
793
|
+
*
|
|
794
|
+
*
|
|
795
|
+
* Please note that the data result is returned only once and is deleted immediately.
|
|
796
|
+
*
|
|
797
|
+
* \*you can try using online decoder like [https://jwt.io/](https://jwt.io/)
|
|
798
|
+
*
|
|
799
|
+
* all responses are `JWE` unless noted otherwise.
|
|
800
|
+
*/
|
|
801
|
+
post: operations["uaepassPoll"];
|
|
802
|
+
delete?: never;
|
|
803
|
+
options?: never;
|
|
804
|
+
head?: never;
|
|
805
|
+
patch?: never;
|
|
806
|
+
trace?: never;
|
|
807
|
+
};
|
|
808
|
+
"/uaepass/callback": {
|
|
809
|
+
parameters: {
|
|
810
|
+
query?: never;
|
|
811
|
+
header?: never;
|
|
812
|
+
path?: never;
|
|
813
|
+
cookie?: never;
|
|
814
|
+
};
|
|
815
|
+
/**
|
|
816
|
+
* Callback
|
|
817
|
+
* @description UAE Pass will redirect to this endpoint after user authorization.
|
|
818
|
+
* This endpoint then redirects the user again to the original `redirect` URI provided in the `/uaepass/request/auth` request, appending the authorization `code` and `state` as query parameters.
|
|
819
|
+
*/
|
|
820
|
+
get: operations["uaepassCallback"];
|
|
821
|
+
put?: never;
|
|
822
|
+
post?: never;
|
|
823
|
+
delete?: never;
|
|
824
|
+
options?: never;
|
|
825
|
+
head?: never;
|
|
826
|
+
patch?: never;
|
|
827
|
+
trace?: never;
|
|
828
|
+
};
|
|
829
|
+
"/uaepass/logout": {
|
|
830
|
+
parameters: {
|
|
831
|
+
query?: never;
|
|
832
|
+
header?: never;
|
|
833
|
+
path?: never;
|
|
834
|
+
cookie?: never;
|
|
835
|
+
};
|
|
836
|
+
get?: never;
|
|
837
|
+
put?: never;
|
|
838
|
+
/** UAEPass Logout */
|
|
839
|
+
post: operations["uaepassLogout"];
|
|
840
|
+
delete?: never;
|
|
841
|
+
options?: never;
|
|
842
|
+
head?: never;
|
|
843
|
+
patch?: never;
|
|
844
|
+
trace?: never;
|
|
845
|
+
};
|
|
846
|
+
"/lra/request": {
|
|
847
|
+
parameters: {
|
|
848
|
+
query?: never;
|
|
849
|
+
header?: never;
|
|
850
|
+
path?: never;
|
|
851
|
+
cookie?: never;
|
|
852
|
+
};
|
|
853
|
+
get?: never;
|
|
854
|
+
put?: never;
|
|
855
|
+
/**
|
|
856
|
+
* request
|
|
857
|
+
* @description request
|
|
858
|
+
*/
|
|
859
|
+
post: operations["lraRequest"];
|
|
860
|
+
delete?: never;
|
|
861
|
+
options?: never;
|
|
862
|
+
head?: never;
|
|
863
|
+
patch?: never;
|
|
864
|
+
trace?: never;
|
|
865
|
+
};
|
|
866
|
+
"/lra/poll": {
|
|
867
|
+
parameters: {
|
|
868
|
+
query?: never;
|
|
869
|
+
header?: never;
|
|
870
|
+
path?: never;
|
|
871
|
+
cookie?: never;
|
|
872
|
+
};
|
|
873
|
+
get?: never;
|
|
874
|
+
put?: never;
|
|
875
|
+
/**
|
|
876
|
+
* poll
|
|
877
|
+
* @description poll
|
|
878
|
+
*/
|
|
879
|
+
post: operations["lraPoll"];
|
|
880
|
+
delete?: never;
|
|
881
|
+
options?: never;
|
|
882
|
+
head?: never;
|
|
883
|
+
patch?: never;
|
|
884
|
+
trace?: never;
|
|
885
|
+
};
|
|
886
|
+
"/lra/search": {
|
|
887
|
+
parameters: {
|
|
888
|
+
query?: never;
|
|
889
|
+
header?: never;
|
|
890
|
+
path?: never;
|
|
891
|
+
cookie?: never;
|
|
892
|
+
};
|
|
893
|
+
get?: never;
|
|
894
|
+
put?: never;
|
|
895
|
+
/**
|
|
896
|
+
* search
|
|
897
|
+
* @description search
|
|
898
|
+
*/
|
|
899
|
+
post: operations["lraSearch"];
|
|
900
|
+
delete?: never;
|
|
901
|
+
options?: never;
|
|
902
|
+
head?: never;
|
|
903
|
+
patch?: never;
|
|
904
|
+
trace?: never;
|
|
905
|
+
};
|
|
906
|
+
}
|
|
907
|
+
export type webhooks = Record<string, never>;
|
|
908
|
+
export interface components {
|
|
909
|
+
schemas: {
|
|
910
|
+
Error: {
|
|
911
|
+
/**
|
|
912
|
+
* @description Error message
|
|
913
|
+
* @example accessToken not exist or expired
|
|
914
|
+
*/
|
|
915
|
+
error: string;
|
|
916
|
+
};
|
|
917
|
+
/**
|
|
918
|
+
* @description JWT token
|
|
919
|
+
* @example eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U
|
|
920
|
+
*/
|
|
921
|
+
Token: string;
|
|
922
|
+
/**
|
|
923
|
+
* @description The device platform and browser combination
|
|
924
|
+
* @example PC_Browser
|
|
925
|
+
* @enum {string}
|
|
926
|
+
*/
|
|
927
|
+
IamSmartSource: "PC_Browser" | "android" | "iOS" | "Android_Chrome" | "Android_Firefox" | "Android_Edge" | "Android_Samsung" | "Android_Huawei" | "Android_Xiaomi" | "iOS_Safari" | "iOS_Chrome" | "iOS_Firefox" | "iOS_Edge";
|
|
928
|
+
/**
|
|
929
|
+
* @description Setting the scope is required only in cases where operations are chained, e.g auth + formfilling, auth + signing.
|
|
930
|
+
* By default, the scope is set to the value required for the operation.
|
|
931
|
+
* Requested scope of authorization based on available services.
|
|
932
|
+
* Multiple scopes should be space-separated. Valid scopes are:
|
|
933
|
+
* eidapi_auth, eidapi_profiles, eidapi_formFilling, eidapi_sign, eidapi_fr, eidapi_bulksign
|
|
934
|
+
*
|
|
935
|
+
* @example eidapi_auth eidapi_formFilling eidapi_sign
|
|
936
|
+
*/
|
|
937
|
+
IamSmartScope: string;
|
|
938
|
+
/**
|
|
939
|
+
* @description iAM Smart App display language (case sensitive). Will default to 'en-US' if not specified
|
|
940
|
+
*
|
|
941
|
+
* @default en-US
|
|
942
|
+
* @enum {string}
|
|
943
|
+
*/
|
|
944
|
+
IamSmartLanguage: "en-US" | "zh-HK" | "zh-CN";
|
|
945
|
+
/**
|
|
946
|
+
* Format: uri
|
|
947
|
+
* @description Redirect URI after user authorization. Browser: https URL to your website. Mobile: Universal link (your-app://) or app scheme.
|
|
948
|
+
* @example https://www.yourwebsite.com/callback
|
|
949
|
+
*/
|
|
950
|
+
RedirectUri: string;
|
|
951
|
+
/** @example {
|
|
952
|
+
* "lang": "en-US",
|
|
953
|
+
* "redirect": "fill-easy://auth",
|
|
954
|
+
* "source": "android"
|
|
955
|
+
* } */
|
|
956
|
+
IamSmartAuthRequest: {
|
|
957
|
+
lang?: components["schemas"]["IamSmartLanguage"];
|
|
958
|
+
source: components["schemas"]["IamSmartSource"];
|
|
959
|
+
redirect: components["schemas"]["RedirectUri"];
|
|
960
|
+
scope?: components["schemas"]["IamSmartScope"];
|
|
961
|
+
};
|
|
962
|
+
/** @example {
|
|
963
|
+
* "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U",
|
|
964
|
+
* "url": "https://hk.gov.iamsmart.testapp://auth?clientID=7688ff3048ff49b2b64578cf40867d1d&responseType=code&source=App_Link&redirectURI=fill-easy%3A%2F%2Fauth&scope=eidapi_auth%20eidapi_formFilling%20eidapi_sign%20eidapi_fr&lang=en-US&state=0aZwsZfcCxCJgRY9AHG6c0un3UZotMDjNqSF&brokerPage=true"
|
|
965
|
+
* } */
|
|
966
|
+
IamSmartAuthResponse: {
|
|
967
|
+
/** @description Store this token for subsequent API calls */
|
|
968
|
+
token: components["schemas"]["Token"];
|
|
969
|
+
/**
|
|
970
|
+
* Format: uri
|
|
971
|
+
* @description Browser: URL to iAM Smart QR page for scanning. Mobile: Universal link to launch iAM Smart app.
|
|
972
|
+
* @example https://hk.gov.iamsmart.testapp://auth?clientID=...
|
|
973
|
+
*/
|
|
974
|
+
url: string;
|
|
975
|
+
};
|
|
976
|
+
FormData: {
|
|
977
|
+
/**
|
|
978
|
+
* @description Form title displayed to user in iAM Smart app
|
|
979
|
+
* @example Fill Easy Contact Form
|
|
980
|
+
*/
|
|
981
|
+
formName?: string;
|
|
982
|
+
/**
|
|
983
|
+
* @description Form reference code
|
|
984
|
+
* @example FE_001
|
|
985
|
+
*/
|
|
986
|
+
formNum?: string;
|
|
987
|
+
/**
|
|
988
|
+
* @description Form description displayed to user
|
|
989
|
+
* @example Contact Fill Easy
|
|
990
|
+
*/
|
|
991
|
+
formDesc?: string;
|
|
992
|
+
/**
|
|
993
|
+
* @description Detail fields to request from user
|
|
994
|
+
* @example [
|
|
995
|
+
* "prefix",
|
|
996
|
+
* "mobileNumber",
|
|
997
|
+
* "emailAddress",
|
|
998
|
+
* "residentialAddress"
|
|
999
|
+
* ]
|
|
1000
|
+
*/
|
|
1001
|
+
formFields?: ("idNo" | "enName" | "chName" | "gender" | "prefix" | "maritalStatus" | "homeTelNumber" | "officeTelNumber" | "mobileNumber" | "emailAddress" | "residentialAddress" | "postalAddress" | "educationLevel" | "addressDocInfo" | "addressDocFile")[];
|
|
1002
|
+
};
|
|
1003
|
+
/**
|
|
1004
|
+
* @description Mandatorily obtain specific profile fields. Note: You must display a consent page per iAM Smart UI/UX requirements when using these fields. If fields overlap between `profileFields` and `formData.formFields`, `profileFields` takes precedence.
|
|
1005
|
+
* @example [
|
|
1006
|
+
* "idNo",
|
|
1007
|
+
* "enName",
|
|
1008
|
+
* "chName",
|
|
1009
|
+
* "gender"
|
|
1010
|
+
* ]
|
|
1011
|
+
*/
|
|
1012
|
+
ProfileFields: ("idNo" | "enName" | "chName" | "birthDate" | "gender")[];
|
|
1013
|
+
/** @example {
|
|
1014
|
+
* "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U",
|
|
1015
|
+
* "source": "PC_Browser",
|
|
1016
|
+
* "profileFields": [
|
|
1017
|
+
* "idNo",
|
|
1018
|
+
* "enName",
|
|
1019
|
+
* "chName",
|
|
1020
|
+
* "gender"
|
|
1021
|
+
* ],
|
|
1022
|
+
* "formData": {
|
|
1023
|
+
* "formName": "Fill Easy Contact Form",
|
|
1024
|
+
* "formNum": "FE_001",
|
|
1025
|
+
* "formDesc": "Contact Fill Easy",
|
|
1026
|
+
* "formFields": [
|
|
1027
|
+
* "prefix",
|
|
1028
|
+
* "maritalStatus",
|
|
1029
|
+
* "mobileNumber",
|
|
1030
|
+
* "emailAddress",
|
|
1031
|
+
* "residentialAddress"
|
|
1032
|
+
* ]
|
|
1033
|
+
* }
|
|
1034
|
+
* } */
|
|
1035
|
+
IamSmartFormFillingRequest: {
|
|
1036
|
+
/** @description The authenticated user token from the Authentication workflow */
|
|
1037
|
+
token: components["schemas"]["Token"];
|
|
1038
|
+
source: components["schemas"]["IamSmartSource"];
|
|
1039
|
+
profileFields?: components["schemas"]["ProfileFields"];
|
|
1040
|
+
formData: components["schemas"]["FormData"];
|
|
1041
|
+
};
|
|
1042
|
+
/** @example {
|
|
1043
|
+
* "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U"
|
|
1044
|
+
* } */
|
|
1045
|
+
IamSmartFormFillingResponse: {
|
|
1046
|
+
/** @description Use this token in Poll Data to retrieve form filling results */
|
|
1047
|
+
token: components["schemas"]["Token"];
|
|
1048
|
+
};
|
|
1049
|
+
/** @example {
|
|
1050
|
+
* "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U",
|
|
1051
|
+
* "source": "PC_Browser",
|
|
1052
|
+
* "name": "Fill Easy Contact Form",
|
|
1053
|
+
* "hash": "af8b6f626242f214be360fa7d412e42dacb2f48bc11bb089019a912930019300",
|
|
1054
|
+
* "service": "Digital Signing of Application Form"
|
|
1055
|
+
* } */
|
|
1056
|
+
IamSmartHashSignRequest: {
|
|
1057
|
+
/** @description The authenticated user token from the Authentication workflow */
|
|
1058
|
+
token: components["schemas"]["Token"];
|
|
1059
|
+
source: components["schemas"]["IamSmartSource"];
|
|
1060
|
+
/**
|
|
1061
|
+
* @description Document title displayed to user
|
|
1062
|
+
* @example Sample Credit Card Application Form
|
|
1063
|
+
*/
|
|
1064
|
+
name: string;
|
|
1065
|
+
/**
|
|
1066
|
+
* @description SHA-256 hash of the document file's content (64 hex characters)
|
|
1067
|
+
* @example af8b6f626242f214be360fa7d412e42dacb2f48bc11bb089019a912930019300
|
|
1068
|
+
*/
|
|
1069
|
+
hash: string;
|
|
1070
|
+
/**
|
|
1071
|
+
* @description Service description to be displayed to user
|
|
1072
|
+
* @example Digital Signing of Application Form
|
|
1073
|
+
*/
|
|
1074
|
+
service?: string;
|
|
1075
|
+
/**
|
|
1076
|
+
* @description Organisation name
|
|
1077
|
+
* @example Fill Easy Limited
|
|
1078
|
+
*/
|
|
1079
|
+
organisation?: string;
|
|
1080
|
+
};
|
|
1081
|
+
/** @example {
|
|
1082
|
+
* "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U",
|
|
1083
|
+
* "hkic": 1524
|
|
1084
|
+
* } */
|
|
1085
|
+
IamSmartHashSignResponse: {
|
|
1086
|
+
/** @description Use this token in Poll Data to retrieve signing results */
|
|
1087
|
+
token: components["schemas"]["Token"];
|
|
1088
|
+
/**
|
|
1089
|
+
* @description HKIC check digits for verification
|
|
1090
|
+
* @example 1524
|
|
1091
|
+
*/
|
|
1092
|
+
hkic: number;
|
|
1093
|
+
};
|
|
1094
|
+
/** @example {
|
|
1095
|
+
* "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U",
|
|
1096
|
+
* "source": "PC_Browser",
|
|
1097
|
+
* "name": "Landsurvey Purchase Form",
|
|
1098
|
+
* "fileHash": "R3fJTKFPwkRw019fLk+L19y91DVgI9hy/G7u6+YiECk=",
|
|
1099
|
+
* "service": "Digital PDF Signing Powered by Fill Easy"
|
|
1100
|
+
* } */
|
|
1101
|
+
IamSmartPdfSignRequest: {
|
|
1102
|
+
/** @description The authenticated user token from the Authentication workflow */
|
|
1103
|
+
token: components["schemas"]["Token"];
|
|
1104
|
+
source: components["schemas"]["IamSmartSource"];
|
|
1105
|
+
/**
|
|
1106
|
+
* @description Document title displayed to user
|
|
1107
|
+
* @example Landsurvey Purchase Form
|
|
1108
|
+
*/
|
|
1109
|
+
name: string;
|
|
1110
|
+
/**
|
|
1111
|
+
* Format: byte
|
|
1112
|
+
* @description Base64-encoded hash of the PDF file
|
|
1113
|
+
* @example R3fJTKFPwkRw019fLk+L19y91DVgI9hy/G7u6+YiECk=
|
|
1114
|
+
*/
|
|
1115
|
+
fileHash: string;
|
|
1116
|
+
/**
|
|
1117
|
+
* @description Service description to be displayed to user
|
|
1118
|
+
* @example Digital PDF Signing Powered by Fill Easy
|
|
1119
|
+
*/
|
|
1120
|
+
service: string;
|
|
1121
|
+
/** @description Hash of HKIC for verification (optional) */
|
|
1122
|
+
hkicHash?: string;
|
|
1123
|
+
/** @description Department name (optional) */
|
|
1124
|
+
department?: string;
|
|
1125
|
+
};
|
|
1126
|
+
/** @example {
|
|
1127
|
+
* "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U",
|
|
1128
|
+
* "hkic": 4303
|
|
1129
|
+
* } */
|
|
1130
|
+
IamSmartPdfSignResponse: {
|
|
1131
|
+
/** @description Use this token in Poll Data to retrieve PDF signing results */
|
|
1132
|
+
token: components["schemas"]["Token"];
|
|
1133
|
+
/**
|
|
1134
|
+
* @description HKIC check digits for verification
|
|
1135
|
+
* @example 4303
|
|
1136
|
+
*/
|
|
1137
|
+
hkic: number;
|
|
1138
|
+
};
|
|
1139
|
+
/** @example {
|
|
1140
|
+
* "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U",
|
|
1141
|
+
* "source": "PC_Browser"
|
|
1142
|
+
* } */
|
|
1143
|
+
IamSmartReauthRequest: {
|
|
1144
|
+
/** @description The authenticated user token to re-validate */
|
|
1145
|
+
token: components["schemas"]["Token"];
|
|
1146
|
+
source: components["schemas"]["IamSmartSource"];
|
|
1147
|
+
};
|
|
1148
|
+
/** @example {
|
|
1149
|
+
* "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U"
|
|
1150
|
+
* } */
|
|
1151
|
+
IamSmartReauthResponse: {
|
|
1152
|
+
/** @description Use this token in Poll Data to check re-authentication status */
|
|
1153
|
+
token: components["schemas"]["Token"];
|
|
1154
|
+
};
|
|
1155
|
+
/** @example {
|
|
1156
|
+
* "lang": "en-US",
|
|
1157
|
+
* "source": "android",
|
|
1158
|
+
* "redirect": "fill-easy://formfilling",
|
|
1159
|
+
* "profileFields": [
|
|
1160
|
+
* "idNo",
|
|
1161
|
+
* "enName"
|
|
1162
|
+
* ],
|
|
1163
|
+
* "formData": {
|
|
1164
|
+
* "formName": "Anonymous Form",
|
|
1165
|
+
* "formNum": "AF_001",
|
|
1166
|
+
* "formDesc": "Anonymous form filling request",
|
|
1167
|
+
* "formFields": [
|
|
1168
|
+
* "mobileNumber",
|
|
1169
|
+
* "emailAddress"
|
|
1170
|
+
* ]
|
|
1171
|
+
* }
|
|
1172
|
+
* } */
|
|
1173
|
+
IamSmartAnonFormFillingRequest: {
|
|
1174
|
+
lang?: components["schemas"]["IamSmartLanguage"];
|
|
1175
|
+
source: components["schemas"]["IamSmartSource"];
|
|
1176
|
+
redirect: components["schemas"]["RedirectUri"];
|
|
1177
|
+
scope?: components["schemas"]["IamSmartScope"];
|
|
1178
|
+
profileFields?: components["schemas"]["ProfileFields"];
|
|
1179
|
+
formData?: components["schemas"]["FormData"];
|
|
1180
|
+
/**
|
|
1181
|
+
* @description Android activity class (Android only)
|
|
1182
|
+
* @example com.filleasy.app.MainActivity
|
|
1183
|
+
*/
|
|
1184
|
+
activityClass?: string;
|
|
1185
|
+
/** @description Additional activity parameters (Android only) */
|
|
1186
|
+
activityParams?: string;
|
|
1187
|
+
};
|
|
1188
|
+
/** @example {
|
|
1189
|
+
* "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U",
|
|
1190
|
+
* "url": "https://apigw-isit.staging-eid.gov.hk/..."
|
|
1191
|
+
* } */
|
|
1192
|
+
IamSmartAnonFormFillingResponse: {
|
|
1193
|
+
token: components["schemas"]["Token"];
|
|
1194
|
+
/**
|
|
1195
|
+
* Format: uri
|
|
1196
|
+
* @description URL to redirect user for anonymous form filling
|
|
1197
|
+
*/
|
|
1198
|
+
url: string;
|
|
1199
|
+
};
|
|
1200
|
+
/** @example {
|
|
1201
|
+
* "lang": "en-US",
|
|
1202
|
+
* "source": "android",
|
|
1203
|
+
* "redirect": "fill-easy://signing",
|
|
1204
|
+
* "name": "Document to Sign",
|
|
1205
|
+
* "fileHash": "af8b6f626242f214be360fa7d412e42dacb2f48bc11bb089019a912930019300",
|
|
1206
|
+
* "hkicHash": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
|
|
1207
|
+
* "service": "Anonymous Digital Signing"
|
|
1208
|
+
* } */
|
|
1209
|
+
IamSmartAnonHashSignRequest: {
|
|
1210
|
+
lang?: components["schemas"]["IamSmartLanguage"];
|
|
1211
|
+
source: components["schemas"]["IamSmartSource"];
|
|
1212
|
+
redirect: components["schemas"]["RedirectUri"];
|
|
1213
|
+
scope?: components["schemas"]["IamSmartScope"];
|
|
1214
|
+
/** @description Document title */
|
|
1215
|
+
name: string;
|
|
1216
|
+
/** @description SHA-256 hash of document (64 hex characters) */
|
|
1217
|
+
fileHash: string;
|
|
1218
|
+
/** @description Hash of HKIC for verification */
|
|
1219
|
+
hkicHash?: string;
|
|
1220
|
+
/** @description Service description */
|
|
1221
|
+
service: string;
|
|
1222
|
+
/** @description Organisation name */
|
|
1223
|
+
organisation?: string;
|
|
1224
|
+
};
|
|
1225
|
+
/** @example {
|
|
1226
|
+
* "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U",
|
|
1227
|
+
* "url": "https://apigw-isit.staging-eid.gov.hk/...",
|
|
1228
|
+
* "hkic": 1524
|
|
1229
|
+
* } */
|
|
1230
|
+
IamSmartAnonHashSignResponse: {
|
|
1231
|
+
token: components["schemas"]["Token"];
|
|
1232
|
+
/**
|
|
1233
|
+
* Format: uri
|
|
1234
|
+
* @description URL to redirect user for anonymous signing
|
|
1235
|
+
*/
|
|
1236
|
+
url: string;
|
|
1237
|
+
/** @description HKIC check digits */
|
|
1238
|
+
hkic: number;
|
|
1239
|
+
};
|
|
1240
|
+
/** @example {
|
|
1241
|
+
* "lang": "en-US",
|
|
1242
|
+
* "source": "PC_Browser",
|
|
1243
|
+
* "redirect": "https://yourapp.com/callback",
|
|
1244
|
+
* "name": "PDF Document",
|
|
1245
|
+
* "fileHash": "R3fJTKFPwkRw019fLk+L19y91DVgI9hy/G7u6+YiECk=",
|
|
1246
|
+
* "hkicHash": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
|
|
1247
|
+
* "service": "Anonymous PDF Signing"
|
|
1248
|
+
* } */
|
|
1249
|
+
IamSmartAnonPdfSignRequest: {
|
|
1250
|
+
lang?: components["schemas"]["IamSmartLanguage"];
|
|
1251
|
+
source: components["schemas"]["IamSmartSource"];
|
|
1252
|
+
redirect: components["schemas"]["RedirectUri"];
|
|
1253
|
+
scope?: components["schemas"]["IamSmartScope"];
|
|
1254
|
+
/** @description PDF document title */
|
|
1255
|
+
name: string;
|
|
1256
|
+
/**
|
|
1257
|
+
* Format: byte
|
|
1258
|
+
* @description Base64-encoded hash of PDF
|
|
1259
|
+
*/
|
|
1260
|
+
fileHash: string;
|
|
1261
|
+
/** @description Hash of HKIC for verification */
|
|
1262
|
+
hkicHash?: string;
|
|
1263
|
+
/** @description Service description */
|
|
1264
|
+
service: string;
|
|
1265
|
+
};
|
|
1266
|
+
/** @example {
|
|
1267
|
+
* "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U",
|
|
1268
|
+
* "url": "https://apigw-isit.staging-eid.gov.hk/...",
|
|
1269
|
+
* "hkic": 4303
|
|
1270
|
+
* } */
|
|
1271
|
+
IamSmartAnonPdfSignResponse: {
|
|
1272
|
+
token: components["schemas"]["Token"];
|
|
1273
|
+
/** Format: uri */
|
|
1274
|
+
url: string;
|
|
1275
|
+
hkic: number;
|
|
1276
|
+
};
|
|
1277
|
+
GlobalSESFields: {
|
|
1278
|
+
/** @description Email addresses for notifications */
|
|
1279
|
+
emailList?: string[];
|
|
1280
|
+
/** @description External reference ID */
|
|
1281
|
+
externalRefId?: string;
|
|
1282
|
+
/** @description Additional request details */
|
|
1283
|
+
requestDetails?: string;
|
|
1284
|
+
/** @description Request express processing */
|
|
1285
|
+
express?: boolean;
|
|
1286
|
+
};
|
|
1287
|
+
CompanySearchResult: {
|
|
1288
|
+
/** @description Company ID (use this value in other endpoints) */
|
|
1289
|
+
companyId: string;
|
|
1290
|
+
/** @description Type of company identifier (e.g., "BRN" for Hong Kong, "ACN" for Australia) */
|
|
1291
|
+
idType: string;
|
|
1292
|
+
/** @description Official company name */
|
|
1293
|
+
companyName: string;
|
|
1294
|
+
/** @description Name of the company in local language (if applicable) */
|
|
1295
|
+
localName?: string;
|
|
1296
|
+
/**
|
|
1297
|
+
* @description Active status of the company
|
|
1298
|
+
* @enum {string}
|
|
1299
|
+
*/
|
|
1300
|
+
status?: "Live" | "Dissolved";
|
|
1301
|
+
/**
|
|
1302
|
+
* @description Name status/type
|
|
1303
|
+
* @enum {string}
|
|
1304
|
+
*/
|
|
1305
|
+
nameType?: "current" | "old";
|
|
1306
|
+
/** @description Type of incorporation */
|
|
1307
|
+
incorporationType?: string;
|
|
1308
|
+
/** @description Category of the entity */
|
|
1309
|
+
entityCategory?: string;
|
|
1310
|
+
/** @description Registered address of the company */
|
|
1311
|
+
address?: string;
|
|
1312
|
+
};
|
|
1313
|
+
poll: {
|
|
1314
|
+
/**
|
|
1315
|
+
* @description The JWT token obtained from the previous request.
|
|
1316
|
+
* @example {{token}}
|
|
1317
|
+
*/
|
|
1318
|
+
token: string;
|
|
1319
|
+
};
|
|
1320
|
+
};
|
|
1321
|
+
responses: {
|
|
1322
|
+
/** @description Unauthorized - Token is missing, invalid, or expired */
|
|
1323
|
+
Unauthorized: {
|
|
1324
|
+
headers: {
|
|
1325
|
+
[name: string]: unknown;
|
|
1326
|
+
};
|
|
1327
|
+
content: {
|
|
1328
|
+
"application/json": components["schemas"]["Error"];
|
|
1329
|
+
};
|
|
1330
|
+
};
|
|
1331
|
+
/** @description Bad Request - Invalid input parameters */
|
|
1332
|
+
BadRequest: {
|
|
1333
|
+
headers: {
|
|
1334
|
+
[name: string]: unknown;
|
|
1335
|
+
};
|
|
1336
|
+
content: {
|
|
1337
|
+
"application/json": components["schemas"]["Error"];
|
|
1338
|
+
};
|
|
1339
|
+
};
|
|
1340
|
+
/** @description Internal Server Error */
|
|
1341
|
+
InternalServerError: {
|
|
1342
|
+
headers: {
|
|
1343
|
+
[name: string]: unknown;
|
|
1344
|
+
};
|
|
1345
|
+
content: {
|
|
1346
|
+
"application/json": components["schemas"]["Error"];
|
|
1347
|
+
};
|
|
1348
|
+
};
|
|
1349
|
+
};
|
|
1350
|
+
parameters: {
|
|
1351
|
+
/**
|
|
1352
|
+
* @description The iAM Smart service type
|
|
1353
|
+
* @example auth
|
|
1354
|
+
*/
|
|
1355
|
+
IamSmartServicePath: "auth" | "formfilling" | "formfilling-anonymous" | "signing" | "signing-anonymous" | "pdf-signing" | "pdf-signing-anonymous" | "reauth" | "ccic";
|
|
1356
|
+
};
|
|
1357
|
+
requestBodies: {
|
|
1358
|
+
poll: {
|
|
1359
|
+
content: {
|
|
1360
|
+
"application/json": components["schemas"]["poll"];
|
|
1361
|
+
};
|
|
1362
|
+
};
|
|
1363
|
+
};
|
|
1364
|
+
headers: never;
|
|
1365
|
+
pathItems: never;
|
|
1366
|
+
}
|
|
1367
|
+
export type $defs = Record<string, never>;
|
|
1368
|
+
export interface operations {
|
|
1369
|
+
frontendWrapper: {
|
|
1370
|
+
parameters: {
|
|
1371
|
+
query?: never;
|
|
1372
|
+
header?: never;
|
|
1373
|
+
path?: never;
|
|
1374
|
+
cookie?: never;
|
|
1375
|
+
};
|
|
1376
|
+
requestBody?: never;
|
|
1377
|
+
responses: {
|
|
1378
|
+
/** @description Success */
|
|
1379
|
+
200: {
|
|
1380
|
+
headers: {
|
|
1381
|
+
[name: string]: unknown;
|
|
1382
|
+
};
|
|
1383
|
+
content?: never;
|
|
1384
|
+
};
|
|
1385
|
+
};
|
|
1386
|
+
};
|
|
1387
|
+
iamSmartAuthentication: {
|
|
1388
|
+
parameters: {
|
|
1389
|
+
query?: never;
|
|
1390
|
+
header?: never;
|
|
1391
|
+
path?: never;
|
|
1392
|
+
cookie?: never;
|
|
1393
|
+
};
|
|
1394
|
+
requestBody: {
|
|
1395
|
+
content: {
|
|
1396
|
+
"application/json": components["schemas"]["IamSmartAuthRequest"];
|
|
1397
|
+
};
|
|
1398
|
+
};
|
|
1399
|
+
responses: {
|
|
1400
|
+
/** @description Authentication request successfully initialized. Store the token for subsequent API calls. */
|
|
1401
|
+
200: {
|
|
1402
|
+
headers: {
|
|
1403
|
+
[name: string]: unknown;
|
|
1404
|
+
};
|
|
1405
|
+
content: {
|
|
1406
|
+
"application/json": components["schemas"]["IamSmartAuthResponse"];
|
|
1407
|
+
};
|
|
1408
|
+
};
|
|
1409
|
+
400: components["responses"]["BadRequest"];
|
|
1410
|
+
401: components["responses"]["Unauthorized"];
|
|
1411
|
+
500: components["responses"]["InternalServerError"];
|
|
1412
|
+
};
|
|
1413
|
+
};
|
|
1414
|
+
iamSmartFormFilling: {
|
|
1415
|
+
parameters: {
|
|
1416
|
+
query?: never;
|
|
1417
|
+
header?: never;
|
|
1418
|
+
path?: never;
|
|
1419
|
+
cookie?: never;
|
|
1420
|
+
};
|
|
1421
|
+
requestBody: {
|
|
1422
|
+
content: {
|
|
1423
|
+
"application/json": components["schemas"]["IamSmartFormFillingRequest"];
|
|
1424
|
+
};
|
|
1425
|
+
};
|
|
1426
|
+
responses: {
|
|
1427
|
+
/** @description Form filling request successfully initialized. Poll with the returned token to retrieve form data when ready. */
|
|
1428
|
+
200: {
|
|
1429
|
+
headers: {
|
|
1430
|
+
[name: string]: unknown;
|
|
1431
|
+
};
|
|
1432
|
+
content: {
|
|
1433
|
+
"application/json": components["schemas"]["IamSmartFormFillingResponse"];
|
|
1434
|
+
};
|
|
1435
|
+
};
|
|
1436
|
+
400: components["responses"]["BadRequest"];
|
|
1437
|
+
401: components["responses"]["Unauthorized"];
|
|
1438
|
+
500: components["responses"]["InternalServerError"];
|
|
1439
|
+
};
|
|
1440
|
+
};
|
|
1441
|
+
iamSmartHashSigning: {
|
|
1442
|
+
parameters: {
|
|
1443
|
+
query?: never;
|
|
1444
|
+
header?: never;
|
|
1445
|
+
path?: never;
|
|
1446
|
+
cookie?: never;
|
|
1447
|
+
};
|
|
1448
|
+
requestBody: {
|
|
1449
|
+
content: {
|
|
1450
|
+
"application/json": components["schemas"]["IamSmartHashSignRequest"];
|
|
1451
|
+
};
|
|
1452
|
+
};
|
|
1453
|
+
responses: {
|
|
1454
|
+
/** @description Signing request successfully initialized. Poll with the returned token to get signature results. */
|
|
1455
|
+
200: {
|
|
1456
|
+
headers: {
|
|
1457
|
+
[name: string]: unknown;
|
|
1458
|
+
};
|
|
1459
|
+
content: {
|
|
1460
|
+
"application/json": components["schemas"]["IamSmartHashSignResponse"];
|
|
1461
|
+
};
|
|
1462
|
+
};
|
|
1463
|
+
400: components["responses"]["BadRequest"];
|
|
1464
|
+
401: components["responses"]["Unauthorized"];
|
|
1465
|
+
500: components["responses"]["InternalServerError"];
|
|
1466
|
+
};
|
|
1467
|
+
};
|
|
1468
|
+
iamSmartPdfSigning: {
|
|
1469
|
+
parameters: {
|
|
1470
|
+
query?: never;
|
|
1471
|
+
header?: never;
|
|
1472
|
+
path?: never;
|
|
1473
|
+
cookie?: never;
|
|
1474
|
+
};
|
|
1475
|
+
requestBody: {
|
|
1476
|
+
content: {
|
|
1477
|
+
"application/json": components["schemas"]["IamSmartPdfSignRequest"];
|
|
1478
|
+
};
|
|
1479
|
+
};
|
|
1480
|
+
responses: {
|
|
1481
|
+
/** @description PDF signing request successfully initialized. Poll with the returned token to retrieve signed PDF when ready. */
|
|
1482
|
+
200: {
|
|
1483
|
+
headers: {
|
|
1484
|
+
[name: string]: unknown;
|
|
1485
|
+
};
|
|
1486
|
+
content: {
|
|
1487
|
+
"application/json": components["schemas"]["IamSmartPdfSignResponse"];
|
|
1488
|
+
};
|
|
1489
|
+
};
|
|
1490
|
+
400: components["responses"]["BadRequest"];
|
|
1491
|
+
401: components["responses"]["Unauthorized"];
|
|
1492
|
+
500: components["responses"]["InternalServerError"];
|
|
1493
|
+
};
|
|
1494
|
+
};
|
|
1495
|
+
iamSmartReauthentication: {
|
|
1496
|
+
parameters: {
|
|
1497
|
+
query?: never;
|
|
1498
|
+
header?: never;
|
|
1499
|
+
path?: never;
|
|
1500
|
+
cookie?: never;
|
|
1501
|
+
};
|
|
1502
|
+
requestBody: {
|
|
1503
|
+
content: {
|
|
1504
|
+
"application/json": components["schemas"]["IamSmartReauthRequest"];
|
|
1505
|
+
};
|
|
1506
|
+
};
|
|
1507
|
+
responses: {
|
|
1508
|
+
/** @description Re-authentication request successfully initialized. Poll with the returned token to get re-authentication results. */
|
|
1509
|
+
200: {
|
|
1510
|
+
headers: {
|
|
1511
|
+
[name: string]: unknown;
|
|
1512
|
+
};
|
|
1513
|
+
content: {
|
|
1514
|
+
"application/json": components["schemas"]["IamSmartReauthResponse"];
|
|
1515
|
+
};
|
|
1516
|
+
};
|
|
1517
|
+
400: components["responses"]["BadRequest"];
|
|
1518
|
+
401: components["responses"]["Unauthorized"];
|
|
1519
|
+
500: components["responses"]["InternalServerError"];
|
|
1520
|
+
};
|
|
1521
|
+
};
|
|
1522
|
+
ccic: {
|
|
1523
|
+
parameters: {
|
|
1524
|
+
query?: never;
|
|
1525
|
+
header?: never;
|
|
1526
|
+
path?: never;
|
|
1527
|
+
cookie?: never;
|
|
1528
|
+
};
|
|
1529
|
+
requestBody?: never;
|
|
1530
|
+
responses: {
|
|
1531
|
+
/** @description Success */
|
|
1532
|
+
200: {
|
|
1533
|
+
headers: {
|
|
1534
|
+
[name: string]: unknown;
|
|
1535
|
+
};
|
|
1536
|
+
content?: never;
|
|
1537
|
+
};
|
|
1538
|
+
};
|
|
1539
|
+
};
|
|
1540
|
+
iamSmartAnonFormFilling: {
|
|
1541
|
+
parameters: {
|
|
1542
|
+
query?: never;
|
|
1543
|
+
header?: never;
|
|
1544
|
+
path?: never;
|
|
1545
|
+
cookie?: never;
|
|
1546
|
+
};
|
|
1547
|
+
requestBody: {
|
|
1548
|
+
content: {
|
|
1549
|
+
"application/json": components["schemas"]["IamSmartAnonFormFillingRequest"];
|
|
1550
|
+
};
|
|
1551
|
+
};
|
|
1552
|
+
responses: {
|
|
1553
|
+
/** @description Anonymous form filling request successfully initialized. Redirect user to the URL, then poll with the token to retrieve form data. */
|
|
1554
|
+
200: {
|
|
1555
|
+
headers: {
|
|
1556
|
+
[name: string]: unknown;
|
|
1557
|
+
};
|
|
1558
|
+
content: {
|
|
1559
|
+
"application/json": components["schemas"]["IamSmartAnonFormFillingResponse"];
|
|
1560
|
+
};
|
|
1561
|
+
};
|
|
1562
|
+
400: components["responses"]["BadRequest"];
|
|
1563
|
+
401: components["responses"]["Unauthorized"];
|
|
1564
|
+
500: components["responses"]["InternalServerError"];
|
|
1565
|
+
};
|
|
1566
|
+
};
|
|
1567
|
+
iamSmartAnonHashSigning: {
|
|
1568
|
+
parameters: {
|
|
1569
|
+
query?: never;
|
|
1570
|
+
header?: never;
|
|
1571
|
+
path?: never;
|
|
1572
|
+
cookie?: never;
|
|
1573
|
+
};
|
|
1574
|
+
requestBody: {
|
|
1575
|
+
content: {
|
|
1576
|
+
"application/json": components["schemas"]["IamSmartAnonHashSignRequest"];
|
|
1577
|
+
};
|
|
1578
|
+
};
|
|
1579
|
+
responses: {
|
|
1580
|
+
/** @description Anonymous signing request successfully initialized. Redirect user to the URL, then poll with the token to retrieve signature. */
|
|
1581
|
+
200: {
|
|
1582
|
+
headers: {
|
|
1583
|
+
[name: string]: unknown;
|
|
1584
|
+
};
|
|
1585
|
+
content: {
|
|
1586
|
+
"application/json": components["schemas"]["IamSmartAnonHashSignResponse"];
|
|
1587
|
+
};
|
|
1588
|
+
};
|
|
1589
|
+
400: components["responses"]["BadRequest"];
|
|
1590
|
+
401: components["responses"]["Unauthorized"];
|
|
1591
|
+
500: components["responses"]["InternalServerError"];
|
|
1592
|
+
};
|
|
1593
|
+
};
|
|
1594
|
+
iamSmartAnonPdfSigning: {
|
|
1595
|
+
parameters: {
|
|
1596
|
+
query?: never;
|
|
1597
|
+
header?: never;
|
|
1598
|
+
path?: never;
|
|
1599
|
+
cookie?: never;
|
|
1600
|
+
};
|
|
1601
|
+
requestBody: {
|
|
1602
|
+
content: {
|
|
1603
|
+
"application/json": components["schemas"]["IamSmartAnonPdfSignRequest"];
|
|
1604
|
+
};
|
|
1605
|
+
};
|
|
1606
|
+
responses: {
|
|
1607
|
+
/** @description Successfully initiated anonymous PDF signing request */
|
|
1608
|
+
200: {
|
|
1609
|
+
headers: {
|
|
1610
|
+
[name: string]: unknown;
|
|
1611
|
+
};
|
|
1612
|
+
content: {
|
|
1613
|
+
"application/json": components["schemas"]["IamSmartAnonPdfSignResponse"];
|
|
1614
|
+
};
|
|
1615
|
+
};
|
|
1616
|
+
400: components["responses"]["BadRequest"];
|
|
1617
|
+
401: components["responses"]["Unauthorized"];
|
|
1618
|
+
500: components["responses"]["InternalServerError"];
|
|
1619
|
+
};
|
|
1620
|
+
};
|
|
1621
|
+
govCallback: {
|
|
1622
|
+
parameters: {
|
|
1623
|
+
query?: never;
|
|
1624
|
+
header?: never;
|
|
1625
|
+
path: {
|
|
1626
|
+
/**
|
|
1627
|
+
* @description The iAM Smart service type
|
|
1628
|
+
* @example auth
|
|
1629
|
+
*/
|
|
1630
|
+
service: components["parameters"]["IamSmartServicePath"];
|
|
1631
|
+
};
|
|
1632
|
+
cookie?: never;
|
|
1633
|
+
};
|
|
1634
|
+
requestBody: {
|
|
1635
|
+
content: {
|
|
1636
|
+
"application/json": {
|
|
1637
|
+
/**
|
|
1638
|
+
* @description Encrypted content from iAM Smart containing the result data
|
|
1639
|
+
* @example eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..encrypted_content_here
|
|
1640
|
+
*/
|
|
1641
|
+
content: string;
|
|
1642
|
+
};
|
|
1643
|
+
};
|
|
1644
|
+
};
|
|
1645
|
+
responses: {
|
|
1646
|
+
/** @description Success */
|
|
1647
|
+
200: {
|
|
1648
|
+
headers: {
|
|
1649
|
+
[name: string]: unknown;
|
|
1650
|
+
};
|
|
1651
|
+
content?: never;
|
|
1652
|
+
};
|
|
1653
|
+
};
|
|
1654
|
+
};
|
|
1655
|
+
iamSmartRedirect: {
|
|
1656
|
+
parameters: {
|
|
1657
|
+
query?: {
|
|
1658
|
+
/**
|
|
1659
|
+
* @description Authorization code from iAM Smart (present on success)
|
|
1660
|
+
* @example a51c81dce74743359c0a1d639369311f
|
|
1661
|
+
*/
|
|
1662
|
+
code?: string;
|
|
1663
|
+
/** @description Error code from iAM Smart (present on failure/rejection) */
|
|
1664
|
+
error_code?: string;
|
|
1665
|
+
/**
|
|
1666
|
+
* @description State parameter used to match the request.
|
|
1667
|
+
* @example 9boB90uhibYcO3FdPp8fWFLmOOCmTVGUH4Ld
|
|
1668
|
+
*/
|
|
1669
|
+
state?: string;
|
|
1670
|
+
/**
|
|
1671
|
+
* @description Business ID to identify the transaction. Not received if service is auth
|
|
1672
|
+
* @example HjlSqLBzQARhhHV8O44wQuR0upfiHTjj6ckh
|
|
1673
|
+
*/
|
|
1674
|
+
businessID?: string;
|
|
1675
|
+
/** @description Source platform (optional) */
|
|
1676
|
+
source?: string;
|
|
1677
|
+
};
|
|
1678
|
+
header?: never;
|
|
1679
|
+
path: {
|
|
1680
|
+
/**
|
|
1681
|
+
* @description The iAM Smart service type
|
|
1682
|
+
* @example auth
|
|
1683
|
+
*/
|
|
1684
|
+
service: components["parameters"]["IamSmartServicePath"];
|
|
1685
|
+
};
|
|
1686
|
+
cookie?: never;
|
|
1687
|
+
};
|
|
1688
|
+
requestBody?: never;
|
|
1689
|
+
responses: {
|
|
1690
|
+
/** @description Success */
|
|
1691
|
+
200: {
|
|
1692
|
+
headers: {
|
|
1693
|
+
[name: string]: unknown;
|
|
1694
|
+
};
|
|
1695
|
+
content?: never;
|
|
1696
|
+
};
|
|
1697
|
+
/** @description Bad Request - Missing required parameters or invalid service */
|
|
1698
|
+
400: {
|
|
1699
|
+
headers: {
|
|
1700
|
+
[name: string]: unknown;
|
|
1701
|
+
};
|
|
1702
|
+
content: {
|
|
1703
|
+
"application/json": components["schemas"]["Error"];
|
|
1704
|
+
};
|
|
1705
|
+
};
|
|
1706
|
+
};
|
|
1707
|
+
};
|
|
1708
|
+
pollData: {
|
|
1709
|
+
parameters: {
|
|
1710
|
+
query?: never;
|
|
1711
|
+
header?: never;
|
|
1712
|
+
path?: never;
|
|
1713
|
+
cookie?: never;
|
|
1714
|
+
};
|
|
1715
|
+
requestBody: {
|
|
1716
|
+
content: {
|
|
1717
|
+
"application/json": {
|
|
1718
|
+
token: string;
|
|
1719
|
+
code?: string;
|
|
1720
|
+
error_code?: string;
|
|
1721
|
+
};
|
|
1722
|
+
};
|
|
1723
|
+
};
|
|
1724
|
+
responses: {
|
|
1725
|
+
/** @description Returns the final result with personal information, encoded in a JWE token. */
|
|
1726
|
+
200: {
|
|
1727
|
+
headers: {
|
|
1728
|
+
[name: string]: unknown;
|
|
1729
|
+
};
|
|
1730
|
+
content: {
|
|
1731
|
+
"application/json": {
|
|
1732
|
+
message?: string;
|
|
1733
|
+
token?: string;
|
|
1734
|
+
};
|
|
1735
|
+
};
|
|
1736
|
+
};
|
|
1737
|
+
/** @description Result Pending, user has not completed the action */
|
|
1738
|
+
202: {
|
|
1739
|
+
headers: {
|
|
1740
|
+
[name: string]: unknown;
|
|
1741
|
+
};
|
|
1742
|
+
content: {
|
|
1743
|
+
"application/json": {
|
|
1744
|
+
message?: string;
|
|
1745
|
+
};
|
|
1746
|
+
};
|
|
1747
|
+
};
|
|
1748
|
+
/** @description User rejected the request */
|
|
1749
|
+
299: {
|
|
1750
|
+
headers: {
|
|
1751
|
+
[name: string]: unknown;
|
|
1752
|
+
};
|
|
1753
|
+
content: {
|
|
1754
|
+
"application/json": {
|
|
1755
|
+
message?: string;
|
|
1756
|
+
};
|
|
1757
|
+
};
|
|
1758
|
+
};
|
|
1759
|
+
/** @description User rejected the request */
|
|
1760
|
+
401: {
|
|
1761
|
+
headers: {
|
|
1762
|
+
[name: string]: unknown;
|
|
1763
|
+
};
|
|
1764
|
+
content: {
|
|
1765
|
+
"application/json": {
|
|
1766
|
+
message?: string;
|
|
1767
|
+
};
|
|
1768
|
+
};
|
|
1769
|
+
};
|
|
1770
|
+
/** @description Personal data is deleted after 18 minutes / after first successful poll */
|
|
1771
|
+
410: {
|
|
1772
|
+
headers: {
|
|
1773
|
+
[name: string]: unknown;
|
|
1774
|
+
};
|
|
1775
|
+
content: {
|
|
1776
|
+
"application/json": {
|
|
1777
|
+
message?: string;
|
|
1778
|
+
};
|
|
1779
|
+
};
|
|
1780
|
+
};
|
|
1781
|
+
};
|
|
1782
|
+
};
|
|
1783
|
+
verify: {
|
|
1784
|
+
parameters: {
|
|
1785
|
+
query?: never;
|
|
1786
|
+
header?: never;
|
|
1787
|
+
path?: never;
|
|
1788
|
+
cookie?: never;
|
|
1789
|
+
};
|
|
1790
|
+
requestBody: {
|
|
1791
|
+
content: {
|
|
1792
|
+
"application/json": {
|
|
1793
|
+
/**
|
|
1794
|
+
* Format: uri
|
|
1795
|
+
* @description Callback URL to redirect after verification
|
|
1796
|
+
*/
|
|
1797
|
+
redirect: string;
|
|
1798
|
+
/**
|
|
1799
|
+
* @description QR code type
|
|
1800
|
+
* @enum {string}
|
|
1801
|
+
*/
|
|
1802
|
+
type?: "dynamic" | "static";
|
|
1803
|
+
/**
|
|
1804
|
+
* Format: int64
|
|
1805
|
+
* @description Start timestamp in milliseconds (must be >= current time)
|
|
1806
|
+
*/
|
|
1807
|
+
start?: number;
|
|
1808
|
+
/**
|
|
1809
|
+
* Format: int64
|
|
1810
|
+
* @description End timestamp in milliseconds (must be > start time)
|
|
1811
|
+
*/
|
|
1812
|
+
end?: number;
|
|
1813
|
+
/** @description Duration in milliseconds (positive integer) */
|
|
1814
|
+
duration?: number;
|
|
1815
|
+
/**
|
|
1816
|
+
* @description Format of the response (url, qr, or both)
|
|
1817
|
+
* @default both
|
|
1818
|
+
* @enum {string}
|
|
1819
|
+
*/
|
|
1820
|
+
responseFormat?: "url" | "qr" | "both";
|
|
1821
|
+
};
|
|
1822
|
+
};
|
|
1823
|
+
};
|
|
1824
|
+
responses: {
|
|
1825
|
+
/** @description Success */
|
|
1826
|
+
200: {
|
|
1827
|
+
headers: {
|
|
1828
|
+
[name: string]: unknown;
|
|
1829
|
+
};
|
|
1830
|
+
content: {
|
|
1831
|
+
"application/json": {
|
|
1832
|
+
/** @description JWT token for polling */
|
|
1833
|
+
token: string;
|
|
1834
|
+
/** @description Singpass verification URL */
|
|
1835
|
+
url?: string;
|
|
1836
|
+
/** @description QR code data URL */
|
|
1837
|
+
qrUrl?: string;
|
|
1838
|
+
};
|
|
1839
|
+
};
|
|
1840
|
+
};
|
|
1841
|
+
400: components["responses"]["BadRequest"];
|
|
1842
|
+
};
|
|
1843
|
+
};
|
|
1844
|
+
myinfo: {
|
|
1845
|
+
parameters: {
|
|
1846
|
+
query?: never;
|
|
1847
|
+
header?: never;
|
|
1848
|
+
path?: never;
|
|
1849
|
+
cookie?: never;
|
|
1850
|
+
};
|
|
1851
|
+
requestBody: {
|
|
1852
|
+
content: {
|
|
1853
|
+
"application/json": {
|
|
1854
|
+
/** @description attributes to be requested from user */
|
|
1855
|
+
attributes: string[];
|
|
1856
|
+
/** @description raw full callback URL */
|
|
1857
|
+
redirect: string;
|
|
1858
|
+
};
|
|
1859
|
+
};
|
|
1860
|
+
};
|
|
1861
|
+
responses: {
|
|
1862
|
+
/** @description Success */
|
|
1863
|
+
200: {
|
|
1864
|
+
headers: {
|
|
1865
|
+
[name: string]: unknown;
|
|
1866
|
+
};
|
|
1867
|
+
content: {
|
|
1868
|
+
"application/json": {
|
|
1869
|
+
token?: string;
|
|
1870
|
+
url?: string;
|
|
1871
|
+
};
|
|
1872
|
+
};
|
|
1873
|
+
};
|
|
1874
|
+
/** @description Error */
|
|
1875
|
+
502: {
|
|
1876
|
+
headers: {
|
|
1877
|
+
[name: string]: unknown;
|
|
1878
|
+
};
|
|
1879
|
+
content: {
|
|
1880
|
+
"application/json": {
|
|
1881
|
+
message?: string;
|
|
1882
|
+
};
|
|
1883
|
+
};
|
|
1884
|
+
};
|
|
1885
|
+
};
|
|
1886
|
+
};
|
|
1887
|
+
myinfoBusiness: {
|
|
1888
|
+
parameters: {
|
|
1889
|
+
query?: never;
|
|
1890
|
+
header?: never;
|
|
1891
|
+
path?: never;
|
|
1892
|
+
cookie?: never;
|
|
1893
|
+
};
|
|
1894
|
+
requestBody: {
|
|
1895
|
+
content: {
|
|
1896
|
+
"application/json": {
|
|
1897
|
+
/** @description attributes to be requested from user */
|
|
1898
|
+
attributes?: string[];
|
|
1899
|
+
/** @description raw full callback URL */
|
|
1900
|
+
redirect?: string;
|
|
1901
|
+
};
|
|
1902
|
+
};
|
|
1903
|
+
};
|
|
1904
|
+
responses: {
|
|
1905
|
+
200: {
|
|
1906
|
+
headers: {
|
|
1907
|
+
[name: string]: unknown;
|
|
1908
|
+
};
|
|
1909
|
+
content?: never;
|
|
1910
|
+
};
|
|
1911
|
+
};
|
|
1912
|
+
};
|
|
1913
|
+
sgidRedirect: {
|
|
1914
|
+
parameters: {
|
|
1915
|
+
query?: never;
|
|
1916
|
+
header?: never;
|
|
1917
|
+
path?: never;
|
|
1918
|
+
cookie?: never;
|
|
1919
|
+
};
|
|
1920
|
+
requestBody?: never;
|
|
1921
|
+
responses: {
|
|
1922
|
+
200: {
|
|
1923
|
+
headers: {
|
|
1924
|
+
[name: string]: unknown;
|
|
1925
|
+
};
|
|
1926
|
+
content?: never;
|
|
1927
|
+
};
|
|
1928
|
+
};
|
|
1929
|
+
};
|
|
1930
|
+
callbackPerson: {
|
|
1931
|
+
parameters: {
|
|
1932
|
+
query?: never;
|
|
1933
|
+
header?: never;
|
|
1934
|
+
path?: never;
|
|
1935
|
+
cookie?: never;
|
|
1936
|
+
};
|
|
1937
|
+
requestBody?: never;
|
|
1938
|
+
responses: {
|
|
1939
|
+
200: {
|
|
1940
|
+
headers: {
|
|
1941
|
+
[name: string]: unknown;
|
|
1942
|
+
};
|
|
1943
|
+
content?: never;
|
|
1944
|
+
};
|
|
1945
|
+
};
|
|
1946
|
+
};
|
|
1947
|
+
callbackPersonBiz: {
|
|
1948
|
+
parameters: {
|
|
1949
|
+
query?: never;
|
|
1950
|
+
header?: never;
|
|
1951
|
+
path?: never;
|
|
1952
|
+
cookie?: never;
|
|
1953
|
+
};
|
|
1954
|
+
requestBody?: never;
|
|
1955
|
+
responses: {
|
|
1956
|
+
200: {
|
|
1957
|
+
headers: {
|
|
1958
|
+
[name: string]: unknown;
|
|
1959
|
+
};
|
|
1960
|
+
content?: never;
|
|
1961
|
+
};
|
|
1962
|
+
};
|
|
1963
|
+
};
|
|
1964
|
+
callbackVerify: {
|
|
1965
|
+
parameters: {
|
|
1966
|
+
query?: never;
|
|
1967
|
+
header?: never;
|
|
1968
|
+
path?: never;
|
|
1969
|
+
cookie?: never;
|
|
1970
|
+
};
|
|
1971
|
+
requestBody?: never;
|
|
1972
|
+
responses: {
|
|
1973
|
+
200: {
|
|
1974
|
+
headers: {
|
|
1975
|
+
[name: string]: unknown;
|
|
1976
|
+
};
|
|
1977
|
+
content?: never;
|
|
1978
|
+
};
|
|
1979
|
+
};
|
|
1980
|
+
};
|
|
1981
|
+
jwks: {
|
|
1982
|
+
parameters: {
|
|
1983
|
+
query?: never;
|
|
1984
|
+
header?: never;
|
|
1985
|
+
path?: never;
|
|
1986
|
+
cookie?: never;
|
|
1987
|
+
};
|
|
1988
|
+
requestBody?: never;
|
|
1989
|
+
responses: {
|
|
1990
|
+
200: {
|
|
1991
|
+
headers: {
|
|
1992
|
+
[name: string]: unknown;
|
|
1993
|
+
};
|
|
1994
|
+
content?: never;
|
|
1995
|
+
};
|
|
1996
|
+
};
|
|
1997
|
+
};
|
|
1998
|
+
singpassPoll: {
|
|
1999
|
+
parameters: {
|
|
2000
|
+
query?: never;
|
|
2001
|
+
header?: never;
|
|
2002
|
+
path?: never;
|
|
2003
|
+
cookie?: never;
|
|
2004
|
+
};
|
|
2005
|
+
requestBody: {
|
|
2006
|
+
content: {
|
|
2007
|
+
"application/json": {
|
|
2008
|
+
/**
|
|
2009
|
+
* @description The token received on the first request.
|
|
2010
|
+
* @example 2dmR0VVufvic0vrVIluVBVi1EXtkCwIZ331as0Em
|
|
2011
|
+
*/
|
|
2012
|
+
token: string;
|
|
2013
|
+
};
|
|
2014
|
+
};
|
|
2015
|
+
};
|
|
2016
|
+
responses: {
|
|
2017
|
+
/** @description OK - Data successfully retrieved */
|
|
2018
|
+
200: {
|
|
2019
|
+
headers: {
|
|
2020
|
+
[name: string]: unknown;
|
|
2021
|
+
};
|
|
2022
|
+
content: {
|
|
2023
|
+
"application/json": {
|
|
2024
|
+
/** @description URL that should be shown to the user (usually as a QR code) */
|
|
2025
|
+
url?: string;
|
|
2026
|
+
/** @description Used to poll requested data */
|
|
2027
|
+
token?: string;
|
|
2028
|
+
};
|
|
2029
|
+
};
|
|
2030
|
+
};
|
|
2031
|
+
/** @description Bad Request - Invalid request body. Ensure that your request body complies with the requirements. */
|
|
2032
|
+
400: {
|
|
2033
|
+
headers: {
|
|
2034
|
+
[name: string]: unknown;
|
|
2035
|
+
};
|
|
2036
|
+
content: {
|
|
2037
|
+
/** @example {
|
|
2038
|
+
* "message": "Invalid request body"
|
|
2039
|
+
* } */
|
|
2040
|
+
"application/json": {
|
|
2041
|
+
/** @enum {string} */
|
|
2042
|
+
message?: "Invalid request body";
|
|
2043
|
+
};
|
|
2044
|
+
};
|
|
2045
|
+
};
|
|
2046
|
+
/** @description No credentials - Unauthorized. Ensure that you use the correct authorization process. */
|
|
2047
|
+
401: {
|
|
2048
|
+
headers: {
|
|
2049
|
+
[name: string]: unknown;
|
|
2050
|
+
};
|
|
2051
|
+
content: {
|
|
2052
|
+
/** @example {
|
|
2053
|
+
* "message": "Unauthorized"
|
|
2054
|
+
* } */
|
|
2055
|
+
"application/json": {
|
|
2056
|
+
/** @enum {string} */
|
|
2057
|
+
message?: "Unauthorized";
|
|
2058
|
+
};
|
|
2059
|
+
};
|
|
2060
|
+
};
|
|
2061
|
+
};
|
|
2062
|
+
};
|
|
2063
|
+
nfcPoll: {
|
|
2064
|
+
parameters: {
|
|
2065
|
+
query?: never;
|
|
2066
|
+
header?: never;
|
|
2067
|
+
path?: never;
|
|
2068
|
+
cookie?: never;
|
|
2069
|
+
};
|
|
2070
|
+
requestBody: {
|
|
2071
|
+
content: {
|
|
2072
|
+
"application/json": {
|
|
2073
|
+
/** @description Request ID from NFC scan */
|
|
2074
|
+
reqid: string;
|
|
2075
|
+
};
|
|
2076
|
+
};
|
|
2077
|
+
};
|
|
2078
|
+
responses: {
|
|
2079
|
+
/** @description Success */
|
|
2080
|
+
200: {
|
|
2081
|
+
headers: {
|
|
2082
|
+
[name: string]: unknown;
|
|
2083
|
+
};
|
|
2084
|
+
content: {
|
|
2085
|
+
"application/json": {
|
|
2086
|
+
/** @description Status message */
|
|
2087
|
+
message: string;
|
|
2088
|
+
/** @description JWE encrypted token containing NFC data */
|
|
2089
|
+
token: string;
|
|
2090
|
+
};
|
|
2091
|
+
};
|
|
2092
|
+
};
|
|
2093
|
+
400: components["responses"]["BadRequest"];
|
|
2094
|
+
500: components["responses"]["InternalServerError"];
|
|
2095
|
+
};
|
|
2096
|
+
};
|
|
2097
|
+
faceReqRequest: {
|
|
2098
|
+
parameters: {
|
|
2099
|
+
query?: never;
|
|
2100
|
+
header?: never;
|
|
2101
|
+
path?: never;
|
|
2102
|
+
cookie?: never;
|
|
2103
|
+
};
|
|
2104
|
+
requestBody: {
|
|
2105
|
+
content: {
|
|
2106
|
+
"application/json": {
|
|
2107
|
+
redirect: string;
|
|
2108
|
+
};
|
|
2109
|
+
};
|
|
2110
|
+
};
|
|
2111
|
+
responses: {
|
|
2112
|
+
/** @description 200 Success */
|
|
2113
|
+
200: {
|
|
2114
|
+
headers: {
|
|
2115
|
+
[name: string]: unknown;
|
|
2116
|
+
};
|
|
2117
|
+
content: {
|
|
2118
|
+
"application/json": {
|
|
2119
|
+
message?: string;
|
|
2120
|
+
token?: string;
|
|
2121
|
+
url?: string;
|
|
2122
|
+
};
|
|
2123
|
+
};
|
|
2124
|
+
};
|
|
2125
|
+
};
|
|
2126
|
+
};
|
|
2127
|
+
faceReqPoll: {
|
|
2128
|
+
parameters: {
|
|
2129
|
+
query?: never;
|
|
2130
|
+
header?: never;
|
|
2131
|
+
path?: never;
|
|
2132
|
+
cookie?: never;
|
|
2133
|
+
};
|
|
2134
|
+
requestBody: {
|
|
2135
|
+
content: {
|
|
2136
|
+
"application/json": {
|
|
2137
|
+
token: string;
|
|
2138
|
+
};
|
|
2139
|
+
};
|
|
2140
|
+
};
|
|
2141
|
+
responses: {
|
|
2142
|
+
/** @description 200 Success */
|
|
2143
|
+
200: {
|
|
2144
|
+
headers: {
|
|
2145
|
+
[name: string]: unknown;
|
|
2146
|
+
};
|
|
2147
|
+
content: {
|
|
2148
|
+
"application/json": {
|
|
2149
|
+
faceImage?: string;
|
|
2150
|
+
message?: string;
|
|
2151
|
+
};
|
|
2152
|
+
};
|
|
2153
|
+
};
|
|
2154
|
+
};
|
|
2155
|
+
};
|
|
2156
|
+
request1: {
|
|
2157
|
+
parameters: {
|
|
2158
|
+
query?: never;
|
|
2159
|
+
header?: never;
|
|
2160
|
+
path?: never;
|
|
2161
|
+
cookie?: never;
|
|
2162
|
+
};
|
|
2163
|
+
requestBody: {
|
|
2164
|
+
content: {
|
|
2165
|
+
"application/json": {
|
|
2166
|
+
/**
|
|
2167
|
+
* Format: uri
|
|
2168
|
+
* @description Where to redirect the user **after success**. Must be publicly reachable over **https**.
|
|
2169
|
+
* @example https://example.com/ocr/complete
|
|
2170
|
+
*/
|
|
2171
|
+
completeCallbackUrl: string;
|
|
2172
|
+
/**
|
|
2173
|
+
* Format: uri
|
|
2174
|
+
* @description Where to redirect the user if they **cancel/exit**. Must be publicly reachable over **https**.
|
|
2175
|
+
* @example https://example.com/ocr/interrupt
|
|
2176
|
+
*/
|
|
2177
|
+
interruptCallbackUrl: string;
|
|
2178
|
+
/**
|
|
2179
|
+
* @description The identity document type to verify. `00000001003` (Passport), `08520000002` (HKID New), `08520000001` (HKID Old). Use the exact code for your target document.
|
|
2180
|
+
* @example 08520000002
|
|
2181
|
+
* @enum {string}
|
|
2182
|
+
*/
|
|
2183
|
+
docType: "00000001003" | "08520000002" | "08520000001";
|
|
2184
|
+
};
|
|
2185
|
+
};
|
|
2186
|
+
};
|
|
2187
|
+
responses: {
|
|
2188
|
+
/** @description Successfully initialized verification session */
|
|
2189
|
+
200: {
|
|
2190
|
+
headers: {
|
|
2191
|
+
[name: string]: unknown;
|
|
2192
|
+
};
|
|
2193
|
+
content: {
|
|
2194
|
+
"application/json": {
|
|
2195
|
+
/**
|
|
2196
|
+
* Format: uri
|
|
2197
|
+
* @description Launch URL to open on a mobile browser or in an in-app web view. This URL contains the configuration for the H5 verification flow.
|
|
2198
|
+
* @example https://<cdn>/page/realid-fe/index.html?clientcfg=eyJ...
|
|
2199
|
+
*/
|
|
2200
|
+
url: string;
|
|
2201
|
+
/** @description JWT token carrying bizId and transactionId. Store this token to poll for verification results using `/ocr/poll`. */
|
|
2202
|
+
token: components["schemas"]["Token"];
|
|
2203
|
+
};
|
|
2204
|
+
};
|
|
2205
|
+
};
|
|
2206
|
+
};
|
|
2207
|
+
};
|
|
2208
|
+
ocrPoll: {
|
|
2209
|
+
parameters: {
|
|
2210
|
+
query?: never;
|
|
2211
|
+
header?: never;
|
|
2212
|
+
path?: never;
|
|
2213
|
+
cookie?: never;
|
|
2214
|
+
};
|
|
2215
|
+
requestBody: {
|
|
2216
|
+
content: {
|
|
2217
|
+
"application/json": {
|
|
2218
|
+
/** @description The token returned by `POST /ocr/request` that encodes the session identifiers */
|
|
2219
|
+
token: components["schemas"]["Token"];
|
|
2220
|
+
};
|
|
2221
|
+
};
|
|
2222
|
+
};
|
|
2223
|
+
responses: {
|
|
2224
|
+
/** @description Verification completed (Success / Failure / Void\*) */
|
|
2225
|
+
200: {
|
|
2226
|
+
headers: {
|
|
2227
|
+
[name: string]: unknown;
|
|
2228
|
+
};
|
|
2229
|
+
content: {
|
|
2230
|
+
"application/json": {
|
|
2231
|
+
/**
|
|
2232
|
+
* @description Status message
|
|
2233
|
+
* @example Verification completed
|
|
2234
|
+
*/
|
|
2235
|
+
message: string;
|
|
2236
|
+
summary: {
|
|
2237
|
+
/**
|
|
2238
|
+
* @description Overall eKYC verification result
|
|
2239
|
+
* @example Success
|
|
2240
|
+
* @enum {string}
|
|
2241
|
+
*/
|
|
2242
|
+
ekycResult: "Success" | "Failure" | "Void";
|
|
2243
|
+
/**
|
|
2244
|
+
* @description Whether this is a terminal state (true for completed verifications)
|
|
2245
|
+
* @example true
|
|
2246
|
+
*/
|
|
2247
|
+
isTerminal: boolean;
|
|
2248
|
+
/** @description Document verification details */
|
|
2249
|
+
document: {
|
|
2250
|
+
/**
|
|
2251
|
+
* @description Document type code
|
|
2252
|
+
* @example 08520000002
|
|
2253
|
+
*/
|
|
2254
|
+
type?: string;
|
|
2255
|
+
/**
|
|
2256
|
+
* @description Document number (may be partially masked)
|
|
2257
|
+
* @example F*********
|
|
2258
|
+
*/
|
|
2259
|
+
number?: string;
|
|
2260
|
+
/**
|
|
2261
|
+
* @description Name of the document holder
|
|
2262
|
+
* @example John, Smith
|
|
2263
|
+
*/
|
|
2264
|
+
holderName?: string;
|
|
2265
|
+
/**
|
|
2266
|
+
* @description Date of birth (YYYY/MM/DD format)
|
|
2267
|
+
* @example 2000/01/01
|
|
2268
|
+
*/
|
|
2269
|
+
dob?: string;
|
|
2270
|
+
/**
|
|
2271
|
+
* @description Gender
|
|
2272
|
+
* @example M
|
|
2273
|
+
*/
|
|
2274
|
+
sex?: string | null;
|
|
2275
|
+
/**
|
|
2276
|
+
* @description Document issue date (YYYY/MM/DD format)
|
|
2277
|
+
* @example 2021/11/11
|
|
2278
|
+
*/
|
|
2279
|
+
dateOfIssue?: string | null;
|
|
2280
|
+
/**
|
|
2281
|
+
* @description Document expiry date (YYYY/MM/DD format)
|
|
2282
|
+
* @example 2031/11/11
|
|
2283
|
+
*/
|
|
2284
|
+
dateOfExpiry?: string | null;
|
|
2285
|
+
/**
|
|
2286
|
+
* @description Document verification decision
|
|
2287
|
+
* @example Success
|
|
2288
|
+
* @enum {string|null}
|
|
2289
|
+
*/
|
|
2290
|
+
decision?: "Success" | "Failure" | null;
|
|
2291
|
+
};
|
|
2292
|
+
/** @description Face verification details */
|
|
2293
|
+
face: {
|
|
2294
|
+
/**
|
|
2295
|
+
* @description Liveness check result
|
|
2296
|
+
* @example Success
|
|
2297
|
+
* @enum {string|null}
|
|
2298
|
+
*/
|
|
2299
|
+
liveness?: "Success" | "Failure" | null;
|
|
2300
|
+
/**
|
|
2301
|
+
* @description Liveness detection score
|
|
2302
|
+
* @example 25
|
|
2303
|
+
*/
|
|
2304
|
+
livenessScore?: number | null;
|
|
2305
|
+
/**
|
|
2306
|
+
* @description Face match score (0-100)
|
|
2307
|
+
* @example 94
|
|
2308
|
+
*/
|
|
2309
|
+
matchScore?: number | null;
|
|
2310
|
+
};
|
|
2311
|
+
/** @description Risk assessment details */
|
|
2312
|
+
risk: {
|
|
2313
|
+
/**
|
|
2314
|
+
* @description Risk assessment decision
|
|
2315
|
+
* @example Success
|
|
2316
|
+
* @enum {string|null}
|
|
2317
|
+
*/
|
|
2318
|
+
decision?: "Success" | "Failure" | null;
|
|
2319
|
+
};
|
|
2320
|
+
};
|
|
2321
|
+
};
|
|
2322
|
+
};
|
|
2323
|
+
};
|
|
2324
|
+
/** @description Verification in progress */
|
|
2325
|
+
202: {
|
|
2326
|
+
headers: {
|
|
2327
|
+
[name: string]: unknown;
|
|
2328
|
+
};
|
|
2329
|
+
content: {
|
|
2330
|
+
"application/json": {
|
|
2331
|
+
/**
|
|
2332
|
+
* @description Status message
|
|
2333
|
+
* @example Verification in progress
|
|
2334
|
+
*/
|
|
2335
|
+
message: string;
|
|
2336
|
+
summary: {
|
|
2337
|
+
/**
|
|
2338
|
+
* @description Current eKYC verification status
|
|
2339
|
+
* @example InProcess
|
|
2340
|
+
*/
|
|
2341
|
+
ekycResult: string;
|
|
2342
|
+
/**
|
|
2343
|
+
* @description Whether this is a terminal state (false for in-progress verifications)
|
|
2344
|
+
* @example false
|
|
2345
|
+
*/
|
|
2346
|
+
isTerminal: boolean;
|
|
2347
|
+
/** @description Document verification details (partial data during processing) */
|
|
2348
|
+
document: {
|
|
2349
|
+
/**
|
|
2350
|
+
* @description Document type code
|
|
2351
|
+
* @example 08520000002
|
|
2352
|
+
*/
|
|
2353
|
+
type?: string;
|
|
2354
|
+
/**
|
|
2355
|
+
* @description Document number (may be partially masked or incomplete)
|
|
2356
|
+
* @example F*******
|
|
2357
|
+
*/
|
|
2358
|
+
number?: string;
|
|
2359
|
+
/**
|
|
2360
|
+
* @description Name of the document holder (may be incomplete)
|
|
2361
|
+
* @example —
|
|
2362
|
+
*/
|
|
2363
|
+
holderName?: string;
|
|
2364
|
+
/**
|
|
2365
|
+
* @description Date of birth (may be incomplete)
|
|
2366
|
+
* @example —
|
|
2367
|
+
*/
|
|
2368
|
+
dob?: string;
|
|
2369
|
+
/**
|
|
2370
|
+
* @description Gender
|
|
2371
|
+
* @example M
|
|
2372
|
+
*/
|
|
2373
|
+
sex?: string | null;
|
|
2374
|
+
/**
|
|
2375
|
+
* @description Document issue date
|
|
2376
|
+
* @example 2031/11/11
|
|
2377
|
+
*/
|
|
2378
|
+
dateOfIssue?: string | null;
|
|
2379
|
+
/**
|
|
2380
|
+
* @description Document expiry date
|
|
2381
|
+
* @example 2031/11/11
|
|
2382
|
+
*/
|
|
2383
|
+
dateOfExpiry?: string | null;
|
|
2384
|
+
/**
|
|
2385
|
+
* @description Document verification decision (null during processing)
|
|
2386
|
+
* @example pass
|
|
2387
|
+
*/
|
|
2388
|
+
decision?: string | null;
|
|
2389
|
+
};
|
|
2390
|
+
/** @description Face verification details (null during processing) */
|
|
2391
|
+
face: {
|
|
2392
|
+
/**
|
|
2393
|
+
* @description Liveness check result
|
|
2394
|
+
* @example pass
|
|
2395
|
+
*/
|
|
2396
|
+
liveness?: string | null;
|
|
2397
|
+
/**
|
|
2398
|
+
* @description Liveness detection score
|
|
2399
|
+
* @example 50
|
|
2400
|
+
*/
|
|
2401
|
+
livenessScore?: number | null;
|
|
2402
|
+
/**
|
|
2403
|
+
* @description Face match score
|
|
2404
|
+
* @example 100
|
|
2405
|
+
*/
|
|
2406
|
+
matchScore?: number | null;
|
|
2407
|
+
};
|
|
2408
|
+
/** @description Risk assessment details (null during processing) */
|
|
2409
|
+
risk: {
|
|
2410
|
+
/**
|
|
2411
|
+
* @description Risk assessment decision
|
|
2412
|
+
* @example pass
|
|
2413
|
+
*/
|
|
2414
|
+
decision?: string | null;
|
|
2415
|
+
};
|
|
2416
|
+
};
|
|
2417
|
+
};
|
|
2418
|
+
};
|
|
2419
|
+
};
|
|
2420
|
+
};
|
|
2421
|
+
};
|
|
2422
|
+
craRequest: {
|
|
2423
|
+
parameters: {
|
|
2424
|
+
query?: never;
|
|
2425
|
+
header?: never;
|
|
2426
|
+
path?: never;
|
|
2427
|
+
cookie?: never;
|
|
2428
|
+
};
|
|
2429
|
+
requestBody: {
|
|
2430
|
+
content: {
|
|
2431
|
+
"application/json": {
|
|
2432
|
+
/** @description Name of the company */
|
|
2433
|
+
companyName: string;
|
|
2434
|
+
/** @description Company ID (e.g., BRN for Hong Kong, ACN for Australia) */
|
|
2435
|
+
companyId?: string;
|
|
2436
|
+
/** @description ISO 3166-1 alpha-2 country code. Supported values are "HK" (Hong Kong) and "AU" (Australia) */
|
|
2437
|
+
countryCode: string;
|
|
2438
|
+
/** @description Type of document */
|
|
2439
|
+
documentType: string;
|
|
2440
|
+
/** @description Year of the document */
|
|
2441
|
+
documentYear?: string | number;
|
|
2442
|
+
/** @description Specific document ID */
|
|
2443
|
+
documentId?: string;
|
|
2444
|
+
} & components["schemas"]["GlobalSESFields"];
|
|
2445
|
+
};
|
|
2446
|
+
};
|
|
2447
|
+
responses: {
|
|
2448
|
+
/** @description Successfully initiated the request */
|
|
2449
|
+
200: {
|
|
2450
|
+
headers: {
|
|
2451
|
+
[name: string]: unknown;
|
|
2452
|
+
};
|
|
2453
|
+
content: {
|
|
2454
|
+
"application/json": {
|
|
2455
|
+
/**
|
|
2456
|
+
* @description JWT token that encodes the request details and should be used in the /cra/poll endpoint to check the status and retrieve the document
|
|
2457
|
+
* @example eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U
|
|
2458
|
+
*/
|
|
2459
|
+
token?: string;
|
|
2460
|
+
};
|
|
2461
|
+
};
|
|
2462
|
+
};
|
|
2463
|
+
/** @description Bad Request - Invalid input parameters */
|
|
2464
|
+
400: {
|
|
2465
|
+
headers: {
|
|
2466
|
+
[name: string]: unknown;
|
|
2467
|
+
};
|
|
2468
|
+
content?: never;
|
|
2469
|
+
};
|
|
2470
|
+
/** @description Internal server error */
|
|
2471
|
+
500: {
|
|
2472
|
+
headers: {
|
|
2473
|
+
[name: string]: unknown;
|
|
2474
|
+
};
|
|
2475
|
+
content?: never;
|
|
2476
|
+
};
|
|
2477
|
+
};
|
|
2478
|
+
};
|
|
2479
|
+
searchDocuments: {
|
|
2480
|
+
parameters: {
|
|
2481
|
+
query?: never;
|
|
2482
|
+
header?: never;
|
|
2483
|
+
path: {
|
|
2484
|
+
/** @description ISO 3166-1 alpha-2 country code. Supported values are "HK" (Hong Kong) and "AU" (Australia) */
|
|
2485
|
+
countryCode: "hk" | "au";
|
|
2486
|
+
};
|
|
2487
|
+
cookie?: never;
|
|
2488
|
+
};
|
|
2489
|
+
requestBody: {
|
|
2490
|
+
content: {
|
|
2491
|
+
"application/json": {
|
|
2492
|
+
/** @description Company ID (e.g., BRN for Hong Kong, ACN for Australia) */
|
|
2493
|
+
companyId: string;
|
|
2494
|
+
/**
|
|
2495
|
+
* @description Optional filter by document type
|
|
2496
|
+
* @enum {string}
|
|
2497
|
+
*/
|
|
2498
|
+
documentType?: "financialStatement" | "annualReturn";
|
|
2499
|
+
/** @description Optional filter by year */
|
|
2500
|
+
documentYear?: number;
|
|
2501
|
+
};
|
|
2502
|
+
};
|
|
2503
|
+
};
|
|
2504
|
+
responses: {
|
|
2505
|
+
/** @description Successfully retrieved documents grouped by category */
|
|
2506
|
+
200: {
|
|
2507
|
+
headers: {
|
|
2508
|
+
[name: string]: unknown;
|
|
2509
|
+
};
|
|
2510
|
+
content: {
|
|
2511
|
+
"application/json": {
|
|
2512
|
+
/**
|
|
2513
|
+
* @description Status of the operation
|
|
2514
|
+
* @enum {string}
|
|
2515
|
+
*/
|
|
2516
|
+
message: "success" | "search error";
|
|
2517
|
+
/** @description JSON object where keys are document categories and values are arrays of documents */
|
|
2518
|
+
result?: {
|
|
2519
|
+
[key: string]: {
|
|
2520
|
+
/** @description Accounting year (for annual returns) */
|
|
2521
|
+
arAcYear?: string;
|
|
2522
|
+
/** @description English name of the document */
|
|
2523
|
+
docEnNameDisplay?: string;
|
|
2524
|
+
/** @description Number of pages */
|
|
2525
|
+
docPages?: string;
|
|
2526
|
+
/**
|
|
2527
|
+
* Format: date
|
|
2528
|
+
* @description Filing date (YYYY-MM-DD format)
|
|
2529
|
+
*/
|
|
2530
|
+
filingDateForDisplay?: string;
|
|
2531
|
+
/** @description Unique document identifier */
|
|
2532
|
+
documentId?: string;
|
|
2533
|
+
/** @description Company ID */
|
|
2534
|
+
companyId?: string;
|
|
2535
|
+
/** @description Whether the document has linked files */
|
|
2536
|
+
hasLinked?: boolean;
|
|
2537
|
+
}[];
|
|
2538
|
+
};
|
|
2539
|
+
};
|
|
2540
|
+
};
|
|
2541
|
+
};
|
|
2542
|
+
/** @description Bad Request - Invalid input parameters */
|
|
2543
|
+
400: {
|
|
2544
|
+
headers: {
|
|
2545
|
+
[name: string]: unknown;
|
|
2546
|
+
};
|
|
2547
|
+
content?: never;
|
|
2548
|
+
};
|
|
2549
|
+
/** @description No documents found */
|
|
2550
|
+
404: {
|
|
2551
|
+
headers: {
|
|
2552
|
+
[name: string]: unknown;
|
|
2553
|
+
};
|
|
2554
|
+
content?: never;
|
|
2555
|
+
};
|
|
2556
|
+
/** @description Internal server error */
|
|
2557
|
+
500: {
|
|
2558
|
+
headers: {
|
|
2559
|
+
[name: string]: unknown;
|
|
2560
|
+
};
|
|
2561
|
+
content?: never;
|
|
2562
|
+
};
|
|
2563
|
+
};
|
|
2564
|
+
};
|
|
2565
|
+
searchCompanies: {
|
|
2566
|
+
parameters: {
|
|
2567
|
+
query?: never;
|
|
2568
|
+
header?: never;
|
|
2569
|
+
path: {
|
|
2570
|
+
/** @description ISO 3166-1 alpha-2 country code. Supported values are "HK" (Hong Kong) and "AU" (Australia) */
|
|
2571
|
+
countryCode: "hk" | "cn" | "au";
|
|
2572
|
+
};
|
|
2573
|
+
cookie?: never;
|
|
2574
|
+
};
|
|
2575
|
+
requestBody: {
|
|
2576
|
+
content: {
|
|
2577
|
+
"application/json": {
|
|
2578
|
+
/** @description Company name to search (English or Chinese) */
|
|
2579
|
+
companyName: string;
|
|
2580
|
+
};
|
|
2581
|
+
};
|
|
2582
|
+
};
|
|
2583
|
+
responses: {
|
|
2584
|
+
/** @description Successfully retrieved matching companies */
|
|
2585
|
+
200: {
|
|
2586
|
+
headers: {
|
|
2587
|
+
[name: string]: unknown;
|
|
2588
|
+
};
|
|
2589
|
+
content: {
|
|
2590
|
+
"application/json": {
|
|
2591
|
+
/** @description Response message */
|
|
2592
|
+
message: string;
|
|
2593
|
+
/** @description Array of companies matching the search criteria */
|
|
2594
|
+
result?: components["schemas"]["CompanySearchResult"][];
|
|
2595
|
+
};
|
|
2596
|
+
};
|
|
2597
|
+
};
|
|
2598
|
+
/** @description Bad Request - Invalid input parameters */
|
|
2599
|
+
400: {
|
|
2600
|
+
headers: {
|
|
2601
|
+
[name: string]: unknown;
|
|
2602
|
+
};
|
|
2603
|
+
content?: never;
|
|
2604
|
+
};
|
|
2605
|
+
/** @description No matching companies found */
|
|
2606
|
+
404: {
|
|
2607
|
+
headers: {
|
|
2608
|
+
[name: string]: unknown;
|
|
2609
|
+
};
|
|
2610
|
+
content?: never;
|
|
2611
|
+
};
|
|
2612
|
+
/** @description Internal server error */
|
|
2613
|
+
500: {
|
|
2614
|
+
headers: {
|
|
2615
|
+
[name: string]: unknown;
|
|
2616
|
+
};
|
|
2617
|
+
content?: never;
|
|
2618
|
+
};
|
|
2619
|
+
};
|
|
2620
|
+
};
|
|
2621
|
+
searchCompany: {
|
|
2622
|
+
parameters: {
|
|
2623
|
+
query?: never;
|
|
2624
|
+
header?: never;
|
|
2625
|
+
path: {
|
|
2626
|
+
/** @description ISO 3166-1 alpha-2 country code. Supported values are "HK" (Hong Kong) and "AU" (Australia) */
|
|
2627
|
+
countryCode: "hk" | "au";
|
|
2628
|
+
};
|
|
2629
|
+
cookie?: never;
|
|
2630
|
+
};
|
|
2631
|
+
requestBody: {
|
|
2632
|
+
content: {
|
|
2633
|
+
"application/json": {
|
|
2634
|
+
/** @description Company ID (e.g., BRN for Hong Kong, ACN for Australia) */
|
|
2635
|
+
companyId: string;
|
|
2636
|
+
};
|
|
2637
|
+
};
|
|
2638
|
+
};
|
|
2639
|
+
responses: {
|
|
2640
|
+
/** @description Successfully retrieved company information */
|
|
2641
|
+
200: {
|
|
2642
|
+
headers: {
|
|
2643
|
+
[name: string]: unknown;
|
|
2644
|
+
};
|
|
2645
|
+
content: {
|
|
2646
|
+
"application/json": {
|
|
2647
|
+
/**
|
|
2648
|
+
* @description Status of the operation
|
|
2649
|
+
* @enum {string}
|
|
2650
|
+
*/
|
|
2651
|
+
message: "success" | "search error";
|
|
2652
|
+
/** @description Company base information object */
|
|
2653
|
+
result?: {
|
|
2654
|
+
/** @description Business Registration Number / Company ID */
|
|
2655
|
+
brn?: string;
|
|
2656
|
+
/** @description English company name */
|
|
2657
|
+
enName?: string;
|
|
2658
|
+
/** @description Chinese company name */
|
|
2659
|
+
cnName?: string;
|
|
2660
|
+
/**
|
|
2661
|
+
* @description Current status of the company
|
|
2662
|
+
* @enum {string}
|
|
2663
|
+
*/
|
|
2664
|
+
status?: "Live" | "Dissolved";
|
|
2665
|
+
/** @description Type of company */
|
|
2666
|
+
type?: string;
|
|
2667
|
+
/** @description Category of entity */
|
|
2668
|
+
category?: string;
|
|
2669
|
+
/**
|
|
2670
|
+
* Format: date
|
|
2671
|
+
* @description Date of dissolution (YYYY-MM-DD format, empty if not dissolved)
|
|
2672
|
+
*/
|
|
2673
|
+
dissolutionDate?: string;
|
|
2674
|
+
/**
|
|
2675
|
+
* Format: date
|
|
2676
|
+
* @description Date of incorporation/registration (YYYY-MM-DD format)
|
|
2677
|
+
*/
|
|
2678
|
+
incorporationDate?: string;
|
|
2679
|
+
/** @description English remarks */
|
|
2680
|
+
enRemarks?: string;
|
|
2681
|
+
/** @description Simplified Chinese remarks */
|
|
2682
|
+
scRemarks?: string;
|
|
2683
|
+
/** @description Traditional Chinese remarks */
|
|
2684
|
+
tcRemarks?: string;
|
|
2685
|
+
};
|
|
2686
|
+
};
|
|
2687
|
+
};
|
|
2688
|
+
};
|
|
2689
|
+
/** @description Bad Request - Invalid input parameters */
|
|
2690
|
+
400: {
|
|
2691
|
+
headers: {
|
|
2692
|
+
[name: string]: unknown;
|
|
2693
|
+
};
|
|
2694
|
+
content?: never;
|
|
2695
|
+
};
|
|
2696
|
+
/** @description Company not found */
|
|
2697
|
+
404: {
|
|
2698
|
+
headers: {
|
|
2699
|
+
[name: string]: unknown;
|
|
2700
|
+
};
|
|
2701
|
+
content?: never;
|
|
2702
|
+
};
|
|
2703
|
+
/** @description Internal server error */
|
|
2704
|
+
500: {
|
|
2705
|
+
headers: {
|
|
2706
|
+
[name: string]: unknown;
|
|
2707
|
+
};
|
|
2708
|
+
content?: never;
|
|
2709
|
+
};
|
|
2710
|
+
};
|
|
2711
|
+
};
|
|
2712
|
+
craPoll: {
|
|
2713
|
+
parameters: {
|
|
2714
|
+
query?: never;
|
|
2715
|
+
header?: never;
|
|
2716
|
+
path?: never;
|
|
2717
|
+
cookie?: never;
|
|
2718
|
+
};
|
|
2719
|
+
requestBody: {
|
|
2720
|
+
content: {
|
|
2721
|
+
"application/json": {
|
|
2722
|
+
/** @description JWT token from /cra/request endpoint */
|
|
2723
|
+
token: string;
|
|
2724
|
+
};
|
|
2725
|
+
};
|
|
2726
|
+
};
|
|
2727
|
+
responses: {
|
|
2728
|
+
/** @description Report is ready */
|
|
2729
|
+
200: {
|
|
2730
|
+
headers: {
|
|
2731
|
+
[name: string]: unknown;
|
|
2732
|
+
};
|
|
2733
|
+
content: {
|
|
2734
|
+
"application/json": {
|
|
2735
|
+
/** @example CRA ready */
|
|
2736
|
+
message?: string;
|
|
2737
|
+
/**
|
|
2738
|
+
* Format: uri
|
|
2739
|
+
* @description Presigned URL to download the PDF (valid for 1 hour). Points to the requested company registry document in PDF format.
|
|
2740
|
+
*/
|
|
2741
|
+
data?: string;
|
|
2742
|
+
};
|
|
2743
|
+
};
|
|
2744
|
+
};
|
|
2745
|
+
/** @description Report is still being processed */
|
|
2746
|
+
202: {
|
|
2747
|
+
headers: {
|
|
2748
|
+
[name: string]: unknown;
|
|
2749
|
+
};
|
|
2750
|
+
content: {
|
|
2751
|
+
"application/json": {
|
|
2752
|
+
/** @example Report is pending */
|
|
2753
|
+
message?: string;
|
|
2754
|
+
};
|
|
2755
|
+
};
|
|
2756
|
+
};
|
|
2757
|
+
/** @description Invalid token */
|
|
2758
|
+
400: {
|
|
2759
|
+
headers: {
|
|
2760
|
+
[name: string]: unknown;
|
|
2761
|
+
};
|
|
2762
|
+
content?: never;
|
|
2763
|
+
};
|
|
2764
|
+
/** @description Internal server error */
|
|
2765
|
+
500: {
|
|
2766
|
+
headers: {
|
|
2767
|
+
[name: string]: unknown;
|
|
2768
|
+
};
|
|
2769
|
+
content?: never;
|
|
2770
|
+
};
|
|
2771
|
+
};
|
|
2772
|
+
};
|
|
2773
|
+
uaepassAuth: {
|
|
2774
|
+
parameters: {
|
|
2775
|
+
query?: never;
|
|
2776
|
+
header?: never;
|
|
2777
|
+
path?: never;
|
|
2778
|
+
cookie?: never;
|
|
2779
|
+
};
|
|
2780
|
+
requestBody: {
|
|
2781
|
+
content: {
|
|
2782
|
+
"application/json": {
|
|
2783
|
+
/**
|
|
2784
|
+
* Format: uri
|
|
2785
|
+
* @description After the user has authorized the login, UAE Pass will redirect the user to the provided URI. For **Browser**: use https://www.yourwebsite.com/ For **Mobile app**: use your-app://
|
|
2786
|
+
* @example https://google.com
|
|
2787
|
+
*/
|
|
2788
|
+
redirect: string;
|
|
2789
|
+
/**
|
|
2790
|
+
* @description List of values, separated by spaces, that represent the scope of the authorization that the application wants to obtain. It queries the scopes required for accessing the resources or services in question. Available scopes: sub, fullnameAR, gender, mobile, lastnameEN, fullnameEN, uuid, lastnameAR, idn, nationalityEN, firstnameEN, userType, nationalityAR, firstnameAR, email. (To be shared by UAEPASS Team if its value is other than specified in sample above)
|
|
2791
|
+
* @example sub fullnameEN email mobile
|
|
2792
|
+
*/
|
|
2793
|
+
scope?: string;
|
|
2794
|
+
/**
|
|
2795
|
+
* @description UAE Pass display language, case sensitive
|
|
2796
|
+
* @example en
|
|
2797
|
+
* @enum {string}
|
|
2798
|
+
*/
|
|
2799
|
+
lang?: "en" | "ar";
|
|
2800
|
+
/**
|
|
2801
|
+
* @description Platform source for the authentication request
|
|
2802
|
+
* @example PC_Browser
|
|
2803
|
+
* @enum {string}
|
|
2804
|
+
*/
|
|
2805
|
+
source: "PC_Browser" | "android" | "iOS" | "Mobile_Browser";
|
|
2806
|
+
};
|
|
2807
|
+
};
|
|
2808
|
+
};
|
|
2809
|
+
responses: {
|
|
2810
|
+
/** @description Success */
|
|
2811
|
+
200: {
|
|
2812
|
+
headers: {
|
|
2813
|
+
[name: string]: unknown;
|
|
2814
|
+
};
|
|
2815
|
+
content: {
|
|
2816
|
+
"application/json": {
|
|
2817
|
+
/** @description JWT token for polling authentication status */
|
|
2818
|
+
token: string;
|
|
2819
|
+
/**
|
|
2820
|
+
* Format: uri
|
|
2821
|
+
* @description UAE Pass authorization URL to redirect user to
|
|
2822
|
+
*/
|
|
2823
|
+
oAuthUrl: string;
|
|
2824
|
+
};
|
|
2825
|
+
};
|
|
2826
|
+
};
|
|
2827
|
+
400: components["responses"]["BadRequest"];
|
|
2828
|
+
500: components["responses"]["InternalServerError"];
|
|
2829
|
+
};
|
|
2830
|
+
};
|
|
2831
|
+
uaepassPoll: {
|
|
2832
|
+
parameters: {
|
|
2833
|
+
query?: never;
|
|
2834
|
+
header?: never;
|
|
2835
|
+
path?: never;
|
|
2836
|
+
cookie?: never;
|
|
2837
|
+
};
|
|
2838
|
+
requestBody: components["requestBodies"]["poll"];
|
|
2839
|
+
responses: {
|
|
2840
|
+
/** @description Success */
|
|
2841
|
+
200: {
|
|
2842
|
+
headers: {
|
|
2843
|
+
[name: string]: unknown;
|
|
2844
|
+
};
|
|
2845
|
+
content: {
|
|
2846
|
+
"application/json": {
|
|
2847
|
+
message?: string;
|
|
2848
|
+
token?: string;
|
|
2849
|
+
};
|
|
2850
|
+
};
|
|
2851
|
+
};
|
|
2852
|
+
/** @description Result pending */
|
|
2853
|
+
202: {
|
|
2854
|
+
headers: {
|
|
2855
|
+
[name: string]: unknown;
|
|
2856
|
+
};
|
|
2857
|
+
content: {
|
|
2858
|
+
"application/json": {
|
|
2859
|
+
message?: string;
|
|
2860
|
+
};
|
|
2861
|
+
};
|
|
2862
|
+
};
|
|
2863
|
+
/** @description 401 Authentication / 401 FormFilling / 401 Signing / 401 PDF Signing / 401 Re-authentication reject / 401 Re-authentication failed verification / 401 FormFilling Anonymous / 401 Signing Anonymous reject / 401 Signing Anonymous failed verification / 401 PDF Signing Anonymous reject / 401 PDF Signing Anonymous failed verification */
|
|
2864
|
+
401: {
|
|
2865
|
+
headers: {
|
|
2866
|
+
[name: string]: unknown;
|
|
2867
|
+
};
|
|
2868
|
+
content: {
|
|
2869
|
+
"application/json": {
|
|
2870
|
+
message?: string;
|
|
2871
|
+
};
|
|
2872
|
+
};
|
|
2873
|
+
};
|
|
2874
|
+
};
|
|
2875
|
+
};
|
|
2876
|
+
uaepassCallback: {
|
|
2877
|
+
parameters: {
|
|
2878
|
+
query?: never;
|
|
2879
|
+
header?: never;
|
|
2880
|
+
path?: never;
|
|
2881
|
+
cookie?: never;
|
|
2882
|
+
};
|
|
2883
|
+
requestBody?: never;
|
|
2884
|
+
responses: {
|
|
2885
|
+
/** @description Success */
|
|
2886
|
+
200: {
|
|
2887
|
+
headers: {
|
|
2888
|
+
[name: string]: unknown;
|
|
2889
|
+
};
|
|
2890
|
+
content?: never;
|
|
2891
|
+
};
|
|
2892
|
+
};
|
|
2893
|
+
};
|
|
2894
|
+
uaepassLogout: {
|
|
2895
|
+
parameters: {
|
|
2896
|
+
query?: never;
|
|
2897
|
+
header?: never;
|
|
2898
|
+
path?: never;
|
|
2899
|
+
cookie?: never;
|
|
2900
|
+
};
|
|
2901
|
+
requestBody: {
|
|
2902
|
+
content: {
|
|
2903
|
+
"application/json": {
|
|
2904
|
+
/**
|
|
2905
|
+
* Format: uri
|
|
2906
|
+
* @description URL to redirect after logout
|
|
2907
|
+
*/
|
|
2908
|
+
redirect: string;
|
|
2909
|
+
};
|
|
2910
|
+
};
|
|
2911
|
+
};
|
|
2912
|
+
responses: {
|
|
2913
|
+
/** @description Success */
|
|
2914
|
+
200: {
|
|
2915
|
+
headers: {
|
|
2916
|
+
[name: string]: unknown;
|
|
2917
|
+
};
|
|
2918
|
+
content: {
|
|
2919
|
+
"application/json": {
|
|
2920
|
+
/**
|
|
2921
|
+
* Format: uri
|
|
2922
|
+
* @description UAE Pass logout URL to redirect user to
|
|
2923
|
+
*/
|
|
2924
|
+
logoutUrl: string;
|
|
2925
|
+
};
|
|
2926
|
+
};
|
|
2927
|
+
};
|
|
2928
|
+
400: components["responses"]["BadRequest"];
|
|
2929
|
+
500: components["responses"]["InternalServerError"];
|
|
2930
|
+
};
|
|
2931
|
+
};
|
|
2932
|
+
lraRequest: {
|
|
2933
|
+
parameters: {
|
|
2934
|
+
query?: never;
|
|
2935
|
+
header?: never;
|
|
2936
|
+
path?: never;
|
|
2937
|
+
cookie?: never;
|
|
2938
|
+
};
|
|
2939
|
+
requestBody: {
|
|
2940
|
+
content: {
|
|
2941
|
+
"application/json": {
|
|
2942
|
+
/** @description Property Reference Number */
|
|
2943
|
+
prn?: string;
|
|
2944
|
+
/** @description Property Address */
|
|
2945
|
+
address?: string;
|
|
2946
|
+
/** @description Best match information from search */
|
|
2947
|
+
bestMatch?: {
|
|
2948
|
+
aiAgent?: {
|
|
2949
|
+
/** @description Property Reference Number */
|
|
2950
|
+
prn: string;
|
|
2951
|
+
/** @description Free format English address */
|
|
2952
|
+
free_format_addr_eng: string;
|
|
2953
|
+
};
|
|
2954
|
+
/** @description Array of lot search results */
|
|
2955
|
+
lotSearch?: string[];
|
|
2956
|
+
gemini?: {
|
|
2957
|
+
/** @description The original query address */
|
|
2958
|
+
query_address: string;
|
|
2959
|
+
/**
|
|
2960
|
+
* @description Status of the address search (all statuses except "found")
|
|
2961
|
+
* @enum {string}
|
|
2962
|
+
*/
|
|
2963
|
+
status: "not found" | "potential match" | "multiple found" | "error";
|
|
2964
|
+
/** @description Reason for the status */
|
|
2965
|
+
reason: string;
|
|
2966
|
+
result: {
|
|
2967
|
+
/** @description Property Reference Number */
|
|
2968
|
+
prn: string;
|
|
2969
|
+
/** @description Free format English address */
|
|
2970
|
+
free_format_addr_eng: string;
|
|
2971
|
+
}[];
|
|
2972
|
+
};
|
|
2973
|
+
};
|
|
2974
|
+
} & components["schemas"]["GlobalSESFields"];
|
|
2975
|
+
};
|
|
2976
|
+
};
|
|
2977
|
+
responses: {
|
|
2978
|
+
/** @description version 1 input */
|
|
2979
|
+
200: {
|
|
2980
|
+
headers: {
|
|
2981
|
+
[name: string]: unknown;
|
|
2982
|
+
};
|
|
2983
|
+
content: {
|
|
2984
|
+
"application/json": {
|
|
2985
|
+
token?: string;
|
|
2986
|
+
};
|
|
2987
|
+
};
|
|
2988
|
+
};
|
|
2989
|
+
};
|
|
2990
|
+
};
|
|
2991
|
+
lraPoll: {
|
|
2992
|
+
parameters: {
|
|
2993
|
+
query?: never;
|
|
2994
|
+
header?: never;
|
|
2995
|
+
path?: never;
|
|
2996
|
+
cookie?: never;
|
|
2997
|
+
};
|
|
2998
|
+
requestBody: {
|
|
2999
|
+
content: {
|
|
3000
|
+
"application/json": {
|
|
3001
|
+
token: string;
|
|
3002
|
+
};
|
|
3003
|
+
};
|
|
3004
|
+
};
|
|
3005
|
+
responses: {
|
|
3006
|
+
200: {
|
|
3007
|
+
headers: {
|
|
3008
|
+
[name: string]: unknown;
|
|
3009
|
+
};
|
|
3010
|
+
content?: never;
|
|
3011
|
+
};
|
|
3012
|
+
};
|
|
3013
|
+
};
|
|
3014
|
+
lraSearch: {
|
|
3015
|
+
parameters: {
|
|
3016
|
+
query?: never;
|
|
3017
|
+
header?: never;
|
|
3018
|
+
path?: never;
|
|
3019
|
+
cookie?: never;
|
|
3020
|
+
};
|
|
3021
|
+
requestBody: {
|
|
3022
|
+
content: {
|
|
3023
|
+
"application/json": {
|
|
3024
|
+
block?: string;
|
|
3025
|
+
eng_street_name?: string;
|
|
3026
|
+
flat?: string;
|
|
3027
|
+
floor?: string;
|
|
3028
|
+
free_entry?: string[];
|
|
3029
|
+
house_prefix?: number[];
|
|
3030
|
+
house_suffix?: string;
|
|
3031
|
+
};
|
|
3032
|
+
};
|
|
3033
|
+
};
|
|
3034
|
+
responses: {
|
|
3035
|
+
200: {
|
|
3036
|
+
headers: {
|
|
3037
|
+
[name: string]: unknown;
|
|
3038
|
+
};
|
|
3039
|
+
content?: never;
|
|
3040
|
+
};
|
|
3041
|
+
};
|
|
3042
|
+
};
|
|
3043
|
+
}
|