UNPKG

@adyen/kyc-components

Version:

`adyen-kyc-components` provides the required pieces to build an onboarding flow based on a legal entity. To onboard and verify users, you need to create a user interface (UI) to collect user data. To speed up building your integration, Adyen offers onboar

85 lines (84 loc) 8.72 kB
import type { State, TopLevelDataSchema } from '../../core/context/StateContext/types'; import type { AddressSearchRequest, AddressSearchResponse, LoqateAddress } from '../../core/models/api/address-search'; import type { CapabilityName } from '../../core/models/api/capability'; import type { CompanyDatasetRequest, CompanyDatasetResponse, CompanySearchRequest, CompanySearchResponse, TinVerificationRequest, TinVerificationResponse } from '../../core/models/api/company-search'; import type { DownloadPci, PciQuestionnaireIds, PciQuestionnaires, PciStatus, PciStatusRequest, PciTemplateRequest, PciTemplateResponse, ServiceAgreementAcceptanceInfos, ServiceAgreementAcceptedDocumentResponse, ServiceAgreementRequest, ServiceAgreementResponse, ServiceAgreementSignRequest, ServiceAgreementSignResponse, ServiceAgreementStatus, ServiceAgreementUnacceptedDocumentRequest, ServiceAgreementUnacceptedDocumentResponse, SignedBy } from '../../core/models/api/contracts'; import type { Document, ExistingDocument } from '../../core/models/api/document'; import type { BankVerificationVendorsResponse } from '../../core/models/api/get-bankVerification-providers'; import type { InstantIdVerificationStartCheckRequest, InstantIdVerificationStartCheckResponse, InstantIdVerificationTokenRequest, InstantIdVerificationTokenResponse } from '../../core/models/api/instant-id-verification'; import type { ExistingLegalEntity, LegalEntity, PatchLegalEntity } from '../../core/models/api/legal-entity'; import type { ReviewCompletion } from '../../core/models/api/review'; import type { ExistingTransferInstrument, TransferInstrument } from '../../core/models/api/transfer-instrument'; import type { BankVerificationErrorResponse, CreateTrustedTransferInstrumentResponse } from '../../core/models/api/trusted-transferInstrument'; import type { OnboardingLinkConfig, OnboardingLinkResponse } from '../../core/models/api/view-verification-status'; import type { CountryCode } from '../../core/models/country-code'; import type { Language } from '../../language/Language'; import type { TranslationKey } from '../../language/types'; import type { TaskTypes } from '../../stores/globalStore/taskTypes'; export interface SingpassLinkResponseItem { authUrl: string; success: boolean; } export interface SingpassLinkResponse { item: SingpassLinkResponseItem; } export interface DropinComposerProps extends Required<Pick<DropinAPIHandlers, 'handleGetLegalEntity' | 'handleUpdateLegalEntity' | 'handleCreateLegalEntity' | 'handleGetPciStatus' | 'handleGetPciQuestionnaires' | 'handleGetServiceAgreementStatus' | 'handleGetServiceAgreementAcceptanceInfos' | 'handleGetTransferInstrument' | 'handleDeleteTransferInstrument' | 'handleCreateTransferInstrument' | 'handleUpdateTransferInstrument' | 'handleGetDocument' | 'handleUpdateDocument' | 'handleCreateDocument' | 'handleDeleteDocument' | 'handleCompanyIndexSearch' | 'handleCompanyDeepSearch' | 'handleGetCompanyDataset' | 'handleRefreshCompanyDataset' | 'handleVerifyTin' | 'handleClearCompanyData' | 'handleGetBankVerificationVendors' | 'handleSignPci' | 'handleGetPciTemplate' | 'handleDownloadPci' | 'handleGetServiceAgreement' | 'handleViewAcceptedTermsOfServiceDocument' | 'handleDownloadAcceptedTermsOfServiceDocument' | 'handleDownloadUnacceptedTermsOfServiceDocument' | 'handleSignServiceAgreement' | 'handleReviewConfirm'>>, Pick<DropinAPIHandlers, 'handleCreateTrustedTransferInstrument' | 'handleBankVerificationError' | 'handleGetIdVerificationStartCheck' | 'handleGetIdVerificationToken' | 'handleAddressSearch' | 'handleFindAddress' | 'handleOpenSingpassAuthorizationLink' | 'handleCompanyRegistrationNumberIndexSearch' | 'handleCompanyRegistrationNumberDeepSearch'> { capabilities?: CapabilityName[]; legalEntityResponse: ExistingLegalEntity; onChange?: (state: State<TopLevelDataSchema>) => void; onSubmit?: (data: unknown) => void; onLoad?: () => void; onNavigate?: (task: TaskTypes) => void; } export interface DropinAPIHandlers { handleReviewConfirm?(legalEntityId: string): Promise<ReviewCompletion>; handleGetLegalEntity?(legalEntityId: string): Promise<ExistingLegalEntity>; handleCreateLegalEntity?(data: LegalEntity): Promise<ExistingLegalEntity>; handleUpdateLegalEntity?(data: PatchLegalEntity, legalEntityId: string): Promise<ExistingLegalEntity>; handleCreateDocument?(data: Document, legalEntityId: string): Promise<ExistingDocument>; handleUpdateDocument?(data: Document, documentId: string, legalEntityId: string): Promise<ExistingDocument>; handleDeleteDocument?(documentId: string, legalEntityId: string): Promise<ExistingDocument>; handleGetDocument?(documentId: string, legalEntityId: string): Promise<ExistingDocument>; handleGetBankVerificationVendors?(country: CountryCode, openBankingPartnerConfigId?: string, locale?: Language['locale']): Promise<BankVerificationVendorsResponse>; handleGetTransferInstrument?(transferInstrumentId: string): Promise<ExistingTransferInstrument>; handleUpdateTransferInstrument?(data: TransferInstrument, transferInstrumentId: string): Promise<ExistingTransferInstrument>; handleDeleteTransferInstrument?(transferInstrumentId: string): Promise<TransferInstrument>; handleCreateTransferInstrument?(data: TransferInstrument): Promise<ExistingTransferInstrument>; handleBankVerificationError?(errorCode: string, errorMessage: string, state: string, metadata?: Map<string, string>): Promise<BankVerificationErrorResponse>; handleGetPciTemplate?(legalEntityId: string, data: PciTemplateRequest): Promise<PciTemplateResponse>; handleGetPciQuestionnaires?(legalEntityId: string): Promise<PciQuestionnaires>; handleSignPci?(legalEntityId: string, data: SignedBy): Promise<PciQuestionnaireIds>; handleDownloadPci?(legalEntityId: string, pciReference: string): Promise<DownloadPci>; handleGetPciStatus?(legalEntityId: string, data: PciStatusRequest): Promise<PciStatus>; handleGetServiceAgreement?(legalEntityId: string, data: ServiceAgreementRequest): Promise<ServiceAgreementResponse>; handleSignServiceAgreement?(legalEntityId: string, termsOfServiceDocumentId: string, data: ServiceAgreementSignRequest): Promise<ServiceAgreementSignResponse>; handleGetServiceAgreementStatus?(legalEntityId: string): Promise<ServiceAgreementStatus>; handleViewAcceptedTermsOfServiceDocument?(legalEntityId: string, termsOfServiceAcceptanceReference: string): Promise<ServiceAgreementAcceptedDocumentResponse>; handleDownloadAcceptedTermsOfServiceDocument?(legalEntityId: string, termsOfServiceAcceptanceReference: string): Promise<ServiceAgreementAcceptedDocumentResponse>; handleDownloadUnacceptedTermsOfServiceDocument?(legalEntityId: string, data: ServiceAgreementUnacceptedDocumentRequest): Promise<ServiceAgreementUnacceptedDocumentResponse>; handleGetServiceAgreementAcceptanceInfos?(legalEntityId: string): Promise<ServiceAgreementAcceptanceInfos>; handleAddressSearch?(data: AddressSearchRequest, legalEntityId: string): Promise<AddressSearchResponse>; handleFindAddress?(addressId: string): Promise<LoqateAddress>; handleGetIdVerificationToken?(legalEntityId: string, data: InstantIdVerificationTokenRequest): Promise<InstantIdVerificationTokenResponse>; handleGetIdVerificationStartCheck?(legalEntityId: string, data: InstantIdVerificationStartCheckRequest): Promise<InstantIdVerificationStartCheckResponse>; handleCompanyIndexSearch?(data: CompanySearchRequest): Promise<CompanySearchResponse>; handleCompanyDeepSearch?(data: CompanySearchRequest): Promise<CompanySearchResponse>; handleCompanyRegistrationNumberIndexSearch?(data: CompanySearchRequest): Promise<CompanySearchResponse>; handleCompanyRegistrationNumberDeepSearch?(data: CompanySearchRequest): Promise<CompanySearchResponse>; handleGetCompanyDataset?(data: CompanyDatasetRequest): Promise<CompanyDatasetResponse>; handleRefreshCompanyDataset?(data: CompanyDatasetRequest): Promise<CompanyDatasetResponse>; handleVerifyTin?(data: TinVerificationRequest): Promise<TinVerificationResponse>; handleClearCompanyData?(): Promise<void>; handleGenerateOnboardingLink?(config: OnboardingLinkConfig): Promise<OnboardingLinkResponse>; handleOpenSingpassAuthorizationLink?(): Promise<SingpassLinkResponse>; handleCreateTrustedTransferInstrument?(code: string, state: string): Promise<CreateTrustedTransferInstrumentResponse>; } export interface DropinProps { legalEntityResponse?: ExistingLegalEntity; handleHomeClick?(): void; handleBackClick?(): void; handleCloseClick?(): void; hideSidebar?: boolean; taskType?: TaskTypes; taskName?: TranslationKey; }