import {z} from 'zod' export type NameAndNameConnection = {connectionType?: ('FAMILY' | 'FRIENDS' | 'HAVE_A_PERSONAL_RELATIONSHIP' | 'WORK_TOGETHER' | 'HAVE_A_BUSINESS_RELATIONSHIP' | 'NA' | null) | undefined, dataSource?: ({googleSearch?: (boolean | null) | undefined, otherSource?: (string | null) | undefined, socialNetwork?: (boolean | null) | undefined, whitePages?: (boolean | null) | undefined} | null) | undefined, nameRole1?: ('CARDHOLDER' | 'BILLING_NAME' | 'SHIPPING_NAME' | 'ACCOUNT_HOLDER' | 'OTHER' | 'NA' | null) | undefined, nameRole2?: ('CARDHOLDER' | 'BILLING_NAME' | 'SHIPPING_NAME' | 'ACCOUNT_HOLDER' | 'OTHER' | 'NA' | null) | undefined}; export type AddressAndNameConnection = {addressRole?: ('SHIPPING_ADDRESS' | 'BILLING_ADDRESS' | 'NA' | null) | undefined, dataSource?: ({googleSearch?: (boolean | null) | undefined, otherSource?: (string | null) | undefined, whitePages?: (boolean | null) | undefined} | null) | undefined, nameRole?: ('CARDHOLDER' | 'BILLING_NAME' | 'SHIPPING_NAME' | 'ACCOUNT_HOLDER' | 'OTHER' | 'NA' | null) | undefined}; export type CreditCardVerification = {authorizationCode?: (string | null) | undefined, authorizationProcessedWith3DS?: (boolean | null) | undefined, avsFullResult?: (string | null) | undefined, avsNameResult?: (string | null) | undefined, avsStreetResult?: (string | null) | undefined, avsZipResult?: (string | null) | undefined, cavvResult?: (string | null) | undefined, cvvResult?: (string | null) | undefined, eciValue?: (string | null) | undefined, exemptionStatus?: (string | null) | undefined, external3dsVendorPayload?: ({[key: string]: unknown} | null) | undefined, issuerResponseCode?: (string | null) | undefined, issuerResponseText?: (string | null) | undefined, liabilityShift?: (boolean | null) | undefined, partyExecuted3DS?: ('PSP' | 'FORTER' | 'BOTH' | null) | undefined, processorResponseCode?: (string | null) | undefined, processorResponseText?: (string | null) | undefined, threeDsInteractionMode?: ('FRICTIONLESS' | 'CHALLENGED' | null) | undefined, threeDsStatus?: (string | null) | undefined, threeDsVersion?: (string | null) | undefined}; export type AdditionalVerificationDocuments = {address?: ({address1?: (string | null) | undefined, address2?: (string | null) | undefined, city?: (string | null) | undefined, company?: (string | null) | undefined, country: string, region?: (string | null) | undefined, savedData?: ({choseToSaveData?: (boolean | null) | undefined, usedSavedData?: (boolean | null) | undefined} | null) | undefined, zip?: (string | null) | undefined} | null) | undefined, documentDateOfBirth?: (string | null) | undefined, documentExpiration?: (string | null) | undefined, documentFirstName?: (string | null) | undefined, documentIssuingState?: (string | null) | undefined, documentLastName?: (string | null) | undefined, documentNumber?: (string | null) | undefined, documentSource: 'CAMERA_CAPTURED' | 'UPLOADED_FILE' | 'TYPED' | 'OTHER', documentStatus?: ('SENT_TO_CLIENT' | 'RECEIVED_FROM_CLIENT' | 'ABANDONED_BY_CLIENT' | 'RECEIVED_FROM_CLIENT_FAULTY' | null) | undefined, documentType: string, documentVerificationServiceAnswer?: (string | null) | undefined, documentVerificationServiceName?: (string | null) | undefined, documentVerificationServiceResponsePayload?: ({[key: string]: unknown} | null) | undefined, documentVerified?: (boolean | null) | undefined, eventTime?: (number | null) | undefined, nationality?: (string | null) | undefined}; export type EmploymentInformation = {employerAddress?: ({address1?: (string | null) | undefined, address2?: (string | null) | undefined, city?: (string | null) | undefined, company?: (string | null) | undefined, country: string, region?: (string | null) | undefined, savedData?: ({choseToSaveData?: (boolean | null) | undefined, usedSavedData?: (boolean | null) | undefined} | null) | undefined, zip?: (string | null) | undefined} | null) | undefined, employerCompanySizeRange?: (string | null) | undefined, employerIndustry?: (string | null) | undefined, employerName?: (string | null) | undefined, employerPhone?: (string | null) | undefined, income?: ({amountLocalCurrency?: (string | null) | undefined, amountUSD?: (string | null) | undefined, currency?: (string | null) | undefined} | null) | undefined, jobTitle?: (string | null) | undefined}; export type PersonalDetails = {birthdate?: (string | null) | undefined, email?: (string | null) | undefined, firstName?: (string | null) | undefined, fullName?: (string | null) | undefined, gender?: ('MALE' | 'FEMALE' | 'CHOSE_NOT_TO_SPECIFY' | 'NONE' | null) | undefined, lastName?: (string | null) | undefined}; export type Phone = {phone: string, smsVerified?: ({sent?: (boolean | null) | undefined, timeSent?: (number | null) | undefined, verified: boolean} | null) | undefined}; export type Person = {address?: ({address1?: (string | null) | undefined, address2?: (string | null) | undefined, city?: (string | null) | undefined, company?: (string | null) | undefined, country: string, region?: (string | null) | undefined, savedData?: ({choseToSaveData?: (boolean | null) | undefined, usedSavedData?: (boolean | null) | undefined} | null) | undefined, zip?: (string | null) | undefined} | null) | undefined, allAdditionalVerificationDocuments?: (Array | null) | undefined, employmentInformation?: (Array | null) | undefined, personalDetails: PersonalDetails, phone?: (Array | null) | undefined}; export type UnderlyingPaymentMethod = {bankTransfer?: ({accountHolderFirstName?: (string | null) | undefined, accountHolderLastName?: (string | null) | undefined, achProcessingType?: (string | null) | undefined, bankAccountIdentifier: string, bankAccountType?: (string | null) | undefined, bankName?: (string | null) | undefined, paymentGatewayData?: ({gatewayName?: (string | null) | undefined, gatewayTransactionId?: (string | null) | undefined} | null) | undefined, paymentSuccessStatus?: (string | null) | undefined, serviceName?: (string | null) | undefined} | null) | undefined, bitcoin?: (boolean | null) | undefined, cash?: (boolean | null) | undefined, creditCard?: ({bin?: (string | null) | undefined, cardBank?: (string | null) | undefined, cardBrand?: (string | null) | undefined, cardType?: ('CREDIT' | 'DEBIT' | 'PREPAID' | 'UNKNOWN' | null) | undefined, countryOfIssuance?: (string | null) | undefined, creationTime?: (number | null) | undefined, creditCardCorrelationId?: (string | null) | undefined, expirationMonth: string, expirationYear: string, fullResponsePayload?: ({[key: string]: unknown} | null) | undefined, lastFourDigits?: (string | null) | undefined, nameOnCard?: (string | null) | undefined, paymentProcessorData?: ({processorName?: (string | null) | undefined, processorTransactionId?: (string | null) | undefined} | null) | undefined, threeDSecure?: ({acquirerData?: ({acquirerBIN?: (string | null) | undefined, acquirerCountry?: ('AF' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CK' | 'CR' | 'HR' | 'CU' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'TP' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'CI' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'AN' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'KP' | 'GB' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'SH' | 'KN' | 'LC' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'KR' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TJ' | 'TZ' | 'TH' | 'CD' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'YU' | 'ZM' | 'ZW' | null) | undefined, acquirerMerchantId?: (string | null) | undefined, acquirerMerchantName?: (string | null) | undefined, acquirerName?: (string | null) | undefined, merchantCategoryCode?: (number | null) | undefined, merchantCountryCode?: (number | null) | undefined} | null) | undefined, challengeIndicator?: ('NO_PREFERENCE' | 'NO_CHALLENGE' | 'CHALLENGE' | 'CHALLENGE_AS_MANDATE' | null) | undefined, execute3ds?: ('FORCE_3DS' | 'FORCE_DATA_ONLY' | 'NOT_SUPPORTED_BY_MERCHANT' | 'DYNAMIC_FORTER_DECISION' | null) | undefined, forcePsd2Exemption?: ({channel: 'THREEDS_RAILS' | 'AUTHORIZATION', type: 'LOW_VALUE' | 'TRANSACTION_RISK_ANALYSIS' | 'SECURE_CORPORATE' | 'TRUSTED_BENEFICIARY'} | null) | undefined, requestChallenge?: (boolean | null) | undefined, threeDSServerTransID: string, threeDsExecutor?: ('FORTER' | 'MERCHANT' | null) | undefined} | null) | undefined, token: string, tokenType?: ('PSP' | 'EMV_PAYMENT_TOKEN' | 'MERCHANT_GENERATED' | 'FORTER_TOKEN' | 'OTHER' | null) | undefined, verificationResults: CreditCardVerification} | null) | undefined, underlyingPaymentMethodType: 'UNKNOWN' | 'CREDITCARD' | 'BANKTRANSFER' | 'CASH' | 'BITCOIN'}; export type Payment = {allowedMerchantInitiatedTransactions?: (boolean | null) | undefined, amount?: ({amountLocalCurrency?: (string | null) | undefined, amountUSD?: (string | null) | undefined, currency?: (string | null) | undefined} | null) | undefined, androidPay?: ({bin?: (string | null) | undefined, cardBank?: (string | null) | undefined, cardBrand?: (string | null) | undefined, cardType?: ('CREDIT' | 'DEBIT' | 'PREPAID' | 'UNKNOWN' | null) | undefined, countryOfIssuance?: (string | null) | undefined, creationTime?: (number | null) | undefined, creditCardCorrelationId?: (string | null) | undefined, expirationMonth: string, expirationYear: string, fullResponsePayload?: ({[key: string]: unknown} | null) | undefined, lastFourDigits?: (string | null) | undefined, nameOnCard?: (string | null) | undefined, paymentProcessorData?: ({processorName?: (string | null) | undefined, processorTransactionId?: (string | null) | undefined} | null) | undefined, threeDSecure?: ({acquirerData?: ({acquirerBIN?: (string | null) | undefined, acquirerCountry?: ('AF' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CK' | 'CR' | 'HR' | 'CU' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'TP' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'CI' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'AN' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'KP' | 'GB' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'SH' | 'KN' | 'LC' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'KR' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TJ' | 'TZ' | 'TH' | 'CD' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'YU' | 'ZM' | 'ZW' | null) | undefined, acquirerMerchantId?: (string | null) | undefined, acquirerMerchantName?: (string | null) | undefined, acquirerName?: (string | null) | undefined, merchantCategoryCode?: (number | null) | undefined, merchantCountryCode?: (number | null) | undefined} | null) | undefined, challengeIndicator?: ('NO_PREFERENCE' | 'NO_CHALLENGE' | 'CHALLENGE' | 'CHALLENGE_AS_MANDATE' | null) | undefined, execute3ds?: ('FORCE_3DS' | 'FORCE_DATA_ONLY' | 'NOT_SUPPORTED_BY_MERCHANT' | 'DYNAMIC_FORTER_DECISION' | null) | undefined, forcePsd2Exemption?: ({channel: 'THREEDS_RAILS' | 'AUTHORIZATION', type: 'LOW_VALUE' | 'TRANSACTION_RISK_ANALYSIS' | 'SECURE_CORPORATE' | 'TRUSTED_BENEFICIARY'} | null) | undefined, requestChallenge?: (boolean | null) | undefined, threeDSServerTransID: string, threeDsExecutor?: ('FORTER' | 'MERCHANT' | null) | undefined} | null) | undefined, token: string, tokenType?: ('PSP' | 'EMV_PAYMENT_TOKEN' | 'MERCHANT_GENERATED' | 'FORTER_TOKEN' | 'OTHER' | null) | undefined, verificationResults: CreditCardVerification} | null) | undefined, applePay?: ({bin?: (string | null) | undefined, cardBank?: (string | null) | undefined, cardBrand?: (string | null) | undefined, cardType?: ('CREDIT' | 'DEBIT' | 'PREPAID' | 'UNKNOWN' | null) | undefined, countryOfIssuance?: (string | null) | undefined, creationTime?: (number | null) | undefined, creditCardCorrelationId?: (string | null) | undefined, expirationMonth: string, expirationYear: string, fullResponsePayload?: ({[key: string]: unknown} | null) | undefined, lastFourDigits?: (string | null) | undefined, nameOnCard?: (string | null) | undefined, paymentProcessorData?: ({processorName?: (string | null) | undefined, processorTransactionId?: (string | null) | undefined} | null) | undefined, threeDSecure?: ({acquirerData?: ({acquirerBIN?: (string | null) | undefined, acquirerCountry?: ('AF' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CK' | 'CR' | 'HR' | 'CU' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'TP' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'CI' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'AN' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'KP' | 'GB' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'SH' | 'KN' | 'LC' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'KR' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TJ' | 'TZ' | 'TH' | 'CD' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'YU' | 'ZM' | 'ZW' | null) | undefined, acquirerMerchantId?: (string | null) | undefined, acquirerMerchantName?: (string | null) | undefined, acquirerName?: (string | null) | undefined, merchantCategoryCode?: (number | null) | undefined, merchantCountryCode?: (number | null) | undefined} | null) | undefined, challengeIndicator?: ('NO_PREFERENCE' | 'NO_CHALLENGE' | 'CHALLENGE' | 'CHALLENGE_AS_MANDATE' | null) | undefined, execute3ds?: ('FORCE_3DS' | 'FORCE_DATA_ONLY' | 'NOT_SUPPORTED_BY_MERCHANT' | 'DYNAMIC_FORTER_DECISION' | null) | undefined, forcePsd2Exemption?: ({channel: 'THREEDS_RAILS' | 'AUTHORIZATION', type: 'LOW_VALUE' | 'TRANSACTION_RISK_ANALYSIS' | 'SECURE_CORPORATE' | 'TRUSTED_BENEFICIARY'} | null) | undefined, requestChallenge?: (boolean | null) | undefined, threeDSServerTransID: string, threeDsExecutor?: ('FORTER' | 'MERCHANT' | null) | undefined} | null) | undefined, token: string, tokenType?: ('PSP' | 'EMV_PAYMENT_TOKEN' | 'MERCHANT_GENERATED' | 'FORTER_TOKEN' | 'OTHER' | null) | undefined, verificationResults: CreditCardVerification} | null) | undefined, bankTransfer?: ({accountHolderFirstName?: (string | null) | undefined, accountHolderLastName?: (string | null) | undefined, achProcessingType?: (string | null) | undefined, bankAccountIdentifier: string, bankAccountType?: (string | null) | undefined, bankName?: (string | null) | undefined, paymentGatewayData?: ({gatewayName?: (string | null) | undefined, gatewayTransactionId?: (string | null) | undefined} | null) | undefined, paymentSuccessStatus?: (string | null) | undefined, serviceName?: (string | null) | undefined} | null) | undefined, billingDetails: Person, cameraCaptured?: (boolean | null) | undefined, cash?: (boolean | null) | undefined, creditCard?: ({bin: string, cardBank?: (string | null) | undefined, cardBrand?: (string | null) | undefined, cardType?: ('CREDIT' | 'DEBIT' | 'PREPAID' | 'UNKNOWN' | null) | undefined, countryOfIssuance?: (string | null) | undefined, creditCardCorrelationId?: (string | null) | undefined, expirationMonth: string, expirationYear: string, fingerprint?: (string | null) | undefined, fullCreditCard?: (string | null) | undefined, fullResponsePayload?: ({[key: string]: unknown} | null) | undefined, lastFourDigits: string, nameOnCard: string, paymentGatewayData?: ({gatewayName?: (string | null) | undefined, gatewayTransactionId?: (string | null) | undefined} | null) | undefined, paymentProcessorData?: ({processorName?: (string | null) | undefined, processorTransactionId?: (string | null) | undefined} | null) | undefined, threeDSecure?: ({acquirerData?: ({acquirerBIN?: (string | null) | undefined, acquirerCountry?: ('AF' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CK' | 'CR' | 'HR' | 'CU' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'TP' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'CI' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'AN' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'KP' | 'GB' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'SH' | 'KN' | 'LC' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'KR' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TJ' | 'TZ' | 'TH' | 'CD' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'YU' | 'ZM' | 'ZW' | null) | undefined, acquirerMerchantId?: (string | null) | undefined, acquirerMerchantName?: (string | null) | undefined, acquirerName?: (string | null) | undefined, merchantCategoryCode?: (number | null) | undefined, merchantCountryCode?: (number | null) | undefined} | null) | undefined, challengeIndicator?: ('NO_PREFERENCE' | 'NO_CHALLENGE' | 'CHALLENGE' | 'CHALLENGE_AS_MANDATE' | null) | undefined, execute3ds?: ('FORCE_3DS' | 'FORCE_DATA_ONLY' | 'NOT_SUPPORTED_BY_MERCHANT' | 'DYNAMIC_FORTER_DECISION' | null) | undefined, forcePsd2Exemption?: ({channel: 'THREEDS_RAILS' | 'AUTHORIZATION', type: 'LOW_VALUE' | 'TRANSACTION_RISK_ANALYSIS' | 'SECURE_CORPORATE' | 'TRUSTED_BENEFICIARY'} | null) | undefined, requestChallenge?: (boolean | null) | undefined, threeDSServerTransID: string, threeDsExecutor?: ('FORTER' | 'MERCHANT' | null) | undefined} | null) | undefined, verificationResults: CreditCardVerification} | null) | undefined, creditLineDetails?: ({askedToIncreaseCreditLineLimit?: (boolean | null) | undefined, creditLineLimitIncreaseMethod?: ('PRE_APPROVAL' | 'AT_PURCHASE' | null) | undefined, currentCreditLineLimit?: ({amountLocalCurrency?: (string | null) | undefined, amountUSD?: (string | null) | undefined, currency?: (string | null) | undefined} | null) | undefined, originalCreditLineLimit?: ({amountLocalCurrency?: (string | null) | undefined, amountUSD?: (string | null) | undefined, currency?: (string | null) | undefined} | null) | undefined} | null) | undefined, cryptoWallet?: ({cryptoWalletName?: (string | null) | undefined, cryptoWalletPaymentId?: (string | null) | undefined, cryptoWalletType: 'INTERNAL' | 'EXTERNAL'} | null) | undefined, digitalWallet?: ({digitalWalletName: 'AMAZONPAY' | 'FACEBOOKPAY' | 'ALIPAY' | 'WECHAT' | 'AMEDIGITAL' | 'MERCADOPAGO' | 'DUE' | 'ZELLE' | 'PAYONEER' | 'ALLIEDWALLET' | 'KONBINI' | 'UNIONPAY' | 'IYZICO' | 'VENMO' | 'BARTER' | 'PAYNOW' | 'PAYCO' | 'KAKAOPAY' | 'NAVERPAY' | 'LINEPAY' | 'BANCONTACT' | 'MBWAY' | 'AIIA' | 'BLIK' | 'EPS' | 'OVO' | 'DANA' | 'GCASH' | 'GOPAY' | 'RAKUTENPAY' | 'APLAZO' | 'GRABPAY' | 'TWINT' | 'TRUEMONEY' | 'SWISH' | 'KLARNA' | 'SHOPBACK' | 'OTHER' | 'PAYPAY' | 'TRUSTLY' | 'PIX' | 'PAYCONIQ' | 'QRIS', digitalWalletPayerEmail?: (string | null) | undefined, digitalWalletPayerId?: (string | null) | undefined, digitalWalletpaymentId?: (string | null) | undefined, freeTextDigitalWalletName?: (string | null) | undefined, fullDigitalWalletResponsePayload?: ({[key: string]: unknown} | null) | undefined, payerAccountCountry?: (string | null) | undefined, paymentSuccessStatus?: (string | null) | undefined, underlyingPaymentMethod: UnderlyingPaymentMethod} | null) | undefined, giftCard?: ({activationTime?: (number | null) | undefined, creditCurrency?: (string | null) | undefined, creditOrigin?: (string | null) | undefined, merchantPaymentId?: (string | null) | undefined, value?: ({amountLocalCurrency?: (string | null) | undefined, amountUSD?: (string | null) | undefined, currency?: (string | null) | undefined} | null) | undefined} | null) | undefined, installmentService?: ({firstName?: (string | null) | undefined, fullResponsePayload?: ({[key: string]: unknown} | null) | undefined, lastName?: (string | null) | undefined, paymentId?: (string | null) | undefined, serviceName?: (string | null) | undefined, serviceResponseCode?: (string | null) | undefined} | null) | undefined, loyaltyPoints?: ({loyaltyPointsCount?: (number | null) | undefined, loyaltyPointsSource?: ('REFERRAL' | 'IN_ACCOUNT_PURCHASES' | 'PROMOTION' | 'COMPENSATION' | 'CARD_SCHEME_POINTS' | null) | undefined, loyaltyPointsValue?: ({amountLocalCurrency?: (string | null) | undefined, amountUSD?: (string | null) | undefined, currency?: (string | null) | undefined} | null) | undefined, merchantPaymentId?: (string | null) | undefined} | null) | undefined, merchantInitiated?: ({initialOrderId?: (string | null) | undefined, type?: ('RECURRING_TRANSACTION' | 'INSTALMENT_TRANSACTION' | 'ADD_CARD' | 'MAINTAIN_CARD_INFORMATION' | 'ACCOUNT_VERIFICATION' | 'SPLIT_OR_DELAYED_SHIPMENT' | 'TOP_UP' | 'MAIL_ORDER' | 'TELEPHONE_ORDER' | 'WHITELIST_STATUS_CHECK' | 'OTHER_PAYMENT' | null) | undefined} | null) | undefined, mobileMoney?: ({fullResponsePayload?: ({[key: string]: unknown} | null) | undefined, mobileMoneyNetwork: 'MPESA' | 'MTN' | 'MPAWA' | 'MSHWAEI' | 'SAFARICOM' | 'DASH', paymentAcquirerData?: ({acquirerBIN?: (string | null) | undefined, acquirerCountry?: ('AF' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CK' | 'CR' | 'HR' | 'CU' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'TP' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'CI' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'AN' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'KP' | 'GB' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'SH' | 'KN' | 'LC' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'KR' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TJ' | 'TZ' | 'TH' | 'CD' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'YU' | 'ZM' | 'ZW' | null) | undefined, acquirerMerchantId?: (string | null) | undefined, acquirerMerchantName?: (string | null) | undefined, acquirerName?: (string | null) | undefined, merchantCategoryCode?: (number | null) | undefined, merchantCountryCode?: (number | null) | undefined} | null) | undefined, paymentGatewayData?: ({gatewayName?: (string | null) | undefined, gatewayTransactionId?: (string | null) | undefined} | null) | undefined, paymentSuccessStatus: string, phoneNumber: string} | null) | undefined, numberOfInstallments?: (number | null) | undefined, paymentMethodNickname?: (string | null) | undefined, paypal?: ({authorizationId?: (string | null) | undefined, fullPaypalResponsePayload?: ({[key: string]: unknown} | null) | undefined, payerAccountCountry?: (string | null) | undefined, payerAddressStatus?: (string | null) | undefined, payerEmail: string, payerId: string, payerStatus?: (string | null) | undefined, paymentGatewayData?: ({gatewayName?: (string | null) | undefined, gatewayTransactionId?: (string | null) | undefined} | null) | undefined, paymentId?: (string | null) | undefined, paymentStatus: string, protectionEligibility?: (string | null) | undefined} | null) | undefined, recurringPayment?: ({currentPaymentNumber?: (number | null) | undefined, initialPaymentOrderId: string, isPaymentAmountIdenticalForAllPayments?: (boolean | null) | undefined, recurringPaymentExpirationDate?: (string | null) | undefined, recurringPaymentFrequency: string, totalNumberOfPayments?: (number | null) | undefined} | null) | undefined, samsungPay?: ({bin?: (string | null) | undefined, cardBank?: (string | null) | undefined, cardBrand?: (string | null) | undefined, cardType?: ('CREDIT' | 'DEBIT' | 'PREPAID' | 'UNKNOWN' | null) | undefined, countryOfIssuance?: (string | null) | undefined, creationTime?: (number | null) | undefined, creditCardCorrelationId?: (string | null) | undefined, expirationMonth: string, expirationYear: string, fullResponsePayload?: ({[key: string]: unknown} | null) | undefined, lastFourDigits?: (string | null) | undefined, nameOnCard?: (string | null) | undefined, paymentProcessorData?: ({processorName?: (string | null) | undefined, processorTransactionId?: (string | null) | undefined} | null) | undefined, threeDSecure?: ({acquirerData?: ({acquirerBIN?: (string | null) | undefined, acquirerCountry?: ('AF' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CK' | 'CR' | 'HR' | 'CU' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'TP' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'CI' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'AN' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'KP' | 'GB' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'SH' | 'KN' | 'LC' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'KR' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TJ' | 'TZ' | 'TH' | 'CD' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'YU' | 'ZM' | 'ZW' | null) | undefined, acquirerMerchantId?: (string | null) | undefined, acquirerMerchantName?: (string | null) | undefined, acquirerName?: (string | null) | undefined, merchantCategoryCode?: (number | null) | undefined, merchantCountryCode?: (number | null) | undefined} | null) | undefined, challengeIndicator?: ('NO_PREFERENCE' | 'NO_CHALLENGE' | 'CHALLENGE' | 'CHALLENGE_AS_MANDATE' | null) | undefined, execute3ds?: ('FORCE_3DS' | 'FORCE_DATA_ONLY' | 'NOT_SUPPORTED_BY_MERCHANT' | 'DYNAMIC_FORTER_DECISION' | null) | undefined, forcePsd2Exemption?: ({channel: 'THREEDS_RAILS' | 'AUTHORIZATION', type: 'LOW_VALUE' | 'TRANSACTION_RISK_ANALYSIS' | 'SECURE_CORPORATE' | 'TRUSTED_BENEFICIARY'} | null) | undefined, requestChallenge?: (boolean | null) | undefined, threeDSServerTransID: string, threeDsExecutor?: ('FORTER' | 'MERCHANT' | null) | undefined} | null) | undefined, token: string, tokenType?: ('PSP' | 'EMV_PAYMENT_TOKEN' | 'MERCHANT_GENERATED' | 'FORTER_TOKEN' | 'OTHER' | null) | undefined, verificationResults: CreditCardVerification} | null) | undefined, savedData?: ({choseToSaveData?: (boolean | null) | undefined, usedSavedData?: (boolean | null) | undefined} | null) | undefined, storeCreditUsed?: ({activationTime?: (number | null) | undefined, creditCurrency?: (string | null) | undefined, creditOrigin?: (string | null) | undefined, merchantPaymentId?: (string | null) | undefined, value?: ({amountLocalCurrency?: (string | null) | undefined, amountUSD?: (string | null) | undefined, currency?: (string | null) | undefined} | null) | undefined} | null) | undefined, tokenizedCard?: ({bin?: (string | null) | undefined, cardBank?: (string | null) | undefined, cardBrand?: (string | null) | undefined, cardType?: ('CREDIT' | 'DEBIT' | 'PREPAID' | 'UNKNOWN' | null) | undefined, countryOfIssuance?: (string | null) | undefined, creationTime?: (number | null) | undefined, creditCardCorrelationId?: (string | null) | undefined, expirationMonth: string, expirationYear: string, fullResponsePayload?: ({[key: string]: unknown} | null) | undefined, lastFourDigits?: (string | null) | undefined, nameOnCard?: (string | null) | undefined, paymentProcessorData?: ({processorName?: (string | null) | undefined, processorTransactionId?: (string | null) | undefined} | null) | undefined, threeDSecure?: ({acquirerData?: ({acquirerBIN?: (string | null) | undefined, acquirerCountry?: ('AF' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CK' | 'CR' | 'HR' | 'CU' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'TP' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'CI' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'AN' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'KP' | 'GB' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'SH' | 'KN' | 'LC' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'KR' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TJ' | 'TZ' | 'TH' | 'CD' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'YU' | 'ZM' | 'ZW' | null) | undefined, acquirerMerchantId?: (string | null) | undefined, acquirerMerchantName?: (string | null) | undefined, acquirerName?: (string | null) | undefined, merchantCategoryCode?: (number | null) | undefined, merchantCountryCode?: (number | null) | undefined} | null) | undefined, challengeIndicator?: ('NO_PREFERENCE' | 'NO_CHALLENGE' | 'CHALLENGE' | 'CHALLENGE_AS_MANDATE' | null) | undefined, execute3ds?: ('FORCE_3DS' | 'FORCE_DATA_ONLY' | 'NOT_SUPPORTED_BY_MERCHANT' | 'DYNAMIC_FORTER_DECISION' | null) | undefined, forcePsd2Exemption?: ({channel: 'THREEDS_RAILS' | 'AUTHORIZATION', type: 'LOW_VALUE' | 'TRANSACTION_RISK_ANALYSIS' | 'SECURE_CORPORATE' | 'TRUSTED_BENEFICIARY'} | null) | undefined, requestChallenge?: (boolean | null) | undefined, threeDSServerTransID: string, threeDsExecutor?: ('FORTER' | 'MERCHANT' | null) | undefined} | null) | undefined, token: string, tokenType?: ('PSP' | 'EMV_PAYMENT_TOKEN' | 'MERCHANT_GENERATED' | 'FORTER_TOKEN' | 'OTHER' | null) | undefined, verificationResults: CreditCardVerification} | null) | undefined, venmo?: ({fullVenmoResponsePayload?: ({[key: string]: unknown} | null) | undefined, paymentId?: (string | null) | undefined, token: string, userId: string, userName: string} | null) | undefined}; export type LoyaltyProgram = {accountNumber?: (string | null) | undefined, loyaltyPointsValue?: ({amountLocalCurrency?: (string | null) | undefined, amountUSD?: (string | null) | undefined, currency?: (string | null) | undefined} | null) | undefined, programName?: (string | null) | undefined, programPoints?: (number | null) | undefined, tier?: (string | null) | undefined}; export type ValidationUpdateRequest = {connectionInformation?: ({checkoutToolsSessionId?: (string | null) | undefined, customerIP: string, forterMobileUID?: (string | null) | undefined, forterTokenCookie?: (string | null) | undefined, merchantDeviceIdentifier?: (string | null) | undefined, merchantProvidedSessionId?: (string | null) | undefined, userAgent: string} | null) | undefined, merchantFeedback?: ({agentGeneralImpression?: ('CUSTOMER_IS_LEGIT' | 'I_DONT_KNOW' | 'CUSTOMER_IS_SUSPICIOUS' | null) | undefined, doesNotAffectFutureDecisions?: (boolean | null) | undefined, feedbackAppliesToAllFutureDecisionsUntil?: (number | null) | undefined, isFutureDecision?: (boolean | null) | undefined, isPolicyApprove?: (boolean | null) | undefined, merchantCustomerSupport?: ({contactCustomerIP?: (string | null) | undefined, contactEmailUsed?: ({merchantContactedEmail?: (string | null) | undefined, merchantContactedEmailRole?: ('BILLING_EMAIL' | 'SHIPPING_EMAIL' | 'ACCOUNT_EMAIL' | 'OTHER_EMAIL' | 'NA' | null) | undefined} | null) | undefined, contactMethodType: 'PHONE' | 'EMAIL' | 'CHAT' | 'SUPPORT_FORM', contactNameUsed?: ({customerContactNameType: 'CARDHOLDER' | 'BILLING_NAME' | 'SHIPPING_NAME' | 'ACCOUNT_HOLDER' | 'OTHER' | 'NA', customerFirstName?: (string | null) | undefined, customerLastName?: (string | null) | undefined} | null) | undefined, contactPhoneUsed?: ({merchantContactedPhoneNumber?: (string | null) | undefined, merchantContactedPhoneRole?: ('BILLING_PHONE' | 'SHIPPING_PHONE' | 'ACCOUNT_PHONE' | 'OTHER_PHONE' | 'NA' | null) | undefined} | null) | undefined, contactTime: number, customerSupportChangeOrderDetails?: ({customerSupportRequestPickupFromShippingCarrier?: (boolean | null) | undefined, customerSupportRequestPickupStoreZip?: (string | null) | undefined, customerSupportRequestSwitchBillingAndShipping?: (boolean | null) | undefined} | null) | undefined, customerSupportFurtherVerification?: ({customerAnsweredSecurityQuestions: boolean, customerSupportAdditionalVerificationDocuments?: ({documentFirstName?: (string | null) | undefined, documentLastName?: (string | null) | undefined, documentType: string, documentVerified?: (boolean | null) | undefined, nationality?: (string | null) | undefined} | null) | undefined, customerSupportSMSverification?: (string | null) | undefined} | null) | undefined, initiatedBy: 'MERCHANT' | 'CUSTOMER', orderId?: (string | null) | undefined, ticketId?: (string | null) | undefined} | null) | undefined, merchantWouldLikeApproved?: ({merchantContactedIssuer?: ({accessToBankAccountVerifiedByCustomer?: (boolean | null) | undefined, issuerNameOnCardMatch?: ('MATCH' | 'MISMATCH' | 'DID_NOT_CHECK' | 'UNKNOWN' | 'NA' | null) | undefined, issuerPhoneMatch?: ('MATCH' | 'MISMATCH' | 'DID_NOT_CHECK' | 'UNKNOWN' | 'NA' | null) | undefined, issuerStreetAddressMatch?: ('MATCH' | 'MISMATCH' | 'DID_NOT_CHECK' | 'UNKNOWN' | 'NA' | null) | undefined, issuerZipMatch?: ('MATCH' | 'MISMATCH' | 'DID_NOT_CHECK' | 'UNKNOWN' | 'NA' | null) | undefined} | null) | undefined, merchantDisagreesWithSpecificDeclineReason?: ({atoIsIrrelevant?: ({confirmedValidAccountOwnerUsingOldEmail?: (boolean | null) | undefined, confirmedValidAccountOwnerUsingOldPhone?: (boolean | null) | undefined, notATOBecauseOfOtherReason?: (string | null) | undefined, notATOBecauseOldDeviceUsed?: (boolean | null) | undefined, notATOBecauseOldIPUsed?: (boolean | null) | undefined, notATOBecauseSimilarItemPurchased?: (boolean | null) | undefined} | null) | undefined, chbkIsIrrelevant?: ({cannotFindRelatedChargebacks?: (boolean | null) | undefined, chbksResolved?: (boolean | null) | undefined, chbksResolvedOrderIds?: (Array | null) | undefined} | null) | undefined, couponAbuseIsIrrelevant?: (boolean | null) | undefined, multipleLinksAreIrrelevant?: (boolean | null) | undefined, policyNotApplicable?: (boolean | null) | undefined} | null) | undefined, merchantFoundBuyerExposure?: ({customerSignedInUsingLegitSocialNetworkAccount?: ({facebook?: (boolean | null) | undefined, google?: (boolean | null) | undefined, linkedin?: (boolean | null) | undefined, otherSocialNetwork?: (string | null) | undefined, paypal?: (boolean | null) | undefined, twitter?: (boolean | null) | undefined} | null) | undefined, merchantFoundBuyerEmailOnline?: ({facebook?: (boolean | null) | undefined, googlePlus?: (boolean | null) | undefined, googleSearch?: (boolean | null) | undefined, linkedin?: (boolean | null) | undefined, otherSocialNetwork?: (boolean | null) | undefined, otherSource?: (string | null) | undefined, whitePages?: (boolean | null) | undefined} | null) | undefined, merchantFoundBuyerPhoneNumberOnline?: ({facebook?: (boolean | null) | undefined, googlePlus?: (boolean | null) | undefined, googleSearch?: (boolean | null) | undefined, linkedin?: (boolean | null) | undefined, otherSocialNetwork?: (boolean | null) | undefined, otherSource?: (string | null) | undefined, whitePages?: (boolean | null) | undefined} | null) | undefined, merchantFoundConnectionBetweenIndividualsInTheOrder: NameAndNameConnection, merchantFoundConnectionBetweenNameAndAddress: AddressAndNameConnection, merchantFoundLegitShippingAddress?: ('AN_OFFICE_OR_OTHER_WORKPLACE_RELATED_TO_THE_CUSTOMER' | 'A_MILITARY_OR_OTHER_GOVERNMENT_FACILITY_OR_INSTITUTION' | 'SHIPPING_ADDRESS_IS_SAME_AS_BILLING_ADDRESS_AND_AVS_CHECK_MATCHES' | 'NA' | null) | undefined, merchantFoundRecipientEmailOnline?: ({facebook?: (boolean | null) | undefined, googlePlus?: (boolean | null) | undefined, googleSearch?: (boolean | null) | undefined, linkedin?: (boolean | null) | undefined, otherSocialNetwork?: (boolean | null) | undefined, otherSource?: (string | null) | undefined, whitePages?: (boolean | null) | undefined} | null) | undefined, merchantFoundRecipientPhoneNumberOnline?: ({facebook?: (boolean | null) | undefined, googlePlus?: (boolean | null) | undefined, googleSearch?: (boolean | null) | undefined, linkedin?: (boolean | null) | undefined, otherSocialNetwork?: (boolean | null) | undefined, otherSource?: (string | null) | undefined, whitePages?: (boolean | null) | undefined} | null) | undefined} | null) | undefined, merchantPolicyDecisionNotApplicable?: ({inrAbuseNotApplicable?: (boolean | null) | undefined, multipleLinksPolicyNotApplicable?: (boolean | null) | undefined, promotionAbuseNotApplicable?: (boolean | null) | undefined, resellerAbuseNotApplicable?: (boolean | null) | undefined, returnsAbuseNotApplicable?: (boolean | null) | undefined} | null) | undefined, merchantThinksOrderCharacteristicsAreLegit?: ({goodCustomer?: ({establishedAccount?: ({establishedAccountDetails?: ({accountAgeInMonths?: (number | null) | undefined, accountSpendUSD?: ({amountLocalCurrency?: (string | null) | undefined, amountUSD?: (string | null) | undefined, currency?: (string | null) | undefined} | null) | undefined, otherReasonForEstablishedAccount?: (string | null) | undefined} | null) | undefined, relatedAccountDetails?: ({accountEmail?: (string | null) | undefined, accountId?: (string | null) | undefined} | null) | undefined, relatedToAnEstablishedAccount?: (boolean | null) | undefined, thisIsAnEstablishedAccount?: (boolean | null) | undefined} | null) | undefined, forterPreviouslyApproved?: (boolean | null) | undefined, knowCustomerPersonally?: ('COMPANY_EMPLOYEE_OR_RELATED_TO_ONE' | 'COMPANY_BUSINESS_ASSOCIATE_OR_SERVICE_PROVIDER' | 'TESTING_ACCOUNT' | 'OTHER' | 'NA' | null) | undefined, merchantHasGoodScoreElsewhere?: ('INTERNAL_SCORE' | 'THIRD_PARTY_TOOL' | 'NA' | null) | undefined, previousPointOfSalePurchase?: ({madePointOfSalePurchase?: (boolean | null) | undefined, pointOfSalePurchaseState?: (string | null) | undefined, pointOfSalePurchaseZip?: (string | null) | undefined} | null) | undefined} | null) | undefined, lowRiskItem?: (boolean | null) | undefined, lowRiskPaymentMethod?: ({giftCard?: (boolean | null) | undefined, other?: (string | null) | undefined, storeCredit?: (boolean | null) | undefined, wireTransfer?: (boolean | null) | undefined} | null) | undefined} | null) | undefined} | null) | undefined, merchantWouldLikeDeclined?: ({fraudTypeSuspectedByMerchant?: ({merchantInrAbuseType?: ('HIGHLIGHTED' | 'PREVENTED' | null) | undefined, merchantReceivedFraudAlert?: (boolean | null) | undefined, merchantSuspectsAccountTakeOver?: ({merchantSuspectsAccountDetails?: ({accountDetailsWereChanged?: (boolean | null) | undefined, highVelocity?: (boolean | null) | undefined, inactiveAccount?: (boolean | null) | undefined, linkedToMultipleAccounts?: (boolean | null) | undefined, other?: (boolean | null) | undefined} | null) | undefined, merchantSuspectsOrderDetails?: ({badItem?: (boolean | null) | undefined, badShippingAddress?: (boolean | null) | undefined, fakeEmail?: (boolean | null) | undefined, other?: (boolean | null) | undefined} | null) | undefined, merchantWasContactedByVictim?: (boolean | null) | undefined} | null) | undefined, merchantSuspectsBuyerSellerCollusion?: ({merchantSuspectsAccountDetails?: ({accountDetailsWereChanged?: (boolean | null) | undefined, highVelocity?: (boolean | null) | undefined, inactiveAccount?: (boolean | null) | undefined, linkedToMultipleAccounts?: (boolean | null) | undefined, other?: (boolean | null) | undefined} | null) | undefined, merchantSuspectsOrderDetails?: ({badItem?: (boolean | null) | undefined, badShippingAddress?: (boolean | null) | undefined, fakeEmail?: (boolean | null) | undefined, other?: (boolean | null) | undefined} | null) | undefined, merchantWasContactedByVictim?: (boolean | null) | undefined} | null) | undefined, merchantSuspectsCouponAbuse?: (boolean | null) | undefined, merchantSuspectsFraudOther?: ({merchantSuspectsAccountDetails?: ({accountDetailsWereChanged?: (boolean | null) | undefined, highVelocity?: (boolean | null) | undefined, inactiveAccount?: (boolean | null) | undefined, linkedToMultipleAccounts?: (boolean | null) | undefined, other?: (boolean | null) | undefined} | null) | undefined, merchantSuspectsOrderDetails?: ({badItem?: (boolean | null) | undefined, badShippingAddress?: (boolean | null) | undefined, fakeEmail?: (boolean | null) | undefined, other?: (boolean | null) | undefined} | null) | undefined, merchantWasContactedByVictim?: (boolean | null) | undefined} | null) | undefined, merchantSuspectsFriendlyFraud?: ({merchantSuspectsAccountDetails?: ({accountDetailsWereChanged?: (boolean | null) | undefined, highVelocity?: (boolean | null) | undefined, inactiveAccount?: (boolean | null) | undefined, linkedToMultipleAccounts?: (boolean | null) | undefined, other?: (boolean | null) | undefined} | null) | undefined, merchantSuspectsOrderDetails?: ({badItem?: (boolean | null) | undefined, badShippingAddress?: (boolean | null) | undefined, fakeEmail?: (boolean | null) | undefined, other?: (boolean | null) | undefined} | null) | undefined, merchantWasContactedByVictim?: (boolean | null) | undefined} | null) | undefined, merchantSuspectsInrAbuse?: (boolean | null) | undefined, merchantSuspectsOtherPolicyBreach?: (boolean | null) | undefined, merchantSuspectsPromotionAbuse?: (boolean | null) | undefined, merchantSuspectsResellerAbuse?: (boolean | null) | undefined, merchantSuspectsReturnAbuse?: (boolean | null) | undefined, merchantSuspectsStolenPaymentMethod?: ({merchantSuspectsAccountDetails?: ({accountDetailsWereChanged?: (boolean | null) | undefined, highVelocity?: (boolean | null) | undefined, inactiveAccount?: (boolean | null) | undefined, linkedToMultipleAccounts?: (boolean | null) | undefined, other?: (boolean | null) | undefined} | null) | undefined, merchantSuspectsOrderDetails?: ({badItem?: (boolean | null) | undefined, badShippingAddress?: (boolean | null) | undefined, fakeEmail?: (boolean | null) | undefined, other?: (boolean | null) | undefined} | null) | undefined, merchantWasContactedByVictim?: (boolean | null) | undefined} | null) | undefined} | null) | undefined, merchantConfidenceLevelThisIsFraud?: ('NOT_SURE_COMMA_LOOKS_SUSPICIOUS' | 'HIGH_CONFIDENCE_THIS_IS_FRAUD' | 'VICTIM_CONFIRMED_THIS_IS_FRAUD' | null) | undefined, merchantThinksPolicyShouldApply?: (string | null) | undefined} | null) | undefined, undoPreviousFeedback?: (boolean | null) | undefined} | null) | undefined, orderId: string, orderType?: ('WEB' | 'PHONE' | 'DYNAMIC_PHONE' | 'MOBILE' | 'MOBILE_IN_STORE' | 'IOS' | 'ANDROID' | 'WAP' | 'STORE' | 'MERCHANT_EMPLOYEE' | 'MAIL_ORDER' | 'AUTOMATIC_RENEWAL_OR_INSTALLMENT_PAYMENT' | 'MERCHANT_INITIATED' | 'UNKNOWN' | 'POS' | 'API_ONLY' | 'PERSONAL_POS' | 'PHONE_LINK' | 'AI_AGENT' | null) | undefined, payment?: (Array | null) | undefined, primaryRecipient?: ({additionalVerificationDocuments?: ({address?: ({address1?: (string | null) | undefined, address2?: (string | null) | undefined, city?: (string | null) | undefined, company?: (string | null) | undefined, country: string, region?: (string | null) | undefined, savedData?: ({choseToSaveData?: (boolean | null) | undefined, usedSavedData?: (boolean | null) | undefined} | null) | undefined, zip?: (string | null) | undefined} | null) | undefined, documentDateOfBirth?: (string | null) | undefined, documentExpiration?: (string | null) | undefined, documentFirstName?: (string | null) | undefined, documentIssuingState?: (string | null) | undefined, documentLastName?: (string | null) | undefined, documentNumber?: (string | null) | undefined, documentSource: 'CAMERA_CAPTURED' | 'UPLOADED_FILE' | 'TYPED' | 'OTHER', documentStatus?: ('SENT_TO_CLIENT' | 'RECEIVED_FROM_CLIENT' | 'ABANDONED_BY_CLIENT' | 'RECEIVED_FROM_CLIENT_FAULTY' | null) | undefined, documentType: string, documentVerificationServiceAnswer?: (string | null) | undefined, documentVerificationServiceName?: (string | null) | undefined, documentVerificationServiceResponsePayload?: ({[key: string]: unknown} | null) | undefined, documentVerified?: (boolean | null) | undefined, eventTime?: (number | null) | undefined, nationality?: (string | null) | undefined} | null) | undefined, address?: ({address1?: (string | null) | undefined, address2?: (string | null) | undefined, city?: (string | null) | undefined, company?: (string | null) | undefined, country: string, region?: (string | null) | undefined, savedData?: ({choseToSaveData?: (boolean | null) | undefined, usedSavedData?: (boolean | null) | undefined} | null) | undefined, zip?: (string | null) | undefined} | null) | undefined, bankAccount?: ({accountHolderFirstName?: (string | null) | undefined, accountHolderLastName?: (string | null) | undefined, achProcessingType?: (string | null) | undefined, bankAccountIdentifier: string, bankAccountType?: (string | null) | undefined, bankName?: (string | null) | undefined, paymentGatewayData?: ({gatewayName?: (string | null) | undefined, gatewayTransactionId?: (string | null) | undefined} | null) | undefined, paymentSuccessStatus?: (string | null) | undefined, serviceName?: (string | null) | undefined} | null) | undefined, comments?: ({merchantComments?: (string | null) | undefined, messageToBeneficiary?: (string | null) | undefined, userCommentsToMerchant?: (string | null) | undefined} | null) | undefined, cryptoWallet?: ({cryptoWalletName?: (string | null) | undefined, cryptoWalletPaymentId?: (string | null) | undefined, cryptoWalletType: 'INTERNAL' | 'EXTERNAL'} | null) | undefined, identityCard?: (string | null) | undefined, loyaltyProgram?: (Array | null) | undefined, personalDetails: PersonalDetails, phone?: (Array | null) | undefined} | null) | undefined, totalAmount?: ({amountLocalCurrency?: (string | null) | undefined, amountUSD?: (string | null) | undefined, currency?: (string | null) | undefined} | null) | undefined} | {[key: string]: unknown}; export type CreateApiV2OrderUpdateIdArgs = {id: string, 'api-version': string, 'x-forter-siteid': string, Authorization: string, body: ValidationUpdateRequest}; export type CreateApiV2OrderUpdateIdOptions = {baseUrl?: string | undefined, basicAuth?: {username: string, password: string} | undefined, fetch?: typeof fetch | undefined}; export const processorRecommendation = z.object({priority: z.number(), processorMid: z.string(), processorName: z.string(), recommend3DS: z.boolean(), recommendationId: z.string()}); export const validationResponse = z.object({action: z.string().max(1000), message: z.string().max(1000), paymentRecommendations: z.object({action: z.enum(["no_processor_preference", "do_not_process", "process_payment"]).nullable().optional(), processor_routing_reason: z.enum(["out_of_scope", "hard_fraud_decline", "model_recommendation", "exceeded_processing_attempts", "authorized_payment", "no_optional_processor"]).nullable().optional(), processors: z.array(processorRecommendation).nullable().optional()}).nullable().optional(), reasonCode: z.string().max(1000), recommendations: z.array(z.string()), status: z.string().max(50), transaction: z.string().max(100)}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Order update * * POST /v2/order-update/{id} */ export const createApiV2OrderUpdateId = async (args: CreateApiV2OrderUpdateIdArgs, options?: CreateApiV2OrderUpdateIdOptions) => { const {baseUrl = "https://api.forter-secure.com", fetch: fetchFn = fetch, basicAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (args['api-version'] != null) headers.set("api-version", String(args['api-version'])) if (args['x-forter-siteid'] != null) headers.set("x-forter-siteid", String(args['x-forter-siteid'])) if (args.Authorization != null) headers.set("Authorization", String(args.Authorization)) if (basicAuth !== undefined) headers.set('authorization', `Basic ${btoa(`${basicAuth.username}:${basicAuth.password}`)}`) const url = `${baseUrl.replace(/\/+$/, '')}/v2/order-update/${encodeURIComponent(String(args.id))}${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(validationResponse, await res.json()) };