@metamask-previews/kyc-controller 0.0.0-preview-7cfd8be → 0.0.0-preview-a3cea003b
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/CHANGELOG.md +29 -3
- package/dist/KycController-method-action-types.cjs.map +1 -1
- package/dist/KycController-method-action-types.d.cts +48 -2
- package/dist/KycController-method-action-types.d.cts.map +1 -1
- package/dist/KycController-method-action-types.d.mts +48 -2
- package/dist/KycController-method-action-types.d.mts.map +1 -1
- package/dist/KycController-method-action-types.mjs.map +1 -1
- package/dist/KycController.cjs +469 -12
- package/dist/KycController.cjs.map +1 -1
- package/dist/KycController.d.cts +109 -5
- package/dist/KycController.d.cts.map +1 -1
- package/dist/KycController.d.mts +109 -5
- package/dist/KycController.d.mts.map +1 -1
- package/dist/KycController.mjs +469 -12
- package/dist/KycController.mjs.map +1 -1
- package/dist/KycService-method-action-types.cjs.map +1 -1
- package/dist/KycService-method-action-types.d.cts +38 -2
- package/dist/KycService-method-action-types.d.cts.map +1 -1
- package/dist/KycService-method-action-types.d.mts +38 -2
- package/dist/KycService-method-action-types.d.mts.map +1 -1
- package/dist/KycService-method-action-types.mjs.map +1 -1
- package/dist/KycService.cjs +177 -22
- package/dist/KycService.cjs.map +1 -1
- package/dist/KycService.d.cts +97 -12
- package/dist/KycService.d.cts.map +1 -1
- package/dist/KycService.d.mts +97 -12
- package/dist/KycService.d.mts.map +1 -1
- package/dist/KycService.mjs +178 -23
- package/dist/KycService.mjs.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -5
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +5 -5
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +49 -10
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +49 -10
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/package.json +1 -1
package/dist/KycService.d.cts
CHANGED
|
@@ -7,7 +7,7 @@ import type { AuthenticationControllerGetBearerTokenAction } from "@metamask/pro
|
|
|
7
7
|
import type { Infer, Struct } from "@metamask/superstruct";
|
|
8
8
|
import type { QueryClientConfig } from "@tanstack/query-core";
|
|
9
9
|
import type { KycServiceMethodActions } from "./KycService-method-action-types.cjs";
|
|
10
|
-
import type { KycDisclaimer, KycSessionStatus } from "./types.cjs";
|
|
10
|
+
import type { KycDisclaimer, KycSessionStatus, KycUserStatusResponse, KycVendor } from "./types.cjs";
|
|
11
11
|
import type { UkycStorageAccessToken } from "./ukyc/storageAccessToken.cjs";
|
|
12
12
|
/**
|
|
13
13
|
* The name of the {@link KycService}, used to namespace the service's actions.
|
|
@@ -52,13 +52,22 @@ export type KycServiceMessenger = Messenger<typeof serviceName, KycServiceAction
|
|
|
52
52
|
export type KycServiceOptions = {
|
|
53
53
|
messenger: KycServiceMessenger;
|
|
54
54
|
/**
|
|
55
|
-
*
|
|
55
|
+
* A function used to make HTTP requests. Defaults to the runtime's native
|
|
56
|
+
* `fetch`, so consumers do not need to inject one on platforms where `fetch`
|
|
57
|
+
* is available globally (browser, React Native, Node 18+).
|
|
58
|
+
*/
|
|
59
|
+
fetch?: typeof fetch;
|
|
60
|
+
/**
|
|
61
|
+
* Mandatory value that sets the base url to KYC api
|
|
56
62
|
*/
|
|
57
63
|
baseUrl: string;
|
|
58
64
|
/**
|
|
59
|
-
* Base URL of the Fractal encryption
|
|
65
|
+
* Base URL of the Fractal encryption service, from which the JWKS used to
|
|
66
|
+
* verify the `jwtChain` returned by {@link KycService.getWrappingKey} is
|
|
67
|
+
* fetched. Required to run the wrapping-key exchange in
|
|
68
|
+
* {@link KycService.fetchJwks}.
|
|
60
69
|
*/
|
|
61
|
-
fractalEncryptionBaseUrl
|
|
70
|
+
fractalEncryptionBaseUrl?: string;
|
|
62
71
|
/**
|
|
63
72
|
* Shared configuration applied to all queries exposed by the service (e.g. a
|
|
64
73
|
* default `staleTime`/`gcTime`). Each data service gets its own
|
|
@@ -138,18 +147,53 @@ declare const ApplicantAccessTokenResponseStruct: Struct<{
|
|
|
138
147
|
applicantAccessToken: Struct<string, null>;
|
|
139
148
|
}>;
|
|
140
149
|
export type ApplicantAccessTokenResponse = Infer<typeof ApplicantAccessTokenResponseStruct>;
|
|
150
|
+
declare const VendorCustomerResponseStruct: Struct<{
|
|
151
|
+
id: string;
|
|
152
|
+
status: string;
|
|
153
|
+
email: string;
|
|
154
|
+
}, {
|
|
155
|
+
id: Struct<string, null>;
|
|
156
|
+
email: Struct<string, null>;
|
|
157
|
+
status: Struct<string, null>;
|
|
158
|
+
}>;
|
|
159
|
+
export type VendorCustomerResponse = Infer<typeof VendorCustomerResponseStruct>;
|
|
141
160
|
export type CreateSessionParams = {
|
|
142
161
|
email: string;
|
|
143
162
|
termsAcceptedAt: string;
|
|
144
163
|
disclaimerIds: string[];
|
|
145
164
|
};
|
|
146
165
|
export type CheckKycRequiredParams = {
|
|
147
|
-
|
|
148
|
-
|
|
166
|
+
/**
|
|
167
|
+
* Identity vendor to check. Defaults to `moonpay` for the existing
|
|
168
|
+
* Check/Auth path.
|
|
169
|
+
*/
|
|
170
|
+
vendor?: KycVendor;
|
|
171
|
+
/**
|
|
172
|
+
* MoonPay access token. Required when `vendor` is `moonpay` (or omitted).
|
|
173
|
+
*/
|
|
174
|
+
accessToken?: string;
|
|
175
|
+
/**
|
|
176
|
+
* ISO 3166-1 alpha-3 country code. Required when `vendor` is `moonpay`.
|
|
177
|
+
*/
|
|
178
|
+
country?: string;
|
|
149
179
|
capabilities?: {
|
|
150
180
|
product: string;
|
|
151
181
|
}[];
|
|
152
182
|
};
|
|
183
|
+
export type CreateVendorCustomerParams = {
|
|
184
|
+
vendor: KycVendor;
|
|
185
|
+
email: string;
|
|
186
|
+
};
|
|
187
|
+
export type SubmitConsentsParams = {
|
|
188
|
+
/**
|
|
189
|
+
* Vendor disclaimer ids the customer accepted (T&C1). Mapped to the UKYC
|
|
190
|
+
* wire field `ironDisclaimerIds` for the Money/VBA consents contract.
|
|
191
|
+
*/
|
|
192
|
+
disclaimerIds: string[];
|
|
193
|
+
sumsubTncSigned: boolean;
|
|
194
|
+
idosTncSigned: boolean;
|
|
195
|
+
kycLevel?: 'standard';
|
|
196
|
+
};
|
|
153
197
|
export type GetWrappingKeyParams = {
|
|
154
198
|
sessionClientPublicKey: string;
|
|
155
199
|
};
|
|
@@ -165,7 +209,17 @@ export type WrappedEncryptionKey = {
|
|
|
165
209
|
};
|
|
166
210
|
export type CreateUkycSessionParams = {
|
|
167
211
|
jwtToken: string;
|
|
168
|
-
|
|
212
|
+
/**
|
|
213
|
+
* Identity vendor for the UKYC session. Defaults to `moonpay` for the
|
|
214
|
+
* existing Check/Auth flow. Pass a non-MoonPay vendor (e.g. `iron`) for
|
|
215
|
+
* the consents path (no MoonPay metadata required).
|
|
216
|
+
*/
|
|
217
|
+
vendor?: KycVendor;
|
|
218
|
+
/**
|
|
219
|
+
* Vendor-specific metadata. Required for MoonPay (`moonPayAccessToken` /
|
|
220
|
+
* `moonPayUserId`); optional / omitted for other vendors.
|
|
221
|
+
*/
|
|
222
|
+
vendorMetadata?: Record<string, unknown>;
|
|
169
223
|
wrappedEncryptionKey: WrappedEncryptionKey;
|
|
170
224
|
/**
|
|
171
225
|
* The client-signed `ukyc_capability_token` (envelope: payload + Ed25519
|
|
@@ -183,8 +237,9 @@ export type GetSessionStatusParams = {
|
|
|
183
237
|
/**
|
|
184
238
|
* `KycService` communicates with the Universal KYC (UKYC) backend to drive the
|
|
185
239
|
* identity + document-verification flow. It is stateless and platform-agnostic:
|
|
186
|
-
* HTTP is performed through the
|
|
187
|
-
*
|
|
240
|
+
* HTTP is performed through the runtime's native `fetch` (or an injected
|
|
241
|
+
* `fetch` when provided), and the auth bearer token and geolocation come from
|
|
242
|
+
* other controllers via the messenger.
|
|
188
243
|
*
|
|
189
244
|
* It extends {@link BaseDataService}, so every request is routed through
|
|
190
245
|
* `fetchQuery`: it is wrapped in the shared service policy (retries, circuit
|
|
@@ -200,6 +255,8 @@ export declare class KycService extends BaseDataService<typeof serviceName, KycS
|
|
|
200
255
|
*
|
|
201
256
|
* @param options - The constructor options.
|
|
202
257
|
* @param options.messenger - The messenger suited for this service.
|
|
258
|
+
* @param options.fetch - A function used to make HTTP requests. Defaults to
|
|
259
|
+
* the runtime's native `fetch`.
|
|
203
260
|
* @param options.baseUrl - Base URL of the KYC API
|
|
204
261
|
* @param options.fractalEncryptionBaseUrl - Base URL of the Fractal
|
|
205
262
|
* encryption service, from which the JWKS used to verify the wrapping-key
|
|
@@ -208,7 +265,7 @@ export declare class KycService extends BaseDataService<typeof serviceName, KycS
|
|
|
208
265
|
* exposed by the service.
|
|
209
266
|
* @param options.policyOptions - Options for the request service policy.
|
|
210
267
|
*/
|
|
211
|
-
constructor({ messenger, baseUrl, fractalEncryptionBaseUrl, queryClientConfig, policyOptions, }: KycServiceOptions);
|
|
268
|
+
constructor({ messenger, fetch: fetchFunction, baseUrl, fractalEncryptionBaseUrl, queryClientConfig, policyOptions, }: KycServiceOptions);
|
|
212
269
|
/**
|
|
213
270
|
* Resolves the customer's country from the geolocation source and converts it
|
|
214
271
|
* to an ISO 3166-1 alpha-3 code.
|
|
@@ -222,10 +279,12 @@ export declare class KycService extends BaseDataService<typeof serviceName, KycS
|
|
|
222
279
|
* created.
|
|
223
280
|
*
|
|
224
281
|
* @param params - The parameters.
|
|
282
|
+
* @param params.vendor - Identity vendor. Defaults to `moonpay`.
|
|
225
283
|
* @param params.country - ISO 3166-1 alpha-3 country code.
|
|
226
284
|
* @returns The disclaimers.
|
|
227
285
|
*/
|
|
228
|
-
fetchDisclaimers({ country, }: {
|
|
286
|
+
fetchDisclaimers({ vendor, country, }: {
|
|
287
|
+
vendor?: KycVendor;
|
|
229
288
|
country: string;
|
|
230
289
|
}): Promise<KycDisclaimer[]>;
|
|
231
290
|
/**
|
|
@@ -236,7 +295,7 @@ export declare class KycService extends BaseDataService<typeof serviceName, KycS
|
|
|
236
295
|
*/
|
|
237
296
|
createSession(params: CreateSessionParams): Promise<Infer<typeof CreateSessionResponseStruct>>;
|
|
238
297
|
/**
|
|
239
|
-
* Checks whether KYC is required for the given
|
|
298
|
+
* Checks whether KYC is required for the given vendor, country, and
|
|
240
299
|
* capabilities.
|
|
241
300
|
*
|
|
242
301
|
* @param params - The check parameters.
|
|
@@ -245,6 +304,32 @@ export declare class KycService extends BaseDataService<typeof serviceName, KycS
|
|
|
245
304
|
checkKycRequired(params: CheckKycRequiredParams): Promise<{
|
|
246
305
|
kycRequired: boolean;
|
|
247
306
|
}>;
|
|
307
|
+
/**
|
|
308
|
+
* Creates (or resumes) an empty-shell customer for the authenticated
|
|
309
|
+
* canonical user on the given identity vendor. Must run before showing
|
|
310
|
+
* vendor T&C so the customer exists and resume logic can key off vendor
|
|
311
|
+
* status.
|
|
312
|
+
*
|
|
313
|
+
* @param params - The parameters.
|
|
314
|
+
* @param params.vendor - Identity vendor (e.g. `iron` for Money/VBA).
|
|
315
|
+
* @param params.email - Email associated with the customer.
|
|
316
|
+
* @returns The vendor customer record (subset validated for controller use).
|
|
317
|
+
*/
|
|
318
|
+
createVendorCustomer(params: CreateVendorCustomerParams): Promise<VendorCustomerResponse>;
|
|
319
|
+
/**
|
|
320
|
+
* Posts T&C1 (vendor signings) and T&C2 (Sumsub + idOS) consents for the
|
|
321
|
+
* authenticated user. The API responds with 204 No Content on success.
|
|
322
|
+
*
|
|
323
|
+
* @param params - The consent parameters.
|
|
324
|
+
*/
|
|
325
|
+
submitConsents(params: SubmitConsentsParams): Promise<void>;
|
|
326
|
+
/**
|
|
327
|
+
* Fetches the user-keyed simplified KYC status used by Money toast / banner
|
|
328
|
+
* surfaces (`GET /kyc/status`).
|
|
329
|
+
*
|
|
330
|
+
* @returns The simplified status payload.
|
|
331
|
+
*/
|
|
332
|
+
fetchKycStatus(): Promise<KycUserStatusResponse>;
|
|
248
333
|
/**
|
|
249
334
|
* Requests a per-session wrapping key from the UKYC backend.
|
|
250
335
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KycService.d.cts","sourceRoot":"","sources":["../src/KycService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,oCAAoC;AAC9D,OAAO,KAAK,EACV,4BAA4B,EAC5B,oCAAoC,EACpC,kCAAkC,EACnC,oCAAoC;AACrC,OAAO,KAAK,EAAE,0BAA0B,EAAE,mCAAmC;AAE7E,OAAO,KAAK,EAAE,yCAAyC,EAAE,yCAAyC;AAClG,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EAAE,4CAA4C,EAAE,+CAA+C;AAC3G,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA8B;
|
|
1
|
+
{"version":3,"file":"KycService.d.cts","sourceRoot":"","sources":["../src/KycService.ts"],"names":[],"mappings":"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"}
|
package/dist/KycService.d.mts
CHANGED
|
@@ -7,7 +7,7 @@ import type { AuthenticationControllerGetBearerTokenAction } from "@metamask/pro
|
|
|
7
7
|
import type { Infer, Struct } from "@metamask/superstruct";
|
|
8
8
|
import type { QueryClientConfig } from "@tanstack/query-core";
|
|
9
9
|
import type { KycServiceMethodActions } from "./KycService-method-action-types.mjs";
|
|
10
|
-
import type { KycDisclaimer, KycSessionStatus } from "./types.mjs";
|
|
10
|
+
import type { KycDisclaimer, KycSessionStatus, KycUserStatusResponse, KycVendor } from "./types.mjs";
|
|
11
11
|
import type { UkycStorageAccessToken } from "./ukyc/storageAccessToken.mjs";
|
|
12
12
|
/**
|
|
13
13
|
* The name of the {@link KycService}, used to namespace the service's actions.
|
|
@@ -52,13 +52,22 @@ export type KycServiceMessenger = Messenger<typeof serviceName, KycServiceAction
|
|
|
52
52
|
export type KycServiceOptions = {
|
|
53
53
|
messenger: KycServiceMessenger;
|
|
54
54
|
/**
|
|
55
|
-
*
|
|
55
|
+
* A function used to make HTTP requests. Defaults to the runtime's native
|
|
56
|
+
* `fetch`, so consumers do not need to inject one on platforms where `fetch`
|
|
57
|
+
* is available globally (browser, React Native, Node 18+).
|
|
58
|
+
*/
|
|
59
|
+
fetch?: typeof fetch;
|
|
60
|
+
/**
|
|
61
|
+
* Mandatory value that sets the base url to KYC api
|
|
56
62
|
*/
|
|
57
63
|
baseUrl: string;
|
|
58
64
|
/**
|
|
59
|
-
* Base URL of the Fractal encryption
|
|
65
|
+
* Base URL of the Fractal encryption service, from which the JWKS used to
|
|
66
|
+
* verify the `jwtChain` returned by {@link KycService.getWrappingKey} is
|
|
67
|
+
* fetched. Required to run the wrapping-key exchange in
|
|
68
|
+
* {@link KycService.fetchJwks}.
|
|
60
69
|
*/
|
|
61
|
-
fractalEncryptionBaseUrl
|
|
70
|
+
fractalEncryptionBaseUrl?: string;
|
|
62
71
|
/**
|
|
63
72
|
* Shared configuration applied to all queries exposed by the service (e.g. a
|
|
64
73
|
* default `staleTime`/`gcTime`). Each data service gets its own
|
|
@@ -138,18 +147,53 @@ declare const ApplicantAccessTokenResponseStruct: Struct<{
|
|
|
138
147
|
applicantAccessToken: Struct<string, null>;
|
|
139
148
|
}>;
|
|
140
149
|
export type ApplicantAccessTokenResponse = Infer<typeof ApplicantAccessTokenResponseStruct>;
|
|
150
|
+
declare const VendorCustomerResponseStruct: Struct<{
|
|
151
|
+
id: string;
|
|
152
|
+
status: string;
|
|
153
|
+
email: string;
|
|
154
|
+
}, {
|
|
155
|
+
id: Struct<string, null>;
|
|
156
|
+
email: Struct<string, null>;
|
|
157
|
+
status: Struct<string, null>;
|
|
158
|
+
}>;
|
|
159
|
+
export type VendorCustomerResponse = Infer<typeof VendorCustomerResponseStruct>;
|
|
141
160
|
export type CreateSessionParams = {
|
|
142
161
|
email: string;
|
|
143
162
|
termsAcceptedAt: string;
|
|
144
163
|
disclaimerIds: string[];
|
|
145
164
|
};
|
|
146
165
|
export type CheckKycRequiredParams = {
|
|
147
|
-
|
|
148
|
-
|
|
166
|
+
/**
|
|
167
|
+
* Identity vendor to check. Defaults to `moonpay` for the existing
|
|
168
|
+
* Check/Auth path.
|
|
169
|
+
*/
|
|
170
|
+
vendor?: KycVendor;
|
|
171
|
+
/**
|
|
172
|
+
* MoonPay access token. Required when `vendor` is `moonpay` (or omitted).
|
|
173
|
+
*/
|
|
174
|
+
accessToken?: string;
|
|
175
|
+
/**
|
|
176
|
+
* ISO 3166-1 alpha-3 country code. Required when `vendor` is `moonpay`.
|
|
177
|
+
*/
|
|
178
|
+
country?: string;
|
|
149
179
|
capabilities?: {
|
|
150
180
|
product: string;
|
|
151
181
|
}[];
|
|
152
182
|
};
|
|
183
|
+
export type CreateVendorCustomerParams = {
|
|
184
|
+
vendor: KycVendor;
|
|
185
|
+
email: string;
|
|
186
|
+
};
|
|
187
|
+
export type SubmitConsentsParams = {
|
|
188
|
+
/**
|
|
189
|
+
* Vendor disclaimer ids the customer accepted (T&C1). Mapped to the UKYC
|
|
190
|
+
* wire field `ironDisclaimerIds` for the Money/VBA consents contract.
|
|
191
|
+
*/
|
|
192
|
+
disclaimerIds: string[];
|
|
193
|
+
sumsubTncSigned: boolean;
|
|
194
|
+
idosTncSigned: boolean;
|
|
195
|
+
kycLevel?: 'standard';
|
|
196
|
+
};
|
|
153
197
|
export type GetWrappingKeyParams = {
|
|
154
198
|
sessionClientPublicKey: string;
|
|
155
199
|
};
|
|
@@ -165,7 +209,17 @@ export type WrappedEncryptionKey = {
|
|
|
165
209
|
};
|
|
166
210
|
export type CreateUkycSessionParams = {
|
|
167
211
|
jwtToken: string;
|
|
168
|
-
|
|
212
|
+
/**
|
|
213
|
+
* Identity vendor for the UKYC session. Defaults to `moonpay` for the
|
|
214
|
+
* existing Check/Auth flow. Pass a non-MoonPay vendor (e.g. `iron`) for
|
|
215
|
+
* the consents path (no MoonPay metadata required).
|
|
216
|
+
*/
|
|
217
|
+
vendor?: KycVendor;
|
|
218
|
+
/**
|
|
219
|
+
* Vendor-specific metadata. Required for MoonPay (`moonPayAccessToken` /
|
|
220
|
+
* `moonPayUserId`); optional / omitted for other vendors.
|
|
221
|
+
*/
|
|
222
|
+
vendorMetadata?: Record<string, unknown>;
|
|
169
223
|
wrappedEncryptionKey: WrappedEncryptionKey;
|
|
170
224
|
/**
|
|
171
225
|
* The client-signed `ukyc_capability_token` (envelope: payload + Ed25519
|
|
@@ -183,8 +237,9 @@ export type GetSessionStatusParams = {
|
|
|
183
237
|
/**
|
|
184
238
|
* `KycService` communicates with the Universal KYC (UKYC) backend to drive the
|
|
185
239
|
* identity + document-verification flow. It is stateless and platform-agnostic:
|
|
186
|
-
* HTTP is performed through the
|
|
187
|
-
*
|
|
240
|
+
* HTTP is performed through the runtime's native `fetch` (or an injected
|
|
241
|
+
* `fetch` when provided), and the auth bearer token and geolocation come from
|
|
242
|
+
* other controllers via the messenger.
|
|
188
243
|
*
|
|
189
244
|
* It extends {@link BaseDataService}, so every request is routed through
|
|
190
245
|
* `fetchQuery`: it is wrapped in the shared service policy (retries, circuit
|
|
@@ -200,6 +255,8 @@ export declare class KycService extends BaseDataService<typeof serviceName, KycS
|
|
|
200
255
|
*
|
|
201
256
|
* @param options - The constructor options.
|
|
202
257
|
* @param options.messenger - The messenger suited for this service.
|
|
258
|
+
* @param options.fetch - A function used to make HTTP requests. Defaults to
|
|
259
|
+
* the runtime's native `fetch`.
|
|
203
260
|
* @param options.baseUrl - Base URL of the KYC API
|
|
204
261
|
* @param options.fractalEncryptionBaseUrl - Base URL of the Fractal
|
|
205
262
|
* encryption service, from which the JWKS used to verify the wrapping-key
|
|
@@ -208,7 +265,7 @@ export declare class KycService extends BaseDataService<typeof serviceName, KycS
|
|
|
208
265
|
* exposed by the service.
|
|
209
266
|
* @param options.policyOptions - Options for the request service policy.
|
|
210
267
|
*/
|
|
211
|
-
constructor({ messenger, baseUrl, fractalEncryptionBaseUrl, queryClientConfig, policyOptions, }: KycServiceOptions);
|
|
268
|
+
constructor({ messenger, fetch: fetchFunction, baseUrl, fractalEncryptionBaseUrl, queryClientConfig, policyOptions, }: KycServiceOptions);
|
|
212
269
|
/**
|
|
213
270
|
* Resolves the customer's country from the geolocation source and converts it
|
|
214
271
|
* to an ISO 3166-1 alpha-3 code.
|
|
@@ -222,10 +279,12 @@ export declare class KycService extends BaseDataService<typeof serviceName, KycS
|
|
|
222
279
|
* created.
|
|
223
280
|
*
|
|
224
281
|
* @param params - The parameters.
|
|
282
|
+
* @param params.vendor - Identity vendor. Defaults to `moonpay`.
|
|
225
283
|
* @param params.country - ISO 3166-1 alpha-3 country code.
|
|
226
284
|
* @returns The disclaimers.
|
|
227
285
|
*/
|
|
228
|
-
fetchDisclaimers({ country, }: {
|
|
286
|
+
fetchDisclaimers({ vendor, country, }: {
|
|
287
|
+
vendor?: KycVendor;
|
|
229
288
|
country: string;
|
|
230
289
|
}): Promise<KycDisclaimer[]>;
|
|
231
290
|
/**
|
|
@@ -236,7 +295,7 @@ export declare class KycService extends BaseDataService<typeof serviceName, KycS
|
|
|
236
295
|
*/
|
|
237
296
|
createSession(params: CreateSessionParams): Promise<Infer<typeof CreateSessionResponseStruct>>;
|
|
238
297
|
/**
|
|
239
|
-
* Checks whether KYC is required for the given
|
|
298
|
+
* Checks whether KYC is required for the given vendor, country, and
|
|
240
299
|
* capabilities.
|
|
241
300
|
*
|
|
242
301
|
* @param params - The check parameters.
|
|
@@ -245,6 +304,32 @@ export declare class KycService extends BaseDataService<typeof serviceName, KycS
|
|
|
245
304
|
checkKycRequired(params: CheckKycRequiredParams): Promise<{
|
|
246
305
|
kycRequired: boolean;
|
|
247
306
|
}>;
|
|
307
|
+
/**
|
|
308
|
+
* Creates (or resumes) an empty-shell customer for the authenticated
|
|
309
|
+
* canonical user on the given identity vendor. Must run before showing
|
|
310
|
+
* vendor T&C so the customer exists and resume logic can key off vendor
|
|
311
|
+
* status.
|
|
312
|
+
*
|
|
313
|
+
* @param params - The parameters.
|
|
314
|
+
* @param params.vendor - Identity vendor (e.g. `iron` for Money/VBA).
|
|
315
|
+
* @param params.email - Email associated with the customer.
|
|
316
|
+
* @returns The vendor customer record (subset validated for controller use).
|
|
317
|
+
*/
|
|
318
|
+
createVendorCustomer(params: CreateVendorCustomerParams): Promise<VendorCustomerResponse>;
|
|
319
|
+
/**
|
|
320
|
+
* Posts T&C1 (vendor signings) and T&C2 (Sumsub + idOS) consents for the
|
|
321
|
+
* authenticated user. The API responds with 204 No Content on success.
|
|
322
|
+
*
|
|
323
|
+
* @param params - The consent parameters.
|
|
324
|
+
*/
|
|
325
|
+
submitConsents(params: SubmitConsentsParams): Promise<void>;
|
|
326
|
+
/**
|
|
327
|
+
* Fetches the user-keyed simplified KYC status used by Money toast / banner
|
|
328
|
+
* surfaces (`GET /kyc/status`).
|
|
329
|
+
*
|
|
330
|
+
* @returns The simplified status payload.
|
|
331
|
+
*/
|
|
332
|
+
fetchKycStatus(): Promise<KycUserStatusResponse>;
|
|
248
333
|
/**
|
|
249
334
|
* Requests a per-session wrapping key from the UKYC backend.
|
|
250
335
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KycService.d.mts","sourceRoot":"","sources":["../src/KycService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,oCAAoC;AAC9D,OAAO,KAAK,EACV,4BAA4B,EAC5B,oCAAoC,EACpC,kCAAkC,EACnC,oCAAoC;AACrC,OAAO,KAAK,EAAE,0BAA0B,EAAE,mCAAmC;AAE7E,OAAO,KAAK,EAAE,yCAAyC,EAAE,yCAAyC;AAClG,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EAAE,4CAA4C,EAAE,+CAA+C;AAC3G,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA8B;
|
|
1
|
+
{"version":3,"file":"KycService.d.mts","sourceRoot":"","sources":["../src/KycService.ts"],"names":[],"mappings":"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"}
|