UNPKG

redsys-easy

Version:

Node JS interface for Redsys payment gateway

177 lines (176 loc) 6.77 kB
import type { TransactionType } from '../assets/transaction-types'; import type { CurrencyNum } from '../assets/currencies'; import type { LanguageNum } from '../assets/lang-codes'; import type { ThreeDSPreAuthInputParams, ThreeDSv1AuthDataInputParams, ThreeDSv2AuthDataInputParams, ThreeDSv1ChallengeResponseInputParams, ThreeDSv2ChallengeResponseInputParams, ThreeDSRedirectInputParams } from './3ds-params'; /** * Common input parameters */ export interface BaseInputParams { /** Transaction type */ DS_MERCHANT_TRANSACTIONTYPE: TransactionType; /** Merchant code number */ DS_MERCHANT_MERCHANTCODE: string; /** Order identifier */ DS_MERCHANT_ORDER: string; /** Terminal number */ DS_MERCHANT_TERMINAL: string; /** Stored payment method reference number */ DS_MERCHANT_IDENTIFIER?: string | undefined; /** Merchant group number */ DS_MERCHANT_GROUP?: string | undefined; /** * Amount designated as an integer in the smallest currency division * * @example * `'199'` (1.99 EUR) */ DS_MERCHANT_AMOUNT?: string | undefined; /** Currency number, ISO-4217 */ DS_MERCHANT_CURRENCY?: CurrencyNum | undefined; /** Card PAN, number */ DS_MERCHANT_PAN?: string | undefined; /** Card expiry date, YYMM */ DS_MERCHANT_EXPIRYDATE?: string | undefined; /** Card CVV2 code */ DS_MERCHANT_CVV2?: string | undefined; /** PDS2 exemptions */ DS_MERCHANT_EXCEP_SCA?: string | undefined; /** Merchant data */ DS_MERCHANT_MERCHANTDATA?: string | undefined; /** Merchant name */ DS_MERCHANT_MERCHANTNAME?: string | undefined; /** Product description */ DS_MERCHANT_PRODUCTDESCRIPTION?: string | undefined; /** Cardholder name and surname */ DS_MERCHANT_TITULAR?: string | undefined; /** Authorization transaction code, refunds */ DS_MERCHANT_AUTHORISATIONCODE?: string | undefined; /** Transaction date, YYYY-MM-DD */ DS_MERCHANT_TRANSACTIONDATE?: string | undefined; /** Direct payment */ DS_MERCHANT_DIRECTPAYMENT?: 'true' | 'moto' | undefined; /** INSITE operation identifier */ DS_MERCHANT_IDOPER?: string | undefined; /** Tax code number */ DS_MERCHANT_TAX_REFERENCE?: string | undefined; /** Online Travel Agency indicator */ DS_MERCHANT_OTA?: 'S' | undefined; /** Initial Credential On File transaction indicator */ DS_MERCHANT_COF_INI?: 'S' | 'N' | undefined; /** Credential On File transaction identifier */ DS_MERCHANT_COF_TXNID?: string | undefined; /** Credential On File transaction type */ DS_MERCHANT_COF_TYPE?: 'I' | 'R' | 'H' | 'E' | 'D' | 'M' | 'N' | 'C' | undefined; } /** * Input parameters for a redsys redirect request * * @public */ export interface RedirectInputParams extends BaseInputParams { /** EMV3DS data in json format */ DS_MERCHANT_EMV3DS?: ThreeDSRedirectInputParams | undefined; /** Notification url */ DS_MERCHANT_MERCHANTURL?: string | undefined; /** Success redirection url */ DS_MERCHANT_URLOK?: string | undefined; /** Failure redirection url */ DS_MERCHANT_URLKO?: string | undefined; /** Language */ DS_MERCHANT_CONSUMERLANGUAGE?: LanguageNum | undefined; /** Payment methods */ DS_MERCHANT_PAYMETHODS?: string | undefined; /** Customization code number */ DS_MERCHANT_PERSOCODE?: string | undefined; /** Obtain paypal address */ DS_MERCHANT_SHIPPINGADDRESSPYP?: 'S' | 'N' | undefined; } /** * Common input parameters for redsys request * * @public */ export interface RequestInputParams extends BaseInputParams, Pick<RedirectInputParams, 'DS_MERCHANT_MERCHANTURL' | 'DS_MERCHANT_URLOK' | 'DS_MERCHANT_URLKO' | 'DS_MERCHANT_CONSUMERLANGUAGE' | 'DS_MERCHANT_PAYMETHODS' | 'DS_MERCHANT_PERSOCODE' | 'DS_MERCHANT_SHIPPINGADDRESSPYP'> { /** xPay data, hex */ DS_XPAYDATA?: string | undefined; /** xPay origin */ DS_XPAYORIGEN?: 'Google' | 'Apple' | undefined; /** xPay type */ DS_XPAYTYPE?: 'WEB' | 'InApp' | undefined; /** PUC identifier, number */ DS_ACQUIRER_IDENTIFIER?: string | undefined; /** Matching data */ DS_MERCHANT_MATCHINGDATA?: string | undefined; /** Customer phone, paygold */ DS_MERCHANT_CUSTOMER_MOBILE?: string | undefined; /** Customer email address, paygold */ DS_MERCHANT_CUSTOMER_MAIL?: string | undefined; /** Expiration date for paygold links, YYYY-MM-DD-hh:mm:ss.sss or number of minutes */ DS_MERCHANT_P2F_EXPIRYDATE?: string | undefined; /** * SMS text content, paygold * * Parameters: @URL@, @COMERCIO@, @IMPORTE@ and @MONEDA@ */ DS_MERCHANT_CUSTOMER_SMS_TEXT?: string | undefined; /** * Email text content, paygold * * Parameters: nombreComprador, direccionComprador and textoLibre1. */ DS_MERCHANT_P2F_XMLDATA?: string | undefined; } export interface CommonRestInputParams extends RequestInputParams { /** MPI External parameters, json */ DS_MERCHANT_MPIEXTERNAL?: { /** Authenticator identifier, base64 */ TXID: string; /** CAVV, base64 */ CAVV: string; /** ECI, number */ ECI: '5' | '6' | '7'; /** Eci, number */ Eci: string; /** 3DSecure transaction identifier */ threeDSServerTransID: string; /** DS identifier */ dsTransID: string; /** CAVV, base64 */ authenticationValue: string; /** 3DSecure version */ ProtocolVersion: '2.1.0'; /** Authentication Method */ authenticationMethod: string; /** Authentication type */ authenticationType: string; /** Authentication flow */ authenticationFlow: 'F' | 'C'; } | undefined; } /** * Input parameters for a IniciaPeticion HTTP request * * @public */ export interface RestIniciaPeticionInputParams extends CommonRestInputParams { /** EMV3DS data in json format */ DS_MERCHANT_EMV3DS?: ThreeDSPreAuthInputParams | undefined; /** Dynamic Currency Conversion data, json */ DS_MERCHANT_DCC?: 'Y' | 'N' | undefined; } /** * Input parameters for a TrataPeticion Peticion HTTP request * * @public */ export interface RestTrataPeticionInputParams extends CommonRestInputParams { /** EMV3DS data in json format */ DS_MERCHANT_EMV3DS?: ThreeDSv1AuthDataInputParams | ThreeDSv2AuthDataInputParams | ThreeDSv1ChallengeResponseInputParams | ThreeDSv2ChallengeResponseInputParams | undefined; /** Dynamic Currency Conversion data, json */ DS_MERCHANT_DCC?: { /** Card currency number, ISO-4217 */ monedaDCC: string; /** Amount in card currency, decimal number */ importeDCC: string; } | undefined; }