declare enum ScaErrorCode { BYPASSED_AUTHENTICATION = "001", AUTHENTICATION_NOT_AVAILABLE_ON_LOOKUP = "002", UNAVAILABLE_FRICTIONLESS_AUTHENTICATION = "003", UNSUCCESSFUL_FRICTIONLESS_AUTHENTICATION = "004", REJECTED_FRICTIONLESS_AUTHENTICATION = "005", UNSUCCESSFUL_STEPUP_AUTHENTICATION = "006", UNAVAILABLE_STEPUP_AUTHENTICATION = "007" } declare enum ChallengeWindowSize { SIZE_250X400 = "01", SIZE_390X400 = "02", SIZE_500X600 = "03", SIZE_600X400 = "04", SIZE_FULL_PAGE = "05" } interface CreateSCASessionRequest { amount: number; currency: string; hide_card_holder: boolean; } interface CreateSCASessionResponse { jwt: string; } interface ThreedsData { cavv: string; par: string; sli: string; xid: string; ver: string; directoryServerTxnId: string; threedsVersion: string; eci?: string; } interface EnrollSCARequest { amount: number; card_token: string; currency: string; reference: string; verification: string; session_id: string; challenge_window_size: ChallengeWindowSize; hide_card_holder: boolean; screen_height: number; screen_width: number; customer?: { first_name?: string; last_name?: string; email?: string; address?: string; city?: string; postcode?: string; state?: string; country?: string; }; } interface EnrollSCAResponse { aav: string; acs_url: string; action: { proceed: boolean; challenge: boolean; frictionless: boolean; bypass: boolean; }; authentication_path: string; authentication_result: string; authentication_status_message: string; authentication_transaction_id: string; card_bin: string; card_type_name: string; cavv: string; commerce_indicator: CommerceIndicator; currency: string; decision: 'ACCEPT' | 'REJECT' | 'ERROR'; directory_server_txn_id: string; eci: string; enrolled: VEResEnrolled; pareq: string; pares: PARes; proxy_pan: string; reason_code: string; request_id: string; request_token: string; ucaf_collection_indicator: string; version: string; xid: string; } declare enum CommerceIndicator { INTERNET = "internet", JS_ATTEMPTED = "js_attempted", JS_FAILURE = "js_failure", SPA = "spa", VBV_ATTEMPTED = "vbv_attempted", VBV_FAILURE = "vbv_failure" } declare enum VEResEnrolled { ENROLLED = "Y", NOT_ENROLLED = "N", UNABLE = "U", BYPASSED = "B" } declare enum PARes { ATTEMPTED = "A", BYPASSED = "B", CANCELED = "N", REJECTED = "R", NOT_COMPLETED = "U", SUCCESS = "Y", CHALLENGED = "C" } interface ValidateSCARequest { amount: number; authentication_transaction_id: string; card_token: string; currency: string; pareq: string; reference: string; } interface ValidateSCAResponse { aav: string; acs_url: string; authentication_result: string; card_bin: string; cavv: string; commerce_indicator: CommerceIndicator; decision: 'ACCEPT' | 'REJECT' | 'ERROR'; directory_server_txn_id: string; eci: string; enrolled: VEResEnrolled; pareq: string; pares: PARes; reason_code: string; request_id: string; request_token: string; ucaf_collection_indicator: string; xid: string; version: string; } interface DecodeSCASessionRequest { token: string; } interface DecodeSCASessionResponse { amount: number; currency_code: string; processor_transaction_id: string; consumer_session_id: string; reference_id: string; type: string; action_code: string; error_number: number; error_description: string; errors: string[]; test: boolean; } interface GetCardRequest { card_token: string; } interface GetCardResponse { bin: string; } export { ScaErrorCode, ChallengeWindowSize, CommerceIndicator, VEResEnrolled, PARes, }; export type { CreateSCASessionRequest, CreateSCASessionResponse, EnrollSCARequest, EnrollSCAResponse, ValidateSCARequest, ValidateSCAResponse, DecodeSCASessionRequest, DecodeSCASessionResponse, GetCardRequest, GetCardResponse, ThreedsData };