vesant-sdk 1.7.0-dev.b7f5c17 → 1.7.0-dev.d4f9718
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/dist/{client-BolQlL5e.d.mts → client-6sSaxufk.d.mts} +7 -0
- package/dist/{client-BolQlL5e.d.ts → client-6sSaxufk.d.ts} +7 -0
- package/dist/{client-DF7hlMEz.d.ts → client-B32yBt1b.d.ts} +1 -1
- package/dist/{client-DrjgZoH_.d.mts → client-BqPVh5jH.d.mts} +1 -1
- package/dist/{client-B0qhE2kr.d.mts → client-CHPEgasE.d.mts} +2 -2
- package/dist/{client-DtH2RLuy.d.ts → client-pKE_gii_.d.ts} +2 -2
- package/dist/compliance/index.d.mts +3 -3
- package/dist/compliance/index.d.ts +3 -3
- package/dist/compliance/index.js +19 -3
- package/dist/compliance/index.js.map +1 -1
- package/dist/compliance/index.mjs +19 -3
- package/dist/compliance/index.mjs.map +1 -1
- package/dist/decisions/index.d.mts +1 -1
- package/dist/decisions/index.d.ts +1 -1
- package/dist/decisions/index.js +19 -3
- package/dist/decisions/index.js.map +1 -1
- package/dist/decisions/index.mjs +19 -3
- package/dist/decisions/index.mjs.map +1 -1
- package/dist/geolocation/index.d.mts +3 -3
- package/dist/geolocation/index.d.ts +3 -3
- package/dist/geolocation/index.js +19 -3
- package/dist/geolocation/index.js.map +1 -1
- package/dist/geolocation/index.mjs +19 -3
- package/dist/geolocation/index.mjs.map +1 -1
- package/dist/index.d.mts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +50 -17
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +50 -17
- package/dist/index.mjs.map +1 -1
- package/dist/kyc/core.d.mts +2 -2
- package/dist/kyc/core.d.ts +2 -2
- package/dist/kyc/core.js +45 -15
- package/dist/kyc/core.js.map +1 -1
- package/dist/kyc/core.mjs +45 -15
- package/dist/kyc/core.mjs.map +1 -1
- package/dist/kyc/index.d.mts +81 -13
- package/dist/kyc/index.d.ts +81 -13
- package/dist/kyc/index.js +45 -15
- package/dist/kyc/index.js.map +1 -1
- package/dist/kyc/index.mjs +45 -15
- package/dist/kyc/index.mjs.map +1 -1
- package/dist/react.d.mts +3 -3
- package/dist/react.d.ts +3 -3
- package/dist/risk-profile/index.d.mts +1 -1
- package/dist/risk-profile/index.d.ts +1 -1
- package/dist/risk-profile/index.js +19 -3
- package/dist/risk-profile/index.js.map +1 -1
- package/dist/risk-profile/index.mjs +19 -3
- package/dist/risk-profile/index.mjs.map +1 -1
- package/dist/scores/index.d.mts +1 -1
- package/dist/scores/index.d.ts +1 -1
- package/dist/scores/index.js +19 -3
- package/dist/scores/index.js.map +1 -1
- package/dist/scores/index.mjs +19 -3
- package/dist/scores/index.mjs.map +1 -1
- package/dist/tax/index.d.mts +2 -2
- package/dist/tax/index.d.ts +2 -2
- package/dist/tax/index.js +24 -5
- package/dist/tax/index.js.map +1 -1
- package/dist/tax/index.mjs +24 -5
- package/dist/tax/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/kyc/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { P as ProfileFilters, b as ProfileListResponse, C as CustomerProfile, a as CreateProfileRequest } from '../types-BOFaMQxI.mjs';
|
|
2
2
|
import { c as Reason, R as RiskLevel, P as PaginationParams } from '../types-CBQRNL-l.mjs';
|
|
3
|
-
import { B as BaseClient } from '../client-
|
|
3
|
+
import { B as BaseClient, R as RequestOptions } from '../client-6sSaxufk.mjs';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* TypeScript type definitions for Vesant KYC Service API
|
|
@@ -318,8 +318,49 @@ interface RequestKycSubmitLinkRequest {
|
|
|
318
318
|
redirect_url?: string;
|
|
319
319
|
/** URL to receive callback notifications via POST request when KYC status changes (optional) */
|
|
320
320
|
callback_url?: string;
|
|
321
|
-
/**
|
|
321
|
+
/**
|
|
322
|
+
* Event that triggered the KYC request. Valid values: "onboarding",
|
|
323
|
+
* "first_withdrawal", "first_purchase", "manual". The tenant's KYC
|
|
324
|
+
* verification trigger preferences decide, per event, whether KYC is
|
|
325
|
+
* required (`kyc_required` in the response). "manual" always requires
|
|
326
|
+
* KYC and honors the tenant's allow-skip-on-manual option (`can_skip`).
|
|
327
|
+
* Omitted or unknown values default to KYC required with no skip.
|
|
328
|
+
*/
|
|
322
329
|
trigger_event?: string;
|
|
330
|
+
/**
|
|
331
|
+
* Registered customer identity data (optional). Seeds the customer's risk
|
|
332
|
+
* profile so document verification can cross-check the submitted document
|
|
333
|
+
* against trusted reference data (name/DOB match, address verification).
|
|
334
|
+
* Fields never overwrite data already on the profile.
|
|
335
|
+
*/
|
|
336
|
+
customer_data?: KycCustomerData;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Customer identity data supplied by your platform on a submit-link request.
|
|
340
|
+
* Mirrors the geolocation `customer_data` contract. Every field is optional
|
|
341
|
+
* and never overwrites data already on the customer's risk profile.
|
|
342
|
+
*/
|
|
343
|
+
interface KycCustomerData {
|
|
344
|
+
/**
|
|
345
|
+
* Customer's registered full name. Used to match the OCR-extracted name
|
|
346
|
+
* on the submitted document.
|
|
347
|
+
*/
|
|
348
|
+
full_name?: string;
|
|
349
|
+
/**
|
|
350
|
+
* Customer's registered date of birth. ISO 8601 date ("1999-06-02") or an
|
|
351
|
+
* RFC 3339 timestamp ("1986-09-06T18:30:00.000+00:00", as produced by
|
|
352
|
+
* `Date.prototype.toISOString()`) — for timestamps the date portion is
|
|
353
|
+
* used. Used for DOB matching against the submitted document.
|
|
354
|
+
*/
|
|
355
|
+
date_of_birth?: string;
|
|
356
|
+
/** Customer's email address */
|
|
357
|
+
email?: string;
|
|
358
|
+
/** Customer's phone number */
|
|
359
|
+
phone?: string;
|
|
360
|
+
/** Customer's residential address. Used for address verification. */
|
|
361
|
+
address?: string;
|
|
362
|
+
/** Customer's country of residence */
|
|
363
|
+
country?: string;
|
|
323
364
|
}
|
|
324
365
|
/**
|
|
325
366
|
* Trigger events that can request Event-Based Face Verification.
|
|
@@ -389,6 +430,19 @@ interface RequestKycSubmitLinkResponse {
|
|
|
389
430
|
link: string;
|
|
390
431
|
/** KYC request ID */
|
|
391
432
|
kyc_id: string;
|
|
433
|
+
/**
|
|
434
|
+
* Whether KYC is required for the reported `trigger_event`, per the
|
|
435
|
+
* tenant's verification trigger preferences. `false` when the trigger
|
|
436
|
+
* is disabled for the tenant, or when the customer is already verified
|
|
437
|
+
* (in that case `link` and `kyc_id` are empty).
|
|
438
|
+
*/
|
|
439
|
+
kyc_required: boolean;
|
|
440
|
+
/**
|
|
441
|
+
* Whether the user may skip verification. Only `true` for
|
|
442
|
+
* `trigger_event: "manual"` when the tenant enables allow-skip-on-manual,
|
|
443
|
+
* or when the customer is already verified.
|
|
444
|
+
*/
|
|
445
|
+
can_skip: boolean;
|
|
392
446
|
}
|
|
393
447
|
/** Device class detected by the SDK (purely client-side — server doesn't care). */
|
|
394
448
|
type EventBasedFaceVerificationDeviceType = 'mobile' | 'desktop';
|
|
@@ -666,7 +720,7 @@ interface UseKycPreferencesResult extends BaseHookState {
|
|
|
666
720
|
*/
|
|
667
721
|
declare class KycClient extends BaseClient {
|
|
668
722
|
private userId?;
|
|
669
|
-
private riskProfileBaseURL?;
|
|
723
|
+
private readonly riskProfileBaseURL?;
|
|
670
724
|
constructor(config: KycClientConfig);
|
|
671
725
|
/**
|
|
672
726
|
* Set the user ID for operations requiring user context
|
|
@@ -685,7 +739,13 @@ declare class KycClient extends BaseClient {
|
|
|
685
739
|
*
|
|
686
740
|
* Generates a link that the user can visit to submit their KYC documents.
|
|
687
741
|
*
|
|
688
|
-
*
|
|
742
|
+
* Optionally pass the customer's registered identity data as
|
|
743
|
+
* `customer_data` (same shape as the geolocation `customer_data` block).
|
|
744
|
+
* It seeds the customer's risk profile so document verification can
|
|
745
|
+
* cross-check the submitted document against trusted reference data;
|
|
746
|
+
* fields never overwrite data already on the profile.
|
|
747
|
+
*
|
|
748
|
+
* @param request - Request containing the user ID, optional redirect URL, optional callback URL (receives POST requests), and optional customer identity data
|
|
689
749
|
* @returns Response containing the redirect link and KYC ID
|
|
690
750
|
*
|
|
691
751
|
* @example
|
|
@@ -693,14 +753,22 @@ declare class KycClient extends BaseClient {
|
|
|
693
753
|
* const result = await client.requestKycSubmitLink({
|
|
694
754
|
* user_id: "user_123",
|
|
695
755
|
* redirect_url: "https://merchant.com/kyc-complete", // optional
|
|
696
|
-
* callback_url: "https://merchant.com/api/kyc-webhook" // optional - receives POST requests on status change
|
|
756
|
+
* callback_url: "https://merchant.com/api/kyc-webhook", // optional - receives POST requests on status change
|
|
757
|
+
* customer_data: { // optional - seeds the risk profile for document cross-checks
|
|
758
|
+
* full_name: "John Doe",
|
|
759
|
+
* date_of_birth: "1999-06-02", // ISO 8601
|
|
760
|
+
* email: "john@example.com",
|
|
761
|
+
* phone: "+94771234567",
|
|
762
|
+
* address: "12 Main St, Colombo", // used for address verification
|
|
763
|
+
* country: "LK"
|
|
764
|
+
* }
|
|
697
765
|
* });
|
|
698
766
|
*
|
|
699
767
|
* console.log(`Redirect user to: ${result.link}`);
|
|
700
768
|
* console.log(`KYC ID: ${result.kyc_id}`);
|
|
701
769
|
* ```
|
|
702
770
|
*/
|
|
703
|
-
requestKycSubmitLink(request: RequestKycSubmitLinkRequest): Promise<RequestKycSubmitLinkResponse>;
|
|
771
|
+
requestKycSubmitLink(request: RequestKycSubmitLinkRequest, requestOptions?: RequestOptions): Promise<RequestKycSubmitLinkResponse>;
|
|
704
772
|
/**
|
|
705
773
|
* Create a Event-Based Face Verification session.
|
|
706
774
|
*
|
|
@@ -726,7 +794,7 @@ declare class KycClient extends BaseClient {
|
|
|
726
794
|
*
|
|
727
795
|
* @param request - Token from `createEventBasedFaceVerificationSession`, plus the base64 selfie.
|
|
728
796
|
*/
|
|
729
|
-
submitEventBasedFaceVerificationSession(request: SubmitEventBasedFaceVerificationSessionRequest): Promise<EventBasedFaceVerificationCallback>;
|
|
797
|
+
submitEventBasedFaceVerificationSession(request: SubmitEventBasedFaceVerificationSessionRequest, requestOptions?: RequestOptions): Promise<EventBasedFaceVerificationCallback>;
|
|
730
798
|
/**
|
|
731
799
|
* Look up the current state of a Event-Based Face Verification session by its
|
|
732
800
|
* session token. Useful for desktop pollers waiting on the mobile handoff.
|
|
@@ -798,7 +866,7 @@ declare class KycClient extends BaseClient {
|
|
|
798
866
|
* @example
|
|
799
867
|
* ```typescript
|
|
800
868
|
* const result = await client.submitVerification({
|
|
801
|
-
* reference: "
|
|
869
|
+
* reference: "4d2aff34-ab86-422d-992e-50b1234a5b67",
|
|
802
870
|
* email: "customer@example.com",
|
|
803
871
|
* country: "US",
|
|
804
872
|
* document: {
|
|
@@ -815,7 +883,7 @@ declare class KycClient extends BaseClient {
|
|
|
815
883
|
* console.log(`Verification submitted: ${result.reference}`);
|
|
816
884
|
* ```
|
|
817
885
|
*/
|
|
818
|
-
submitVerification(request: DocumentVerificationRequest): Promise<DocumentVerificationResponse>;
|
|
886
|
+
submitVerification(request: DocumentVerificationRequest, requestOptions?: RequestOptions): Promise<DocumentVerificationResponse>;
|
|
819
887
|
/**
|
|
820
888
|
* Get a KYC request by ID
|
|
821
889
|
*
|
|
@@ -824,7 +892,7 @@ declare class KycClient extends BaseClient {
|
|
|
824
892
|
*
|
|
825
893
|
* @example
|
|
826
894
|
* ```typescript
|
|
827
|
-
* const kyc = await client.getKycRequest("
|
|
895
|
+
* const kyc = await client.getKycRequest("550e8400-e29b-41d4-a716-446655440000");
|
|
828
896
|
* console.log(`Status: ${kyc.status}, ID Verified: ${kyc.id_verified}`);
|
|
829
897
|
* ```
|
|
830
898
|
*/
|
|
@@ -877,7 +945,7 @@ declare class KycClient extends BaseClient {
|
|
|
877
945
|
* @example
|
|
878
946
|
* ```typescript
|
|
879
947
|
* await client.requestAdditionalDocuments({
|
|
880
|
-
* id: "
|
|
948
|
+
* id: "550e8400-e29b-41d4-a716-446655440000",
|
|
881
949
|
* document_types: ["address", "document_two"],
|
|
882
950
|
* message: "Please provide proof of address and secondary ID"
|
|
883
951
|
* });
|
|
@@ -892,7 +960,7 @@ declare class KycClient extends BaseClient {
|
|
|
892
960
|
*
|
|
893
961
|
* @example
|
|
894
962
|
* ```typescript
|
|
895
|
-
* const proofs = await client.getProofDownloadURLs("
|
|
963
|
+
* const proofs = await client.getProofDownloadURLs("550e8400-e29b-41d4-a716-446655440000");
|
|
896
964
|
* proofs.forEach(proof => {
|
|
897
965
|
* console.log(`${proof.type}: ${proof.url} (expires: ${proof.expires_at})`);
|
|
898
966
|
* });
|
|
@@ -1078,4 +1146,4 @@ declare class KycClient extends BaseClient {
|
|
|
1078
1146
|
createCustomerProfile(profile: CreateProfileRequest): Promise<CustomerProfile>;
|
|
1079
1147
|
}
|
|
1080
1148
|
|
|
1081
|
-
export { type CheckKycStatusRequest, type CheckKycStatusResponse, CreateProfileRequest as CreateCustomerProfileRequest, type CreateEventBasedFaceVerificationSessionRequest, type CreateEventBasedFaceVerificationSessionResponse, CustomerProfile, ProfileFilters as CustomerProfileFilters, ProfileListResponse as CustomerProfileListResponse, type DocumentType, type DocumentVerificationRequest, type DocumentVerificationResponse, type EventBasedFaceVerificationCallback, type EventBasedFaceVerificationDeviceType, type EventBasedFaceVerificationEvent, type EventBasedFaceVerificationFrequencyTrigger, type EventBasedFaceVerificationReactionResult, type EventBasedFaceVerificationReactions, type EventBasedFaceVerificationThresholdTrigger, type EventBasedFaceVerificationTriggers, type FaceProof, KYC_DECLINED_DESCRIPTIONS, type KycAlert, type KycAlertFilters, type KycAlertListResponse, type KycAlertStatus, type KycAlertType, KycClient, type KycClientConfig, type KycCustomerProfile, type KycDeclinedCode, type KycHandoffSession, type KycOverview, type KycPagination, type KycPreferences, type KycRequest, type KycRequestFilters, type KycRequestListResponse, type KycStatus, type Name, PaginationParams, type Proof, type ProofDownloadURL, type ProofType, type RequestAdditionalDocumentsRequest, type RequestKycSubmitLinkRequest, type RequestKycSubmitLinkResponse, RiskLevel, type SubmitEventBasedFaceVerificationSessionRequest, type SubmittedDocument, type SupportedDocumentType, type UpdateKycAlertRequest, type UpdateKycPreferencesRequest, type UpdateKycStatusRequest, type UseKycAlertsOptions, type UseKycAlertsResult, type UseKycOverviewOptions, type UseKycOverviewResult, type UseKycPreferencesResult, type UseKycRequestsOptions, type UseKycRequestsResult, type UseKycSubmissionOptions, type UseKycSubmissionResult };
|
|
1149
|
+
export { type CheckKycStatusRequest, type CheckKycStatusResponse, CreateProfileRequest as CreateCustomerProfileRequest, type CreateEventBasedFaceVerificationSessionRequest, type CreateEventBasedFaceVerificationSessionResponse, CustomerProfile, ProfileFilters as CustomerProfileFilters, ProfileListResponse as CustomerProfileListResponse, type DocumentType, type DocumentVerificationRequest, type DocumentVerificationResponse, type EventBasedFaceVerificationCallback, type EventBasedFaceVerificationDeviceType, type EventBasedFaceVerificationEvent, type EventBasedFaceVerificationFrequencyTrigger, type EventBasedFaceVerificationReactionResult, type EventBasedFaceVerificationReactions, type EventBasedFaceVerificationThresholdTrigger, type EventBasedFaceVerificationTriggers, type FaceProof, KYC_DECLINED_DESCRIPTIONS, type KycAlert, type KycAlertFilters, type KycAlertListResponse, type KycAlertStatus, type KycAlertType, KycClient, type KycClientConfig, type KycCustomerData, type KycCustomerProfile, type KycDeclinedCode, type KycHandoffSession, type KycOverview, type KycPagination, type KycPreferences, type KycRequest, type KycRequestFilters, type KycRequestListResponse, type KycStatus, type Name, PaginationParams, type Proof, type ProofDownloadURL, type ProofType, type RequestAdditionalDocumentsRequest, type RequestKycSubmitLinkRequest, type RequestKycSubmitLinkResponse, RiskLevel, type SubmitEventBasedFaceVerificationSessionRequest, type SubmittedDocument, type SupportedDocumentType, type UpdateKycAlertRequest, type UpdateKycPreferencesRequest, type UpdateKycStatusRequest, type UseKycAlertsOptions, type UseKycAlertsResult, type UseKycOverviewOptions, type UseKycOverviewResult, type UseKycPreferencesResult, type UseKycRequestsOptions, type UseKycRequestsResult, type UseKycSubmissionOptions, type UseKycSubmissionResult };
|
package/dist/kyc/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { P as ProfileFilters, b as ProfileListResponse, C as CustomerProfile, a as CreateProfileRequest } from '../types-UGyDl1fd.js';
|
|
2
2
|
import { c as Reason, R as RiskLevel, P as PaginationParams } from '../types-CBQRNL-l.js';
|
|
3
|
-
import { B as BaseClient } from '../client-
|
|
3
|
+
import { B as BaseClient, R as RequestOptions } from '../client-6sSaxufk.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* TypeScript type definitions for Vesant KYC Service API
|
|
@@ -318,8 +318,49 @@ interface RequestKycSubmitLinkRequest {
|
|
|
318
318
|
redirect_url?: string;
|
|
319
319
|
/** URL to receive callback notifications via POST request when KYC status changes (optional) */
|
|
320
320
|
callback_url?: string;
|
|
321
|
-
/**
|
|
321
|
+
/**
|
|
322
|
+
* Event that triggered the KYC request. Valid values: "onboarding",
|
|
323
|
+
* "first_withdrawal", "first_purchase", "manual". The tenant's KYC
|
|
324
|
+
* verification trigger preferences decide, per event, whether KYC is
|
|
325
|
+
* required (`kyc_required` in the response). "manual" always requires
|
|
326
|
+
* KYC and honors the tenant's allow-skip-on-manual option (`can_skip`).
|
|
327
|
+
* Omitted or unknown values default to KYC required with no skip.
|
|
328
|
+
*/
|
|
322
329
|
trigger_event?: string;
|
|
330
|
+
/**
|
|
331
|
+
* Registered customer identity data (optional). Seeds the customer's risk
|
|
332
|
+
* profile so document verification can cross-check the submitted document
|
|
333
|
+
* against trusted reference data (name/DOB match, address verification).
|
|
334
|
+
* Fields never overwrite data already on the profile.
|
|
335
|
+
*/
|
|
336
|
+
customer_data?: KycCustomerData;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Customer identity data supplied by your platform on a submit-link request.
|
|
340
|
+
* Mirrors the geolocation `customer_data` contract. Every field is optional
|
|
341
|
+
* and never overwrites data already on the customer's risk profile.
|
|
342
|
+
*/
|
|
343
|
+
interface KycCustomerData {
|
|
344
|
+
/**
|
|
345
|
+
* Customer's registered full name. Used to match the OCR-extracted name
|
|
346
|
+
* on the submitted document.
|
|
347
|
+
*/
|
|
348
|
+
full_name?: string;
|
|
349
|
+
/**
|
|
350
|
+
* Customer's registered date of birth. ISO 8601 date ("1999-06-02") or an
|
|
351
|
+
* RFC 3339 timestamp ("1986-09-06T18:30:00.000+00:00", as produced by
|
|
352
|
+
* `Date.prototype.toISOString()`) — for timestamps the date portion is
|
|
353
|
+
* used. Used for DOB matching against the submitted document.
|
|
354
|
+
*/
|
|
355
|
+
date_of_birth?: string;
|
|
356
|
+
/** Customer's email address */
|
|
357
|
+
email?: string;
|
|
358
|
+
/** Customer's phone number */
|
|
359
|
+
phone?: string;
|
|
360
|
+
/** Customer's residential address. Used for address verification. */
|
|
361
|
+
address?: string;
|
|
362
|
+
/** Customer's country of residence */
|
|
363
|
+
country?: string;
|
|
323
364
|
}
|
|
324
365
|
/**
|
|
325
366
|
* Trigger events that can request Event-Based Face Verification.
|
|
@@ -389,6 +430,19 @@ interface RequestKycSubmitLinkResponse {
|
|
|
389
430
|
link: string;
|
|
390
431
|
/** KYC request ID */
|
|
391
432
|
kyc_id: string;
|
|
433
|
+
/**
|
|
434
|
+
* Whether KYC is required for the reported `trigger_event`, per the
|
|
435
|
+
* tenant's verification trigger preferences. `false` when the trigger
|
|
436
|
+
* is disabled for the tenant, or when the customer is already verified
|
|
437
|
+
* (in that case `link` and `kyc_id` are empty).
|
|
438
|
+
*/
|
|
439
|
+
kyc_required: boolean;
|
|
440
|
+
/**
|
|
441
|
+
* Whether the user may skip verification. Only `true` for
|
|
442
|
+
* `trigger_event: "manual"` when the tenant enables allow-skip-on-manual,
|
|
443
|
+
* or when the customer is already verified.
|
|
444
|
+
*/
|
|
445
|
+
can_skip: boolean;
|
|
392
446
|
}
|
|
393
447
|
/** Device class detected by the SDK (purely client-side — server doesn't care). */
|
|
394
448
|
type EventBasedFaceVerificationDeviceType = 'mobile' | 'desktop';
|
|
@@ -666,7 +720,7 @@ interface UseKycPreferencesResult extends BaseHookState {
|
|
|
666
720
|
*/
|
|
667
721
|
declare class KycClient extends BaseClient {
|
|
668
722
|
private userId?;
|
|
669
|
-
private riskProfileBaseURL?;
|
|
723
|
+
private readonly riskProfileBaseURL?;
|
|
670
724
|
constructor(config: KycClientConfig);
|
|
671
725
|
/**
|
|
672
726
|
* Set the user ID for operations requiring user context
|
|
@@ -685,7 +739,13 @@ declare class KycClient extends BaseClient {
|
|
|
685
739
|
*
|
|
686
740
|
* Generates a link that the user can visit to submit their KYC documents.
|
|
687
741
|
*
|
|
688
|
-
*
|
|
742
|
+
* Optionally pass the customer's registered identity data as
|
|
743
|
+
* `customer_data` (same shape as the geolocation `customer_data` block).
|
|
744
|
+
* It seeds the customer's risk profile so document verification can
|
|
745
|
+
* cross-check the submitted document against trusted reference data;
|
|
746
|
+
* fields never overwrite data already on the profile.
|
|
747
|
+
*
|
|
748
|
+
* @param request - Request containing the user ID, optional redirect URL, optional callback URL (receives POST requests), and optional customer identity data
|
|
689
749
|
* @returns Response containing the redirect link and KYC ID
|
|
690
750
|
*
|
|
691
751
|
* @example
|
|
@@ -693,14 +753,22 @@ declare class KycClient extends BaseClient {
|
|
|
693
753
|
* const result = await client.requestKycSubmitLink({
|
|
694
754
|
* user_id: "user_123",
|
|
695
755
|
* redirect_url: "https://merchant.com/kyc-complete", // optional
|
|
696
|
-
* callback_url: "https://merchant.com/api/kyc-webhook" // optional - receives POST requests on status change
|
|
756
|
+
* callback_url: "https://merchant.com/api/kyc-webhook", // optional - receives POST requests on status change
|
|
757
|
+
* customer_data: { // optional - seeds the risk profile for document cross-checks
|
|
758
|
+
* full_name: "John Doe",
|
|
759
|
+
* date_of_birth: "1999-06-02", // ISO 8601
|
|
760
|
+
* email: "john@example.com",
|
|
761
|
+
* phone: "+94771234567",
|
|
762
|
+
* address: "12 Main St, Colombo", // used for address verification
|
|
763
|
+
* country: "LK"
|
|
764
|
+
* }
|
|
697
765
|
* });
|
|
698
766
|
*
|
|
699
767
|
* console.log(`Redirect user to: ${result.link}`);
|
|
700
768
|
* console.log(`KYC ID: ${result.kyc_id}`);
|
|
701
769
|
* ```
|
|
702
770
|
*/
|
|
703
|
-
requestKycSubmitLink(request: RequestKycSubmitLinkRequest): Promise<RequestKycSubmitLinkResponse>;
|
|
771
|
+
requestKycSubmitLink(request: RequestKycSubmitLinkRequest, requestOptions?: RequestOptions): Promise<RequestKycSubmitLinkResponse>;
|
|
704
772
|
/**
|
|
705
773
|
* Create a Event-Based Face Verification session.
|
|
706
774
|
*
|
|
@@ -726,7 +794,7 @@ declare class KycClient extends BaseClient {
|
|
|
726
794
|
*
|
|
727
795
|
* @param request - Token from `createEventBasedFaceVerificationSession`, plus the base64 selfie.
|
|
728
796
|
*/
|
|
729
|
-
submitEventBasedFaceVerificationSession(request: SubmitEventBasedFaceVerificationSessionRequest): Promise<EventBasedFaceVerificationCallback>;
|
|
797
|
+
submitEventBasedFaceVerificationSession(request: SubmitEventBasedFaceVerificationSessionRequest, requestOptions?: RequestOptions): Promise<EventBasedFaceVerificationCallback>;
|
|
730
798
|
/**
|
|
731
799
|
* Look up the current state of a Event-Based Face Verification session by its
|
|
732
800
|
* session token. Useful for desktop pollers waiting on the mobile handoff.
|
|
@@ -798,7 +866,7 @@ declare class KycClient extends BaseClient {
|
|
|
798
866
|
* @example
|
|
799
867
|
* ```typescript
|
|
800
868
|
* const result = await client.submitVerification({
|
|
801
|
-
* reference: "
|
|
869
|
+
* reference: "4d2aff34-ab86-422d-992e-50b1234a5b67",
|
|
802
870
|
* email: "customer@example.com",
|
|
803
871
|
* country: "US",
|
|
804
872
|
* document: {
|
|
@@ -815,7 +883,7 @@ declare class KycClient extends BaseClient {
|
|
|
815
883
|
* console.log(`Verification submitted: ${result.reference}`);
|
|
816
884
|
* ```
|
|
817
885
|
*/
|
|
818
|
-
submitVerification(request: DocumentVerificationRequest): Promise<DocumentVerificationResponse>;
|
|
886
|
+
submitVerification(request: DocumentVerificationRequest, requestOptions?: RequestOptions): Promise<DocumentVerificationResponse>;
|
|
819
887
|
/**
|
|
820
888
|
* Get a KYC request by ID
|
|
821
889
|
*
|
|
@@ -824,7 +892,7 @@ declare class KycClient extends BaseClient {
|
|
|
824
892
|
*
|
|
825
893
|
* @example
|
|
826
894
|
* ```typescript
|
|
827
|
-
* const kyc = await client.getKycRequest("
|
|
895
|
+
* const kyc = await client.getKycRequest("550e8400-e29b-41d4-a716-446655440000");
|
|
828
896
|
* console.log(`Status: ${kyc.status}, ID Verified: ${kyc.id_verified}`);
|
|
829
897
|
* ```
|
|
830
898
|
*/
|
|
@@ -877,7 +945,7 @@ declare class KycClient extends BaseClient {
|
|
|
877
945
|
* @example
|
|
878
946
|
* ```typescript
|
|
879
947
|
* await client.requestAdditionalDocuments({
|
|
880
|
-
* id: "
|
|
948
|
+
* id: "550e8400-e29b-41d4-a716-446655440000",
|
|
881
949
|
* document_types: ["address", "document_two"],
|
|
882
950
|
* message: "Please provide proof of address and secondary ID"
|
|
883
951
|
* });
|
|
@@ -892,7 +960,7 @@ declare class KycClient extends BaseClient {
|
|
|
892
960
|
*
|
|
893
961
|
* @example
|
|
894
962
|
* ```typescript
|
|
895
|
-
* const proofs = await client.getProofDownloadURLs("
|
|
963
|
+
* const proofs = await client.getProofDownloadURLs("550e8400-e29b-41d4-a716-446655440000");
|
|
896
964
|
* proofs.forEach(proof => {
|
|
897
965
|
* console.log(`${proof.type}: ${proof.url} (expires: ${proof.expires_at})`);
|
|
898
966
|
* });
|
|
@@ -1078,4 +1146,4 @@ declare class KycClient extends BaseClient {
|
|
|
1078
1146
|
createCustomerProfile(profile: CreateProfileRequest): Promise<CustomerProfile>;
|
|
1079
1147
|
}
|
|
1080
1148
|
|
|
1081
|
-
export { type CheckKycStatusRequest, type CheckKycStatusResponse, CreateProfileRequest as CreateCustomerProfileRequest, type CreateEventBasedFaceVerificationSessionRequest, type CreateEventBasedFaceVerificationSessionResponse, CustomerProfile, ProfileFilters as CustomerProfileFilters, ProfileListResponse as CustomerProfileListResponse, type DocumentType, type DocumentVerificationRequest, type DocumentVerificationResponse, type EventBasedFaceVerificationCallback, type EventBasedFaceVerificationDeviceType, type EventBasedFaceVerificationEvent, type EventBasedFaceVerificationFrequencyTrigger, type EventBasedFaceVerificationReactionResult, type EventBasedFaceVerificationReactions, type EventBasedFaceVerificationThresholdTrigger, type EventBasedFaceVerificationTriggers, type FaceProof, KYC_DECLINED_DESCRIPTIONS, type KycAlert, type KycAlertFilters, type KycAlertListResponse, type KycAlertStatus, type KycAlertType, KycClient, type KycClientConfig, type KycCustomerProfile, type KycDeclinedCode, type KycHandoffSession, type KycOverview, type KycPagination, type KycPreferences, type KycRequest, type KycRequestFilters, type KycRequestListResponse, type KycStatus, type Name, PaginationParams, type Proof, type ProofDownloadURL, type ProofType, type RequestAdditionalDocumentsRequest, type RequestKycSubmitLinkRequest, type RequestKycSubmitLinkResponse, RiskLevel, type SubmitEventBasedFaceVerificationSessionRequest, type SubmittedDocument, type SupportedDocumentType, type UpdateKycAlertRequest, type UpdateKycPreferencesRequest, type UpdateKycStatusRequest, type UseKycAlertsOptions, type UseKycAlertsResult, type UseKycOverviewOptions, type UseKycOverviewResult, type UseKycPreferencesResult, type UseKycRequestsOptions, type UseKycRequestsResult, type UseKycSubmissionOptions, type UseKycSubmissionResult };
|
|
1149
|
+
export { type CheckKycStatusRequest, type CheckKycStatusResponse, CreateProfileRequest as CreateCustomerProfileRequest, type CreateEventBasedFaceVerificationSessionRequest, type CreateEventBasedFaceVerificationSessionResponse, CustomerProfile, ProfileFilters as CustomerProfileFilters, ProfileListResponse as CustomerProfileListResponse, type DocumentType, type DocumentVerificationRequest, type DocumentVerificationResponse, type EventBasedFaceVerificationCallback, type EventBasedFaceVerificationDeviceType, type EventBasedFaceVerificationEvent, type EventBasedFaceVerificationFrequencyTrigger, type EventBasedFaceVerificationReactionResult, type EventBasedFaceVerificationReactions, type EventBasedFaceVerificationThresholdTrigger, type EventBasedFaceVerificationTriggers, type FaceProof, KYC_DECLINED_DESCRIPTIONS, type KycAlert, type KycAlertFilters, type KycAlertListResponse, type KycAlertStatus, type KycAlertType, KycClient, type KycClientConfig, type KycCustomerData, type KycCustomerProfile, type KycDeclinedCode, type KycHandoffSession, type KycOverview, type KycPagination, type KycPreferences, type KycRequest, type KycRequestFilters, type KycRequestListResponse, type KycStatus, type Name, PaginationParams, type Proof, type ProofDownloadURL, type ProofType, type RequestAdditionalDocumentsRequest, type RequestKycSubmitLinkRequest, type RequestKycSubmitLinkResponse, RiskLevel, type SubmitEventBasedFaceVerificationSessionRequest, type SubmittedDocument, type SupportedDocumentType, type UpdateKycAlertRequest, type UpdateKycPreferencesRequest, type UpdateKycStatusRequest, type UseKycAlertsOptions, type UseKycAlertsResult, type UseKycOverviewOptions, type UseKycOverviewResult, type UseKycPreferencesResult, type UseKycRequestsOptions, type UseKycRequestsResult, type UseKycSubmissionOptions, type UseKycSubmissionResult };
|
package/dist/kyc/index.js
CHANGED
|
@@ -271,6 +271,19 @@ var BaseClient = class {
|
|
|
271
271
|
this.rateLimitTracker = new RateLimitTracker();
|
|
272
272
|
}
|
|
273
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
* Resolve the Idempotency-Key for a request. Mutating methods (POST/PUT/PATCH)
|
|
276
|
+
* get the caller-supplied key or a freshly minted UUID; non-mutating methods get
|
|
277
|
+
* none. requestWithRetry resolves this once and injects it so every retry reuses
|
|
278
|
+
* one key (letting the server dedup replays); a direct request() resolves per call.
|
|
279
|
+
*/
|
|
280
|
+
resolveIdempotencyKey(method, requestOptions) {
|
|
281
|
+
const isMutating = ["POST", "PUT", "PATCH"].includes((method || "GET").toUpperCase());
|
|
282
|
+
if (!isMutating) {
|
|
283
|
+
return void 0;
|
|
284
|
+
}
|
|
285
|
+
return requestOptions?.idempotencyKey ?? generateUUID();
|
|
286
|
+
}
|
|
274
287
|
/**
|
|
275
288
|
* Make an HTTP request with timeout and error handling
|
|
276
289
|
*/
|
|
@@ -303,8 +316,9 @@ var BaseClient = class {
|
|
|
303
316
|
headers["X-Sandbox"] = "true";
|
|
304
317
|
}
|
|
305
318
|
const method = (options.method || "GET").toUpperCase();
|
|
306
|
-
|
|
307
|
-
|
|
319
|
+
const idempotencyKey = this.resolveIdempotencyKey(method, requestOptions);
|
|
320
|
+
if (idempotencyKey) {
|
|
321
|
+
headers["Idempotency-Key"] = idempotencyKey;
|
|
308
322
|
}
|
|
309
323
|
const controller = new AbortController();
|
|
310
324
|
const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);
|
|
@@ -417,9 +431,11 @@ var BaseClient = class {
|
|
|
417
431
|
*/
|
|
418
432
|
async requestWithRetry(endpoint, options = {}, serviceURL, retries = this.config.retries, requestOptions) {
|
|
419
433
|
let lastError;
|
|
434
|
+
const idempotencyKey = this.resolveIdempotencyKey(options.method || "GET", requestOptions);
|
|
435
|
+
const attemptOptions = idempotencyKey ? { ...requestOptions, idempotencyKey } : requestOptions;
|
|
420
436
|
for (let attempt = 0; attempt <= retries; attempt++) {
|
|
421
437
|
try {
|
|
422
|
-
return await this.request(endpoint, options, serviceURL,
|
|
438
|
+
return await this.request(endpoint, options, serviceURL, attemptOptions);
|
|
423
439
|
} catch (error) {
|
|
424
440
|
lastError = error instanceof Error ? error : new Error("Unknown error");
|
|
425
441
|
if (requestOptions?.signal?.aborted) {
|
|
@@ -603,7 +619,13 @@ var KycClient = class extends BaseClient {
|
|
|
603
619
|
*
|
|
604
620
|
* Generates a link that the user can visit to submit their KYC documents.
|
|
605
621
|
*
|
|
606
|
-
*
|
|
622
|
+
* Optionally pass the customer's registered identity data as
|
|
623
|
+
* `customer_data` (same shape as the geolocation `customer_data` block).
|
|
624
|
+
* It seeds the customer's risk profile so document verification can
|
|
625
|
+
* cross-check the submitted document against trusted reference data;
|
|
626
|
+
* fields never overwrite data already on the profile.
|
|
627
|
+
*
|
|
628
|
+
* @param request - Request containing the user ID, optional redirect URL, optional callback URL (receives POST requests), and optional customer identity data
|
|
607
629
|
* @returns Response containing the redirect link and KYC ID
|
|
608
630
|
*
|
|
609
631
|
* @example
|
|
@@ -611,19 +633,27 @@ var KycClient = class extends BaseClient {
|
|
|
611
633
|
* const result = await client.requestKycSubmitLink({
|
|
612
634
|
* user_id: "user_123",
|
|
613
635
|
* redirect_url: "https://merchant.com/kyc-complete", // optional
|
|
614
|
-
* callback_url: "https://merchant.com/api/kyc-webhook" // optional - receives POST requests on status change
|
|
636
|
+
* callback_url: "https://merchant.com/api/kyc-webhook", // optional - receives POST requests on status change
|
|
637
|
+
* customer_data: { // optional - seeds the risk profile for document cross-checks
|
|
638
|
+
* full_name: "John Doe",
|
|
639
|
+
* date_of_birth: "1999-06-02", // ISO 8601
|
|
640
|
+
* email: "john@example.com",
|
|
641
|
+
* phone: "+94771234567",
|
|
642
|
+
* address: "12 Main St, Colombo", // used for address verification
|
|
643
|
+
* country: "LK"
|
|
644
|
+
* }
|
|
615
645
|
* });
|
|
616
646
|
*
|
|
617
647
|
* console.log(`Redirect user to: ${result.link}`);
|
|
618
648
|
* console.log(`KYC ID: ${result.kyc_id}`);
|
|
619
649
|
* ```
|
|
620
650
|
*/
|
|
621
|
-
async requestKycSubmitLink(request) {
|
|
651
|
+
async requestKycSubmitLink(request, requestOptions) {
|
|
622
652
|
return this.requestWithRetry("/api/v1/kyc/request", {
|
|
623
653
|
method: "POST",
|
|
624
654
|
body: JSON.stringify(request),
|
|
625
655
|
headers: this.getUserHeaders()
|
|
626
|
-
});
|
|
656
|
+
}, void 0, void 0, requestOptions);
|
|
627
657
|
}
|
|
628
658
|
/**
|
|
629
659
|
* Create a Event-Based Face Verification session.
|
|
@@ -656,12 +686,12 @@ var KycClient = class extends BaseClient {
|
|
|
656
686
|
*
|
|
657
687
|
* @param request - Token from `createEventBasedFaceVerificationSession`, plus the base64 selfie.
|
|
658
688
|
*/
|
|
659
|
-
async submitEventBasedFaceVerificationSession(request) {
|
|
689
|
+
async submitEventBasedFaceVerificationSession(request, requestOptions) {
|
|
660
690
|
return this.request("/api/v1/kyc/face/submit", {
|
|
661
691
|
method: "POST",
|
|
662
692
|
body: JSON.stringify(request),
|
|
663
693
|
headers: this.getUserHeaders()
|
|
664
|
-
});
|
|
694
|
+
}, void 0, requestOptions);
|
|
665
695
|
}
|
|
666
696
|
/**
|
|
667
697
|
* Look up the current state of a Event-Based Face Verification session by its
|
|
@@ -760,7 +790,7 @@ var KycClient = class extends BaseClient {
|
|
|
760
790
|
* @example
|
|
761
791
|
* ```typescript
|
|
762
792
|
* const result = await client.submitVerification({
|
|
763
|
-
* reference: "
|
|
793
|
+
* reference: "4d2aff34-ab86-422d-992e-50b1234a5b67",
|
|
764
794
|
* email: "customer@example.com",
|
|
765
795
|
* country: "US",
|
|
766
796
|
* document: {
|
|
@@ -777,12 +807,12 @@ var KycClient = class extends BaseClient {
|
|
|
777
807
|
* console.log(`Verification submitted: ${result.reference}`);
|
|
778
808
|
* ```
|
|
779
809
|
*/
|
|
780
|
-
async submitVerification(request) {
|
|
810
|
+
async submitVerification(request, requestOptions) {
|
|
781
811
|
return this.requestWithRetry("/api/v1/kyc/submit", {
|
|
782
812
|
method: "POST",
|
|
783
813
|
body: JSON.stringify(request),
|
|
784
814
|
headers: this.getUserHeaders()
|
|
785
|
-
});
|
|
815
|
+
}, void 0, void 0, requestOptions);
|
|
786
816
|
}
|
|
787
817
|
/**
|
|
788
818
|
* Get a KYC request by ID
|
|
@@ -792,7 +822,7 @@ var KycClient = class extends BaseClient {
|
|
|
792
822
|
*
|
|
793
823
|
* @example
|
|
794
824
|
* ```typescript
|
|
795
|
-
* const kyc = await client.getKycRequest("
|
|
825
|
+
* const kyc = await client.getKycRequest("550e8400-e29b-41d4-a716-446655440000");
|
|
796
826
|
* console.log(`Status: ${kyc.status}, ID Verified: ${kyc.id_verified}`);
|
|
797
827
|
* ```
|
|
798
828
|
*/
|
|
@@ -867,7 +897,7 @@ var KycClient = class extends BaseClient {
|
|
|
867
897
|
* @example
|
|
868
898
|
* ```typescript
|
|
869
899
|
* await client.requestAdditionalDocuments({
|
|
870
|
-
* id: "
|
|
900
|
+
* id: "550e8400-e29b-41d4-a716-446655440000",
|
|
871
901
|
* document_types: ["address", "document_two"],
|
|
872
902
|
* message: "Please provide proof of address and secondary ID"
|
|
873
903
|
* });
|
|
@@ -888,7 +918,7 @@ var KycClient = class extends BaseClient {
|
|
|
888
918
|
*
|
|
889
919
|
* @example
|
|
890
920
|
* ```typescript
|
|
891
|
-
* const proofs = await client.getProofDownloadURLs("
|
|
921
|
+
* const proofs = await client.getProofDownloadURLs("550e8400-e29b-41d4-a716-446655440000");
|
|
892
922
|
* proofs.forEach(proof => {
|
|
893
923
|
* console.log(`${proof.type}: ${proof.url} (expires: ${proof.expires_at})`);
|
|
894
924
|
* });
|