Operativas tarjetas REST IntroducciónEn esta página te mostramos cómo realizar distintas operativas con tarjetas de crédito o débito a través de la integración REST.Lo que detallamos en este documento es la forma de realizar cada operación:Enviar diferentes parámetros dentro del campo Ds_MerchantParameters.Enviar y realizar diferentes acciones para el flujo 3DS. No todas las operaciones requieren este flujo.Ten en cuenta que esto representa solo una parte del proceso completo de integración. Como paso previo, te dejamos el enlace donde se explica todo el proceso la integración REST: Integración REST Necesidad de PCI DSSDependiendo del tipo de operativa que vayas a realizar con tu integración, necesitarás (o no) PCI DSS:Operativas que SÍ necesitan PCI DSS: Las operativas donde captures los datos de la tarjeta y los utilices para operar. Por ejemplo, autorizaciones, preautorizaciones, etc.Operativas que NO necesitan PCI DSS: Las operativas donde no utilices datos de la tarjeta o donde utilices únicamente un token de la tarjeta que has obtenido por redirección. Por ejemplo, devoluciones, confirmaciones, pagos tokenizados, etc. Endpoints: Tipos de petición y entornosEn esta sección tienes la información sobre los distintos endpoints según el tipo de petición REST y el entorno donde estés operando. Tipos de peticiónLa petición se envía al una URL o endpoint distinto según el tipo de petición (IniciaPeticion o trataPeticion):iniciaPeticion: Este endpoint se utiliza para iniciar operaciones que requieren autenticación 3DS (por ejemplo, autorizaciones o preautorizaciones con 3DS v2). Devuelve la información necesaria para redirigir al cliente al proceso de autenticación. trataPeticion: Endpoint principal para gestionar operaciones REST. Se utiliza para procesar pagos, confirmar preautorizaciones, realizar devoluciones, etc.Tipos de entornosPuedes operar en entorno de pruebas o de producción. La petición se envía a una URL distinta por cada entorno, como ves en la tabla de más abajo.La diferencia entre los entornos es la siguiente:Entorno de pruebas:Es el entorno donde se prueba la integración.Las operaciones no tienen valor contable.Puedes usar datos para pruebas (clave SHA, nº de comercio).Puedes usar tarjetas para pruebas y probar distintas casuísticas. Entorno de producciónEntorno donde las operaciones tienen valor real.Tienes que usar tarjetas y cuentas reales.Para operar en este entorno, nuestro equipo debe comprobar que todo funciona correctamente.Debes cambiar algunos de los datos utilizados. Los puedes ver en el documento de Pase a producción.EndpointsEstas son las URLs donde se manda la petición dependiendo del entorno y del tipo de petición: Tipo de peticiónEntornoURL iniciaPeticionPruebas https://sis-t.redsys.es:25443/sis/rest/iniciaPeticionREST Producciónhttps://sis.redsys.es/sis/rest/iniciaPeticionREST trataPeticionPruebashttps://sis-t.redsys.es:25443/sis/rest/trataPeticionREST Producciónhttps://sis.redsys.es/sis/rest/trataPeticionREST Parámetros de la peticiónEstos son los parámetros requeridos y opcionales en la integración REST. Los requeridos son necesarios en cualquier operativa, y los opcionales son necesarios en algunas operativas. Consulta la sección de la documentación de la operativa que estés realizando para más detalles. ParámetroFormatoRequerido/OpcionalDescripciónEjemplo DS_MERCHANT_MERCHANTCODE9 caracteres NuméricoRequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987 DS_MERCHANT_TERMINAL3 caracteres NuméricoRequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99 DS_MERCHANT_AMOUNT12 caracteres NuméricoRequeridoImporte de la operación. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.1050 DS_MERCHANT_CURRENCY4 caracteres NuméricoRequeridoCódigo ISO 4217 de la divisa utilizada en la transacción. Ver códigos ISO divisas.978 DS_MERCHANT_ORDER12 caracteres Alfanumérico * (caracteres ASCII: del 48 al 57, del 65 al 90 y del 97 al 122)RequeridoCódigo de pedido. No se puede repetir un código de pedido hasta pasados 6 meses. Recomendamos que los 4 primeros dígitos sean numéricos, para evitar problemas en la liquidación. *Sólo se permiten caracteres ASCII: – Dígitos (0–9): ASCII 48 a 57. Letras mayúsculas (A–Z): ASCII 65 a 90. – Letras minúsculas (a–z): ASCII 97 a 122. – No se permiten espacios, símbolos ni acentos.1234ABcd56EF DS_MERCHANT_TRANSACTIONTYPEValores disponibles: – 0: Autorización – 1: Preautorización – 2: Confirmar preautorizaciones – 3: Devoluciones – 7: Validación de tarjeta – 8: Confirmar validaciones de tarjeta – 9: Anular preautorizaciones y autorizaciones – 46: Anular devoluciones. – 47: Anular validación de tarjeta.RequeridoTipo de transacción. El número enviado indica el tipo de transacción. 0 DS_MERCHANT_PAN19 caracteres NuméricoRequerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta. * Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)4548810000000003 DS_MERCHANT_CVV23 a 4 caracteres NuméricoRequerido*Código CVV2 de la tarjeta del cliente. * Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT. 050 DS_MERCHANT_EXPIRYDATE4 caracteres Numérico AAMMRequerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes). * Requerido cuando se envía DS_MERCHANT_PAN3012 DS_MERCHANT_CLIENTIP15 caracteres AlfanuméricoOpcional* Campo que sirve para indicar la IP del cliente. * Recomendado si tienes que enviar la IP del cliente, ya que la IP registrada en el TPV Virtual (si no se envía este parámetro) es la IP donde esté ubicado el comercio. 192.168.1.1 DS_MERCHANT_MERCHANTURL250 caracteres AlfanuméricoOpcionalURL a la que se envía la notificación. En REST la notificación se recibe de servidor a servidor, por lo que este campo es opcional y lo puedes utilizar como Backup.https://www.example.com/notification DS_MERCHANT_IDENTIFIERValores posibles: – Para generar referencia: REQUIRED – Para enviar el token generado: 40 caracteres y numéricoOpcional*Puede indicar dos cosas: – Indica la solicitud de generar la referencia. – Indica el token de la tarjeta. * Requerido para la primera operación COF, el pago 1-clic, o cuando se paga con referencia.REQUIRED DS_MERCHANT_COF_INIValores posibles: – S: Es primera transacción COF (almacena credenciales) – N: No es primera transacción COFOpcional*Indica si es la primera transacción COF. Otros valor que no sea S o N no se tendrá en cuenta. Sólo aplica a Visa y MasterCard. * Requerido para la primera operación COF y los sucesivos, sean 1-clic o MIT.S DS_MERCHANT_COF_TYPETienes la descripción de los valores en la tabla de DS_MERCHANT_COF_TYPE. Valores posibles: – I: Installments – R: Recurring – H: Reauthorization – E: Resubmission – D: Delayed – M: Incremental – N: No Show – C: OtrasOpcional*Indica el tipo de operación COF. * Requerido para las operaciones COF iniciales o sucesivas y el pago 1-clic.R DS_MERCHANT_COF_TXNID15 caracteres AlfanuméricoOpcional** Opcional pero recomendable en operaciones COF. Lo recibes en la notificación del primer pago COF, lo puedes enviar en las siguientes cuando uses el token.2006031152000 DS_MERCHANT_AUTHORISATIONCODE6 caracteres AlfanuméricoOpcionalCódigo de autorización que identifica la transacción original que se quiere devolver. El valor no es único, se puede repetir. Útil para comercios que repiten nº de pedido. 245232 DS_MERCHANT_TRANSACTIONDATE10 caracteres yyyy-mm-ddOpcionalFecha de la operación que se quiere devolver. Permite identificar sin equivocación la transacción que se quiere devolver, útil si tu comercio permite repetir números de pedido.2025-06-11 DS_MERCHANT_RTS24 caracteres NuméricoOpcional*Valor RTS para Devoluciones de confirmaciones parciales. * Requerido en devoluciones de confirmaciones parciales. 2452452334132434 DS_MERCHANT_MERCHANTDATA1024 caracteres AlfanuméricoOpcional Información que no procesa el TPV Virtual. Se devuelve sin modificar en la notificación. Se puede añadir para procesos internos.Prueba de pago en mi comercio DS_MERCHANT_TITULAR60 caracteres máximo AlfanuméricoOpcionalNombre del titular de la tarjeta.Pedro Salas DS_MERCHANT_DCCHay 2 formatos posibles: – iniciaPeticion: «Y» o «N» – trataPeticion: Objeto JSON (monedaDCC y importeDCC)Opcional** Requerido en operaciones DCC. – iniciaPeticion: Campo que indica la solicitud de información DCC – trataPeticion: Objeto JSON donde se envían los datos DCC de la operación. – iniciaPeticion: Y – trataPeticion: Objeto JSON (ver campos enviados en la tabla inferior) DS_MERCHANT_EMV3DSObjeto JSON*OpcionalEste parámetro contiene un JSON con los parámetros necesarios para la autenticación EMV3DS (v2 y v1). * Objeto JSON serializado como string.N/A DS_MERCHANT_GROUP9 caracteres NuméricoOpcionalIndicador del código de grupo asociado a la referencia/token. Opcional si se envía el DS_MERCHANT_IDENTIFIER. DS_MERCHANT_MERCHANTNAME25 caracteres AlfanuméricoOpcionalIndica el nombre del comercio que se mostrará al cliente durante el proceso de pago. Si no se envía, se mostrará el nombre configurado en Canales. Mi comercio DS_MERCHANT_PRODUCTDESCRIPTION125 caracteres máximo AlfanuméricoOpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo DS_MERCHANT_EXCEP_SCA3 caracteres AlfanuméricoOpcional*– Para iniciaPeticion: Manda «Y» (sin comillas) para ver qué exenciones tiene disponibles el comercio. – Para trataPeticion: Permite solicitar un tipo de exención en la transacción. Valores disponibles en la sección de exenciones. *Requerido enviarlo en operaciones MIT.MIT DS_MERCHANT_DIRECTPAYMENTValores posibles: – true – motoOpcional*Identifica si es un pago directo por parte del comercio (sin autenticación). – Si se envía true, la operación se identifica como sin autenticación. (esto no se tendrá en cuenta si la tarjeta está afectada por PSD2). – Si se envía moto, la operación se identifica como pago MOTO. *Requerido enviarlo en operaciones que inicia el comercio, como los pagos MIT. Y en pagos MOTO.true DS_MERCHANT_MERCHANTDESCRIPTOR25 caracteres AlfanuméricoOpcionalEs un descriptor flexible. Requiere activación por parte de la entidad. Si está activado y no se envía, se enviará por defecto el nombre del comercio. * Pensado para PSPsMi comercio DS_MERCHANT_OTAValor disponible: – S: SíOpcional*Indica si la petición de validación es una Autenticación para una Viaje Online (OTA). * Sólo disponible en la operativa de validación de tarjetaS Parámetros 3D SecureLos parámetros 3D Secure se tienen que enviar en las peticiones de las operativas que requieren de este protocolo. Estos parámetros amplían la información sobre el cliente que realiza la transacción, lo que aumenta la seguridad y reduce el fraude.Tienes todo el proceso explicado en la sección Operativas con autenticación 3DS. Estos parámetros se envían dentro del campo DS_MERCHANT_EMV3DS: ParámetroFormatoOpcional/RecomendadoDescripciónEjemplo acctID64 caracteres máximo AlfanuméricoOpcionalInformación adicional de la cuenta del cliente. acctInfoObjeto JSONRecomendadoInformación adicional de la cuenta de usuario en tu comercio. Parámetros que incluye. addrMatch1 caracter Valores admitidos: – Y (Yes) – N (No)OpcionalIndica si la dirección de envío es la misma que la dirección de facturación.N billAddrCity50 caracteres máximo AlfanuméricoRecomendadoCiudad de la dirección de facturación del titular de la tarjeta que realiza la compra.Barcelona billAddrCountryISO 3166-1Recomendado*Código ISO 3166-1 del país de la dirección de facturación del titular de la tarjeta que realiza la operación. * Obligatorio si se envía «billAddrState».ES billAddrLine150 caracteres máximo AlfanuméricoRecomendadoPrimera línea de la dirección de facturación del titular de la tarjeta que realiza la operación. Calle Test 1 billAddrLine250 caracteres máximo AlfanuméricoRecomendadoSegunda línea de la dirección de facturación del titular de la tarjeta que realiza la operación. Bloque 2 billAddrLine350 caracteres máximo AlfanuméricoRecomendadoTercera línea de la dirección de facturación del titular de la tarjeta que realiza la operación. Piso 3 C billAddrPostCode16 caracteres máximo AlfanuméricoRecomendadoCódigo postal de la dirección de facturación del titular de la tarjeta que realiza la operación. 08001 billAddrStateISO 3166-2RecomendadoCódigo ISO 3166-2 del estado o provincia de la dirección de facturación del titular de la tarjeta que realiza la operación.B browserAcceptHeader2048 caracteres máximo AlfanuméricoRecomendadoHTTP accept headers enviado desde el navegador. browserColorDepthValores aceptados: – 1: 1 bit – 4: 4 bits – 8: 8 bits – 15: 15 bits – 16: 16 bits – 24: 24 bits – 32: 32 bits – 48: 48 bits RecomendadoValor que representa la profundida de bits de la paleta de colores para mostrar imágenes en bits por pixel. Este valor lo devuelve la propiedad «screen.colorDepth» desde el navegador del cliente. * En Redirección «Realizar Pago» no es necesario enviarlo, ya que el TPV Virtual lo recoge automáticamente.24 browserIP45 caracteres máximo AlfanuméricoRecomendadoIP del navegador. IPv4 o IPv6. 2001:0db8:85a3:0000:0000:8a2e:0370:7334 browserJavaEnabledBooleanoRecomendadoIndica si el navegador es capaz de usar Java. Este valor lo devuelve la propiedad «navigator.JavaEnabled». true browserJavascriptEnabledBooleanoRecomendadoIndica si el navegador es capaz de usar JavaScript. true browserLanguage1 a 8 caracteresRecomendadoIdioma del navegador definido en IETF BCP47. Este valor lo devuelve la propiedad «navigator.language». es-ES browserScreenHeight1 a 6 caracteres AlfanuméricoRecomendadoAltura total de la pantalla en píxeles. Este valor lo devuelve la propiedad «screen.height». 1080 browserScreenWidth1 a 6 caracteres AlfanuméricoRecomendadoAnchura total de la pantalla en píxeles. Este valor lo devuelve la propiedad «screen.width». 1920 browserTZ1 a 5 caracteres Alfanumérico RecomendadoDiferencia horaria entre la hora UTC y la hora local del navegador en MINUTOS. Este valor lo devuelve el método «getTimezoneOffset()». Por ejemplo, si la zona horaria es UTC -5 horas, el valor aceptado será «+300» +300 browserUserAgentMáximo 2048 caracteres AlfanuméricoRecomendadoHttp user-agent header del navegador del cliente. Si la longitud supera los 2048 caracteres, el valor será truncado.Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 notificationURL256 caracteres máximo AlfanuméricoRecomendadoURL del comercio que recibirá la notificación con el mensaje CRes al finalizar el challenge. https://sis-d.redsys.es/sis-simulador-web/SisRESTCreqCres_3DSecureV2.jsp protocolVersionAlfanumérico Valores posibles : – 1.0.2 – 2.1.0 – 2.2.0RecomendadoVersión de protocolo 3DSecure. 2.2.0 cardholderNameDe 2 a 45 caracteres AlfanuméricoRecomendadoNombre del titular de la tarjeta. Juan challengeWindowSize2 caracteres Valores posibles (tamaño en píxeles): – 01 = 250 x 400 – 02 = 390 x 400 – 03 = 500 x 600 – 04 = 600 x 400 – 05 = Full screen (Valor por defecto)OpcionalDimensión de ventana de challenge que el banco emisor presentará al cliente para realizar la autenticación. El tamaño preconfigurado es el ancho x alto en píxeles de la ventana del navegador.05 Email254 caracteres máximo AlfanuméricoRecomendadoDirección de correo electrónico del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.test@mail.com homePhoneObjeto JSONRecomendadoNúmero de teléfono de casa del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.Parámetros que incluye. workPhoneObjeto JSONRecomendadoNúmero de teléfono de trabajo del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.Parámetros que incluye. mobilePhoneObjeto JSONRecomendadoNúmero de teléfono móvil del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.Parámetros que incluye. merchantRiskIndicatorObjeto JSONRecomendadoInformación adicional que representa la evaluación que ha hecho el comercio del nivel de riesgo de fraude en la autenticación.Parámetros que incluye. purchaseInstalDataNumérico Mayor que 1Opcional*Indica el número máximo de autorizaciones en pago aplazado. * Obligatorio para operaciones COF Instalment3 recurringExpiryYYYYMMDDOpcional*Fecha a partir de la cual no se harán más autorizaciones Formato aceptado: YYYYMMDD * Obligatorio para operaciones COF Instalment y Recurring20301231 recurringFrequency4 caracteres NuméricoOpcional*Indica el mínimo número de días entre autorizaciones * Obligatorio para operaciones COF Instalment y Recurring30 shipAddrCityVariable, máximo 50 / JSON Data Type: StringRecomendadoCiudad de la dirección de envío solicitada por el titular de la tarjeta.Barcelona shipAddrCountryISO 3166-1Recomendado*ISO 3166-1 del país de la dirección de envío solicitada por el titular de la tarjeta. * Obligatorio si se envía «shipAddrState».ES shipAddrLine150 caracteres máximo AlfanuméricoRecomendadoPrimera línea de la dirección de envío solicitada por el titular de la tarjeta.Calle Test 1 shipAddrLine250 caracteres máximo AlfanuméricoRecomendadoSegunda línea de la dirección de envío solicitada por el titular de la tarjeta.Bloque 2 shipAddrLine350 caracteres máximo AlfanuméricoRecomendadoTercera línea de la dirección de envío solicitada por el titular de la tarjeta.Piso 3 C shipAddrPostCode16 caracteres máximo AlfanuméricoRecomendadoEl código postal de la dirección de envío solicitada por el titular de la tarjeta.08001 shipAddrStateISO 3166-2RecomendadoEl estado o provincia de la dirección de envío asociada con la tarjeta utilizada para esta compra. Corresponde al código de subdivisión ISO 3166-2.B threeDSCompIndValores aceptados: – Y: Completado correctamente – N: Completado con errores – U: 3DSMethod no ejecutadoRecomendadoIndica si el 3DSMethod se ha ejecutado. Y threeDSInfoValores posibles: – CardData: Indica que solicitas información de la tarjeta. – AuthenticationData – ChallengeResponse: Indica que estás respondiendo al challenge. – 3RI-Recurring – 3RI-OTARecomendadoTipo de solicitud 3DS. CardData threeDSRequestorAuthenticationInfoObjeto JSONOpcionalInformación adicional sobre como el cliente se autenticó en el inicio de sesión en la cuenta del comercio. Parámetros que incluye. threeDSServerTransID36 caracteres máximo AlfanuméricoRecomendadoIdentificador de la transacción 3DSecuro. Es el mismo valor devuelto en la consulta de tarjeta.d7433c2d-f44d-48da-a3a3-e883f6a82fe9 cresLongitud variable AlfanuméricoOpcional*Cres codificado en BASE64 de respuesta del ACS al Challenge que contiene el resultado de la autenticación. * Deberás enviarlo en la petición donde envías el resultado de la autenticación.eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImQ3NDJhbnNTdGF0dXMiOiJZIn0= threeDSRequestorPriorAuthenticationInfoObjeto JSONOpcional*Este campo se utiliza para enviar información sobre una autenticación 3DS realizada anteriormente. *Es necesario en determinadas operativas, como por ejemplo: – Pagos recurrentes EMV 3DS subsiguientes: En este caso, debes enviar en este campo el objeto JSON threeDSRequestorPriorAuthenticationInfo que fue generado en la operación recurrente inicial. Es decir, exactamente el mismo valor que devolvió el TPV en el campo threeDSRequestorPriorAuthenticationInfo dentro de Ds_EMV3DS en la primera operación.Parámetros que incluye. threeDSRequestorChallengeIndValores posibles: – 03: Indica que el comercio quiere aplicar autenticación reforzada (SCA). – 04: Indica que se requiere autenticación reforzada (SCA) por un mandato.Opcional*Indica la preferencia del comercio para que se aplique autenticación reforzada (SCA) a su cliente en esta operación. En caso de no enviarse este parámetro no se indicará preferencia alguna al emisor y la operación puede ser exencionada, autenticada con SCA o autenticada sin SCA (frictionless). * En operativas REST donde se decline la operación con código 195, se deberá enviar este parámetro como «04».04 En el documento 3D Secure: Qué es y parámetros tienes más información sobre el protocolo 3DS y el resto de tablas con los JSON que conforman los parámetros:acctInfomerchantRiskIndicatorthreeDSRequestorPriorAuthenticationInfothreeDSRequestorAuthenticationInfohomePhone, workPhone y mobilePhone Operativas con una sola peticiónEstas operativas no requieren la autenticación del titular. Únicamente tendrás que preparar la petición con los parámetros de Ds_MerchantParameters necesarios según la operativa y enviar la petición al endpoint correspondiente según el entorno: Tipo de peticiónEntornoURL trataPeticionPruebashttps://sis-t.redsys.es:25443/sis/rest/trataPeticionREST Producciónhttps://sis.redsys.es/sis/rest/trataPeticionREST Las operativas de esta categoría:No tienen que cumplir la normativa PCI DSS por norma general. Si lo requiere si se manejan datos de la tarjeta.No pasan por el flujo 3DS. Sólo hay que enviar una petición al endpoint trataPeticion y gestionar la notificación.El resto de la integración (montar el formulario, enviarlo, gestionar notificación, etc.) se explica en el documento Integración REST.Las operativas REST que puedes realizar con una petición son: Devolución Confirmación Anulación Pago COF sucesivo MIT. Más detalles en esta sección. Otras exenciones MO/TO Las operativas mencionadas se activan por separado. Tienes que pedir su activación a oficina. Se activan para todo el comercio. Flujo operaciones con una peticiónA continuación tienes un diagrama del flujo que sigue una operación con una sola petición en REST: Inicio de la operación: El cliente entra en tu tienda online y pulsa en el botón de pagar para iniciar el proceso. Petición de pago (trataPeticion): El comercio monta y envía una petición de pago siguiendo la lógica de la integración y enviando los parámetros necesarios según la operativa. Resultado de la operación: El TPV Virtual notifica a tu comercio el resultado de la operación.Indicar resultado al cliente: Tu comercio le indica al cliente el resultado de la operación. DevoluciónUna devolución permite reembolsar, de forma total o parcial, el importe de una operación previamente autorizada.Estos son los requisitos para realizar una devolución vía REST:La operación original debe haber sido autorizada y cobrada correctamente (es decir, debe tener un código de respuesta de éxito).El campo DS_MERCHANT_ORDER de la devolución debe coincidir exactamente con el número de pedido de la operación original que se desea devolver.El abono en la cuenta del cliente varía según la política de la entidad emisora. Puede ir desde un par de días a un mes. Pueden ser totales o parciales. Puedes hacer tantas devoluciones parciales como necesites, pero nunca superarán el importe original. Parámetros de la petición de devoluciónEsta es la tabla con los parámetros requeridos y opcionales que debes incluir en Ds_MerchantParameters para realizar una devolución vía REST: ParámetroFormatoRequerido/OpcionalDescripciónEjemplo DS_MERCHANT_MERCHANTCODE9 caracteres NuméricoRequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987 DS_MERCHANT_TERMINAL3 caracteres NuméricoRequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99 DS_MERCHANT_AMOUNT12 caracteres NuméricoRequeridoImporte de la operación. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.1050 DS_MERCHANT_CURRENCY4 caracteres NuméricoRequeridoCódigo ISO 4217 de la divisa utilizada en la transacción. Ver códigos ISO divisas.978 DS_MERCHANT_ORDER12 caracteres Alfanumérico * (caracteres ASCII: del 48 al 57, del 65 al 90 y del 97 al 122)RequeridoCódigo de pedido. No se puede repetir un código de pedido hasta pasados 6 meses. Recomendamos que los 4 primeros dígitos sean numéricos, para evitar problemas en la liquidación. *Sólo se permiten caracteres ASCII: – Dígitos (0–9): ASCII 48 a 57. Letras mayúsculas (A–Z): ASCII 65 a 90. – Letras minúsculas (a–z): ASCII 97 a 122. – No se permiten espacios, símbolos ni acentos.1234ABcd56EF DS_MERCHANT_TRANSACTIONTYPEValores disponibles: – 0: Autorización – 1: Preautorización – 2: Confirmar preautorizaciones – 3: Devoluciones – 7: Validación de tarjeta – 8: Confirmar validaciones de tarjeta – 9: Anular preautorizaciones y autorizaciones – 46: Anular devoluciones. – 47: Anular validación de tarjeta.RequeridoTipo de transacción. El número enviado indica el tipo de transacción. 0 DS_MERCHANT_CLIENTIP15 caracteres AlfanuméricoOpcional* Campo que sirve para indicar la IP del cliente. * Recomendado si tienes que enviar la IP del cliente, ya que la IP registrada en el TPV Virtual (si no se envía este parámetro) es la IP donde esté ubicado el comercio. 192.168.1.1 DS_MERCHANT_AUTHORISATIONCODE6 caracteres AlfanuméricoOpcionalCódigo de autorización que identifica la transacción original que se quiere devolver. El valor no es único, se puede repetir. Útil para comercios que repiten nº de pedido. 245232 DS_MERCHANT_TRANSACTIONDATE10 caracteres yyyy-mm-ddOpcionalFecha de la operación que se quiere devolver. Permite identificar sin equivocación la transacción que se quiere devolver, útil si tu comercio permite repetir números de pedido.2025-06-11 DS_MERCHANT_RTS24 caracteres NuméricoOpcional*Valor RTS para Devoluciones de confirmaciones parciales. * Requerido en devoluciones de confirmaciones parciales. 2452452334132434 DS_MERCHANT_MERCHANTDATA1024 caracteres AlfanuméricoOpcional Información que no procesa el TPV Virtual. Se devuelve sin modificar en la notificación. Se puede añadir para procesos internos.Prueba de pago en mi comercio DS_MERCHANT_TITULAR60 caracteres máximo AlfanuméricoOpcionalNombre del titular de la tarjeta.Pedro Salas DS_MERCHANT_MERCHANTNAME25 caracteres AlfanuméricoOpcionalIndica el nombre del comercio que se mostrará al cliente durante el proceso de pago. Si no se envía, se mostrará el nombre configurado en Canales. Mi comercio DS_MERCHANT_PRODUCTDESCRIPTION125 caracteres máximo AlfanuméricoOpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo DS_MERCHANT_MERCHANTDESCRIPTOR25 caracteres AlfanuméricoOpcionalEs un descriptor flexible. Requiere activación por parte de la entidad. Si está activado y no se envía, se enviará por defecto el nombre del comercio. * Pensado para PSPsMi comercio Para la operativa de devolución, el valor de DS_MERCHANT_TRANSACTIONTYPE debe ser 3. Envío de la petición de devoluciónEstos parámetros deben codificarse en BASE64 y enviarse dentro del campo Ds_MerchantParameters, junto con el resto de campos necesarios en el formulario. A continuación te mostramos un ejemplo de:Los parámetros que se envían en Ds_MerchantParameters en formato JSON.Los parámetros del JSON codificados en BASE64. Este es el valor enviado en Ds_MerchantParameters.El formulario completo que debes enviar. Consulta el resto de campos en la integración REST. Ds_MerchantParameters JSON Ds_MerchantParameters BASE64 Formulario completo REST { "DS_MERCHANT_MERCHANTCODE": "999008881", "DS_MERCHANT_TERMINAL": "99", "DS_MERCHANT_TRANSACTIONTYPE": "3", "DS_MERCHANT_AMOUNT": "100", "DS_MERCHANT_CURRENCY": "978", "DS_MERCHANT_ORDER": "79430110" } ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMyIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICI3OTQzMDExMCIKfQ== { "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMyIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICI3OTQzMDExMCIKfQ==", "Ds_Merchant_Signature": "jYKQo8CFY7Pqp+4gi6EvLtWAGyBOZ8TWJd+nTrPl1Ew==", "Ds_SignatureVersion": "HMAC_SHA512_V2" } Notificación de devoluciónUna vez realizada la petición de devolución con éxito, recibes la respuesta del TPV Virtual con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles: Recibir y gestionar la notificación: La notificación recibida es un formulario como el que se envía en la petición. El comercio debe validar los datos recibidos en el formulario para verificar su veracidad.Información recibida en la notificación: La notificación contiene unos parámetros con detalles de la operación. Estos parámetros vienen en el campo Ds_MerchantParameters. 1. Recibir y gestionar la notificación 2. Información recibida en la notificación Resultado de la devoluciónEl resultado de la operación de devolución se indica en el campo Ds_Response el valor 0900 indica que ha ido correctamente. ConfirmaciónUna confirmación permite capturar a favor del comercio el importe que se ha retenido o validado al cliente durante una preautorización o validación de tarjeta.Puedes confirmar todo el importe o una cantidad menor. Si confirmas menos cantidad, la diferencia se liberará a favor del cliente una vez pase el tiempo establecido por su entidad. Antes de esto, puedes realizar otras confirmaciones parciales.Con la integración REST, puedes confirmar los siguientes tipos de operaciones:Preautorizaciones, las preautorizaciones retienen el importe marcado en la cuenta del cliente. Recomendamos confirmar la preautorización en un plazo de 7 días, aunque pueden ser hasta 30 días (depende del emisor de la tarjeta). El DS_MERCHANT_TRANSACTIONTYPE de las preautorizaciones es 1.Validación de tarjeta, las validaciones de tarjeta no retienen el importe en la cuenta. Si en la validación te tarjeta autenticas un importe, luego puedes confirmarlo, aunque esta confirmación no está asegurada ya que el importe no se retiene al cliente (a diferencia de las preautorizaciones). El DS_MERCHANT_TRANSACTIONTYPE de las validaciones de tarjeta es 7.El campo DS_MERCHANT_ORDER de la devolución debe coincidir exactamente con el número de pedido de la operación original que se desea devolver. Parámetros de la petición de ConfirmaciónEsta es la tabla con los parámetros requeridos y opcionales que debes incluir en Ds_MerchantParameters para realizar una confirmación vía REST: ParámetroFormatoRequerido/OpcionalDescripciónEjemplo DS_MERCHANT_MERCHANTCODE9 caracteres NuméricoRequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987 DS_MERCHANT_TERMINAL3 caracteres NuméricoRequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99 DS_MERCHANT_AMOUNT12 caracteres NuméricoRequeridoImporte de la operación. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.1050 DS_MERCHANT_CURRENCY4 caracteres NuméricoRequeridoCódigo ISO 4217 de la divisa utilizada en la transacción. Ver códigos ISO divisas.978 DS_MERCHANT_ORDER12 caracteres Alfanumérico * (caracteres ASCII: del 48 al 57, del 65 al 90 y del 97 al 122)RequeridoCódigo de pedido. No se puede repetir un código de pedido hasta pasados 6 meses. Recomendamos que los 4 primeros dígitos sean numéricos, para evitar problemas en la liquidación. *Sólo se permiten caracteres ASCII: – Dígitos (0–9): ASCII 48 a 57. Letras mayúsculas (A–Z): ASCII 65 a 90. – Letras minúsculas (a–z): ASCII 97 a 122. – No se permiten espacios, símbolos ni acentos.1234ABcd56EF DS_MERCHANT_TRANSACTIONTYPEValores disponibles: – 0: Autorización – 1: Preautorización – 2: Confirmar preautorizaciones – 3: Devoluciones – 7: Validación de tarjeta – 8: Confirmar validaciones de tarjeta – 9: Anular preautorizaciones y autorizaciones – 46: Anular devoluciones. – 47: Anular validación de tarjeta.RequeridoTipo de transacción. El número enviado indica el tipo de transacción. 0 DS_MERCHANT_CLIENTIP15 caracteres AlfanuméricoOpcional* Campo que sirve para indicar la IP del cliente. * Recomendado si tienes que enviar la IP del cliente, ya que la IP registrada en el TPV Virtual (si no se envía este parámetro) es la IP donde esté ubicado el comercio. 192.168.1.1 DS_MERCHANT_MERCHANTDATA1024 caracteres AlfanuméricoOpcional Información que no procesa el TPV Virtual. Se devuelve sin modificar en la notificación. Se puede añadir para procesos internos.Prueba de pago en mi comercio DS_MERCHANT_TITULAR60 caracteres máximo AlfanuméricoOpcionalNombre del titular de la tarjeta.Pedro Salas DS_MERCHANT_MERCHANTNAME25 caracteres AlfanuméricoOpcionalIndica el nombre del comercio que se mostrará al cliente durante el proceso de pago. Si no se envía, se mostrará el nombre configurado en Canales. Mi comercio DS_MERCHANT_PRODUCTDESCRIPTION125 caracteres máximo AlfanuméricoOpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo DS_MERCHANT_MERCHANTDESCRIPTOR25 caracteres AlfanuméricoOpcionalEs un descriptor flexible. Requiere activación por parte de la entidad. Si está activado y no se envía, se enviará por defecto el nombre del comercio. * Pensado para PSPsMi comercio Para la operativa de confirmación, el valor de DS_MERCHANT_TRANSACTIONTYPE es:2 para confirmar preautorizaciones.8 para confirmar validaciones de tarjeta. Envío de la petición de confirmaciónEstos parámetros deben codificarse en BASE64 y enviarse dentro del campo Ds_MerchantParameters, junto con el resto de campos necesarios en el formulario. A continuación te mostramos un ejemplo de:Los parámetros que se envían en Ds_MerchantParameters en formato JSON.Los parámetros del JSON codificados en BASE64. Este es el valor enviado en Ds_MerchantParameters.El formulario completo que debes enviar. Consulta el resto de campos en la integración REST. Ds_MerchantParameters JSON Ds_MerchantParameters BASE64 Formulario completo REST { "DS_MERCHANT_MERCHANTCODE": "999008881", "DS_MERCHANT_TERMINAL": "99", "DS_MERCHANT_TRANSACTIONTYPE": "2", // El valor 2 es para confirmar preautorizaciones, usa el 8 para confirmar validaciones. "DS_MERCHANT_AMOUNT": "100", "DS_MERCHANT_CURRENCY": "978", "DS_MERCHANT_ORDER": "79430110" } ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMiIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICI3OTQzMDExMCIKfQ== { "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMiIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICI3OTQzMDExMCIKfQ==", "Ds_Merchant_Signature": "fE7Pm4Tf3PrbzaWhJIeF2jdId53ELNZjj+d7K/4fkzs=", "Ds_SignatureVersion": "HMAC_SHA512_V2" } Notificación de confirmaciónUna vez realizada la petición de devolución con éxito, recibes la respuesta del TPV Virtual con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles: Recibir y gestionar la notificación: La notificación recibida es un formulario como el que se envía en la petición. El comercio debe validar los datos recibidos en el formulario para verificar su veracidad.Información recibida en la notificación: La notificación contiene unos parámetros con detalles de la operación. Estos parámetros vienen en el campo Ds_MerchantParameters. 1. Recibir y gestionar la notificación 2. Información recibida en la notificación Resultado según tipo de confirmaciónEl resultado de la operación se indica en el campo Ds_Response:Si la confirmación de la preautorización ha ido correctamente, el código será 0900.Si la confirmación de la validación ha ido correctamente, el código será 0000.Además, si la confirmación es parcial, recibirás el campo RTS, si quieres devolver esa confirmación parcial, envía el valor recibido en RTS en el campo DS_MERCHANT_RTS en la petición de devolución. AnulaciónUna anulación revierte o cancela la operación indicada. Es posible anular los siguientes tipos de operación: Preautorización: Anula el importe que se le ha retenido el cliente.Autorización: Anula un pago autorizado y devuelve del dinero al cliente. Para este flujo recomendamos realizar una devolución, vía REST o por Canales. Devolución: Anula el importe devuelvo a un cliente.Recomendamos reservar esta operativa para casos excepcionales donde haya habido algún error en el proceso de compra o devolución. Si la devolución se abona en la cuenta del cliente, no se podrá realizar la anulación. El cliente no verá ningún rastro de la devolución original ni de la anulación. Validación de tarjeta: Anula la validación de tarjeta. La anulación es total, es decir, todo el importe de la operación. El campo DS_MERCHANT_ORDER de la anulación debe coincidir exactamente con el número de pedido de la operación original que se desea anular. Parámetros de la petición de AnulaciónEsta es la tabla con los parámetros requeridos y opcionales que debes incluir en Ds_MerchantParameters para realizar una anulación vía REST: ParámetroFormatoRequerido/OpcionalDescripciónEjemplo DS_MERCHANT_MERCHANTCODE9 caracteres NuméricoRequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987 DS_MERCHANT_TERMINAL3 caracteres NuméricoRequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99 DS_MERCHANT_AMOUNT12 caracteres NuméricoRequeridoImporte de la operación. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.1050 DS_MERCHANT_CURRENCY4 caracteres NuméricoRequeridoCódigo ISO 4217 de la divisa utilizada en la transacción. Ver códigos ISO divisas.978 DS_MERCHANT_ORDER12 caracteres Alfanumérico * (caracteres ASCII: del 48 al 57, del 65 al 90 y del 97 al 122)RequeridoCódigo de pedido. No se puede repetir un código de pedido hasta pasados 6 meses. Recomendamos que los 4 primeros dígitos sean numéricos, para evitar problemas en la liquidación. *Sólo se permiten caracteres ASCII: – Dígitos (0–9): ASCII 48 a 57. Letras mayúsculas (A–Z): ASCII 65 a 90. – Letras minúsculas (a–z): ASCII 97 a 122. – No se permiten espacios, símbolos ni acentos.1234ABcd56EF DS_MERCHANT_TRANSACTIONTYPEValores disponibles: – 0: Autorización – 1: Preautorización – 2: Confirmar preautorizaciones – 3: Devoluciones – 7: Validación de tarjeta – 8: Confirmar validaciones de tarjeta – 9: Anular preautorizaciones y autorizaciones – 46: Anular devoluciones. – 47: Anular validación de tarjeta.RequeridoTipo de transacción. El número enviado indica el tipo de transacción. 0 DS_MERCHANT_CLIENTIP15 caracteres AlfanuméricoOpcional* Campo que sirve para indicar la IP del cliente. * Recomendado si tienes que enviar la IP del cliente, ya que la IP registrada en el TPV Virtual (si no se envía este parámetro) es la IP donde esté ubicado el comercio. 192.168.1.1 DS_MERCHANT_MERCHANTDATA1024 caracteres AlfanuméricoOpcional Información que no procesa el TPV Virtual. Se devuelve sin modificar en la notificación. Se puede añadir para procesos internos.Prueba de pago en mi comercio DS_MERCHANT_TITULAR60 caracteres máximo AlfanuméricoOpcionalNombre del titular de la tarjeta.Pedro Salas DS_MERCHANT_MERCHANTNAME25 caracteres AlfanuméricoOpcionalIndica el nombre del comercio que se mostrará al cliente durante el proceso de pago. Si no se envía, se mostrará el nombre configurado en Canales. Mi comercio DS_MERCHANT_PRODUCTDESCRIPTION125 caracteres máximo AlfanuméricoOpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo DS_MERCHANT_MERCHANTDESCRIPTOR25 caracteres AlfanuméricoOpcionalEs un descriptor flexible. Requiere activación por parte de la entidad. Si está activado y no se envía, se enviará por defecto el nombre del comercio. * Pensado para PSPsMi comercio Además, según el tipo de anulación que quieras realizar, tienes que enviar un valor en DS_MERCHANT_TRANSACTIONTYPE. Para la operativa de anulación, el valor de DS_MERCHANT_TRANSACTIONTYPE es:9 para anular preautorizaciones y autorizaciones.46 para anular devoluciones.47 para anular la validación de tarjeta. Envío de la petición de anulaciónEstos parámetros deben codificarse en BASE64 y enviarse dentro del campo Ds_MerchantParameters, junto con el resto de campos necesarios en el formulario. A continuación te mostramos un ejemplo de:Los parámetros que se envían en Ds_MerchantParameters en formato JSON.Los parámetros del JSON codificados en BASE64. Este es el valor enviado en Ds_MerchantParameters.El formulario completo que debes enviar. Consulta el resto de campos en la integración REST. Ds_MerchantParameters JSON Ds_MerchantParameters BASE64 Formulario completo REST { "DS_MERCHANT_MERCHANTCODE": "999008881", "DS_MERCHANT_TERMINAL": "99", "DS_MERCHANT_TRANSACTIONTYPE": "9", // El valor 9 es para anular preautorizaciones, usa el resto de valores indicados para anular otro tipo de operaciones. "DS_MERCHANT_AMOUNT": "100", "DS_MERCHANT_CURRENCY": "978", "DS_MERCHANT_ORDER": "79430110" } ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiOSIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICI3OTQzMDExMCIKfQ== { "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiOSIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICI3OTQzMDExMCIKfQ==", "Ds_Merchant_Signature": "DLsO8PWspG1yhViVzJ3YjC3n9qARsWyQEfooebL75V0=", "Ds_SignatureVersion": "HMAC_SHA512_V2" } Notificación de anulaciónUna vez realizada la petición de anulación con éxito, recibes la respuesta del TPV Virtual con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles: Recibir y gestionar la notificación: La notificación recibida es un formulario como el que se envía en la petición. El comercio debe validar los datos recibidos en el formulario para verificar su veracidad.Información recibida en la notificación: La notificación contiene unos parámetros con detalles de la operación. Estos parámetros vienen en el campo Ds_MerchantParameters. 1. Recibir y gestionar la notificación 2. Información recibida en la notificación Resultado de la anulaciónEl resultado de la anulación se indica en el campo Ds_Response, si ha ido correctamente su valor será 0400. Pagos MO/TOMO/TO (Mail Order/Telephone Order) es una operativa que permite introducir los datos de la tarjeta del cliente de forma manual. Si ya estás integrado por redirección, puedes realizar pagos MO/TO una vez hayas solicitado a Soporte u oficina su activación.El cliente indica los datos de su tarjeta por teléfono o por correo electrónico. Tu comercio introduce los datos mediante un agente o sistema automatizado. Este tipo de pago es utilizado en callcenters tipo teletienda, por ejemplo.Ni el cliente ni su tarjeta se encuentra presente en el momento del cobro, por lo que las operaciones son calificadas como «no seguras» y NO se solicita autenticaciónEsta operativa se puede realizar con la integración por redirección, como verás en este documento. También se puede hacer desde Canales o REST:Pago MO/TO desde Canales.Integración por Redirección. Tienes que solicitar la activación de MO/TO a Soporte u Oficina. Contacta con Soporte para la activación de MO/TO. Autorización o Preautorización con MO/TOSi tienes activos los pago MO/TO puedes realizar 2 tipos de operativas:La autorización es la operativa de pago básica: permite realizar un cargo inmediato sobre la tarjeta del cliente.La preautorización es una operativa de pago que retiene o aparta el importe de la cuenta del cliente. El comercio tiene que confirmar la operación para recibir la operación.Parámetros petición de autorización o preautorización MO/TOEsta es la tabla con los parámetros requeridos y opcionales que debes incluir en Ds_MerchantParameters para realizar una autorización o preautorización MO/TO mediante REST: ParámetroFormatoRequerido/OpcionalDescripciónEjemplo DS_MERCHANT_MERCHANTCODE9 caracteres NuméricoRequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987 DS_MERCHANT_TERMINAL3 caracteres NuméricoRequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99 DS_MERCHANT_AMOUNT12 caracteres NuméricoRequeridoImporte de la operación. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.1050 DS_MERCHANT_CURRENCY4 caracteres NuméricoRequeridoCódigo ISO 4217 de la divisa utilizada en la transacción. Ver códigos ISO divisas.978 DS_MERCHANT_ORDER12 caracteres Alfanumérico * (caracteres ASCII: del 48 al 57, del 65 al 90 y del 97 al 122)RequeridoCódigo de pedido. No se puede repetir un código de pedido hasta pasados 6 meses. Recomendamos que los 4 primeros dígitos sean numéricos, para evitar problemas en la liquidación. *Sólo se permiten caracteres ASCII: – Dígitos (0–9): ASCII 48 a 57. Letras mayúsculas (A–Z): ASCII 65 a 90. – Letras minúsculas (a–z): ASCII 97 a 122. – No se permiten espacios, símbolos ni acentos.1234ABcd56EF DS_MERCHANT_TRANSACTIONTYPEValores disponibles: – 0: Autorización – 1: Preautorización – 2: Confirmar preautorizaciones – 3: Devoluciones – 7: Validación de tarjeta – 8: Confirmar validaciones de tarjeta – 9: Anular preautorizaciones y autorizaciones – 46: Anular devoluciones. – 47: Anular validación de tarjeta.RequeridoTipo de transacción. El número enviado indica el tipo de transacción. 0 DS_MERCHANT_PAN19 caracteres NuméricoRequerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta. * Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)4548810000000003 DS_MERCHANT_CVV23 a 4 caracteres NuméricoRequerido*Código CVV2 de la tarjeta del cliente. * Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT. 050 DS_MERCHANT_EXPIRYDATE4 caracteres Numérico AAMMRequerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes). * Requerido cuando se envía DS_MERCHANT_PAN3012 DS_MERCHANT_DIRECTPAYMENTValores posibles: – true – motoOpcional*Identifica si es un pago directo por parte del comercio (sin autenticación). – Si se envía true, la operación se identifica como sin autenticación. (esto no se tendrá en cuenta si la tarjeta está afectada por PSD2). – Si se envía moto, la operación se identifica como pago MOTO. *Requerido enviarlo en operaciones que inicia el comercio, como los pagos MIT. Y en pagos MOTO.true El valor de DS_MERCHANT_TRANSACTIONTYPE cambia según la operativa que esté realizando: Para autorización es 0.Para preautorización es 1. Envío de la petición de autorización o preautorización MO/TOEstos parámetros deben codificarse en BASE64 y enviarse dentro del campo Ds_MerchantParameters, junto con el resto de campos necesarios en el formulario. A continuación te mostramos un ejemplo de:Los parámetros que se envían en Ds_MerchantParameters en formato JSON.Los parámetros del JSON codificados en BASE64. Este es el valor enviado en Ds_MerchantParameters.El formulario completo que debes enviar. Consulta el resto de campos en la integración REST. Ds_MerchantParameters JSON Ds_MerchantParameters BASE64 Formulario completo REST { "DS_MERCHANT_MERCHANTCODE": "999008881", "DS_MERCHANT_TERMINAL": "99", "DS_MERCHANT_TRANSACTIONTYPE": "0", // Valor 0 para autorización; valor 1 para preautorización "DS_MERCHANT_DIRECTPAYMENT": "MOTO", "DS_MERCHANT_AMOUNT": "100", "DS_MERCHANT_CURRENCY": "978", "DS_MERCHANT_ORDER": "24370986", "DS_MERCHANT_EXPIRYDATE": "3012" "DS_MERCHANT_CVV2": "123", "DS_MERCHANT_PAN": "4548810000000003" } ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiOSIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICI3OTQzMDExMCIKfQ== { "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiOSIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICI3OTQzMDExMCIKfQ==", "Ds_Merchant_Signature": "DLsO8PWspG1yhViVzJ3YjC3n9qARsWyQEfooebL75V0=", "Ds_SignatureVersion": "HMAC_SHA512_V2" } Notificación de pago MO/TOUna vez realizada la petición de anulación con éxito, recibes la respuesta del TPV Virtual con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles: Recibir y gestionar la notificación: La notificación recibida es un formulario como el que se envía en la petición. El comercio debe validar los datos recibidos en el formulario para verificar su veracidad.Información recibida en la notificación: La notificación contiene unos parámetros con detalles de la operación. Estos parámetros vienen en el campo Ds_MerchantParameters. 1. Recibir y gestionar la notificación 2. Información recibida en la notificación Si la operación MO/TO es una autorización, este punto NO aplica.Una vez la preautorización se ha completado con éxito, tienes que confirmar o anular la operación. Recomendamos hacerlo en un plazo de 7 días, aunque pueden ser hasta 30 días (depende del emisor de la tarjeta):Confirmar la operación: Para recibir el importe que has preautorizado. Puedes confirmar una preautorización desde Canales o vía REST.Anular la operación: Para liberar el importe a favor del cliente. Puedes anular una preautorización desde Canales o vía REST.Recuerda que para confirmar (o anular) una preautorización debes utilizar valor del Ds_Merchant_Order recibido en la notificación. Operativas con autenticación 3DSLa autenticación 3D Secure consiste en el envío de parámetros con datos del cliente o la implementación de protocolos para autenticar la identidad del cliente durante la transacción. En la integración REST, tu comercio tendrá que recoger y enviar los parámetros que indicamos a continuación, así como preparar su integración para un posible flujo con Autenticación Reforzada del cliente (challenge).Además, es posible solicitar exenciones de la Autenticación Reforzada del Cliente. Se solicitan en las peticiones con el campo DS_MERCHANT_EXCEP_SCA, como verás en las siguientes secciones.En los siguientes documentos tienes más información sobre: 3D Secure, Autenticación Reforzada y normativa. Exenciones SCA. Los parámetros 3DS y las exenciones son procesos independientes pero relacionados. Enviar los parámetros 3DS puede facilitar que la operación tenga exención SCA. Tendrás que preparar varias peticiones y gestionar sus respectivas notificaciones. Las operativas con autenticación 3D Secure tienen las siguientes características:Requieren PCI DSS por norma general. En caso de que NO utilicen los datos de la tarjeta (y usen un token en su lugar) no hace falta PCI.Incorporan el flujo 3DS, por lo que requieren varias peticiones a los endpoints iniciaPeticion y trataPeticion, así como la gestión de la notificación correspondiente.El resto de la integración (montar el formulario, enviarlo, gestionar notificación, etc.) se explica en el documento Integración REST.Envía los Ds_MerchantParameters necesarios según la operativa y manda la petición al endpoint correspondiente según el entorno y paso del flujo: Tipo de peticiónEntornoURL iniciaPeticionPruebas https://sis-t.redsys.es:25443/sis/rest/iniciaPeticionREST Producciónhttps://sis.redsys.es/sis/rest/iniciaPeticionREST trataPeticionPruebashttps://sis-t.redsys.es:25443/sis/rest/trataPeticionREST Producciónhttps://sis.redsys.es/sis/rest/trataPeticionREST Las operativas REST que requieren la autenticación 3DS del titular son: Autorización, pago inmediato de la tarjeta del cliente a la cuenta de tu comercio. Preautorización, retiene el importe al cliente hasta que el comercio captura la transacción. Puedes confirmar o anular desde Canales o vía petición REST. Validación de tarjeta, realiza una operación que NO retiene el importe al cliente. Puedes confirmar por Canales o vía REST, aunque es posible que el importe no esté disponible ya que no se retiene. Pago COF inicial o tokenización, genera un token de la tarjeta del cliente para usar en futuras operaciones. Más detalles en esta sección. Pago 1-clic, utiliza el token de la tarjeta del cliente para pagar más rápidamente. Más detalles en esta sección. Para poder operar con preautorizaciones el comercio tiene que pedir su activación a su oficina. La preautorización se activa para todo el comercio y sus terminales. Flujo operaciones 3DSA continuación tienes unos diagramas de flujo de las operaciones con 3DS en la integración REST. En el primer diagrama tienes el flujo frictionless y en el segundo el challenge: Flujo con 3DS - Frictionless Flujo con 3DS - Challenge Inicio de la operación: El cliente entra en tu tienda online y pulsa en el botón de pagar para iniciar la operación.Petición de información (iniciaPeticion):El comercio envía una petición al TPV Virtual con los datos básicos de la operación y la tarjeta. Esta petición sirve para iniciar el flujo 3DS y obtener los datos necesarios para valorar el riesgo de la transacción.Información 3DS: El TPV Virtual notifica a tu comercio la información 3DS sobre la tarjeta y la operación, incluyendo la URL donde realizar el 3DS Method.3DS Method (opcional pero recomendable): Tu comercio ejecuta el 3DS Method, que consiste en recopilar información sobre el cliente para que la transacción sea más segura.Intercambio de datos con el ACS: El navegador del cliente establece comunicación directa con el servidor del emisor (ACS) para proporcionar información adicional. Esto ocurre automáticamente y no requiere interacción del cliente.Resultado 3DS Method: El navegador del cliente comunica a tu comercio el resultado del 3DS Method.Petición de pago (trataPeticion): Tu comercio envía la petición de pago con datos 3DS (recopilados del iniciaPeticion y del 3DS Method) al TPV Virtual.Respuesta petición de pago (frictionless): El TPV Virtual valora el riesgo y, si la operación es considerada de bajo riesgo, autoriza la operación directamente sin requerir autenticación adicional del cliente (no hay challenge).Resultado operación: Tu comercio indica al cliente el resultado de la operación. Inicio de la operación: El cliente entra en tu tienda online y pulsa en el botón de pagar para iniciar la operación.Petición de información (iniciaPeticion):El comercio envía una petición al TPV Virtual con los datos básicos de la operación y la tarjeta. Esta petición sirve para iniciar el flujo 3DS y obtener los datos necesarios para valorar el riesgo de la transacción.Información 3DS: El TPV Virtual notifica a tu comercio la información 3DS sobre la tarjeta y la operación, incluyendo la URL donde realizar el 3DS Method.3DS Method (opcional pero recomendable): Tu comercio ejecuta el 3DS Method, que consiste en recopilar información sobre el cliente para que la transacción sea más segura.Intercambio de datos con el ACS: El navegador del cliente establece comunicación directa con el servidor del emisor (ACS) para proporcionar información adicional. Esto ocurre automáticamente y no requiere interacción del cliente.Resultado 3DS Method: El navegador del cliente comunica a tu comercio el resultado del 3DS Method.Petición de pago (trataPeticion): Tu comercio envía la petición de pago con datos 3DS (recopilados del iniciaPeticion y del 3DS Method) al TPV Virtual.Respuesta petición de pago (challenge): El TPV Virtual valora el riesgo y determina que el cliente se tiene que autenticar mediante challenge.Cliente realiza challenge: El cliente realiza el challenge. El challenge puede ser una autenticación en su aplicación bancaria, un SMS con un código, etc.Resultado del challenge: El Banco emisor (ACS) le comunica a tu comercio el resultado del challenge.Petición de autenticación (trataPeticion): Tu comercio envía al TPV Virtual una petición con los parámetros que indican el resultado del challenge, entre otros.Resultado autenticación: El TPV Virtual le comunica a tu comercio el resultado de la operación de autenticación.Resultado operación: Tu comercio indica al cliente el resultado de la operación. Paso 1: IniciaPeticionEl primer paso es que el comercio solicite información de la tarjeta mediante la petición iniciaPeticion. En esta petición se solicita información sobre la capacidad de la tarjeta del cliente en cuanto a: Versión del protocolo 3DS a utilizar.Exenciones disponibles.Posible aplicación de DCC u otras operativas especiales.Esta información se devuelve en la respuesta de la petición, como verás a continuación. Parámetros de la petición de IniciaPeticionEsta es la tabla con los parámetros requeridos y opcionales que debes incluir en Ds_MerchantParameters para realizar un iniciaPeticion: ParámetroFormatoRequerido/OpcionalDescripciónEjemplo DS_MERCHANT_MERCHANTCODE9 caracteres NuméricoRequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987 DS_MERCHANT_TERMINAL3 caracteres NuméricoRequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99 DS_MERCHANT_AMOUNT12 caracteres NuméricoRequeridoImporte de la operación. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.1050 DS_MERCHANT_CURRENCY4 caracteres NuméricoRequeridoCódigo ISO 4217 de la divisa utilizada en la transacción. Ver códigos ISO divisas.978 DS_MERCHANT_ORDER12 caracteres Alfanumérico * (caracteres ASCII: del 48 al 57, del 65 al 90 y del 97 al 122)RequeridoCódigo de pedido. No se puede repetir un código de pedido hasta pasados 6 meses. Recomendamos que los 4 primeros dígitos sean numéricos, para evitar problemas en la liquidación. *Sólo se permiten caracteres ASCII: – Dígitos (0–9): ASCII 48 a 57. Letras mayúsculas (A–Z): ASCII 65 a 90. – Letras minúsculas (a–z): ASCII 97 a 122. – No se permiten espacios, símbolos ni acentos.1234ABcd56EF DS_MERCHANT_TRANSACTIONTYPEValores disponibles: – 0: Autorización – 1: Preautorización – 2: Confirmar preautorizaciones – 3: Devoluciones – 7: Validación de tarjeta – 8: Confirmar validaciones de tarjeta – 9: Anular preautorizaciones y autorizaciones – 46: Anular devoluciones. – 47: Anular validación de tarjeta.RequeridoTipo de transacción. El número enviado indica el tipo de transacción. 0 DS_MERCHANT_PAN19 caracteres NuméricoRequerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta. * Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)4548810000000003 DS_MERCHANT_CVV23 a 4 caracteres NuméricoRequerido*Código CVV2 de la tarjeta del cliente. * Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT. 050 DS_MERCHANT_EXPIRYDATE4 caracteres Numérico AAMMRequerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes). * Requerido cuando se envía DS_MERCHANT_PAN3012 DS_MERCHANT_CLIENTIP15 caracteres AlfanuméricoOpcional* Campo que sirve para indicar la IP del cliente. * Recomendado si tienes que enviar la IP del cliente, ya que la IP registrada en el TPV Virtual (si no se envía este parámetro) es la IP donde esté ubicado el comercio. 192.168.1.1 DS_MERCHANT_MERCHANTDATA1024 caracteres AlfanuméricoOpcional Información que no procesa el TPV Virtual. Se devuelve sin modificar en la notificación. Se puede añadir para procesos internos.Prueba de pago en mi comercio DS_MERCHANT_TITULAR60 caracteres máximo AlfanuméricoOpcionalNombre del titular de la tarjeta.Pedro Salas DS_MERCHANT_DCCHay 2 formatos posibles: – iniciaPeticion: «Y» o «N» – trataPeticion: Objeto JSON (monedaDCC y importeDCC)Opcional** Requerido en operaciones DCC. – iniciaPeticion: Campo que indica la solicitud de información DCC – trataPeticion: Objeto JSON donde se envían los datos DCC de la operación. – iniciaPeticion: Y – trataPeticion: Objeto JSON (ver campos enviados en la tabla inferior) DS_MERCHANT_EMV3DSObjeto JSON*OpcionalEste parámetro contiene un JSON con los parámetros necesarios para la autenticación EMV3DS (v2 y v1). * Objeto JSON serializado como string.N/A DS_MERCHANT_MERCHANTNAME25 caracteres AlfanuméricoOpcionalIndica el nombre del comercio que se mostrará al cliente durante el proceso de pago. Si no se envía, se mostrará el nombre configurado en Canales. Mi comercio DS_MERCHANT_PRODUCTDESCRIPTION125 caracteres máximo AlfanuméricoOpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo DS_MERCHANT_EXCEP_SCA3 caracteres AlfanuméricoOpcional*– Para iniciaPeticion: Manda «Y» (sin comillas) para ver qué exenciones tiene disponibles el comercio. – Para trataPeticion: Permite solicitar un tipo de exención en la transacción. Valores disponibles en la sección de exenciones. *Requerido enviarlo en operaciones MIT.MIT DS_MERCHANT_MERCHANTDESCRIPTOR25 caracteres AlfanuméricoOpcionalEs un descriptor flexible. Requiere activación por parte de la entidad. Si está activado y no se envía, se enviará por defecto el nombre del comercio. * Pensado para PSPsMi comercio El valor de DS_MERCHANT_TRANSACTIONTYPE cambia según la operativa que esté realizando:Para autorización es 0.Para preautorización es 1.Para validación de tarjeta es 7. Además, también tienes que enviar los siguientes parámetros 3DS. Este campo van en un JSON dentro del parámetro DS_MERCHANT_EMV3DS: ParámetroFormatoOpcional/RecomendadoDescripciónEjemplo threeDSInfoValores posibles: – CardData: Indica que solicitas información de la tarjeta. – AuthenticationData – ChallengeResponse: Indica que estás respondiendo al challenge. – 3RI-Recurring – 3RI-OTARecomendadoTipo de solicitud 3DS. CardData Envío de la petición de solicitud de informaciónEstos son los endpoints donde enviar la petición: Tipo de peticiónEntornoURL iniciaPeticionPruebashttps://sis-t.redsys.es:25443/sis/rest/iniciaPeticionREST Producciónhttps://sis.redsys.es/sis/rest/iniciaPeticionREST Estos parámetros deben codificarse en BASE64 y enviarse dentro del campo Ds_MerchantParameters, junto con el resto de campos necesarios en el formulario. A continuación te mostramos un ejemplo de:Los parámetros que se envían en Ds_MerchantParameters en formato JSON.Los parámetros del JSON codificados en BASE64. Este es el valor enviado en Ds_MerchantParameters.El formulario completo que debes enviar. Consulta el resto de campos en la integración REST. Ds_MerchantParameters JSON Ds_MerchantParameters BASE64 Formulario completo REST { "DS_MERCHANT_MERCHANTCODE": "999008881", "DS_MERCHANT_TERMINAL": "99", "DS_MERCHANT_TRANSACTIONTYPE": "0", "DS_MERCHANT_AMOUNT": "100", "DS_MERCHANT_CURRENCY": "978", "DS_MERCHANT_ORDER": "24370986", "DS_MERCHANT_EXPIRYDATE": "3012" "DS_MERCHANT_CVV2": "123", "Ds_Merchant_Excep_SCA": "Y", // solicitas información de si hay exenciones disponibles "DS_MERCHANT_PAN": "4548810000000003", "DS_MERCHANT_EMV3DS": { "threeDSInfo": "CardData" // indicas que solicitas información de la tarjeta } } ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIyNDM3MDk4NiIsCiAgICAiRHNfTWVyY2hhbnRfRXhjZXBfU0NBIjogIlkiLAogICAgIkRTX01FUkNIQU5UX1BBTiI6ICI0NTQ4ODEwMDAwMDAwMDAzIiwKICAgICJEU19NRVJDSEFOVF9FTVYzRFMiOiB7CiAgICAgICAgInRocmVlRFNJbmZvIjogIkNhcmREYXRhIgogICAgfQp9 { "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIyNDM3MDk4NiIsCiAgICAiRHNfTWVyY2hhbnRfRXhjZXBfU0NBIjogIlkiLAogICAgIkRTX01FUkNIQU5UX1BBTiI6ICI0NTQ4ODEwMDAwMDAwMDAzIiwKICAgICJEU19NRVJDSEFOVF9FTVYzRFMiOiB7CiAgICAgICAgInRocmVlRFNJbmZvIjogIkNhcmREYXRhIgogICAgfQp9", "Ds_Merchant_Signature": "3tup2ld5l+TzMTpRFL2e62P9yzOioNHHy4Wl26mPstA=", "Ds_SignatureVersion": "HMAC_SHA512_V2" } Notificación del iniciaPeticionCuando realizas un iniciaPeticion con éxito, recibes una notificación o respuesta con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles:Recibir y gestionar la notificación: La notificación recibida es un formulario como el que se envía en la petición. El comercio debe validar los datos recibidos en el formulario para verificar su veracidad.Información recibida en la notificación: La notificación contiene unos parámetros con detalles de la operación. Estos parámetros vienen en el campo Ds_MerchantParameters. 1. Recibir y gestionar la notificación 2. Información recibida en la notificación ¿Qué parámetros debo guardar de la notificación para próximas operaciones?En la notificación de un iniciaPeticion recibes una serie de parámetros en Ds_MerchantParameters que debes guardar para continuar el flujo de la operación:protocolVersion: Esta es la versión de 3DSecure que soporta la tarjeta. Envía el valor recibido en el paso 3.threeDSServerTransID: Es el identificador de la transacción 3DSecure, y lo necesitarás más adelante. Es único para la operación, no lo puedes modificar.threeDSMethodURL: URL para la ejecución del 3DSMethod. Guárdalo para enviar en el paso 2. threeDSInfo: Esto indica que la respuesta contiene los datos de la tarjeta, es decir, lo que has solicitado.DS_Excep_SCA: Son todas las exenciones que soporta la tarjeta. Consulta los tipos de exención.Ds_Card_PSD2: Informa si la tarjeta está enrolada en PSD2, y con una «Y» como respuesta, quiere decir que sí. Paso 2: Ejecución del 3DSMethodEl 3DSMethod es una etapa opcional pero altamente recomendable dentro de las operativas con autenticación 3DS. Permite a la entidad emisora recopilar información del dispositivo del cliente (navegador, sistema operativo, resolución, etc.) para evaluar el nivel de riesgo de la transacción.Este paso es transparente para el usuario y se realiza en segundo plano mediante un iframe oculto que se comunica directamente con el emisor.¿Por qué es altamente recomendable incluir el 3DSMethod?Ayuda al emisor (banco o institución que ha emitido la tarjeta del cliente) a determinar si la transacción puede considerarse de bajo riesgo.Si el emisor confía en la operación, puede permitir un flujo frictionless (sin intervención del cliente para autenticar). Pasos a seguir para ejecutar el 3DSMethod1. Recibir la URL de ejecución 3DS Es requerido que en la notificación del paso 1 «iniciaPeticion» hayas recibido:threeDSMethodURL: URL del emisor donde se ejecutará el método.threeDSServerTransID: Identificador de la transacción 3DS.Si no has recibido threeDSMethodURL en la notificación del paso 1 «iniciaPeticion», omite el 3DSMethod y ve al paso 3 «Petición de autorización», donde tendrás que enviar threeDsCompInd: N en la petición de autorización. Para ejecutar el 3DSMethod tienes que haber recibido el parámetro «threeDSMethodURL» en el paso 1 «iniciaPeticion». Si no es así, ve al paso 3. 2. Construir el objeto JSON y codificarlo en BASE64URLEl siguiente paso es construir el objeto JSON con los siguientes parámetros y codificarlo en BASE64URL:threeDSServerTransID: Identificador de la transacción 3DS recibida en el iniciaPeticion. threeDSMethodNotificationURL: URL de tu sistema donde recibirás la notificación del emisor al finalizar el proceso. Puede ser la misma en la que continúes el proceso de autorización (Paso 3).Este es un ejemplo del objeto JSON con los valores indicados: { "threeDSServerTransID": "valor_recibido", "threeDSMethodNotificationURL": "https://tuweb.com/notificacion-3ds" } 3. Codifica el Objeto JSON anteriorCodifica el JSON anterior en BASE64URL. ewogICJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ICJ2YWxvcl9yZWNpYmlkbyIsCiAgInRocmVlRFNNZXRob2ROb3RpZmljYXRpb25VUkwiOiAiaHR0cHM6Ly90dXdlYi5jb20vbm90aWZpY2FjaW9uLTNkcyIKfQ== 4. Crea y envía el iframe oculto al clienteInserta un iframe oculto en el navegador del cliente. En el iframe se incluye el siguiente parámetro:threeDSMethodData: Contiene el JSON codificado en BASE64URL del paso anterior.Este formulario realiza un HTTP POST a la URL que se devuelve en el campo threeDSMethodURL del paso 1 «iniciaPeticion».Este es un ejemplo del iframe oculto: Este fragmento de código es un ejemplo. Sustituye los campos correspondientes por los valores que hayas obtenido y adapta el código a tus necesidades. 5. El emisor recopila los datos del navegadorEl emisor recopilará la información del navegador a través del iframe, sin que el cliente lo perciba.Cuando termine, enviará un POST a tu threeDSMethodNotificationURL con el parámetro threeDSMethodData, indicando que la recolección ha finalizado.Es posible que recibas el campo threeDSMethodData vacío. Esto puede ser normal, con que recibas un HTTP POST a la URL de notificación, el 3DSMethod se da por correcto.6. Gestión del resultado del 3DSMethodEl último paso del 3DSMethod es evaluar el resultado del 3DSMethod:Si la ejecución del 3DSMethod se completa en menos de 10 segundos, deberás enviar: threeDSCompInd: Y en el paso 3 «Petición de autorización». Si no ha terminado en ese tiempo (timeout 10 segundos), debes enviar:threeDSCompInd: N en el paso 3 «Petición de autorización».Además, como hemos visto en el paso 1 «Recibir la URL de ejecución 3DS», si no has recibido el campo threeDSMethodURL en la notificación del iniciaPetición, también tendrás que enviar threeDsCompInd: N en el paso 3. Paso 3: Petición de autorizaciónUna vez realizados:El paso 1 «iniciaPeticion», donde recopilas información de la tarjeta del cliente y parámetros necesarios para 3DS.El paso 2 «3DSMethod», opcional pero muy recomendable, donde permites que la entidad emisora recopile datos del dispositivo del cliente para evaluar el nivel de riesgo.Llegamos al paso 3, donde tendremos que enviar la petición de autorización al TPV Virtual. En este paso, envías una petición al TPV Virtual con los datos de la operación. Ten en cuenta que:El DS_MERCHANT_ORDER no puede cambiar en todo el flujo, de lo contrario la operación se rechazará.Además, es importante que envíes el parámetro DS_MERCHANT_EMV3DS con los parámetros del navegador del cliente, entre otros. La petición se envía al siguiente endpoint: Tipo de peticiónEntornoURL trataPeticionPruebashttps://sis-t.redsys.es:25443/sis/rest/trataPeticionREST Producciónhttps://sis.redsys.es/sis/rest/trataPeticionREST La notificación de la petición de autorización puede indicar dos cosas:La operación sigue el flujo frictionless y se autoriza sin intervención del cliente. El proceso finaliza aquí.La operación requiere challenge, por lo que tendrás que pasar al paso 4 «Ejecución del challenge/autenticación». Este es el flujo más común. Parámetros de la petición de autorizaciónEsta es la tabla con los parámetros requeridos y opcionales que debes incluir en Ds_MerchantParameters para realizar una petición de autorización REST: ParámetroFormatoRequerido/OpcionalDescripciónEjemplo DS_MERCHANT_MERCHANTCODE9 caracteres NuméricoRequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987 DS_MERCHANT_TERMINAL3 caracteres NuméricoRequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99 DS_MERCHANT_AMOUNT12 caracteres NuméricoRequeridoImporte de la operación. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.1050 DS_MERCHANT_CURRENCY4 caracteres NuméricoRequeridoCódigo ISO 4217 de la divisa utilizada en la transacción. Ver códigos ISO divisas.978 DS_MERCHANT_ORDER12 caracteres Alfanumérico * (caracteres ASCII: del 48 al 57, del 65 al 90 y del 97 al 122)RequeridoCódigo de pedido. No se puede repetir un código de pedido hasta pasados 6 meses. Recomendamos que los 4 primeros dígitos sean numéricos, para evitar problemas en la liquidación. *Sólo se permiten caracteres ASCII: – Dígitos (0–9): ASCII 48 a 57. Letras mayúsculas (A–Z): ASCII 65 a 90. – Letras minúsculas (a–z): ASCII 97 a 122. – No se permiten espacios, símbolos ni acentos.1234ABcd56EF DS_MERCHANT_TRANSACTIONTYPEValores disponibles: – 0: Autorización – 1: Preautorización – 2: Confirmar preautorizaciones – 3: Devoluciones – 7: Validación de tarjeta – 8: Confirmar validaciones de tarjeta – 9: Anular preautorizaciones y autorizaciones – 46: Anular devoluciones. – 47: Anular validación de tarjeta.RequeridoTipo de transacción. El número enviado indica el tipo de transacción. 0 DS_MERCHANT_PAN19 caracteres NuméricoRequerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta. * Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)4548810000000003 DS_MERCHANT_CVV23 a 4 caracteres NuméricoRequerido*Código CVV2 de la tarjeta del cliente. * Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT. 050 DS_MERCHANT_EXPIRYDATE4 caracteres Numérico AAMMRequerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes). * Requerido cuando se envía DS_MERCHANT_PAN3012 DS_MERCHANT_CLIENTIP15 caracteres AlfanuméricoOpcional* Campo que sirve para indicar la IP del cliente. * Recomendado si tienes que enviar la IP del cliente, ya que la IP registrada en el TPV Virtual (si no se envía este parámetro) es la IP donde esté ubicado el comercio. 192.168.1.1 DS_MERCHANT_MERCHANTURL250 caracteres AlfanuméricoOpcionalURL a la que se envía la notificación. En REST la notificación se recibe de servidor a servidor, por lo que este campo es opcional y lo puedes utilizar como Backup.https://www.example.com/notification DS_MERCHANT_MERCHANTDATA1024 caracteres AlfanuméricoOpcional Información que no procesa el TPV Virtual. Se devuelve sin modificar en la notificación. Se puede añadir para procesos internos.Prueba de pago en mi comercio DS_MERCHANT_TITULAR60 caracteres máximo AlfanuméricoOpcionalNombre del titular de la tarjeta.Pedro Salas DS_MERCHANT_DCCHay 2 formatos posibles: – iniciaPeticion: «Y» o «N» – trataPeticion: Objeto JSON (monedaDCC y importeDCC)Opcional** Requerido en operaciones DCC. – iniciaPeticion: Campo que indica la solicitud de información DCC – trataPeticion: Objeto JSON donde se envían los datos DCC de la operación. – iniciaPeticion: Y – trataPeticion: Objeto JSON (ver campos enviados en la tabla inferior) DS_MERCHANT_EMV3DSObjeto JSON*OpcionalEste parámetro contiene un JSON con los parámetros necesarios para la autenticación EMV3DS (v2 y v1). * Objeto JSON serializado como string.N/A DS_MERCHANT_MERCHANTNAME25 caracteres AlfanuméricoOpcionalIndica el nombre del comercio que se mostrará al cliente durante el proceso de pago. Si no se envía, se mostrará el nombre configurado en Canales. Mi comercio DS_MERCHANT_PRODUCTDESCRIPTION125 caracteres máximo AlfanuméricoOpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo DS_MERCHANT_EXCEP_SCA3 caracteres AlfanuméricoOpcional*– Para iniciaPeticion: Manda «Y» (sin comillas) para ver qué exenciones tiene disponibles el comercio. – Para trataPeticion: Permite solicitar un tipo de exención en la transacción. Valores disponibles en la sección de exenciones. *Requerido enviarlo en operaciones MIT.MIT DS_MERCHANT_MERCHANTDESCRIPTOR25 caracteres AlfanuméricoOpcionalEs un descriptor flexible. Requiere activación por parte de la entidad. Si está activado y no se envía, se enviará por defecto el nombre del comercio. * Pensado para PSPsMi comercio El valor de DS_MERCHANT_TRANSACTIONTYPE cambia según la operativa que esté realizando:Para autorización es 0.Para preautorización es 1.Para validación de tarjeta es 7. Además, tienes que incluir los parámetros 3DS, que se envían como un objeto JSON dentro del campo DS_MERCHANT_EMV3DS, el cual forma parte del JSON general que se codifica y envía en Ds_MerchantParameters: ParámetroFormatoOpcional/RecomendadoDescripciónEjemplo acctID64 caracteres máximo AlfanuméricoOpcionalInformación adicional de la cuenta del cliente. acctInfoObjeto JSONRecomendadoInformación adicional de la cuenta de usuario en tu comercio. Parámetros que incluye. addrMatch1 caracter Valores admitidos: – Y (Yes) – N (No)OpcionalIndica si la dirección de envío es la misma que la dirección de facturación.N billAddrCity50 caracteres máximo AlfanuméricoRecomendadoCiudad de la dirección de facturación del titular de la tarjeta que realiza la compra.Barcelona billAddrCountryISO 3166-1Recomendado*Código ISO 3166-1 del país de la dirección de facturación del titular de la tarjeta que realiza la operación. * Obligatorio si se envía «billAddrState».ES billAddrLine150 caracteres máximo AlfanuméricoRecomendadoPrimera línea de la dirección de facturación del titular de la tarjeta que realiza la operación. Calle Test 1 billAddrLine250 caracteres máximo AlfanuméricoRecomendadoSegunda línea de la dirección de facturación del titular de la tarjeta que realiza la operación. Bloque 2 billAddrLine350 caracteres máximo AlfanuméricoRecomendadoTercera línea de la dirección de facturación del titular de la tarjeta que realiza la operación. Piso 3 C billAddrPostCode16 caracteres máximo AlfanuméricoRecomendadoCódigo postal de la dirección de facturación del titular de la tarjeta que realiza la operación. 08001 billAddrStateISO 3166-2RecomendadoCódigo ISO 3166-2 del estado o provincia de la dirección de facturación del titular de la tarjeta que realiza la operación.B browserAcceptHeader2048 caracteres máximo AlfanuméricoRecomendadoHTTP accept headers enviado desde el navegador. browserColorDepthValores aceptados: – 1: 1 bit – 4: 4 bits – 8: 8 bits – 15: 15 bits – 16: 16 bits – 24: 24 bits – 32: 32 bits – 48: 48 bits RecomendadoValor que representa la profundida de bits de la paleta de colores para mostrar imágenes en bits por pixel. Este valor lo devuelve la propiedad «screen.colorDepth» desde el navegador del cliente. * En Redirección «Realizar Pago» no es necesario enviarlo, ya que el TPV Virtual lo recoge automáticamente.24 browserIP45 caracteres máximo AlfanuméricoRecomendadoIP del navegador. IPv4 o IPv6. 2001:0db8:85a3:0000:0000:8a2e:0370:7334 browserJavaEnabledBooleanoRecomendadoIndica si el navegador es capaz de usar Java. Este valor lo devuelve la propiedad «navigator.JavaEnabled». true browserJavascriptEnabledBooleanoRecomendadoIndica si el navegador es capaz de usar JavaScript. true browserLanguage1 a 8 caracteresRecomendadoIdioma del navegador definido en IETF BCP47. Este valor lo devuelve la propiedad «navigator.language». es-ES browserScreenHeight1 a 6 caracteres AlfanuméricoRecomendadoAltura total de la pantalla en píxeles. Este valor lo devuelve la propiedad «screen.height». 1080 browserScreenWidth1 a 6 caracteres AlfanuméricoRecomendadoAnchura total de la pantalla en píxeles. Este valor lo devuelve la propiedad «screen.width». 1920 browserTZ1 a 5 caracteres Alfanumérico RecomendadoDiferencia horaria entre la hora UTC y la hora local del navegador en MINUTOS. Este valor lo devuelve el método «getTimezoneOffset()». Por ejemplo, si la zona horaria es UTC -5 horas, el valor aceptado será «+300» +300 browserUserAgentMáximo 2048 caracteres AlfanuméricoRecomendadoHttp user-agent header del navegador del cliente. Si la longitud supera los 2048 caracteres, el valor será truncado.Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 notificationURL256 caracteres máximo AlfanuméricoRecomendadoURL del comercio que recibirá la notificación con el mensaje CRes al finalizar el challenge. https://sis-d.redsys.es/sis-simulador-web/SisRESTCreqCres_3DSecureV2.jsp protocolVersionAlfanumérico Valores posibles : – 1.0.2 – 2.1.0 – 2.2.0RecomendadoVersión de protocolo 3DSecure. 2.2.0 cardholderNameDe 2 a 45 caracteres AlfanuméricoRecomendadoNombre del titular de la tarjeta. Juan challengeWindowSize2 caracteres Valores posibles (tamaño en píxeles): – 01 = 250 x 400 – 02 = 390 x 400 – 03 = 500 x 600 – 04 = 600 x 400 – 05 = Full screen (Valor por defecto)OpcionalDimensión de ventana de challenge que el banco emisor presentará al cliente para realizar la autenticación. El tamaño preconfigurado es el ancho x alto en píxeles de la ventana del navegador.05 Email254 caracteres máximo AlfanuméricoRecomendadoDirección de correo electrónico del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.test@mail.com homePhoneObjeto JSONRecomendadoNúmero de teléfono de casa del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.Parámetros que incluye. workPhoneObjeto JSONRecomendadoNúmero de teléfono de trabajo del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.Parámetros que incluye. mobilePhoneObjeto JSONRecomendadoNúmero de teléfono móvil del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.Parámetros que incluye. merchantRiskIndicatorObjeto JSONRecomendadoInformación adicional que representa la evaluación que ha hecho el comercio del nivel de riesgo de fraude en la autenticación.Parámetros que incluye. purchaseInstalDataNumérico Mayor que 1Opcional*Indica el número máximo de autorizaciones en pago aplazado. * Obligatorio para operaciones COF Instalment3 recurringExpiryYYYYMMDDOpcional*Fecha a partir de la cual no se harán más autorizaciones Formato aceptado: YYYYMMDD * Obligatorio para operaciones COF Instalment y Recurring20301231 recurringFrequency4 caracteres NuméricoOpcional*Indica el mínimo número de días entre autorizaciones * Obligatorio para operaciones COF Instalment y Recurring30 shipAddrCityVariable, máximo 50 / JSON Data Type: StringRecomendadoCiudad de la dirección de envío solicitada por el titular de la tarjeta.Barcelona shipAddrCountryISO 3166-1Recomendado*ISO 3166-1 del país de la dirección de envío solicitada por el titular de la tarjeta. * Obligatorio si se envía «shipAddrState».ES shipAddrLine150 caracteres máximo AlfanuméricoRecomendadoPrimera línea de la dirección de envío solicitada por el titular de la tarjeta.Calle Test 1 shipAddrLine250 caracteres máximo AlfanuméricoRecomendadoSegunda línea de la dirección de envío solicitada por el titular de la tarjeta.Bloque 2 shipAddrLine350 caracteres máximo AlfanuméricoRecomendadoTercera línea de la dirección de envío solicitada por el titular de la tarjeta.Piso 3 C shipAddrPostCode16 caracteres máximo AlfanuméricoRecomendadoEl código postal de la dirección de envío solicitada por el titular de la tarjeta.08001 shipAddrStateISO 3166-2RecomendadoEl estado o provincia de la dirección de envío asociada con la tarjeta utilizada para esta compra. Corresponde al código de subdivisión ISO 3166-2.B threeDSCompIndValores aceptados: – Y: Completado correctamente – N: Completado con errores – U: 3DSMethod no ejecutadoRecomendadoIndica si el 3DSMethod se ha ejecutado. Y threeDSInfoValores posibles: – CardData: Indica que solicitas información de la tarjeta. – AuthenticationData – ChallengeResponse: Indica que estás respondiendo al challenge. – 3RI-Recurring – 3RI-OTARecomendadoTipo de solicitud 3DS. CardData threeDSRequestorAuthenticationInfoObjeto JSONOpcionalInformación adicional sobre como el cliente se autenticó en el inicio de sesión en la cuenta del comercio. Parámetros que incluye. threeDSServerTransID36 caracteres máximo AlfanuméricoRecomendadoIdentificador de la transacción 3DSecuro. Es el mismo valor devuelto en la consulta de tarjeta.d7433c2d-f44d-48da-a3a3-e883f6a82fe9 threeDSRequestorChallengeIndValores posibles: – 03: Indica que el comercio quiere aplicar autenticación reforzada (SCA). – 04: Indica que se requiere autenticación reforzada (SCA) por un mandato.Opcional*Indica la preferencia del comercio para que se aplique autenticación reforzada (SCA) a su cliente en esta operación. En caso de no enviarse este parámetro no se indicará preferencia alguna al emisor y la operación puede ser exencionada, autenticada con SCA o autenticada sin SCA (frictionless). * En operativas REST donde se decline la operación con código 195, se deberá enviar este parámetro como «04».04 Envío de la petición de autorizaciónEstos son los endpoints donde tienes que enviar la petición de autorización: Tipo de peticiónEntornoURL trataPeticionPruebashttps://sis-t.redsys.es:25443/sis/rest/trataPeticionREST Producciónhttps://sis.redsys.es/sis/rest/trataPeticionREST Estos parámetros deben codificarse en BASE64 y enviarse dentro del campo Ds_MerchantParameters, junto con el resto de campos necesarios en el formulario. A continuación te mostramos un ejemplo de:Los parámetros que se envían en Ds_MerchantParameters en formato JSON.Los parámetros del JSON codificados en BASE64. Este es el valor enviado en Ds_MerchantParameters.El formulario completo que debes enviar. Consulta el resto de campos en la integración REST. Ds_MerchantParameters JSON Ds_MerchantParameters BASE64 Formulario completo REST { "DS_MERCHANT_MERCHANTCODE": "999008881", "DS_MERCHANT_TERMINAL": "99", "DS_MERCHANT_TRANSACTIONTYPE": "0", "DS_MERCHANT_AMOUNT": "100", "DS_MERCHANT_CURRENCY": "978", "DS_MERCHANT_ORDER": "24370986", "DS_MERCHANT_PAN": "4548810000000003", "DS_MERCHANT_EXPIRYDATE": "3012", "DS_MERCHANT_CVV2": "123", "DS_MERCHANT_EMV3DS": { "threeDSInfo": "AuthenticationData", "protocolVersion": "2.2.0", "browserAcceptHeader": "text\/html,application\/xhtml+xml,application\/xml;q=0.9,*\/*;q=0.8,application\/json", "browserColorDepth": "32", "browserIP": "84.0.0.1", "browserJavaEnabled": "1", "browserJavascriptEnabled": "1", "browserLanguage": "es-ES", "browserScreenHeight": "864", "browserScreenWidth": "1536", "browserTZ": "-120", "browserUserAgent": "Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/137.0.0.0 Safari\/537.36", "threeDSServerTransID": "d7433c2d-f44d-48da-a3a3-e883f6a82fe9", "notificationURL": "https:\/\/webredirect.org\/recepcion_notificacion.php?tipo=challenge", "threeDSCompInd": "Y" } } ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIzOTMzMTA4NiIsCiAgICAiRFNfTUVSQ0hBTlRfUEFOIjogIjQ1NDg4MTAwMDAwMDAwMDNcdCIsCiAgICAiRFNfTUVSQ0hBTlRfRVhQSVJZREFURSI6ICIzMDEyIiwKICAgICJEU19NRVJDSEFOVF9DVlYyIjogIjEyMyIsCiAgICAiRFNfTUVSQ0hBTlRfRU1WM0RTIjogewogICAgICAgICJ0aHJlZURTSW5mbyI6ICJDaGFsbGVuZ2VSZXNwb25zZSIsCiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICIyLjIuMCIsCiAgICAgICAgImNyZXMiOiAiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJbVEzTkRNell6SmtMV1kwTkdRdE5EaGtZUzFoTTJFekxXVTRPRE5tTm1FNE1tWmxPU0lzSW1GamMxUnlZVzV6U1VRaU9pSm1Zak5tTTJOak1DMDVaRFF6TFRSbVlURXRPR1V3TWkxalpHSmtOR05sWVRaaE16UWlMQ0p0WlhOellXZGxWSGx3WlNJNklrTlNaWE1pTENKdFpYTnpZV2RsVm1WeWMybHZiaUk2SWpJdU1pNHdJaXdpZEhKaGJuTlRkR0YwZFhNaU9pSlpJbjA9IgogICAgfQp9 { "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIzOTMzMTA4NiIsCiAgICAiRFNfTUVSQ0hBTlRfUEFOIjogIjQ1NDg4MTAwMDAwMDAwMDNcdCIsCiAgICAiRFNfTUVSQ0hBTlRfRVhQSVJZREFURSI6ICIzMDEyIiwKICAgICJEU19NRVJDSEFOVF9DVlYyIjogIjEyMyIsCiAgICAiRFNfTUVSQ0hBTlRfRU1WM0RTIjogewogICAgICAgICJ0aHJlZURTSW5mbyI6ICJDaGFsbGVuZ2VSZXNwb25zZSIsCiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICIyLjIuMCIsCiAgICAgICAgImNyZXMiOiAiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJbVEzTkRNell6SmtMV1kwTkdRdE5EaGtZUzFoTTJFekxXVTRPRE5tTm1FNE1tWmxPU0lzSW1GamMxUnlZVzV6U1VRaU9pSm1Zak5tTTJOak1DMDVaRFF6TFRSbVlURXRPR1V3TWkxalpHSmtOR05sWVRaaE16UWlMQ0p0WlhOellXZGxWSGx3WlNJNklrTlNaWE1pTENKdFpYTnpZV2RsVm1WeWMybHZiaUk2SWpJdU1pNHdJaXdpZEhKaGJuTlRkR0YwZFhNaU9pSlpJbjA9IgogICAgfQp9", "Ds_Merchant_Signature": "ZfCZSV1Lx0pGTKXf78rBLsU3XmxD3yo1e9hOK9pROwk=", "Ds_SignatureVersion": "HMAC_SHA512_V2" } Notificación de la petición de autorización Cuando realizas una petición de autorización con éxito, recibes una notificación o respuesta con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles:Recibir y gestionar la notificación: La notificación recibida es un formulario como el que se envía en la petición. El comercio debe validar los datos recibidos en el formulario para verificar su veracidad.Información recibida en la notificación: La notificación contiene unos parámetros con detalles de la operación. Estos parámetros vienen en el campo Ds_MerchantParameters. 1. Recibir y gestionar la notificación 2. Información recibida en la notificación Próximo paso: Challenge, Frictionless o KOLa notificación recibida indica el próximo paso en el flujo de la operación. Tienes los distintos casos en el siguiente desplegable: Challenge Cuando el flujo de la operación requiere challenge, en la notificación se reciben los datos para realizar la autenticación reforzada. Para ejecutar el challenge, ve al paso 4.A continuación tienes un ejemplo de la notificación recibida con los datos del challenge. Estos son los parámetros que vienen dentro de Ds_MerchantParameters una vez decodificas la notificación. Especialmente, tienes que guardar el contenido de estos parámetros:threeDsInfo: Tipo de solicitud 3DS. En este caso indicará que requiere challenge challengeRequest.acsURL: URL del ACS donde tendrás que enviar la petición para ejecutar el challenge (Paso 4). creq: Valor que debes enviar a la URL del ACS donde se ejecuta el challenge. Este valor no se puede alterar. { "Ds_Amount": "100", "Ds_Currency": "978", "Ds_Order": "24370986", "Ds_MerchantCode": "999008881", "Ds_Terminal": "1", "Ds_TransactionType": "0", "Ds_EMV3DS": { "threeDSInfo": "ChallengeRequest", "protocolVersion": "2.2.0", "acsURL": "https://sis-d.redsys.es/sis-simulador-web/authenticationRequest.jsp", // URL que ha enviado el SIS donde debes enviar el CREQ "creq": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImQ3NDMzYzJkLWY0NGQtNDhkYS1hM2EzLWU4ODNmNmE4MmZlOSIsImFjc1RyYW5zSUQiOiJmYjNmM2NjMC05ZDQzLTRmYTEtOGUwMi1jZGJkNGNlYTZhMzQiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0" } } Frictionless (finaliza operación) Es posible que la respuesta indique directamente el resultado de la operación. En este caso, el flujo es frictionless. Este flujo se da si el servidor de autenticación considera que tiene suficientes datos del titular como para identificarle.Este es un ejemplo de la notificación. Estos son los parámetros que vienen dentro de Ds_MerchantParameters una vez decodificas la notificación. El resultado de la operación se indica en el parámetro Ds_Response, si la operación ha finalizado correctamente su valor será 0000. { "Ds_Date": "09%2F02%2F2023", "Ds_Hour": "17%3A09", "Ds_SecurePayment": "1", "Ds_Amount": "145", "Ds_Currency": "978", "Ds_Order": "1112", "Ds_MerchantCode": "999008881", "Ds_Terminal": "001", "Ds_Response": "0000", "Ds_TransactionType": "0", "Ds_AuthorisationCode": "291856", "Ds_Card_Number": "491801******4602", "Ds_ConsumerLanguage": "1", "Ds_Card_Country": "724", "Ds_Card_Brand": "1", "Ds_ProcessedPayMethod": "80" } KO (finaliza operación) Si el parámetro Ds_Response, indica un valor distinto a 0000, se ha producido algún error durante la operación. Consulta los códigos de error para saber cuál: Códigos de error Paso 4: Ejecución del challenge/autenticaciónSi la operación requiere challenge, tendrás que usar los parámetros recibidos en la notificación anterior para conectar con tu comercio con la entidad emisora. Estos son:threeDsInfo: Tipo de solicitud 3DS. En este caso indicará que requiere challenge challengeRequest.acsURL: URL del ACS donde tendrás que enviar la petición para ejecutar el challenge (Paso 4).creq: Valor que debes enviar a la URL del ACS donde se ejecuta el challenge. Este valor no se puede alterar.1. Conexión desde el comercio al ACS del banco emisorA continuación te mostramos un ejemplo de cómo remitir el parámetro creq a la URL especificada del ACS vía HTTP POST. De esta forma, se inicia el proceso del challenge: CReq Realizar pago Importante: El formulario se tiene que abrir en una pestaña nueva (target = «_blank»). No es posible en iframe. Este fragmento de código es un ejemplo. Sustituye los campos correspondientes por los valores que hayas obtenido y adapta el código a tus necesidades. 2. Ejecución del challenge Una vez enviado el formulario anterior, el navegador del cliente cargará la pantalla del servidor de autenticación (ACS).En esta pantalla, gestionada por la entidad emisora de la tarjeta, se mostrarán las instrucciones necesarias para completar la autenticación: por ejemplo, introducir un código recibido por SMS o aprobar la operación desde la app bancaria. La apariencia exacta de esta pantalla puede variar según el banco, la tarjeta y el tipo de challenge.A continuación te mostramos un ejemplo de cómo mostrar esa pantalla en PHP. Este código carga la pantalla del banco emisor en un iframe, enviando los elementos pedidos para mostrar la pantalla y usando un fragmento en JavaScript para auto-enviar el formulario. Conectando con el emisor... '; die($form); } Este fragmento de código es un ejemplo. Sustituye los campos correspondientes por los valores que hayas obtenido y adapta el código a tus necesidades. 3. Recibir el resultado de la autenticación/challengeUna vez que el cliente completa la autenticación/challenge, se envía el resultado de la autenticación mediante una petición HTTP POST a la URL que hayas indicado en el parámetro notificationURL durante la autorización (paso 3).El ACS enviará un único campo:cres: Parámetro codificado que contiene el resultado de la autenticación y que tendrás que enviar en el paso 5 «Enviar resultado de la autenticación». Tu sistema debe esperar a que llegue la notificación del ACS con este campo y capturarlo.El proceso de autenticación depende del tiempo que el titular tarde en validar la operación. Por ello:Ten en cuenta que el ACS puede mantener el proceso abierto hasta 7 minutos.Recomendamos establecer un timeout de mínimo 7 minutos, para evitar que el proceso falle antes de que el usuario haya terminado la autenticación. Paso 5: Enviar resultado de la autenticaciónUna vez recibido el parámetro cres en el proceso de autenticación/challenge del paso anterior, tienes que enviarlo en una petición al endpoint indicado: Tipo de peticiónEntornoURL trataPeticionPruebashttps://sis-t.redsys.es:25443/sis/rest/trataPeticionREST Producciónhttps://sis.redsys.es/sis/rest/trataPeticionREST En este paso, envías una petición al TPV Virtual con los datos de la operación. Ten en cuenta que:El DS_MERCHANT_ORDER no puede cambiar en todo el flujo, de lo contrario la operación se rechazará.Además, es importante que envíes el parámetro DS_MERCHANT_EMV3DS con el parámetro cres, entre otros. Parámetros de la petición con el resultado de la autenticaciónEsta es la tabla con los parámetros requeridos y opcionales que debes incluir en Ds_MerchantParameters para realizar una petición con el resultado de la autenticación en REST: ParámetroFormatoRequerido/OpcionalDescripciónEjemplo DS_MERCHANT_MERCHANTCODE9 caracteres NuméricoRequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987 DS_MERCHANT_TERMINAL3 caracteres NuméricoRequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99 DS_MERCHANT_AMOUNT12 caracteres NuméricoRequeridoImporte de la operación. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.1050 DS_MERCHANT_CURRENCY4 caracteres NuméricoRequeridoCódigo ISO 4217 de la divisa utilizada en la transacción. Ver códigos ISO divisas.978 DS_MERCHANT_ORDER12 caracteres Alfanumérico * (caracteres ASCII: del 48 al 57, del 65 al 90 y del 97 al 122)RequeridoCódigo de pedido. No se puede repetir un código de pedido hasta pasados 6 meses. Recomendamos que los 4 primeros dígitos sean numéricos, para evitar problemas en la liquidación. *Sólo se permiten caracteres ASCII: – Dígitos (0–9): ASCII 48 a 57. Letras mayúsculas (A–Z): ASCII 65 a 90. – Letras minúsculas (a–z): ASCII 97 a 122. – No se permiten espacios, símbolos ni acentos.1234ABcd56EF DS_MERCHANT_TRANSACTIONTYPEValores disponibles: – 0: Autorización – 1: Preautorización – 2: Confirmar preautorizaciones – 3: Devoluciones – 7: Validación de tarjeta – 8: Confirmar validaciones de tarjeta – 9: Anular preautorizaciones y autorizaciones – 46: Anular devoluciones. – 47: Anular validación de tarjeta.RequeridoTipo de transacción. El número enviado indica el tipo de transacción. 0 DS_MERCHANT_PAN19 caracteres NuméricoRequerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta. * Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)4548810000000003 DS_MERCHANT_CVV23 a 4 caracteres NuméricoRequerido*Código CVV2 de la tarjeta del cliente. * Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT. 050 DS_MERCHANT_EXPIRYDATE4 caracteres Numérico AAMMRequerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes). * Requerido cuando se envía DS_MERCHANT_PAN3012 DS_MERCHANT_CLIENTIP15 caracteres AlfanuméricoOpcional* Campo que sirve para indicar la IP del cliente. * Recomendado si tienes que enviar la IP del cliente, ya que la IP registrada en el TPV Virtual (si no se envía este parámetro) es la IP donde esté ubicado el comercio. 192.168.1.1 DS_MERCHANT_MERCHANTURL250 caracteres AlfanuméricoOpcionalURL a la que se envía la notificación. En REST la notificación se recibe de servidor a servidor, por lo que este campo es opcional y lo puedes utilizar como Backup.https://www.example.com/notification DS_MERCHANT_MERCHANTDATA1024 caracteres AlfanuméricoOpcional Información que no procesa el TPV Virtual. Se devuelve sin modificar en la notificación. Se puede añadir para procesos internos.Prueba de pago en mi comercio DS_MERCHANT_TITULAR60 caracteres máximo AlfanuméricoOpcionalNombre del titular de la tarjeta.Pedro Salas DS_MERCHANT_DCCHay 2 formatos posibles: – iniciaPeticion: «Y» o «N» – trataPeticion: Objeto JSON (monedaDCC y importeDCC)Opcional** Requerido en operaciones DCC. – iniciaPeticion: Campo que indica la solicitud de información DCC – trataPeticion: Objeto JSON donde se envían los datos DCC de la operación. – iniciaPeticion: Y – trataPeticion: Objeto JSON (ver campos enviados en la tabla inferior) DS_MERCHANT_EMV3DSObjeto JSON*OpcionalEste parámetro contiene un JSON con los parámetros necesarios para la autenticación EMV3DS (v2 y v1). * Objeto JSON serializado como string.N/A DS_MERCHANT_MERCHANTNAME25 caracteres AlfanuméricoOpcionalIndica el nombre del comercio que se mostrará al cliente durante el proceso de pago. Si no se envía, se mostrará el nombre configurado en Canales. Mi comercio DS_MERCHANT_PRODUCTDESCRIPTION125 caracteres máximo AlfanuméricoOpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo DS_MERCHANT_EXCEP_SCA3 caracteres AlfanuméricoOpcional*– Para iniciaPeticion: Manda «Y» (sin comillas) para ver qué exenciones tiene disponibles el comercio. – Para trataPeticion: Permite solicitar un tipo de exención en la transacción. Valores disponibles en la sección de exenciones. *Requerido enviarlo en operaciones MIT.MIT DS_MERCHANT_MERCHANTDESCRIPTOR25 caracteres AlfanuméricoOpcionalEs un descriptor flexible. Requiere activación por parte de la entidad. Si está activado y no se envía, se enviará por defecto el nombre del comercio. * Pensado para PSPsMi comercio El valor de DS_MERCHANT_TRANSACTIONTYPE cambia según la operativa que esté realizando:Para autorización es 0.Para preautorización es 1.Para validación de tarjeta es 7. Además, tienes que incluir los parámetros 3DS, que se envían como un objeto JSON dentro del campo DS_MERCHANT_EMV3DS, el cual forma parte del JSON general que se codifica y envía en Ds_MerchantParameters: ParámetroFormatoOpcional/RecomendadoDescripciónEjemplo acctID64 caracteres máximo AlfanuméricoOpcionalInformación adicional de la cuenta del cliente. acctInfoObjeto JSONRecomendadoInformación adicional de la cuenta de usuario en tu comercio. Parámetros que incluye. addrMatch1 caracter Valores admitidos: – Y (Yes) – N (No)OpcionalIndica si la dirección de envío es la misma que la dirección de facturación.N billAddrCity50 caracteres máximo AlfanuméricoRecomendadoCiudad de la dirección de facturación del titular de la tarjeta que realiza la compra.Barcelona billAddrCountryISO 3166-1Recomendado*Código ISO 3166-1 del país de la dirección de facturación del titular de la tarjeta que realiza la operación. * Obligatorio si se envía «billAddrState».ES billAddrLine150 caracteres máximo AlfanuméricoRecomendadoPrimera línea de la dirección de facturación del titular de la tarjeta que realiza la operación. Calle Test 1 billAddrLine250 caracteres máximo AlfanuméricoRecomendadoSegunda línea de la dirección de facturación del titular de la tarjeta que realiza la operación. Bloque 2 billAddrLine350 caracteres máximo AlfanuméricoRecomendadoTercera línea de la dirección de facturación del titular de la tarjeta que realiza la operación. Piso 3 C billAddrPostCode16 caracteres máximo AlfanuméricoRecomendadoCódigo postal de la dirección de facturación del titular de la tarjeta que realiza la operación. 08001 billAddrStateISO 3166-2RecomendadoCódigo ISO 3166-2 del estado o provincia de la dirección de facturación del titular de la tarjeta que realiza la operación.B protocolVersionAlfanumérico Valores posibles : – 1.0.2 – 2.1.0 – 2.2.0RecomendadoVersión de protocolo 3DSecure. 2.2.0 cardholderNameDe 2 a 45 caracteres AlfanuméricoRecomendadoNombre del titular de la tarjeta. Juan challengeWindowSize2 caracteres Valores posibles (tamaño en píxeles): – 01 = 250 x 400 – 02 = 390 x 400 – 03 = 500 x 600 – 04 = 600 x 400 – 05 = Full screen (Valor por defecto)OpcionalDimensión de ventana de challenge que el banco emisor presentará al cliente para realizar la autenticación. El tamaño preconfigurado es el ancho x alto en píxeles de la ventana del navegador.05 Email254 caracteres máximo AlfanuméricoRecomendadoDirección de correo electrónico del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.test@mail.com homePhoneObjeto JSONRecomendadoNúmero de teléfono de casa del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.Parámetros que incluye. workPhoneObjeto JSONRecomendadoNúmero de teléfono de trabajo del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.Parámetros que incluye. mobilePhoneObjeto JSONRecomendadoNúmero de teléfono móvil del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.Parámetros que incluye. merchantRiskIndicatorObjeto JSONRecomendadoInformación adicional que representa la evaluación que ha hecho el comercio del nivel de riesgo de fraude en la autenticación.Parámetros que incluye. purchaseInstalDataNumérico Mayor que 1Opcional*Indica el número máximo de autorizaciones en pago aplazado. * Obligatorio para operaciones COF Instalment3 recurringExpiryYYYYMMDDOpcional*Fecha a partir de la cual no se harán más autorizaciones Formato aceptado: YYYYMMDD * Obligatorio para operaciones COF Instalment y Recurring20301231 recurringFrequency4 caracteres NuméricoOpcional*Indica el mínimo número de días entre autorizaciones * Obligatorio para operaciones COF Instalment y Recurring30 shipAddrCityVariable, máximo 50 / JSON Data Type: StringRecomendadoCiudad de la dirección de envío solicitada por el titular de la tarjeta.Barcelona shipAddrCountryISO 3166-1Recomendado*ISO 3166-1 del país de la dirección de envío solicitada por el titular de la tarjeta. * Obligatorio si se envía «shipAddrState».ES shipAddrLine150 caracteres máximo AlfanuméricoRecomendadoPrimera línea de la dirección de envío solicitada por el titular de la tarjeta.Calle Test 1 shipAddrLine250 caracteres máximo AlfanuméricoRecomendadoSegunda línea de la dirección de envío solicitada por el titular de la tarjeta.Bloque 2 shipAddrLine350 caracteres máximo AlfanuméricoRecomendadoTercera línea de la dirección de envío solicitada por el titular de la tarjeta.Piso 3 C shipAddrPostCode16 caracteres máximo AlfanuméricoRecomendadoEl código postal de la dirección de envío solicitada por el titular de la tarjeta.08001 shipAddrStateISO 3166-2RecomendadoEl estado o provincia de la dirección de envío asociada con la tarjeta utilizada para esta compra. Corresponde al código de subdivisión ISO 3166-2.B threeDSInfoValores posibles: – CardData: Indica que solicitas información de la tarjeta. – AuthenticationData – ChallengeResponse: Indica que estás respondiendo al challenge. – 3RI-Recurring – 3RI-OTARecomendadoTipo de solicitud 3DS. CardData threeDSRequestorAuthenticationInfoObjeto JSONOpcionalInformación adicional sobre como el cliente se autenticó en el inicio de sesión en la cuenta del comercio. Parámetros que incluye. cresLongitud variable AlfanuméricoOpcional*Cres codificado en BASE64 de respuesta del ACS al Challenge que contiene el resultado de la autenticación. * Deberás enviarlo en la petición donde envías el resultado de la autenticación.eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImQ3NDJhbnNTdGF0dXMiOiJZIn0= threeDSRequestorChallengeIndValores posibles: – 03: Indica que el comercio quiere aplicar autenticación reforzada (SCA). – 04: Indica que se requiere autenticación reforzada (SCA) por un mandato.Opcional*Indica la preferencia del comercio para que se aplique autenticación reforzada (SCA) a su cliente en esta operación. En caso de no enviarse este parámetro no se indicará preferencia alguna al emisor y la operación puede ser exencionada, autenticada con SCA o autenticada sin SCA (frictionless). * En operativas REST donde se decline la operación con código 195, se deberá enviar este parámetro como «04».04 Importante: Envía el campo threeDSInfo con valor ChallengeResponse. Envío de la petición con el resultado de la autenticaciónEstos parámetros deben codificarse en BASE64 y enviarse dentro del campo Ds_MerchantParameters, junto con el resto de campos necesarios en el formulario. A continuación te mostramos un ejemplo de:Los parámetros que se envían en Ds_MerchantParameters en formato JSON.Los parámetros del JSON codificados en BASE64. Este es el valor enviado en Ds_MerchantParameters.El formulario completo que debes enviar. Consulta el resto de campos en la integración REST. Ds_MerchantParameters JSON Ds_MerchantParameters BASE64 Formulario completo REST { "DS_MERCHANT_MERCHANTCODE": "999008881", "DS_MERCHANT_TERMINAL": "99", "DS_MERCHANT_TRANSACTIONTYPE": "0", "DS_MERCHANT_AMOUNT": "100", "DS_MERCHANT_CURRENCY": "978", "DS_MERCHANT_ORDER": "24370986", "DS_MERCHANT_PAN": "4548810000000003", "DS_MERCHANT_EXPIRYDATE": "3012", "DS_MERCHANT_CVV2": "123", "DS_MERCHANT_EMV3DS": { "threeDSInfo": "ChallengeResponse", "protocolVersion": "2.2.0", "cres": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImQ3NDMzYzJkLWY0NGQtNDhkYS1hM2EzLWU4ODNmNmE4MmZlOSIsImFjc1RyYW5zSUQiOiJmYjNmM2NjMC05ZDQzLTRmYTEtOGUwMi1jZGJkNGNlYTZhMzQiLCJtZXNzYWdlVHlwZSI6IkNSZXMiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwidHJhbnNTdGF0dXMiOiJZIn0=" } } ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIzOTMzMTA4NiIsCiAgICAiRFNfTUVSQ0hBTlRfUEFOIjogIjQ1NDg4MTAwMDAwMDAwMDNcdCIsCiAgICAiRFNfTUVSQ0hBTlRfRVhQSVJZREFURSI6ICIzMDEyIiwKICAgICJEU19NRVJDSEFOVF9DVlYyIjogIjEyMyIsCiAgICAiRFNfTUVSQ0hBTlRfRU1WM0RTIjogewogICAgICAgICJ0aHJlZURTSW5mbyI6ICJDaGFsbGVuZ2VSZXNwb25zZSIsCiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICIyLjIuMCIsCiAgICAgICAgImNyZXMiOiAiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJbVEzTkRNell6SmtMV1kwTkdRdE5EaGtZUzFoTTJFekxXVTRPRE5tTm1FNE1tWmxPU0lzSW1GamMxUnlZVzV6U1VRaU9pSm1Zak5tTTJOak1DMDVaRFF6TFRSbVlURXRPR1V3TWkxalpHSmtOR05sWVRaaE16UWlMQ0p0WlhOellXZGxWSGx3WlNJNklrTlNaWE1pTENKdFpYTnpZV2RsVm1WeWMybHZiaUk2SWpJdU1pNHdJaXdpZEhKaGJuTlRkR0YwZFhNaU9pSlpJbjA9IgogICAgfQp9 { "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIzOTMzMTA4NiIsCiAgICAiRFNfTUVSQ0hBTlRfUEFOIjogIjQ1NDg4MTAwMDAwMDAwMDNcdCIsCiAgICAiRFNfTUVSQ0hBTlRfRVhQSVJZREFURSI6ICIzMDEyIiwKICAgICJEU19NRVJDSEFOVF9DVlYyIjogIjEyMyIsCiAgICAiRFNfTUVSQ0hBTlRfRU1WM0RTIjogewogICAgICAgICJ0aHJlZURTSW5mbyI6ICJDaGFsbGVuZ2VSZXNwb25zZSIsCiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICIyLjIuMCIsCiAgICAgICAgImNyZXMiOiAiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJbVEzTkRNell6SmtMV1kwTkdRdE5EaGtZUzFoTTJFekxXVTRPRE5tTm1FNE1tWmxPU0lzSW1GamMxUnlZVzV6U1VRaU9pSm1Zak5tTTJOak1DMDVaRFF6TFRSbVlURXRPR1V3TWkxalpHSmtOR05sWVRaaE16UWlMQ0p0WlhOellXZGxWSGx3WlNJNklrTlNaWE1pTENKdFpYTnpZV2RsVm1WeWMybHZiaUk2SWpJdU1pNHdJaXdpZEhKaGJuTlRkR0YwZFhNaU9pSlpJbjA9IgogICAgfQp9", "Ds_Merchant_Signature": "ZfCZSV1Lx0pGTKXf78rBLsU3XmxD3yo1e9hOK9pROwk=", "Ds_SignatureVersion": "HMAC_SHA512_V2" } Notificación de la petición con el resultado de la autenticaciónCuando realizas una petición de autorización con éxito, recibes una notificación o respuesta con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles:Recibir y gestionar la notificación: La notificación recibida es un formulario como el que se envía en la petición. El comercio debe validar los datos recibidos en el formulario para verificar su veracidad.Información recibida en la notificación: La notificación contiene unos parámetros con detalles de la operación. Estos parámetros vienen en el campo Ds_MerchantParameters. 1. Recibir y gestionar la notificación 2. Información recibida en la notificación Una vez decodifiques los parámetros dentro de Ds_MerchantParameters, podrás ver el resultado de la operación en el parámetro Ds_Response, si la operación ha finalizado correctamente su valor será 0000. Puedes ver el resto de códigos en esta sección.Una vez recibida la notificación final el flujo de pago ha terminado. En este momento, tu sistema ya dispone del resultado final de la operación (autorizada o denegada) y debe actuar en consecuencia.Autorizada (Ds_Response = 0000):Actualizar el estado del pedido a «pagado» o «confirmado», iniciar el proceso logístico o de envío.Enviar una confirmación de compra al cliente (por email, notificación, etc.).Registrar el identificador de operación para posibles devoluciones o conciliaciones.Indicar al cliente que la operación se ha completado.Denegada: Mostrar un mensaje al cliente explicando que el pago ha fallado.Permitir reintentar la operación si procede. Asegúrate de evitar números de pedido repetidos.Registrar la operación para seguimiento por si vuelve a ocurrir el error.¿Cómo confirmar o anular las operaciones?La operación se ha completado y es una preautorización o validación de tarjeta DS_MERCHANT_TRANSACTIONTYPE = 1 o 7.En este caso, puedes completar la operación con una confirmación (capturar el importe a favor de tu comercio) o con una anulación (liberar el importe a favor del cliente). Recomendamos hacerlo en un plazo de 7 días, aunque pueden ser hasta 30 días (depende del emisor de la tarjeta):Confirmación: Tu comercio confirma el importe mediante operación REST o mediante Canales.Anulación: Tu comercio anula el importe a favor del cliente mediante operación REST o mediante Canales. Tokenización Para poder operar con tokenización el comercio tiene que pedir su activación a su oficina. La tokenización se activa para todo el comercio y sus terminales. La tokenización o generación de referencia es el proceso de convertir los datos sensibles de la tarjeta en un identificador único (token) que puede ser reutilizado para futuros pagos sin tener que almacenar los datos completos de la tarjeta.La tokenización tiene una serie de ventajas para tu comercio y operativas: En redirección, el almacenamiento del token lo gestiona el TPV Virtual, por lo que tu integración no tiene que cumplir con PCI DSS. Los tokens se asocian a nivel de comercio. Si tienes varios terminales bajo el mismo comercio, los tokens creados en uno estarán disponibles en todos. La seguridad es mayor. El nº del token no tiene valor y no puede ser utilizado fuera del sistema. Esto lo hace más seguro en robos de datos, por ejemplo. La tokenización se complementa con operativas como pagos 1-clic o pagos MIT. ¿Cómo activar la tokenización?Para activar la tokenización el comercio se lo tienes que pedir a tu oficina. Se activan para todo el comercio y sus terminales.Adicionalmente, en caso de que lo necesites, tendrás que pedir a nuestro equipo de Soporte la configuración para que te lleguen a la notificación los siguientes elementos:Los parámetros de la tarjeta asteriscados, para que puedas mostrar al cliente qué tarjeta está usando en la pasarela de pago.Más detalles sobre estos parámetros y otros campos que recibes en la notificación de tokenización en la sección de notificaciones.Funcionalidades adicionales tokenizaciónAdemás de la generación de tokens, los comercios también pueden solicitar la activación de 2 funcionalidades:1. Migración de tokensSi ya estás tokenizando tarjetas con tu actual banco, puedes migrar los tokens de las tarjetas contactando con Soporte. Ten en cuenta que en la mayoría de casos tendrá un coste asociado que te comunicará tu gestor habitual de Caixabank.2. Merchant GroupEl Merchant Group es una funcionalidad que permite que distintos comercios asociados a uno común puedan usar los tokens que se generen en este grupo por todos los comercios del mismo. Esto facilita la gestión de pagos y la utilización de tokens entre los comercios que forman parte del grupo.Para utilizar la funcionalidad Merchant Group, tienes que solicitarlo a Soporte indicando el comercio interesado.Si estás utilizando Merchant Group, los comercios solo podrán utilizar tokens si en la petición enviada incluyen el parámetro DS_MERCHANT_GROUP con el valor correspondiente al MG. Generar token o pago COF inicialLa operación de tokenización puede usarse en dos escenarios principales:Guardar el token para futuros pagos: El token se usará en pagos, como el 1-clic. El cliente autoriza que se almacene el token de la tarjeta, también tendrás que indicar el tipo de operación COF y que es inicial.Guardar token para pagos COF MIT: En este caso sería un pago COF inicial con el cliente presente. Este pago de generación de token tiene las siguientes características:Se tokeniza la tarjeta y se indica su caducidad para que el comercio la tenga en cuenta.El comercio tiene que indicar cliente el importe y la existencia de pagos recurrentes iniciados por el comercio (MIT).El cliente tiene que dar su autorización, tanto a la generación del token como a los pagos sucesivos.En cualquier caso, el cliente tendrá que autenticar la operación por 3DSecure. Por REST puedes generar el token y hacer el pago COF inicial, que es una transacción iniciada por el cliente (CIT). Esta operación inicial tiene las siguientes características:Es una operación que inicia el cliente.El cliente autentica la operación con alguno de los métodos de su banco (código de seguridad, 3DS, etc).Para lanzar pagos COF sucesivos se utiliza la exención Merchant Initiated Transaction (MIT). Estos pagos:Requieren de una operación COF inicial.Se hacen por integración REST, como puedes ver en la sección de pagos COF sucesivos MIT de este documento. Petición de tokenización o COF inicial en RESTA continuación explicamos el flujo para realizar una operación de tokenización o pago COF inicial en REST:1. iniciaPeticion: El proceso y parámetros es el mismo que el de la sección enlazada.2. Ejecución del 3DSMethod: El proceso es el mismo que el de la sección enlazada. Recuerda que este paso es opcional pero recomendable.3. Petición de autorización: En este paso, que es la primera petición al endpoint trataPeticion tienes que enviar los parámetros que indicamos a continuación para las operativas de tokenización o pago COF inicial.El proceso de envío de la petición, notificación, etc. es el mismo que el indicado en la sección enlazada.En la primera pestaña tienes los parámetros que tendrás que enviar en la petición. Además, en la pestaña DS_MERCHANT_COF_TYPE tienes el detalle de los tipos de pagos COF: 3. Parámetros petición tokenización o COF inicial 3. Valores DS_MERCHANT_COF_TYPE JSON 3DSLos parámetros del JSON 3DS que tienes que enviar son los mismos. Parámetros peticiónLos parámetros que tienes que añadir a la petición:DS_MERCHANT_IDENTIFIER con valor REQUIRED // Indica que quieres generar una referencia.DS_MERCHANT_COF_INI con valor S // Indica que es la transacción COF inicial (si fuera valor N, no lo sería).DS_MERCHANT_COF_TYPE con valor R // Indica el tipo de pago recurrente. ParámetroFormatoRequerido/OpcionalDescripciónEjemplo DS_MERCHANT_MERCHANTCODE9 caracteres NuméricoRequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987 DS_MERCHANT_TERMINAL3 caracteres NuméricoRequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99 DS_MERCHANT_AMOUNT12 caracteres NuméricoRequeridoImporte de la operación. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.1050 DS_MERCHANT_CURRENCY4 caracteres NuméricoRequeridoCódigo ISO 4217 de la divisa utilizada en la transacción. Ver códigos ISO divisas.978 DS_MERCHANT_ORDER12 caracteres Alfanumérico * (caracteres ASCII: del 48 al 57, del 65 al 90 y del 97 al 122)RequeridoCódigo de pedido. No se puede repetir un código de pedido hasta pasados 6 meses. Recomendamos que los 4 primeros dígitos sean numéricos, para evitar problemas en la liquidación. *Sólo se permiten caracteres ASCII: – Dígitos (0–9): ASCII 48 a 57. Letras mayúsculas (A–Z): ASCII 65 a 90. – Letras minúsculas (a–z): ASCII 97 a 122. – No se permiten espacios, símbolos ni acentos.1234ABcd56EF DS_MERCHANT_TRANSACTIONTYPEValores disponibles: – 0: Autorización – 1: Preautorización – 2: Confirmar preautorizaciones – 3: Devoluciones – 7: Validación de tarjeta – 8: Confirmar validaciones de tarjeta – 9: Anular preautorizaciones y autorizaciones – 46: Anular devoluciones. – 47: Anular validación de tarjeta.RequeridoTipo de transacción. El número enviado indica el tipo de transacción. 0 DS_MERCHANT_PAN19 caracteres NuméricoRequerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta. * Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)4548810000000003 DS_MERCHANT_CVV23 a 4 caracteres NuméricoRequerido*Código CVV2 de la tarjeta del cliente. * Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT. 050 DS_MERCHANT_EXPIRYDATE4 caracteres Numérico AAMMRequerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes). * Requerido cuando se envía DS_MERCHANT_PAN3012 DS_MERCHANT_CLIENTIP15 caracteres AlfanuméricoOpcional* Campo que sirve para indicar la IP del cliente. * Recomendado si tienes que enviar la IP del cliente, ya que la IP registrada en el TPV Virtual (si no se envía este parámetro) es la IP donde esté ubicado el comercio. 192.168.1.1 DS_MERCHANT_MERCHANTURL250 caracteres AlfanuméricoOpcionalURL a la que se envía la notificación. En REST la notificación se recibe de servidor a servidor, por lo que este campo es opcional y lo puedes utilizar como Backup.https://www.example.com/notification DS_MERCHANT_IDENTIFIERValores posibles: – Para generar referencia: REQUIRED – Para enviar el token generado: 40 caracteres y numéricoOpcional*Puede indicar dos cosas: – Indica la solicitud de generar la referencia. – Indica el token de la tarjeta. * Requerido para la primera operación COF, el pago 1-clic, o cuando se paga con referencia.REQUIRED DS_MERCHANT_COF_INIValores posibles: – S: Es primera transacción COF (almacena credenciales) – N: No es primera transacción COFOpcional*Indica si es la primera transacción COF. Otros valor que no sea S o N no se tendrá en cuenta. Sólo aplica a Visa y MasterCard. * Requerido para la primera operación COF y los sucesivos, sean 1-clic o MIT.S DS_MERCHANT_COF_TYPETienes la descripción de los valores en la tabla de DS_MERCHANT_COF_TYPE. Valores posibles: – I: Installments – R: Recurring – H: Reauthorization – E: Resubmission – D: Delayed – M: Incremental – N: No Show – C: OtrasOpcional*Indica el tipo de operación COF. * Requerido para las operaciones COF iniciales o sucesivas y el pago 1-clic.R DS_MERCHANT_MERCHANTDATA1024 caracteres AlfanuméricoOpcional Información que no procesa el TPV Virtual. Se devuelve sin modificar en la notificación. Se puede añadir para procesos internos.Prueba de pago en mi comercio DS_MERCHANT_TITULAR60 caracteres máximo AlfanuméricoOpcionalNombre del titular de la tarjeta.Pedro Salas DS_MERCHANT_EMV3DSObjeto JSON*OpcionalEste parámetro contiene un JSON con los parámetros necesarios para la autenticación EMV3DS (v2 y v1). * Objeto JSON serializado como string.N/A DS_MERCHANT_GROUP9 caracteres NuméricoOpcionalIndicador del código de grupo asociado a la referencia/token. Opcional si se envía el DS_MERCHANT_IDENTIFIER. DS_MERCHANT_MERCHANTNAME25 caracteres AlfanuméricoOpcionalIndica el nombre del comercio que se mostrará al cliente durante el proceso de pago. Si no se envía, se mostrará el nombre configurado en Canales. Mi comercio DS_MERCHANT_PRODUCTDESCRIPTION125 caracteres máximo AlfanuméricoOpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo DS_MERCHANT_EXCEP_SCA3 caracteres AlfanuméricoOpcional*– Para iniciaPeticion: Manda «Y» (sin comillas) para ver qué exenciones tiene disponibles el comercio. – Para trataPeticion: Permite solicitar un tipo de exención en la transacción. Valores disponibles en la sección de exenciones. *Requerido enviarlo en operaciones MIT.MIT DS_MERCHANT_MERCHANTDESCRIPTOR25 caracteres AlfanuméricoOpcionalEs un descriptor flexible. Requiere activación por parte de la entidad. Si está activado y no se envía, se enviará por defecto el nombre del comercio. * Pensado para PSPsMi comercio En la generación del token tendrás que indicar en el parámetro DS_MERCHANT_COF_TYPE para indicar el uso del token. El tipo de COF tendrá que ser el mismo en la COF inicial y en las sucesivas.Por ejemplo, si lo vas a usar para el pago de una suscripción mensual, utiliza el valor R. Para simplemente guardar el token y permitir que el cliente haga pagos 1-clic, usa C. Tipo de COFDescripción IInstallments (Pago Aplazado): Son compras individuales. El importe tiene que ser fijo y con intervalo de tiempo definido. RRecurring (Pagos recurrentes): El importe de las transacciones puede ser variable. El intervalo de tiempo tiene que ser definido. Por ejemplo, es utilizado en suscripciones a servicios de streaming. HReauthorization: Para casos donde el valor final de la operación se desconoce, o casos donde el cliente amplía un servicio que ha pagado previamente. Por ejemplo, la estancia en un hotel. EResubmission: Usado únicamente cuando la operación original se ha rechazado por saldo. No es válido en todos los sectores de actividad. Depende de la normativa de las marcas. DDelayed: Importes que se realizan a posterior de la operación principal. Por ejemplo, el minibar de un hotel o daños en un vehículo de alquiler. MIncremental: Se utiliza cuando existen gastos adicionales en un servicio contratado que no se habían previsto en la operación inicial. NNo Show: Se utiliza cuando el cliente no se presenta a una cita o compromiso contratado previamente. Por ejemplo, la reserva de un hotel. COtras: Es el valor que se envía por defecto a no ser que se marque otro tipo de COF. También se puede enviar si la operación no se corresponde con ninguna de las anteriores. Este es el campo que hay que enviar si la operación es 1-clic. Cuando generas un token, debes indicar el tipo de COF para el que se utilizará. El token generado por la pasarela será siempre el mismo mientras se use la misma tarjeta. Sin embargo, el valor del campo Ds_Merchant_Cof_Txnid (recibido en la notificación) cambia si se indica un tipo de COF diferente.Por ejemplo, si en una primera operación defines el tipo COF recurrente (R), deberás mantener el mismo Ds_Merchant_Cof_Txnid en los pagos sucesivos asociados a esa suscripción. En cambio, si realizas una operación con otro tipo de COF, como No Show (N), el token seguirá siendo el mismo, pero se generará un nuevo Ds_Merchant_Cof_Txnid específico para ese flujo. 4. Ejecución del challenge/autenticación: El proceso y parámetros es el mismo que el de la sección enlazada.5. Enviar resultado de la autenticación: En este paso, que es la segunda petición al endpoint trataPeticion tienes que enviar los parámetros que indicamos a continuación para las operativas de tokenización o pago COF inicial.El proceso de envío de la petición, notificación, etc. es el mismo que el indicado en la sección enlazada.En la primera pestaña tienes los parámetros que tendrás que enviar en la petición. Además, en la pestaña DS_MERCHANT_COF_TYPE tienes el detalle de los tipos de pagos COF: 5. Parámetros petición tokenización o COF inicial 5. Valores DS_MERCHANT_COF_TYPE JSON 3DSLos parámetros del JSON 3DS que tienes que enviar son los mismos. Parámetros peticiónLos parámetros que tienes que añadir a la petición:DS_MERCHANT_IDENTIFIER con valor REQUIRED // Indica que quieres generar una referencia.DS_MERCHANT_COF_INI con valor S // Indica que es la transacción COF inicial (si fuera valor N, no lo sería).DS_MERCHANT_COF_TYPE con valor R // Indica el tipo de pago recurrente. ParámetroFormatoRequerido/OpcionalDescripciónEjemplo DS_MERCHANT_MERCHANTCODE9 caracteres NuméricoRequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987 DS_MERCHANT_TERMINAL3 caracteres NuméricoRequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99 DS_MERCHANT_AMOUNT12 caracteres NuméricoRequeridoImporte de la operación. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.1050 DS_MERCHANT_CURRENCY4 caracteres NuméricoRequeridoCódigo ISO 4217 de la divisa utilizada en la transacción. Ver códigos ISO divisas.978 DS_MERCHANT_ORDER12 caracteres Alfanumérico * (caracteres ASCII: del 48 al 57, del 65 al 90 y del 97 al 122)RequeridoCódigo de pedido. No se puede repetir un código de pedido hasta pasados 6 meses. Recomendamos que los 4 primeros dígitos sean numéricos, para evitar problemas en la liquidación. *Sólo se permiten caracteres ASCII: – Dígitos (0–9): ASCII 48 a 57. Letras mayúsculas (A–Z): ASCII 65 a 90. – Letras minúsculas (a–z): ASCII 97 a 122. – No se permiten espacios, símbolos ni acentos.1234ABcd56EF DS_MERCHANT_TRANSACTIONTYPEValores disponibles: – 0: Autorización – 1: Preautorización – 2: Confirmar preautorizaciones – 3: Devoluciones – 7: Validación de tarjeta – 8: Confirmar validaciones de tarjeta – 9: Anular preautorizaciones y autorizaciones – 46: Anular devoluciones. – 47: Anular validación de tarjeta.RequeridoTipo de transacción. El número enviado indica el tipo de transacción. 0 DS_MERCHANT_PAN19 caracteres NuméricoRequerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta. * Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)4548810000000003 DS_MERCHANT_CVV23 a 4 caracteres NuméricoRequerido*Código CVV2 de la tarjeta del cliente. * Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT. 050 DS_MERCHANT_EXPIRYDATE4 caracteres Numérico AAMMRequerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes). * Requerido cuando se envía DS_MERCHANT_PAN3012 DS_MERCHANT_CLIENTIP15 caracteres AlfanuméricoOpcional* Campo que sirve para indicar la IP del cliente. * Recomendado si tienes que enviar la IP del cliente, ya que la IP registrada en el TPV Virtual (si no se envía este parámetro) es la IP donde esté ubicado el comercio. 192.168.1.1 DS_MERCHANT_MERCHANTURL250 caracteres AlfanuméricoOpcionalURL a la que se envía la notificación. En REST la notificación se recibe de servidor a servidor, por lo que este campo es opcional y lo puedes utilizar como Backup.https://www.example.com/notification DS_MERCHANT_IDENTIFIERValores posibles: – Para generar referencia: REQUIRED – Para enviar el token generado: 40 caracteres y numéricoOpcional*Puede indicar dos cosas: – Indica la solicitud de generar la referencia. – Indica el token de la tarjeta. * Requerido para la primera operación COF, el pago 1-clic, o cuando se paga con referencia.REQUIRED DS_MERCHANT_COF_INIValores posibles: – S: Es primera transacción COF (almacena credenciales) – N: No es primera transacción COFOpcional*Indica si es la primera transacción COF. Otros valor que no sea S o N no se tendrá en cuenta. Sólo aplica a Visa y MasterCard. * Requerido para la primera operación COF y los sucesivos, sean 1-clic o MIT.S DS_MERCHANT_COF_TYPETienes la descripción de los valores en la tabla de DS_MERCHANT_COF_TYPE. Valores posibles: – I: Installments – R: Recurring – H: Reauthorization – E: Resubmission – D: Delayed – M: Incremental – N: No Show – C: OtrasOpcional*Indica el tipo de operación COF. * Requerido para las operaciones COF iniciales o sucesivas y el pago 1-clic.R DS_MERCHANT_MERCHANTDATA1024 caracteres AlfanuméricoOpcional Información que no procesa el TPV Virtual. Se devuelve sin modificar en la notificación. Se puede añadir para procesos internos.Prueba de pago en mi comercio DS_MERCHANT_TITULAR60 caracteres máximo AlfanuméricoOpcionalNombre del titular de la tarjeta.Pedro Salas DS_MERCHANT_EMV3DSObjeto JSON*OpcionalEste parámetro contiene un JSON con los parámetros necesarios para la autenticación EMV3DS (v2 y v1). * Objeto JSON serializado como string.N/A DS_MERCHANT_GROUP9 caracteres NuméricoOpcionalIndicador del código de grupo asociado a la referencia/token. Opcional si se envía el DS_MERCHANT_IDENTIFIER. DS_MERCHANT_MERCHANTNAME25 caracteres AlfanuméricoOpcionalIndica el nombre del comercio que se mostrará al cliente durante el proceso de pago. Si no se envía, se mostrará el nombre configurado en Canales. Mi comercio DS_MERCHANT_PRODUCTDESCRIPTION125 caracteres máximo AlfanuméricoOpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo DS_MERCHANT_EXCEP_SCA3 caracteres AlfanuméricoOpcional*– Para iniciaPeticion: Manda «Y» (sin comillas) para ver qué exenciones tiene disponibles el comercio. – Para trataPeticion: Permite solicitar un tipo de exención en la transacción. Valores disponibles en la sección de exenciones. *Requerido enviarlo en operaciones MIT.MIT DS_MERCHANT_MERCHANTDESCRIPTOR25 caracteres AlfanuméricoOpcionalEs un descriptor flexible. Requiere activación por parte de la entidad. Si está activado y no se envía, se enviará por defecto el nombre del comercio. * Pensado para PSPsMi comercio En la generación del token tendrás que indicar en el parámetro DS_MERCHANT_COF_TYPE para indicar el uso del token. El tipo de COF tendrá que ser el mismo en la COF inicial y en las sucesivas.Por ejemplo, si lo vas a usar para el pago de una suscripción mensual, utiliza el valor R. Para simplemente guardar el token y permitir que el cliente haga pagos 1-clic, usa C. Tipo de COFDescripción IInstallments (Pago Aplazado): Son compras individuales. El importe tiene que ser fijo y con intervalo de tiempo definido. RRecurring (Pagos recurrentes): El importe de las transacciones puede ser variable. El intervalo de tiempo tiene que ser definido. Por ejemplo, es utilizado en suscripciones a servicios de streaming. HReauthorization: Para casos donde el valor final de la operación se desconoce, o casos donde el cliente amplía un servicio que ha pagado previamente. Por ejemplo, la estancia en un hotel. EResubmission: Usado únicamente cuando la operación original se ha rechazado por saldo. No es válido en todos los sectores de actividad. Depende de la normativa de las marcas. DDelayed: Importes que se realizan a posterior de la operación principal. Por ejemplo, el minibar de un hotel o daños en un vehículo de alquiler. MIncremental: Se utiliza cuando existen gastos adicionales en un servicio contratado que no se habían previsto en la operación inicial. NNo Show: Se utiliza cuando el cliente no se presenta a una cita o compromiso contratado previamente. Por ejemplo, la reserva de un hotel. COtras: Es el valor que se envía por defecto a no ser que se marque otro tipo de COF. También se puede enviar si la operación no se corresponde con ninguna de las anteriores. Este es el campo que hay que enviar si la operación es 1-clic. Cuando generas un token, debes indicar el tipo de COF para el que se utilizará. El token generado por la pasarela será siempre el mismo mientras se use la misma tarjeta. Sin embargo, el valor del campo Ds_Merchant_Cof_Txnid (recibido en la notificación) cambia si se indica un tipo de COF diferente.Por ejemplo, si en una primera operación defines el tipo COF recurrente (R), deberás mantener el mismo Ds_Merchant_Cof_Txnid en los pagos sucesivos asociados a esa suscripción. En cambio, si realizas una operación con otro tipo de COF, como No Show (N), el token seguirá siendo el mismo, pero se generará un nuevo Ds_Merchant_Cof_Txnid específico para ese flujo. Notificación de la petición de tokenización y pago recurrente inicialCuando realizas una petición de tokenización o de pago recurrente inicial, recibes una notificación o respuesta con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles:Recibir y gestionar la notificación: La notificación recibida es un formulario como el que se envía en la petición. El comercio debe validar los datos recibidos en el formulario para verificar su veracidad.Información recibida en la notificación: La notificación contiene unos parámetros con detalles de la operación. Estos parámetros vienen en el campo Ds_MerchantParameters. 1. Recibir y gestionar la notificación 2. Información recibida en la notificación ¿Qué parámetros debo guardar de la notificación para próximas operaciones?En la notificación de una operación de pago recurrente inicial recibes una serie de parámetros en la notificación en Ds_MerchantParameters que debes guardar para próximas operaciones como el pago 1-clic o el pago COF sucesivo MIT.Los parámetros que tienes que guardar son:Ds_Merchant_Identifier: En la notificación recibes en este campo un valor alfanumérico. Este es el token de la tarjeta que tienes que guardar para futuras operaciones. Recuerda que en la petición tienes que mandar este parámetro como «REQUIRED».Ds_CardNumber o Ds_Card_Last4: Numeración de la tarjeta asteriscado. Pueden ser la numeración completa o los últimos 4 dígitos. Guárdalo para mostrar al cliente algunos de los dígitos para que sepa qué tarjeta está utilizando.Ds_ExpiryDate: Fecha de expiración de la tarjeta utilizado. Guárdalo para mostrar al cliente en pagos posteriores cuándo caduca la tarjeta utilizada, y para saber hasta cuándo puedes usar el token. El formato es AAMM.Ds_Merchant_Cof_Txnid (opcional): Identificador de la operación original. Si no lo guardas, se incorporará automáticamente en las operaciones posteriores, aunque recomendamos guardarlo y enviarlo. Operativas con token: Credential On File (COF) La tokenización (generar una referencia de la tarjeta del cliente) se aplica en distintas operativas y casos de uso que puedes integrar en tu comercio.Las operativas en las que se almacena la tarjeta tokenizada del cliente para utilizarla, o los casos donde el comercio almacena la tarjeta real del cliente se denominan Credential on File (COF). Hay distintos tipos de pagos COF según el caso de uso, los veremos a continuación. Las operaciones Credential On File con la tarjeta real del cliente almacenada, requieren un cumplimiento de la normativa PCI.Ya sea utilizando un token o los datos de la tarjeta reales, en las operaciones COF el cliente ha tenido que dar su autorización explícita al comercio para que almacene sus datos y los utilice en operaciones posteriores.Cuando generas un token, debes indicar el tipo de COF para el que se utilizará. El token generado por la pasarela será siempre el mismo mientras se use la misma tarjeta. Sin embargo, el valor del campo Ds_Merchant_Cof_Txnid (recibido en la notificación) cambia si se indica un tipo de COF diferente.Por ejemplo, si en una primera operación defines el tipo COF recurrente (R), deberás mantener el mismo Ds_Merchant_Cof_Txnid en los pagos sucesivos asociados a esa suscripción. En cambio, si realizas una operación con otro tipo de COF, como No Show (N), el token seguirá siendo el mismo, pero se generará un nuevo Ds_Merchant_Cof_Txnid específico para ese flujo.Las operativas con la tarjeta almacenada (COF) pueden ser:Pagos iniciados por el cliente (CIT): El usuario participa activamente en la transacción. Son operaciones seguras donde el cliente autentica la operación por 3DSecure. Por ejemplo los pagos 1-clic o pagos con referencia, donde el cliente puede pagar sin volver a introducir los datos de su tarjeta. Esto es posible gracias a que el comercio ha guardado el token y lo está enviando en la petición.Pagos iniciados por el comercio (MIT): El comercio utiliza el token generado en la operación inicial y la exención MIT para enviar pagos sin interacción del cliente. El usuario ha consentido en la operación COF inicial el uso del token para pagos recurrentes. Estas operaciones son autenticadas ya que el cliente no interviene y se utiliza la exención MIT. Esta exención se utiliza para evitar la autenticación en pagos iniciados por el comercio. Tienes más información en la sección específica de Pagos MIT. Tipos de pagos COFSe tiene que identificar correctamente el tipo de transacción COF en la petición. Esto es relevante para cumplir la normativa PSD2. Se tienen que identificar las operaciones iniciadas por el cliente (CIT) y las iniciadas por el comercio (MIT), aunque es especialmente importante en los pagos MIT.En la siguiente tabla tienes los tipos de operaciones COF. Este valor se indica dentro del campo DS_MERCHANT_COF_TYPE junto al resto de campos de la petición: Tipo de COFDescripción IInstallments (Pago Aplazado): Son compras individuales. El importe tiene que ser fijo y con intervalo de tiempo definido. RRecurring (Pagos recurrentes): El importe de las transacciones puede ser variable. El intervalo de tiempo tiene que ser definido. Por ejemplo, es utilizado en suscripciones a servicios de streaming. HReauthorization: Para casos donde el valor final de la operación se desconoce, o casos donde el cliente amplía un servicio que ha pagado previamente. Por ejemplo, la estancia en un hotel. EResubmission: Usado únicamente cuando la operación original se ha rechazado por saldo. No es válido en todos los sectores de actividad. Depende de la normativa de las marcas. DDelayed: Importes que se realizan a posterior de la operación principal. Por ejemplo, el minibar de un hotel o daños en un vehículo de alquiler. MIncremental: Se utiliza cuando existen gastos adicionales en un servicio contratado que no se habían previsto en la operación inicial. NNo Show: Se utiliza cuando el cliente no se presenta a una cita o compromiso contratado previamente. Por ejemplo, la reserva de un hotel. COtras: Es el valor que se envía por defecto a no ser que se marque otro tipo de COF. También se puede enviar si la operación no se corresponde con ninguna de las anteriores. Este es el campo que hay que enviar si la operación es 1-clic. Pago 1-clic Para poder operar con pagos 1-clic el comercio tiene que pedir su activación a su oficina. El pago 1-clic es una operativa que permite al cliente pagar sin tener que volver a introducir los datos de su tarjeta. Esto es posible gracias a que se ha generado un token de su tarjeta.El cliente participa activamente en la operación y autentica por 3DSecure si es necesario. Aunque también es posible solicitar exenciones de autenticación reforzada (SCA). Operación previa de tokenizaciónEl token se obtiene siguiendo los pasos del punto anterior. En esta primera operación de tokenización:El cliente ha dado su consentimiento para generar el token y ha autenticado la operación por 3DSecure. El token queda guardado de forma segura en el sistema (sin necesidad de PCI).Una vez lanzada la operación previa de generación de token, recibirás una notificación con información sobre el token, entre otros. Petición de pago 1-clicA continuación explicamos el flujo para realizar una operación de pago 1-clic en REST:1. iniciaPeticion: El proceso y parámetros es el mismo que el de la sección enlazada.2. Ejecución del 3DSMethod: El proceso es el mismo que el de la sección enlazada. Recuerda que este paso es opcional pero recomendable.3. Petición de autorización: En este paso, que es la primera petición al endpoint trataPeticion tienes que enviar los parámetros que indicamos a continuación para el pago 1-clic.El proceso de envío de la petición, notificación, etc. es el mismo que el indicado en la sección enlazada.JSON 3DS: Los parámetros del JSON 3DS que tienes que enviar son los mismos. ParámetroFormatoRequerido/OpcionalDescripciónEjemplo DS_MERCHANT_MERCHANTCODE9 caracteres NuméricoRequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987 DS_MERCHANT_TERMINAL3 caracteres NuméricoRequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99 DS_MERCHANT_AMOUNT12 caracteres NuméricoRequeridoImporte de la operación. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.1050 DS_MERCHANT_CURRENCY4 caracteres NuméricoRequeridoCódigo ISO 4217 de la divisa utilizada en la transacción. Ver códigos ISO divisas.978 DS_MERCHANT_ORDER12 caracteres Alfanumérico * (caracteres ASCII: del 48 al 57, del 65 al 90 y del 97 al 122)RequeridoCódigo de pedido. No se puede repetir un código de pedido hasta pasados 6 meses. Recomendamos que los 4 primeros dígitos sean numéricos, para evitar problemas en la liquidación. *Sólo se permiten caracteres ASCII: – Dígitos (0–9): ASCII 48 a 57. Letras mayúsculas (A–Z): ASCII 65 a 90. – Letras minúsculas (a–z): ASCII 97 a 122. – No se permiten espacios, símbolos ni acentos.1234ABcd56EF DS_MERCHANT_TRANSACTIONTYPEValores disponibles: – 0: Autorización – 1: Preautorización – 2: Confirmar preautorizaciones – 3: Devoluciones – 7: Validación de tarjeta – 8: Confirmar validaciones de tarjeta – 9: Anular preautorizaciones y autorizaciones – 46: Anular devoluciones. – 47: Anular validación de tarjeta.RequeridoTipo de transacción. El número enviado indica el tipo de transacción. 0 DS_MERCHANT_CLIENTIP15 caracteres AlfanuméricoOpcional* Campo que sirve para indicar la IP del cliente. * Recomendado si tienes que enviar la IP del cliente, ya que la IP registrada en el TPV Virtual (si no se envía este parámetro) es la IP donde esté ubicado el comercio. 192.168.1.1 DS_MERCHANT_MERCHANTURL250 caracteres AlfanuméricoOpcionalURL a la que se envía la notificación. En REST la notificación se recibe de servidor a servidor, por lo que este campo es opcional y lo puedes utilizar como Backup.https://www.example.com/notification DS_MERCHANT_IDENTIFIERValores posibles: – Para generar referencia: REQUIRED – Para enviar el token generado: 40 caracteres y numéricoOpcional*Puede indicar dos cosas: – Indica la solicitud de generar la referencia. – Indica el token de la tarjeta. * Requerido para la primera operación COF, el pago 1-clic, o cuando se paga con referencia.REQUIRED DS_MERCHANT_COF_INIValores posibles: – S: Es primera transacción COF (almacena credenciales) – N: No es primera transacción COFOpcional*Indica si es la primera transacción COF. Otros valor que no sea S o N no se tendrá en cuenta. Sólo aplica a Visa y MasterCard. * Requerido para la primera operación COF y los sucesivos, sean 1-clic o MIT.S DS_MERCHANT_COF_TYPETienes la descripción de los valores en la tabla de DS_MERCHANT_COF_TYPE. Valores posibles: – I: Installments – R: Recurring – H: Reauthorization – E: Resubmission – D: Delayed – M: Incremental – N: No Show – C: OtrasOpcional*Indica el tipo de operación COF. * Requerido para las operaciones COF iniciales o sucesivas y el pago 1-clic.R DS_MERCHANT_COF_TXNID15 caracteres AlfanuméricoOpcional** Opcional pero recomendable en operaciones COF. Lo recibes en la notificación del primer pago COF, lo puedes enviar en las siguientes cuando uses el token.2006031152000 DS_MERCHANT_MERCHANTDATA1024 caracteres AlfanuméricoOpcional Información que no procesa el TPV Virtual. Se devuelve sin modificar en la notificación. Se puede añadir para procesos internos.Prueba de pago en mi comercio DS_MERCHANT_TITULAR60 caracteres máximo AlfanuméricoOpcionalNombre del titular de la tarjeta.Pedro Salas DS_MERCHANT_EMV3DSObjeto JSON*OpcionalEste parámetro contiene un JSON con los parámetros necesarios para la autenticación EMV3DS (v2 y v1). * Objeto JSON serializado como string.N/A DS_MERCHANT_GROUP9 caracteres NuméricoOpcionalIndicador del código de grupo asociado a la referencia/token. Opcional si se envía el DS_MERCHANT_IDENTIFIER. DS_MERCHANT_MERCHANTNAME25 caracteres AlfanuméricoOpcionalIndica el nombre del comercio que se mostrará al cliente durante el proceso de pago. Si no se envía, se mostrará el nombre configurado en Canales. Mi comercio DS_MERCHANT_PRODUCTDESCRIPTION125 caracteres máximo AlfanuméricoOpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo DS_MERCHANT_EXCEP_SCA3 caracteres AlfanuméricoOpcional*– Para iniciaPeticion: Manda «Y» (sin comillas) para ver qué exenciones tiene disponibles el comercio. – Para trataPeticion: Permite solicitar un tipo de exención en la transacción. Valores disponibles en la sección de exenciones. *Requerido enviarlo en operaciones MIT.MIT DS_MERCHANT_MERCHANTDESCRIPTOR25 caracteres AlfanuméricoOpcionalEs un descriptor flexible. Requiere activación por parte de la entidad. Si está activado y no se envía, se enviará por defecto el nombre del comercio. * Pensado para PSPsMi comercio 4. Ejecución del challenge/autenticación: El proceso y parámetros es el mismo que el de la sección enlazada.5. Enviar resultado de la autenticación: En este paso, que es la segunda petición al endpoint trataPeticion tienes que enviar los parámetros que indicamos a continuación para la operativa de pago 1-clic.El proceso de envío de la petición, notificación, etc. es el mismo que el indicado en la sección enlazada.JSON 3DS: Los parámetros del JSON 3DS que tienes que enviar son los mismos. ParámetroFormatoRequerido/OpcionalDescripciónEjemplo DS_MERCHANT_MERCHANTCODE9 caracteres NuméricoRequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987 DS_MERCHANT_TERMINAL3 caracteres NuméricoRequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99 DS_MERCHANT_AMOUNT12 caracteres NuméricoRequeridoImporte de la operación. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.1050 DS_MERCHANT_CURRENCY4 caracteres NuméricoRequeridoCódigo ISO 4217 de la divisa utilizada en la transacción. Ver códigos ISO divisas.978 DS_MERCHANT_ORDER12 caracteres Alfanumérico * (caracteres ASCII: del 48 al 57, del 65 al 90 y del 97 al 122)RequeridoCódigo de pedido. No se puede repetir un código de pedido hasta pasados 6 meses. Recomendamos que los 4 primeros dígitos sean numéricos, para evitar problemas en la liquidación. *Sólo se permiten caracteres ASCII: – Dígitos (0–9): ASCII 48 a 57. Letras mayúsculas (A–Z): ASCII 65 a 90. – Letras minúsculas (a–z): ASCII 97 a 122. – No se permiten espacios, símbolos ni acentos.1234ABcd56EF DS_MERCHANT_TRANSACTIONTYPEValores disponibles: – 0: Autorización – 1: Preautorización – 2: Confirmar preautorizaciones – 3: Devoluciones – 7: Validación de tarjeta – 8: Confirmar validaciones de tarjeta – 9: Anular preautorizaciones y autorizaciones – 46: Anular devoluciones. – 47: Anular validación de tarjeta.RequeridoTipo de transacción. El número enviado indica el tipo de transacción. 0 DS_MERCHANT_CLIENTIP15 caracteres AlfanuméricoOpcional* Campo que sirve para indicar la IP del cliente. * Recomendado si tienes que enviar la IP del cliente, ya que la IP registrada en el TPV Virtual (si no se envía este parámetro) es la IP donde esté ubicado el comercio. 192.168.1.1 DS_MERCHANT_MERCHANTURL250 caracteres AlfanuméricoOpcionalURL a la que se envía la notificación. En REST la notificación se recibe de servidor a servidor, por lo que este campo es opcional y lo puedes utilizar como Backup.https://www.example.com/notification DS_MERCHANT_IDENTIFIERValores posibles: – Para generar referencia: REQUIRED – Para enviar el token generado: 40 caracteres y numéricoOpcional*Puede indicar dos cosas: – Indica la solicitud de generar la referencia. – Indica el token de la tarjeta. * Requerido para la primera operación COF, el pago 1-clic, o cuando se paga con referencia.REQUIRED DS_MERCHANT_COF_INIValores posibles: – S: Es primera transacción COF (almacena credenciales) – N: No es primera transacción COFOpcional*Indica si es la primera transacción COF. Otros valor que no sea S o N no se tendrá en cuenta. Sólo aplica a Visa y MasterCard. * Requerido para la primera operación COF y los sucesivos, sean 1-clic o MIT.S DS_MERCHANT_COF_TYPETienes la descripción de los valores en la tabla de DS_MERCHANT_COF_TYPE. Valores posibles: – I: Installments – R: Recurring – H: Reauthorization – E: Resubmission – D: Delayed – M: Incremental – N: No Show – C: OtrasOpcional*Indica el tipo de operación COF. * Requerido para las operaciones COF iniciales o sucesivas y el pago 1-clic.R DS_MERCHANT_COF_TXNID15 caracteres AlfanuméricoOpcional** Opcional pero recomendable en operaciones COF. Lo recibes en la notificación del primer pago COF, lo puedes enviar en las siguientes cuando uses el token.2006031152000 DS_MERCHANT_MERCHANTDATA1024 caracteres AlfanuméricoOpcional Información que no procesa el TPV Virtual. Se devuelve sin modificar en la notificación. Se puede añadir para procesos internos.Prueba de pago en mi comercio DS_MERCHANT_TITULAR60 caracteres máximo AlfanuméricoOpcionalNombre del titular de la tarjeta.Pedro Salas DS_MERCHANT_EMV3DSObjeto JSON*OpcionalEste parámetro contiene un JSON con los parámetros necesarios para la autenticación EMV3DS (v2 y v1). * Objeto JSON serializado como string.N/A DS_MERCHANT_GROUP9 caracteres NuméricoOpcionalIndicador del código de grupo asociado a la referencia/token. Opcional si se envía el DS_MERCHANT_IDENTIFIER. DS_MERCHANT_MERCHANTNAME25 caracteres AlfanuméricoOpcionalIndica el nombre del comercio que se mostrará al cliente durante el proceso de pago. Si no se envía, se mostrará el nombre configurado en Canales. Mi comercio DS_MERCHANT_PRODUCTDESCRIPTION125 caracteres máximo AlfanuméricoOpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo DS_MERCHANT_EXCEP_SCA3 caracteres AlfanuméricoOpcional*– Para iniciaPeticion: Manda «Y» (sin comillas) para ver qué exenciones tiene disponibles el comercio. – Para trataPeticion: Permite solicitar un tipo de exención en la transacción. Valores disponibles en la sección de exenciones. *Requerido enviarlo en operaciones MIT.MIT DS_MERCHANT_MERCHANTDESCRIPTOR25 caracteres AlfanuméricoOpcionalEs un descriptor flexible. Requiere activación por parte de la entidad. Si está activado y no se envía, se enviará por defecto el nombre del comercio. * Pensado para PSPsMi comercio Notificación de la petición de pago 1-clicCuando realizas una petición de pago 1-clic, recibes una notificación o respuesta con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles:Recibir y gestionar la notificación: La notificación recibida es un formulario como el que se envía en la petición. El comercio debe validar los datos recibidos en el formulario para verificar su veracidad.Información recibida en la notificación: La notificación contiene unos parámetros con detalles de la operación. Estos parámetros vienen en el campo Ds_MerchantParameters. 1. Recibir y gestionar la notificación 2. Información recibida en la notificación Pagos COF Sucesivos (MIT) Para poder operar con pagos MIT el comercio tiene que pedir su activación a su oficina. Los pagos COF sucesivos son operaciones iniciadas por el comercio (MIT) en las que el cliente no tiene interacción, pero que ha dado su consentimiento en una operación previa. Estas operaciones se ejecutan pidiendo la exención MIT, que se indica en el parámetro: DS_MERCHANT_EXCEP_SCA = MIT.En los pagos COF sucesivos es posible solicitar la exención porque existe una operación COF inicial que cumple las condiciones necesarias:En la operación inicial el cliente se ha autenticado mediante 3DSecure y ha dado su consentimiento para que se genere el token y se utilice en pagos sucesivos.En las siguientes operaciones el comercio puede reclamar la exención MIT, ya que el titular ya autorizó el uso del token en el pago inicial.El pago COF inicial lo puedes hacer de 2 formas:Si tienes una integración por Redirección, puedes realizar el pago COF inicial sin tener que cumplir con PCI DSS.Para hacer el pago COF inicial por REST, consulta la sección enlazada (tendrás que cumplir PCI DSS).Características de las operaciones de pagos COF sucesivos (MIT)Estas operaciones no piden autenticación del cliente, por lo que son calificadas como no seguras. Un ejemplo sería el pago de una suscripción.Las operaciones COF sucesivas MIT se indican en la petición con parámetros específicos que indican la exención MIT y el tipo de pago COF. Estos parámetros los verás a continuación.Sólo se pueden lanzar desde una integración REST. Sin embargo, el inicial se puede lanzar tanto por REST como redirección.El cliente NO está presente. Por este motivo, en el pago inicial el cliente tiene que autenticar y dar su consentimiento para las operaciones posteriores.Se pueden realizar cobros adicionales, como propinas o cargos extra. El cliente tendrá que aprobarlos previamente.Hay distintos tipos de pagos COF recurrentes. Consulta la tabla para más detalles. Recomendamos que el tipo de pago COF utilizado en la operación inicial se mantenga durante todas las recurrentes.Puedes ver el tipo de pago COF en esta tabla. Recuerda que este valor se envía dentro del campo DS_MERCHANT_COF_TYPE junto al resto de campos de la petición. : Tipo de COFDescripción IInstallments (Pago Aplazado): Son compras individuales. El importe tiene que ser fijo y con intervalo de tiempo definido. RRecurring (Pagos recurrentes): El importe de las transacciones puede ser variable. El intervalo de tiempo tiene que ser definido. Por ejemplo, es utilizado en suscripciones a servicios de streaming. HReauthorization: Para casos donde el valor final de la operación se desconoce, o casos donde el cliente amplía un servicio que ha pagado previamente. Por ejemplo, la estancia en un hotel. EResubmission: Usado únicamente cuando la operación original se ha rechazado por saldo. No es válido en todos los sectores de actividad. Depende de la normativa de las marcas. DDelayed: Importes que se realizan a posterior de la operación principal. Por ejemplo, el minibar de un hotel o daños en un vehículo de alquiler. MIncremental: Se utiliza cuando existen gastos adicionales en un servicio contratado que no se habían previsto en la operación inicial. NNo Show: Se utiliza cuando el cliente no se presenta a una cita o compromiso contratado previamente. Por ejemplo, la reserva de un hotel. COtras: Es el valor que se envía por defecto a no ser que se marque otro tipo de COF. También se puede enviar si la operación no se corresponde con ninguna de las anteriores. Este es el campo que hay que enviar si la operación es 1-clic. Parámetros de Pagos COF Sucesivos (MIT)Estos son los parámetros que tienes que enviar en un solicitud de pago COF sucesivo iniciado por el comercio (MIT): ParámetroFormatoRequerido/OpcionalDescripciónEjemplo DS_MERCHANT_MERCHANTCODE9 caracteres NuméricoRequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987 DS_MERCHANT_TERMINAL3 caracteres NuméricoRequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99 DS_MERCHANT_AMOUNT12 caracteres NuméricoRequeridoImporte de la operación. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.1050 DS_MERCHANT_CURRENCY4 caracteres NuméricoRequeridoCódigo ISO 4217 de la divisa utilizada en la transacción. Ver códigos ISO divisas.978 DS_MERCHANT_ORDER12 caracteres Alfanumérico * (caracteres ASCII: del 48 al 57, del 65 al 90 y del 97 al 122)RequeridoCódigo de pedido. No se puede repetir un código de pedido hasta pasados 6 meses. Recomendamos que los 4 primeros dígitos sean numéricos, para evitar problemas en la liquidación. *Sólo se permiten caracteres ASCII: – Dígitos (0–9): ASCII 48 a 57. Letras mayúsculas (A–Z): ASCII 65 a 90. – Letras minúsculas (a–z): ASCII 97 a 122. – No se permiten espacios, símbolos ni acentos.1234ABcd56EF DS_MERCHANT_TRANSACTIONTYPEValores disponibles: – 0: Autorización – 1: Preautorización – 2: Confirmar preautorizaciones – 3: Devoluciones – 7: Validación de tarjeta – 8: Confirmar validaciones de tarjeta – 9: Anular preautorizaciones y autorizaciones – 46: Anular devoluciones. – 47: Anular validación de tarjeta.RequeridoTipo de transacción. El número enviado indica el tipo de transacción. 0 DS_MERCHANT_PAN19 caracteres NuméricoRequerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta. * Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)4548810000000003 DS_MERCHANT_CVV23 a 4 caracteres NuméricoRequerido*Código CVV2 de la tarjeta del cliente. * Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT. 050 DS_MERCHANT_EXPIRYDATE4 caracteres Numérico AAMMRequerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes). * Requerido cuando se envía DS_MERCHANT_PAN3012 DS_MERCHANT_CLIENTIP15 caracteres AlfanuméricoOpcional* Campo que sirve para indicar la IP del cliente. * Recomendado si tienes que enviar la IP del cliente, ya que la IP registrada en el TPV Virtual (si no se envía este parámetro) es la IP donde esté ubicado el comercio. 192.168.1.1 DS_MERCHANT_MERCHANTURL250 caracteres AlfanuméricoOpcionalURL a la que se envía la notificación. En REST la notificación se recibe de servidor a servidor, por lo que este campo es opcional y lo puedes utilizar como Backup.https://www.example.com/notification DS_MERCHANT_IDENTIFIERValores posibles: – Para generar referencia: REQUIRED – Para enviar el token generado: 40 caracteres y numéricoOpcional*Puede indicar dos cosas: – Indica la solicitud de generar la referencia. – Indica el token de la tarjeta. * Requerido para la primera operación COF, el pago 1-clic, o cuando se paga con referencia.REQUIRED DS_MERCHANT_COF_INIValores posibles: – S: Es primera transacción COF (almacena credenciales) – N: No es primera transacción COFOpcional*Indica si es la primera transacción COF. Otros valor que no sea S o N no se tendrá en cuenta. Sólo aplica a Visa y MasterCard. * Requerido para la primera operación COF y los sucesivos, sean 1-clic o MIT.S DS_MERCHANT_COF_TYPETienes la descripción de los valores en la tabla de DS_MERCHANT_COF_TYPE. Valores posibles: – I: Installments – R: Recurring – H: Reauthorization – E: Resubmission – D: Delayed – M: Incremental – N: No Show – C: OtrasOpcional*Indica el tipo de operación COF. * Requerido para las operaciones COF iniciales o sucesivas y el pago 1-clic.R DS_MERCHANT_COF_TXNID15 caracteres AlfanuméricoOpcional** Opcional pero recomendable en operaciones COF. Lo recibes en la notificación del primer pago COF, lo puedes enviar en las siguientes cuando uses el token.2006031152000 DS_MERCHANT_MERCHANTDATA1024 caracteres AlfanuméricoOpcional Información que no procesa el TPV Virtual. Se devuelve sin modificar en la notificación. Se puede añadir para procesos internos.Prueba de pago en mi comercio DS_MERCHANT_TITULAR60 caracteres máximo AlfanuméricoOpcionalNombre del titular de la tarjeta.Pedro Salas DS_MERCHANT_GROUP9 caracteres NuméricoOpcionalIndicador del código de grupo asociado a la referencia/token. Opcional si se envía el DS_MERCHANT_IDENTIFIER. DS_MERCHANT_MERCHANTNAME25 caracteres AlfanuméricoOpcionalIndica el nombre del comercio que se mostrará al cliente durante el proceso de pago. Si no se envía, se mostrará el nombre configurado en Canales. Mi comercio DS_MERCHANT_PRODUCTDESCRIPTION125 caracteres máximo AlfanuméricoOpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo DS_MERCHANT_EXCEP_SCA3 caracteres AlfanuméricoOpcional*– Para iniciaPeticion: Manda «Y» (sin comillas) para ver qué exenciones tiene disponibles el comercio. – Para trataPeticion: Permite solicitar un tipo de exención en la transacción. Valores disponibles en la sección de exenciones. *Requerido enviarlo en operaciones MIT.MIT DS_MERCHANT_DIRECTPAYMENTValores posibles: – true – motoOpcional*Identifica si es un pago directo por parte del comercio (sin autenticación). – Si se envía true, la operación se identifica como sin autenticación. (esto no se tendrá en cuenta si la tarjeta está afectada por PSD2). – Si se envía moto, la operación se identifica como pago MOTO. *Requerido enviarlo en operaciones que inicia el comercio, como los pagos MIT. Y en pagos MOTO.true DS_MERCHANT_MERCHANTDESCRIPTOR25 caracteres AlfanuméricoOpcionalEs un descriptor flexible. Requiere activación por parte de la entidad. Si está activado y no se envía, se enviará por defecto el nombre del comercio. * Pensado para PSPsMi comercio Además de los parámetros requeridos de todas las operativas, como se indica en la tabla, en los pagos COF sucesivos tienes que añadir los siguientes campos que sin indican en la tabla a la petición:Puedes enviar el token de la tarjeta (DS_MERCHANT_IDENTIFIER) o los datos de la tarjeta (DS_MERCHANT_PAN y DS_MERCHANT_EXPIRYDATE, si envías los datos de la tarjeta NO tendrás que enviar el CVV). Recomendamos generar token de la tarjeta en el pago recurrente inicial y usarlo en los sucesivos.DS_MERCHANT_EXCEP_SCA, muy importante, para indicar que es una operación iniciada por el comercio (valor MIT).DS_MERCHANT_DIRECTPAYMENT, con valor true para indicar que es una operación no segura.DS_MERCHANT_COF_INI, para indicar que no es la primera operación COF (valor N). Para la operativa de pago recurrente sucesivo, el valor de DS_MERCHANT_TRANSACTIONTYPE es 0. Envío de la petición del pago COF sucesivo Estos parámetros deben codificarse en BASE64 y enviarse dentro del campo Ds_MerchantParameters, junto con el resto de campos necesarios en el formulario. A continuación te mostramos un ejemplo de: Los parámetros que se envían en Ds_MerchantParameters en formato JSON. Los parámetros del JSON codificados en BASE64. Este es el valor enviado en Ds_MerchantParameters. El formulario completo que debes enviar. Consulta el resto de campos en la integración REST. Ds_MerchantParameters JSON Ds_MerchantParameters BASE64 Formulario completo REST { "DS_MERCHANT_ORDER": "632381965", "DS_MERCHANT_MERCHANTCODE": "999008881", "DS_MERCHANT_TERMINAL": "001", "DS_MERCHANT_CURRENCY": "978", "DS_MERCHANT_TRANSACTIONTYPE": "0", "DS_MERCHANT_AMOUNT": "950", "DS_MERCHANT_IDENTIFIER":"d20712480feef6b4ec3480fa091af91d1b45ba90", "DS_MERCHANT_COF_INI":"N", "DS_MERCHANT_DIRECTPAYMENT":"true", "DS_MERCHANT_EXCEP_SCA":"MIT" } ewogICAgIkRTX01FUkNIQU5UX09SREVSIjogIjYzMjM4MTk2NSIsCiAgICAiRFNfTUVSQ0hBTlRfTUVSQ0hBTlRDT0RFIjogIjk5OTAwODg4MSIsCiAgICAiRFNfTUVSQ0hBTlRfVEVSTUlOQUwiOiAiMDAxIiwKICAgICJEU19NRVJDSEFOVF9DVVJSRU5DWSI6ICI5NzgiLAogICAgIkRTX01FUkNIQU5UX1RSQU5TQUNUSU9OVFlQRSI6ICIwIiwKICAgICJEU19NRVJDSEFOVF9BTU9VTlQiOiAiOTUwIiwKICAgICJEU19NRVJDSEFOVF9JREVOVElGSUVSIjoiZDIwNzEyNDgwZmVlZjZiNGVjMzQ4MGZhMDkxYWY5MWQxYjQ1YmE5MCIsCiAgICAiRFNfTUVSQ0hBTlRfQ09GX0lOSSI6Ik4iLAogICAgIkRTX01FUkNIQU5UX0RJUkVDVFBBWU1FTlQiOiJ0cnVlIiwKICAgICJEU19NRVJDSEFOVF9FWENFUF9TQ0EiOiJNSVQiCn0= { "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX09SREVSIjogIjYzMjM4MTk2NSIsCiAgICAiRFNfTUVSQ0hBTlRfTUVSQ0hBTlRDT0RFIjogIjk5OTAwODg4MSIsCiAgICAiRFNfTUVSQ0hBTlRfVEVSTUlOQUwiOiAiMDAxIiwKICAgICJEU19NRVJDSEFOVF9DVVJSRU5DWSI6ICI5NzgiLAogICAgIkRTX01FUkNIQU5UX1RSQU5TQUNUSU9OVFlQRSI6ICIwIiwKICAgICJEU19NRVJDSEFOVF9BTU9VTlQiOiAiOTUwIiwKICAgICJEU19NRVJDSEFOVF9JREVOVElGSUVSIjoiZDIwNzEyNDgwZmVlZjZiNGVjMzQ4MGZhMDkxYWY5MWQxYjQ1YmE5MCIsCiAgICAiRFNfTUVSQ0hBTlRfQ09GX0lOSSI6Ik4iLAogICAgIkRTX01FUkNIQU5UX0RJUkVDVFBBWU1FTlQiOiJ0cnVlIiwKICAgICJEU19NRVJDSEFOVF9FWENFUF9TQ0EiOiJNSVQiCn0=", "Ds_Merchant_Signature": "DLsO8PWspG1yhViVzJ3YjC3n9qARsWyQEfooebL75V0=", "Ds_SignatureVersion": "HMAC_SHA512_V2" } Notificación del pago recurrente sucesivoUna vez realizada la petición de pago recurrente sucesivo con éxito, recibes la respuesta del TPV Virtual con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles:Recibir y gestionar la notificación: La notificación recibida es un formulario como el que se envía en la petición. El comercio debe validar los datos recibidos en el formulario para verificar su veracidad.Información recibida en la notificación: La notificación contiene unos parámetros con detalles de la operación. Estos parámetros vienen en el campo Ds_MerchantParameters. 1. Recibir y gestionar la notificación 2. Información recibida en la notificación Operativas con DCC Esta funcionalidad la tiene que activar Soporte. Contacta con Soporte para la activación de DCC. ¿Qué son los pagos DCC?Los pagos DCC (Dynamic Currency Conversion) permiten al cliente pagar con la divisa de su tarjeta en tu pasarela de pago, aunque la divisa configurada en tu TPV Virtual sea distinta.Por ejemplo, tu TPV Virtual está configurado en euros (€) y un cliente quiere pagar con su tarjeta, que está en dólares ($). En este caso, el cliente podrá pagar en dólares (sujeto a tasa de cambio). ¿Qué necesito modificar para integrar los pagos DCC?Tendrás que modificar algunos de los parámetros que se envían durante el flujo de operaciones REST. Lo detallaremos a continuación. Puedes hacer pagos DCC en cualquier operación de pago: autorización, preautorización, etc. (Siempre que tengas activo DCC). Tendrás que informar al cliente sobre la posibilidad de pagar en la moneda de tu TPV o en la divisa de su tarjeta. Si tienes una integración REST, tendrás que preparar esta pantalla e informar al cliente del tipo de cambio y las divisas disponibles. Esta información te la da el TPV Virtual en la notificación de la primera petición.Importante: Es el cliente quien tiene que elegir con qué divisa pagar la operación. En ningún caso el comercio puede elegir por el cliente. Flujo DCC en RESTLos pagos DCC en REST siguen casi el mismo flujo que el resto de operaciones (con autenticación 3DS o sin ella). Este es el flujo de DCC en REST:Enviar operación iniciaPeticion: En esta primera operación se solicitan datos de la tarjeta. En la notificación sabremos si la tarjeta admite DCC y si requiere autenticación 3DS.Ejecutar el 3DSMethod: Paso opcional pero recomendable si la tarjeta requiere autenticación 3DS.Recoger datos y pintar pantalla: Con la información recibida en el iniciaPeticion, tienes que preparar una pantalla donde informes de la opción de DCC, el tipo de cambio, comisiones, etc.El cliente decide pagar con la moneda del TPV (flujo de la operación, con autenticación o sin ella, que estés realizando).El cliente decide pagar con DCC (seguimos con los pasos de esta sección).Enviar operación DCC (1º trataPeticion): Enviamos la petición de autorización con los datos DCC obtenidos en el iniciaPeticion. La operación puede finalizar o continuar en este paso, dependiendo de:Finaliza: Si es frictionless y la operación es autorizada o si es KO.Continua: Si el flujo solicita challenge.Ejecutar challenge/autenticación: Si el emisor requiere más datos, tendremos que realizar autenticación con los datos recibidos en la notificación del paso anterior.Enviar resultado de la autenticación (2º trataPeticion): Si hemos realizado autenticación (paso 5), enviamos otro trataPeticion con el resultado para finalizar el flujo.En las siguientes secciones vamos a ver en detalle los pasos para hacer operaciones DCC en REST. Recuerda que cualquier operación de cobro puede ser DCC. Paso 1: IniciaPeticion DCCEl primer paso en un pago con DCC en REST es enviar la petición iniciaPeticion. En esta petición se solicita información sobre la capacidad de la tarjeta del cliente en cuanto a:Versión del protocolo 3DS a utilizar. O si requiere autenticación 3DS o no. Exenciones disponibles.Posible aplicación de DCC.Esta información se devuelve en la respuesta de la petición, como verás a continuación. Parámetros de la petición iniciaPeticion DCCEstos son los parámetros requeridos y opcionales que tienes que enviar en Ds_MerchantParameters del iniciaPeticion de una operación DCC: ParámetroFormatoRequerido/OpcionalDescripciónEjemplo DS_MERCHANT_MERCHANTCODE9 caracteres NuméricoRequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987 DS_MERCHANT_TERMINAL3 caracteres NuméricoRequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99 DS_MERCHANT_AMOUNT12 caracteres NuméricoRequeridoImporte de la operación. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.1050 DS_MERCHANT_CURRENCY4 caracteres NuméricoRequeridoCódigo ISO 4217 de la divisa utilizada en la transacción. Ver códigos ISO divisas.978 DS_MERCHANT_ORDER12 caracteres Alfanumérico * (caracteres ASCII: del 48 al 57, del 65 al 90 y del 97 al 122)RequeridoCódigo de pedido. No se puede repetir un código de pedido hasta pasados 6 meses. Recomendamos que los 4 primeros dígitos sean numéricos, para evitar problemas en la liquidación. *Sólo se permiten caracteres ASCII: – Dígitos (0–9): ASCII 48 a 57. Letras mayúsculas (A–Z): ASCII 65 a 90. – Letras minúsculas (a–z): ASCII 97 a 122. – No se permiten espacios, símbolos ni acentos.1234ABcd56EF DS_MERCHANT_TRANSACTIONTYPEValores disponibles: – 0: Autorización – 1: Preautorización – 2: Confirmar preautorizaciones – 3: Devoluciones – 7: Validación de tarjeta – 8: Confirmar validaciones de tarjeta – 9: Anular preautorizaciones y autorizaciones – 46: Anular devoluciones. – 47: Anular validación de tarjeta.RequeridoTipo de transacción. El número enviado indica el tipo de transacción. 0 DS_MERCHANT_PAN19 caracteres NuméricoRequerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta. * Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)4548810000000003 DS_MERCHANT_CVV23 a 4 caracteres NuméricoRequerido*Código CVV2 de la tarjeta del cliente. * Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT. 050 DS_MERCHANT_EXPIRYDATE4 caracteres Numérico AAMMRequerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes). * Requerido cuando se envía DS_MERCHANT_PAN3012 DS_MERCHANT_CLIENTIP15 caracteres AlfanuméricoOpcional* Campo que sirve para indicar la IP del cliente. * Recomendado si tienes que enviar la IP del cliente, ya que la IP registrada en el TPV Virtual (si no se envía este parámetro) es la IP donde esté ubicado el comercio. 192.168.1.1 DS_MERCHANT_MERCHANTDATA1024 caracteres AlfanuméricoOpcional Información que no procesa el TPV Virtual. Se devuelve sin modificar en la notificación. Se puede añadir para procesos internos.Prueba de pago en mi comercio DS_MERCHANT_TITULAR60 caracteres máximo AlfanuméricoOpcionalNombre del titular de la tarjeta.Pedro Salas DS_MERCHANT_DCCHay 2 formatos posibles: – iniciaPeticion: «Y» o «N» – trataPeticion: Objeto JSON (monedaDCC y importeDCC)Opcional** Requerido en operaciones DCC. – iniciaPeticion: Campo que indica la solicitud de información DCC – trataPeticion: Objeto JSON donde se envían los datos DCC de la operación. – iniciaPeticion: Y – trataPeticion: Objeto JSON (ver campos enviados en la tabla inferior) DS_MERCHANT_EMV3DSObjeto JSON*OpcionalEste parámetro contiene un JSON con los parámetros necesarios para la autenticación EMV3DS (v2 y v1). * Objeto JSON serializado como string.N/A DS_MERCHANT_MERCHANTNAME25 caracteres AlfanuméricoOpcionalIndica el nombre del comercio que se mostrará al cliente durante el proceso de pago. Si no se envía, se mostrará el nombre configurado en Canales. Mi comercio DS_MERCHANT_PRODUCTDESCRIPTION125 caracteres máximo AlfanuméricoOpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo DS_MERCHANT_EXCEP_SCA3 caracteres AlfanuméricoOpcional*– Para iniciaPeticion: Manda «Y» (sin comillas) para ver qué exenciones tiene disponibles el comercio. – Para trataPeticion: Permite solicitar un tipo de exención en la transacción. Valores disponibles en la sección de exenciones. *Requerido enviarlo en operaciones MIT.MIT DS_MERCHANT_MERCHANTDESCRIPTOR25 caracteres AlfanuméricoOpcionalEs un descriptor flexible. Requiere activación por parte de la entidad. Si está activado y no se envía, se enviará por defecto el nombre del comercio. * Pensado para PSPsMi comercio El valor de DS_MERCHANT_TRANSACTIONTYPE cambia según la operativa que esté realizando:Para autorización es 0.Para preautorización es 1.Para validación de tarjeta es 7. Además, también tienes que enviar los siguientes parámetros 3DS: ParámetroFormatoOpcional/RecomendadoDescripciónEjemplo threeDSInfoValores posibles: – CardData: Indica que solicitas información de la tarjeta. – AuthenticationData – ChallengeResponse: Indica que estás respondiendo al challenge. – 3RI-Recurring – 3RI-OTARecomendadoTipo de solicitud 3DS. CardData Envío de la petición iniciaPeticion DCCEstos son los endpoints donde enviar la petición: Tipo de peticiónEntornoURL iniciaPeticionPruebashttps://sis-t.redsys.es:25443/sis/rest/iniciaPeticionREST Producciónhttps://sis.redsys.es/sis/rest/iniciaPeticionREST Estos parámetros deben codificarse en BASE64 y enviarse dentro del campo Ds_MerchantParameters, junto con el resto de campos necesarios en el formulario. A continuación te mostramos un ejemplo de:Los parámetros que se envían en Ds_MerchantParameters en formato JSON.Los parámetros del JSON codificados en BASE64. Este es el valor enviado en Ds_MerchantParameters.El formulario completo que debes enviar. Consulta el resto de campos en la integración REST. Ds_MerchantParameters JSON Ds_MerchantParameters BASE64 Formulario completo REST { "DS_MERCHANT_MERCHANTCODE": "999008881", "DS_MERCHANT_TERMINAL": "99", "DS_MERCHANT_TRANSACTIONTYPE": "0", "DS_MERCHANT_AMOUNT": "100", "DS_MERCHANT_CURRENCY": "978", "DS_MERCHANT_ORDER": "24370986", "DS_MERCHANT_EXPIRYDATE": "3012", "DS_MERCHANT_CVV2": "123", "DS_MERCHANT_DCC": "Y", "Ds_Merchant_Excep_SCA": "Y", // solicitas información de si hay exenciones disponibles "DS_MERCHANT_PAN": "4548810000000003", "DS_MERCHANT_EMV3DS": { "threeDSInfo": "CardData" // indicas que solicitas información de la tarjeta } } ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIyNDM3MDk4NiIsCiAgICAiRHNfTWVyY2hhbnRfRXhjZXBfU0NBIjogIlkiLAogICAgIkRTX01FUkNIQU5UX1BBTiI6ICI0NTQ4ODEwMDAwMDAwMDAzIiwKICAgICJEU19NRVJDSEFOVF9FTVYzRFMiOiB7CiAgICAgICAgInRocmVlRFNJbmZvIjogIkNhcmREYXRhIgogICAgfQp9 { "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIyNDM3MDk4NiIsCiAgICAiRHNfTWVyY2hhbnRfRXhjZXBfU0NBIjogIlkiLAogICAgIkRTX01FUkNIQU5UX1BBTiI6ICI0NTQ4ODEwMDAwMDAwMDAzIiwKICAgICJEU19NRVJDSEFOVF9FTVYzRFMiOiB7CiAgICAgICAgInRocmVlRFNJbmZvIjogIkNhcmREYXRhIgogICAgfQp9", "Ds_Merchant_Signature": "3tup2ld5l+TzMTpRFL2e62P9yzOioNHHy4Wl26mPstA=", "Ds_SignatureVersion": "HMAC_SHA512_V2" } Notificación del iniciaPeticion DCCCuando realizas un iniciaPeticion con éxito, recibes una notificación o respuesta con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles:Recibir y gestionar la notificación: La notificación recibida es un formulario como el que se envía en la petición. El comercio debe validar los datos recibidos en el formulario para verificar su veracidad.Información recibida en la notificación: La notificación contiene unos parámetros con detalles de la operación. Estos parámetros vienen en el campo Ds_MerchantParameters. 1. Recibir y gestionar la notificación 2. Información recibida en la notificación ¿Qué parámetros DCC tengo que guardar de la notificación?En la notificación de un iniciaPeticion DCC recibes una serie de parámetros en Ds_MerchantParameters que debes guardar para continuar el flujo de la operación.Estos parámetros están dentro de los objetos Ds_DCC > InfoMonedaTarjeta, y son los siguientes:monedaDCC: Código ISO de la moneda DCC con la que se puede realizar la operación.litMonedaDCC: Nombre de la moneda DCC.litMonedaRDCC: Siglas de la moneda DCC.importeDCC: Importe de la operación en la moneda DCC.cambioDCC: Tipo de cambio entre la moneda de tu TPV y la divisa DCC. Por ejemplo 1€ = 0.85$.fechacambioDCC: Fecha en la que se aplica la tasa de cambio.markUp: Comisión del tipo de cambio. Se aplica al importe.Adicionalmente, si la operativa DCC es para alguna de las siguientes monedas:Lev, Kuna croata, Corona danesa, Florín húngaro (forinto), Zloty, Corona Checa, Leu rumano, Corona sueca, LibraEs necesario informar al cliente del % de incremento entre l cambio que se aplica y el cambio que aplica BCE (esto es debido a la normativa del Banco Central Europeo).En las operaciones DCC donde intervengan estas monedas, se recibirán estos parámetros con la información requerida:cambioBCE: Tipo de cambio que ofrece el BCE entre la moneda DCC y la del TPV Virtual.porcentajeSobreBCE: Porcentaje que supera el tipo de cambio del TPV Virtual respecto al del BCE. Por ejemplo, el TPV ofrece un 2%, el BCE un 1.5%, este valor sería 0.5%.Puedes informar al cliente con un texto similar a este: «The exchange rate has a difference of x,xx % over published by ECB.«Datos para la autenticación 3DSEn la notificación de un iniciaPeticion recibes una serie de parámetros en Ds_MerchantParameters que debes guardar para continuar el flujo de la operación.Estos parámetros están dentro del objeto Ds_EMV3DS, y son los siguientes:protocolVersion: Esta es la versión de 3DSecure que soporta la tarjeta.threeDSServerTransID: Es el identificador de la transacción 3DSecure, y lo necesitarás más adelante. Es único para la operación, no lo puedes modificar.threeDSMethodURL: URL para la ejecución del 3DSMethod. Guárdalo para enviar en el paso 2.threeDSInfo: Esto indica que la respuesta contiene los datos de la tarjeta, es decir, lo que has solicitado.Tienes más detalles sobre estos parámetros en la tabla de parámetros de la notificación. Si no recibes los campos 3DS, la tarjeta no requiere autenticación. No tendrás que enviar nada relativo a 3DS en las próximas operaciones. Ejemplo de notificaciónA continuación tienes un ejemplo de notificación de un iniciaPeticion con solicitud de datos DCC y con la indicación de que es 3DS: { "Ds_Order":"57745611", "Ds_MerchantCode":"999008881", "Ds_Terminal":"1", "Ds_TransactionType":"0", "Ds_DCC":{ "InfoMonedaTarjeta":{ "monedaDCC":"840", "litMonedaDCC":"DOLAR U.S.A.", "litMonedaRDCC":"USD", "importeDCC":"1.17", "cambioDCC":"0.855919", "fechaCambioDCC":"2020-06-25", "markUp":0.03 }, "InfoMonedaComercio":{ "monedaCome":"978", "litMonedaCome":"EUR", "importeCome":"1.00" } }, "Ds_EMV3DS":{ "protocolVersion":"2.2.0", "threeDSServerTransID":"39c9f4b2-3d8f-4091-b496-3d877e6c88d8", "threeDSInfo":"CardConfiguration" }, "Ds_Card_PSD2":"N" } Paso 2: Ejecución del 3DSMethodEl 3DSMethod es un paso opcional pero altamente recomendable. Permite mejorar la evaluación de riesgo de la operación para poder realizar flujos frictionless.Este paso se realiza igual, sea una operación DCC o normal.Sigue las indicaciones del «Paso 2: Ejecución del 3DSMethod». Paso 3: Recoger datos y pintar pantalla DCCEl siguiente paso es incluir en tu flujo una pantalla con esta información:Los datos de la operación DCC: Estos datos los recibes en los campos Ds_DCC de la notificación del iniciaPeticion.Importe en la moneda de tu TPV: importeComeImporte en la moneda DCC: importeDCCNombre y siglas moneda DCC: litMonedaDCC y litMonedaRDCCTasa de cambio: cambioDCCComisión de tipo de cambio o Markup: markUpFecha en la que se ha aplicado el cambio DCC: fechaCambioDCCLa opción de pagar en la moneda de tu TPV o en la divisa DCC:Si el cliente elige pagar en la divisa de tu TPV, el flujo de la operación es el 3DS de la operación que estés realizando.Si el cliente elige pagar en la divisa DCC, sigue los siguientes pasos. La divisa con la que pagar la operación la tiene que elegir el CLIENTE. En ningún caso el comercio puede tomar la decisión por el cliente. En la siguiente imagen tienes un ejemplo de la pantalla con los datos mencionados: Paso 4: Enviar 1º trataPeticion DCCUna vez hemos realizados los pasos anteriores y el cliente ha seleccionado que quiere pagar con la divisa de su tarjeta, el comercio tiene que enviar la solicitud de autorización DCC trataPeticion.En esta petición tendrás que enviar los siguientes datos:Algunos de los datos DCC obtenidos en el paso 1 iniciaPetición.Datos 3DS, incluidos los obtenidos en el 3DSMethod (si lo has realizado). Recuerda: Si la tarjeta no requiere autenticación 3DS, no hace falta enviar los datos 3DS. Datos comunes de las peticiones: Nº de pedido, de comercio, etc. Importante: Ten en cuenta que estos valores no pueden variar durante todo el flujo de la operación. Por ejemplo, el número de pedido tiene que ser el mismo en el iniciaPeticion y en el trataPeticion. Parámetros de la 1º petición trataPeticion DCCEsta es la tabla con los parámetros requeridos y opcionales que tienes que enviar en Ds_MerchantParameters para el 1º trataPeticion REST DCC: ParámetroFormatoRequerido/OpcionalDescripciónEjemplo DS_MERCHANT_MERCHANTCODE9 caracteres NuméricoRequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987 DS_MERCHANT_TERMINAL3 caracteres NuméricoRequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99 DS_MERCHANT_AMOUNT12 caracteres NuméricoRequeridoImporte de la operación. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.1050 DS_MERCHANT_CURRENCY4 caracteres NuméricoRequeridoCódigo ISO 4217 de la divisa utilizada en la transacción. Ver códigos ISO divisas.978 DS_MERCHANT_ORDER12 caracteres Alfanumérico * (caracteres ASCII: del 48 al 57, del 65 al 90 y del 97 al 122)RequeridoCódigo de pedido. No se puede repetir un código de pedido hasta pasados 6 meses. Recomendamos que los 4 primeros dígitos sean numéricos, para evitar problemas en la liquidación. *Sólo se permiten caracteres ASCII: – Dígitos (0–9): ASCII 48 a 57. Letras mayúsculas (A–Z): ASCII 65 a 90. – Letras minúsculas (a–z): ASCII 97 a 122. – No se permiten espacios, símbolos ni acentos.1234ABcd56EF DS_MERCHANT_TRANSACTIONTYPEValores disponibles: – 0: Autorización – 1: Preautorización – 2: Confirmar preautorizaciones – 3: Devoluciones – 7: Validación de tarjeta – 8: Confirmar validaciones de tarjeta – 9: Anular preautorizaciones y autorizaciones – 46: Anular devoluciones. – 47: Anular validación de tarjeta.RequeridoTipo de transacción. El número enviado indica el tipo de transacción. 0 DS_MERCHANT_PAN19 caracteres NuméricoRequerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta. * Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)4548810000000003 DS_MERCHANT_CVV23 a 4 caracteres NuméricoRequerido*Código CVV2 de la tarjeta del cliente. * Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT. 050 DS_MERCHANT_EXPIRYDATE4 caracteres Numérico AAMMRequerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes). * Requerido cuando se envía DS_MERCHANT_PAN3012 DS_MERCHANT_CLIENTIP15 caracteres AlfanuméricoOpcional* Campo que sirve para indicar la IP del cliente. * Recomendado si tienes que enviar la IP del cliente, ya que la IP registrada en el TPV Virtual (si no se envía este parámetro) es la IP donde esté ubicado el comercio. 192.168.1.1 DS_MERCHANT_MERCHANTURL250 caracteres AlfanuméricoOpcionalURL a la que se envía la notificación. En REST la notificación se recibe de servidor a servidor, por lo que este campo es opcional y lo puedes utilizar como Backup.https://www.example.com/notification DS_MERCHANT_MERCHANTDATA1024 caracteres AlfanuméricoOpcional Información que no procesa el TPV Virtual. Se devuelve sin modificar en la notificación. Se puede añadir para procesos internos.Prueba de pago en mi comercio DS_MERCHANT_TITULAR60 caracteres máximo AlfanuméricoOpcionalNombre del titular de la tarjeta.Pedro Salas DS_MERCHANT_DCCHay 2 formatos posibles: – iniciaPeticion: «Y» o «N» – trataPeticion: Objeto JSON (monedaDCC y importeDCC)Opcional** Requerido en operaciones DCC. – iniciaPeticion: Campo que indica la solicitud de información DCC – trataPeticion: Objeto JSON donde se envían los datos DCC de la operación. – iniciaPeticion: Y – trataPeticion: Objeto JSON (ver campos enviados en la tabla inferior) DS_MERCHANT_EMV3DSObjeto JSON*OpcionalEste parámetro contiene un JSON con los parámetros necesarios para la autenticación EMV3DS (v2 y v1). * Objeto JSON serializado como string.N/A DS_MERCHANT_MERCHANTNAME25 caracteres AlfanuméricoOpcionalIndica el nombre del comercio que se mostrará al cliente durante el proceso de pago. Si no se envía, se mostrará el nombre configurado en Canales. Mi comercio DS_MERCHANT_PRODUCTDESCRIPTION125 caracteres máximo AlfanuméricoOpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo DS_MERCHANT_EXCEP_SCA3 caracteres AlfanuméricoOpcional*– Para iniciaPeticion: Manda «Y» (sin comillas) para ver qué exenciones tiene disponibles el comercio. – Para trataPeticion: Permite solicitar un tipo de exención en la transacción. Valores disponibles en la sección de exenciones. *Requerido enviarlo en operaciones MIT.MIT DS_MERCHANT_MERCHANTDESCRIPTOR25 caracteres AlfanuméricoOpcionalEs un descriptor flexible. Requiere activación por parte de la entidad. Si está activado y no se envía, se enviará por defecto el nombre del comercio. * Pensado para PSPsMi comercio Como la operación es DCC, en el JSON incluido dentro del campo DS_MERCHANT_DCC, se incluyen estos parámetros: ParámetroFormatoRequerido/OpcionalDescripciónEjemplo monedaDCC4 caracteres NuméricoRequeridoCódigo ISO 4217 de la divisa DCC utilizada en la transacción. Ver códigos ISO divisas.840 importeDCC12 caracteres NuméricoRequeridoImporte de la operación en la divisa DCC. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.117 El valor de DS_MERCHANT_TRANSACTIONTYPE cambia según la operativa que esté realizando:Para autorización es 0.Para preautorización es 1.Para validación de tarjeta es 7. Además, si la operación requiere autenticación 3DS, tienes que incluir los parámetros 3DS, que se envían como un objeto JSON dentro del campo DS_MERCHANT_EMV3DS, el cual forma parte del JSON general que se codifica y envía en Ds_MerchantParameters: ParámetroFormatoOpcional/RecomendadoDescripciónEjemplo acctID64 caracteres máximo AlfanuméricoOpcionalInformación adicional de la cuenta del cliente. acctInfoObjeto JSONRecomendadoInformación adicional de la cuenta de usuario en tu comercio. Parámetros que incluye. addrMatch1 caracter Valores admitidos: – Y (Yes) – N (No)OpcionalIndica si la dirección de envío es la misma que la dirección de facturación.N billAddrCity50 caracteres máximo AlfanuméricoRecomendadoCiudad de la dirección de facturación del titular de la tarjeta que realiza la compra.Barcelona billAddrCountryISO 3166-1Recomendado*Código ISO 3166-1 del país de la dirección de facturación del titular de la tarjeta que realiza la operación. * Obligatorio si se envía «billAddrState».ES billAddrLine150 caracteres máximo AlfanuméricoRecomendadoPrimera línea de la dirección de facturación del titular de la tarjeta que realiza la operación. Calle Test 1 billAddrLine250 caracteres máximo AlfanuméricoRecomendadoSegunda línea de la dirección de facturación del titular de la tarjeta que realiza la operación. Bloque 2 billAddrLine350 caracteres máximo AlfanuméricoRecomendadoTercera línea de la dirección de facturación del titular de la tarjeta que realiza la operación. Piso 3 C billAddrPostCode16 caracteres máximo AlfanuméricoRecomendadoCódigo postal de la dirección de facturación del titular de la tarjeta que realiza la operación. 08001 billAddrStateISO 3166-2RecomendadoCódigo ISO 3166-2 del estado o provincia de la dirección de facturación del titular de la tarjeta que realiza la operación.B browserAcceptHeader2048 caracteres máximo AlfanuméricoRecomendadoHTTP accept headers enviado desde el navegador. browserColorDepthValores aceptados: – 1: 1 bit – 4: 4 bits – 8: 8 bits – 15: 15 bits – 16: 16 bits – 24: 24 bits – 32: 32 bits – 48: 48 bits RecomendadoValor que representa la profundida de bits de la paleta de colores para mostrar imágenes en bits por pixel. Este valor lo devuelve la propiedad «screen.colorDepth» desde el navegador del cliente. * En Redirección «Realizar Pago» no es necesario enviarlo, ya que el TPV Virtual lo recoge automáticamente.24 browserIP45 caracteres máximo AlfanuméricoRecomendadoIP del navegador. IPv4 o IPv6. 2001:0db8:85a3:0000:0000:8a2e:0370:7334 browserJavaEnabledBooleanoRecomendadoIndica si el navegador es capaz de usar Java. Este valor lo devuelve la propiedad «navigator.JavaEnabled». true browserJavascriptEnabledBooleanoRecomendadoIndica si el navegador es capaz de usar JavaScript. true browserLanguage1 a 8 caracteresRecomendadoIdioma del navegador definido en IETF BCP47. Este valor lo devuelve la propiedad «navigator.language». es-ES browserScreenHeight1 a 6 caracteres AlfanuméricoRecomendadoAltura total de la pantalla en píxeles. Este valor lo devuelve la propiedad «screen.height». 1080 browserScreenWidth1 a 6 caracteres AlfanuméricoRecomendadoAnchura total de la pantalla en píxeles. Este valor lo devuelve la propiedad «screen.width». 1920 browserTZ1 a 5 caracteres Alfanumérico RecomendadoDiferencia horaria entre la hora UTC y la hora local del navegador en MINUTOS. Este valor lo devuelve el método «getTimezoneOffset()». Por ejemplo, si la zona horaria es UTC -5 horas, el valor aceptado será «+300» +300 browserUserAgentMáximo 2048 caracteres AlfanuméricoRecomendadoHttp user-agent header del navegador del cliente. Si la longitud supera los 2048 caracteres, el valor será truncado.Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 notificationURL256 caracteres máximo AlfanuméricoRecomendadoURL del comercio que recibirá la notificación con el mensaje CRes al finalizar el challenge. https://sis-d.redsys.es/sis-simulador-web/SisRESTCreqCres_3DSecureV2.jsp protocolVersionAlfanumérico Valores posibles : – 1.0.2 – 2.1.0 – 2.2.0RecomendadoVersión de protocolo 3DSecure. 2.2.0 cardholderNameDe 2 a 45 caracteres AlfanuméricoRecomendadoNombre del titular de la tarjeta. Juan challengeWindowSize2 caracteres Valores posibles (tamaño en píxeles): – 01 = 250 x 400 – 02 = 390 x 400 – 03 = 500 x 600 – 04 = 600 x 400 – 05 = Full screen (Valor por defecto)OpcionalDimensión de ventana de challenge que el banco emisor presentará al cliente para realizar la autenticación. El tamaño preconfigurado es el ancho x alto en píxeles de la ventana del navegador.05 Email254 caracteres máximo AlfanuméricoRecomendadoDirección de correo electrónico del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.test@mail.com homePhoneObjeto JSONRecomendadoNúmero de teléfono de casa del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.Parámetros que incluye. workPhoneObjeto JSONRecomendadoNúmero de teléfono de trabajo del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.Parámetros que incluye. mobilePhoneObjeto JSONRecomendadoNúmero de teléfono móvil del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.Parámetros que incluye. merchantRiskIndicatorObjeto JSONRecomendadoInformación adicional que representa la evaluación que ha hecho el comercio del nivel de riesgo de fraude en la autenticación.Parámetros que incluye. purchaseInstalDataNumérico Mayor que 1Opcional*Indica el número máximo de autorizaciones en pago aplazado. * Obligatorio para operaciones COF Instalment3 recurringExpiryYYYYMMDDOpcional*Fecha a partir de la cual no se harán más autorizaciones Formato aceptado: YYYYMMDD * Obligatorio para operaciones COF Instalment y Recurring20301231 recurringFrequency4 caracteres NuméricoOpcional*Indica el mínimo número de días entre autorizaciones * Obligatorio para operaciones COF Instalment y Recurring30 shipAddrCityVariable, máximo 50 / JSON Data Type: StringRecomendadoCiudad de la dirección de envío solicitada por el titular de la tarjeta.Barcelona shipAddrCountryISO 3166-1Recomendado*ISO 3166-1 del país de la dirección de envío solicitada por el titular de la tarjeta. * Obligatorio si se envía «shipAddrState».ES shipAddrLine150 caracteres máximo AlfanuméricoRecomendadoPrimera línea de la dirección de envío solicitada por el titular de la tarjeta.Calle Test 1 shipAddrLine250 caracteres máximo AlfanuméricoRecomendadoSegunda línea de la dirección de envío solicitada por el titular de la tarjeta.Bloque 2 shipAddrLine350 caracteres máximo AlfanuméricoRecomendadoTercera línea de la dirección de envío solicitada por el titular de la tarjeta.Piso 3 C shipAddrPostCode16 caracteres máximo AlfanuméricoRecomendadoEl código postal de la dirección de envío solicitada por el titular de la tarjeta.08001 shipAddrStateISO 3166-2RecomendadoEl estado o provincia de la dirección de envío asociada con la tarjeta utilizada para esta compra. Corresponde al código de subdivisión ISO 3166-2.B threeDSCompIndValores aceptados: – Y: Completado correctamente – N: Completado con errores – U: 3DSMethod no ejecutadoRecomendadoIndica si el 3DSMethod se ha ejecutado. Y threeDSInfoValores posibles: – CardData: Indica que solicitas información de la tarjeta. – AuthenticationData – ChallengeResponse: Indica que estás respondiendo al challenge. – 3RI-Recurring – 3RI-OTARecomendadoTipo de solicitud 3DS. CardData threeDSRequestorAuthenticationInfoObjeto JSONOpcionalInformación adicional sobre como el cliente se autenticó en el inicio de sesión en la cuenta del comercio. Parámetros que incluye. threeDSServerTransID36 caracteres máximo AlfanuméricoRecomendadoIdentificador de la transacción 3DSecuro. Es el mismo valor devuelto en la consulta de tarjeta.d7433c2d-f44d-48da-a3a3-e883f6a82fe9 threeDSRequestorChallengeIndValores posibles: – 03: Indica que el comercio quiere aplicar autenticación reforzada (SCA). – 04: Indica que se requiere autenticación reforzada (SCA) por un mandato.Opcional*Indica la preferencia del comercio para que se aplique autenticación reforzada (SCA) a su cliente en esta operación. En caso de no enviarse este parámetro no se indicará preferencia alguna al emisor y la operación puede ser exencionada, autenticada con SCA o autenticada sin SCA (frictionless). * En operativas REST donde se decline la operación con código 195, se deberá enviar este parámetro como «04».04 Envío de la 1º petición trataPeticion DCCEstos son los endpoints donde enviar la petición: Tipo de peticiónEntornoURL trataPeticionPruebashttps://sis-t.redsys.es:25443/sis/rest/trataPeticionREST Producciónhttps://sis.redsys.es/sis/rest/trataPeticionREST Estos parámetros deben codificarse en BASE64 y enviarse dentro del campo Ds_MerchantParameters, junto con el resto de campos necesarios en el formulario. A continuación te mostramos un ejemplo de:Los parámetros que se envían en Ds_MerchantParameters en formato JSON.Los parámetros del JSON codificados en BASE64. Este es el valor enviado en Ds_MerchantParameters.El formulario completo que debes enviar. Consulta el resto de campos en la integración REST. Ds_MerchantParameters JSON Ds_MerchantParameters BASE64 Formulario completo REST { "DS_MERCHANT_MERCHANTCODE": "999008881", "DS_MERCHANT_TERMINAL": "99", "DS_MERCHANT_TRANSACTIONTYPE": "0", "DS_MERCHANT_AMOUNT": "100", "DS_MERCHANT_CURRENCY": "978", "DS_MERCHANT_ORDER": "24370986", "DS_MERCHANT_PAN": "4548810000000003", "DS_MERCHANT_EXPIRYDATE": "3012", "DS_MERCHANT_CVV2": "123", "DS_MERCHANT_DCC": { "monedaDCC": "840", "importeDCC": "1.17" }, "DS_MERCHANT_EMV3DS": { "threeDSInfo": "AuthenticationData", "protocolVersion": "2.2.0", "browserAcceptHeader": "text\/html,application\/xhtml+xml,application\/xml;q=0.9,*\/*;q=0.8,application\/json", "browserColorDepth": "32", "browserIP": "84.0.0.1", "browserJavaEnabled": "1", "browserJavascriptEnabled": "1", "browserLanguage": "es-ES", "browserScreenHeight": "864", "browserScreenWidth": "1536", "browserTZ": "-120", "browserUserAgent": "Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/137.0.0.0 Safari\/537.36", "threeDSServerTransID": "d7433c2d-f44d-48da-a3a3-e883f6a82fe9", "notificationURL": "https:\/\/webredirect.org\/recepcion_notificacion.php?tipo=challenge", "threeDSCompInd": "Y" } } ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIzOTMzMTA4NiIsCiAgICAiRFNfTUVSQ0hBTlRfUEFOIjogIjQ1NDg4MTAwMDAwMDAwMDNcdCIsCiAgICAiRFNfTUVSQ0hBTlRfRVhQSVJZREFURSI6ICIzMDEyIiwKICAgICJEU19NRVJDSEFOVF9DVlYyIjogIjEyMyIsCiAgICAiRFNfTUVSQ0hBTlRfRU1WM0RTIjogewogICAgICAgICJ0aHJlZURTSW5mbyI6ICJDaGFsbGVuZ2VSZXNwb25zZSIsCiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICIyLjIuMCIsCiAgICAgICAgImNyZXMiOiAiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJbVEzTkRNell6SmtMV1kwTkdRdE5EaGtZUzFoTTJFekxXVTRPRE5tTm1FNE1tWmxPU0lzSW1GamMxUnlZVzV6U1VRaU9pSm1Zak5tTTJOak1DMDVaRFF6TFRSbVlURXRPR1V3TWkxalpHSmtOR05sWVRaaE16UWlMQ0p0WlhOellXZGxWSGx3WlNJNklrTlNaWE1pTENKdFpYTnpZV2RsVm1WeWMybHZiaUk2SWpJdU1pNHdJaXdpZEhKaGJuTlRkR0YwZFhNaU9pSlpJbjA9IgogICAgfQp9 { "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIzOTMzMTA4NiIsCiAgICAiRFNfTUVSQ0hBTlRfUEFOIjogIjQ1NDg4MTAwMDAwMDAwMDNcdCIsCiAgICAiRFNfTUVSQ0hBTlRfRVhQSVJZREFURSI6ICIzMDEyIiwKICAgICJEU19NRVJDSEFOVF9DVlYyIjogIjEyMyIsCiAgICAiRFNfTUVSQ0hBTlRfRU1WM0RTIjogewogICAgICAgICJ0aHJlZURTSW5mbyI6ICJDaGFsbGVuZ2VSZXNwb25zZSIsCiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICIyLjIuMCIsCiAgICAgICAgImNyZXMiOiAiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJbVEzTkRNell6SmtMV1kwTkdRdE5EaGtZUzFoTTJFekxXVTRPRE5tTm1FNE1tWmxPU0lzSW1GamMxUnlZVzV6U1VRaU9pSm1Zak5tTTJOak1DMDVaRFF6TFRSbVlURXRPR1V3TWkxalpHSmtOR05sWVRaaE16UWlMQ0p0WlhOellXZGxWSGx3WlNJNklrTlNaWE1pTENKdFpYTnpZV2RsVm1WeWMybHZiaUk2SWpJdU1pNHdJaXdpZEhKaGJuTlRkR0YwZFhNaU9pSlpJbjA9IgogICAgfQp9", "Ds_Merchant_Signature": "ZfCZSV1Lx0pGTKXf78rBLsU3XmxD3yo1e9hOK9pROwk=", "Ds_SignatureVersion": "HMAC_SHA512_V2" } Notificación del 1º trataPeticion DCCCuando realizas un trataPeticion con éxito, recibes una notificación o respuesta con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles:Recibir y gestionar la notificación: La notificación recibida es un formulario como el que se envía en la petición. El comercio debe validar los datos recibidos en el formulario para verificar su veracidad.Información recibida en la notificación: La notificación contiene unos parámetros con detalles de la operación. Estos parámetros vienen en el campo Ds_MerchantParameters. 1. Recibir y gestionar la notificación 2. Información recibida en la notificación Próximo paso: Challenge, Frictionless, OK (sin autenticación 3DS) o KOLa notificación recibida indica el próximo paso en el flujo de la operación. Tienes los distintos escenarios en el siguiente desplegable: Challenge Cuando el flujo de la operación requiere challenge, en la notificación se reciben los datos para realizar la autenticación reforzada. Para ejecutar el challenge, ve al paso 4.A continuación tienes un ejemplo de la notificación recibida con los datos del challenge. Estos son los parámetros que vienen dentro de Ds_MerchantParameters una vez decodificas la notificación. Especialmente, tienes que guardar el contenido de estos parámetros:threeDsInfo: Tipo de solicitud 3DS. En este caso indicará que requiere challenge challengeRequest.acsURL: URL del ACS donde tendrás que enviar la petición para ejecutar el challenge (Paso 4). creq: Valor que debes enviar a la URL del ACS donde se ejecuta el challenge. Este valor no se puede alterar. { "Ds_Amount": "100", "Ds_Currency": "978", "Ds_Order": "24370986", "Ds_MerchantCode": "999008881", "Ds_Terminal": "1", "Ds_TransactionType": "0", "Ds_EMV3DS": { "threeDSInfo": "ChallengeRequest", "protocolVersion": "2.2.0", "acsURL": "https://sis-d.redsys.es/sis-simulador-web/authenticationRequest.jsp", // URL que ha enviado el SIS donde debes enviar el CREQ "creq": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImQ3NDMzYzJkLWY0NGQtNDhkYS1hM2EzLWU4ODNmNmE4MmZlOSIsImFjc1RyYW5zSUQiOiJmYjNmM2NjMC05ZDQzLTRmYTEtOGUwMi1jZGJkNGNlYTZhMzQiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0" } } Frictionless (finaliza operación) / OK (sin autorización 3DS) Es posible que la respuesta indique directamente el resultado final de la operación. En este caso, el flujo se puede deber a 2 motivos:La operación requiere autenticación 3DS pero es frictionless. Este flujo se da si el servidor de autenticación considera que tiene suficientes datos del titular como para identificarle.La operación NO requería autenticación 3DS. En este caso, durante el resto del flujo no has tenido que enviar campos 3DS. Este es un ejemplo de la notificación. Estos son los parámetros que vienen dentro de Ds_MerchantParameters una vez decodificas la notificación.El resultado de la operación se indica en el parámetro Ds_Response, si la operación ha finalizado correctamente su valor será 0000.También recibes los campos DCC con la información del importe y divisa utilizados. { "Ds_Date": "09%2F02%2F2023", "Ds_Hour": "17%3A09", "Ds_SecurePayment": "1", "Ds_Amount": "145", "Ds_Currency": "978", "Ds_Order": "1112", "Ds_MerchantCode": "999008881", "Ds_Terminal": "001", "Ds_Response": "0000", "Ds_TransactionType": "0", "Ds_AuthorisationCode": "291856", "Ds_Card_Number": "491801******4602", "Ds_ConsumerLanguage": "1", "Ds_Card_Country": "724", "Ds_Card_Brand": "1", "Ds_Currency_DCC": "840", "Ds_Amount_DCC": "117", "Ds_ProcessedPayMethod": "80" } KO (finaliza operación) Si el parámetro Ds_Response, indica un valor distinto a 0000, se ha producido algún error durante la operación. Consulta los códigos de error para saber cuál: Códigos de error Paso 5: Ejecución del challenge/autenticación DCCSi la operación requiere challenge, tendrás que realizar la autenticación. Este paso se realiza igual, sea una operación DCC o normal.Sigue las indicaciones del «Paso 4: Ejecución del challenge/autenticación». Paso 6: Enviar 2º trataPeticion con la autenticación 3DS DCCUna vez recibido el parámetro cres en el proceso de autenticación/challenge del paso anterior, tienes que enviarlo en una petición con el resto de datos de la operación. También tendrás que enviar:Datos comunes de las peticiones: Nº de pedido, de comercio, etc. Importante: Ten en cuenta que estos valores no pueden variar durante todo el flujo de la operación. Por ejemplo, el número de pedido tiene que ser el mismo en el iniciaPeticion y en el trataPeticion.Los datos DCC que has enviado en el resto de peticiones, sin modificar. Además, es importante que envíes el parámetro DS_MERCHANT_EMV3DS con el parámetro cres, entre otros. Parámetros de la 2º petición trataPeticion DCCEsta es la tabla con los parámetros requeridos y opcionales que tienes que enviar en Ds_MerchantParameters para el 2º trataPeticion REST DCC: ParámetroFormatoRequerido/OpcionalDescripciónEjemplo DS_MERCHANT_MERCHANTCODE9 caracteres NuméricoRequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987 DS_MERCHANT_TERMINAL3 caracteres NuméricoRequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99 DS_MERCHANT_AMOUNT12 caracteres NuméricoRequeridoImporte de la operación. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.1050 DS_MERCHANT_CURRENCY4 caracteres NuméricoRequeridoCódigo ISO 4217 de la divisa utilizada en la transacción. Ver códigos ISO divisas.978 DS_MERCHANT_ORDER12 caracteres Alfanumérico * (caracteres ASCII: del 48 al 57, del 65 al 90 y del 97 al 122)RequeridoCódigo de pedido. No se puede repetir un código de pedido hasta pasados 6 meses. Recomendamos que los 4 primeros dígitos sean numéricos, para evitar problemas en la liquidación. *Sólo se permiten caracteres ASCII: – Dígitos (0–9): ASCII 48 a 57. Letras mayúsculas (A–Z): ASCII 65 a 90. – Letras minúsculas (a–z): ASCII 97 a 122. – No se permiten espacios, símbolos ni acentos.1234ABcd56EF DS_MERCHANT_TRANSACTIONTYPEValores disponibles: – 0: Autorización – 1: Preautorización – 2: Confirmar preautorizaciones – 3: Devoluciones – 7: Validación de tarjeta – 8: Confirmar validaciones de tarjeta – 9: Anular preautorizaciones y autorizaciones – 46: Anular devoluciones. – 47: Anular validación de tarjeta.RequeridoTipo de transacción. El número enviado indica el tipo de transacción. 0 DS_MERCHANT_PAN19 caracteres NuméricoRequerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta. * Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)4548810000000003 DS_MERCHANT_CVV23 a 4 caracteres NuméricoRequerido*Código CVV2 de la tarjeta del cliente. * Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT. 050 DS_MERCHANT_EXPIRYDATE4 caracteres Numérico AAMMRequerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes). * Requerido cuando se envía DS_MERCHANT_PAN3012 DS_MERCHANT_CLIENTIP15 caracteres AlfanuméricoOpcional* Campo que sirve para indicar la IP del cliente. * Recomendado si tienes que enviar la IP del cliente, ya que la IP registrada en el TPV Virtual (si no se envía este parámetro) es la IP donde esté ubicado el comercio. 192.168.1.1 DS_MERCHANT_MERCHANTURL250 caracteres AlfanuméricoOpcionalURL a la que se envía la notificación. En REST la notificación se recibe de servidor a servidor, por lo que este campo es opcional y lo puedes utilizar como Backup.https://www.example.com/notification DS_MERCHANT_MERCHANTDATA1024 caracteres AlfanuméricoOpcional Información que no procesa el TPV Virtual. Se devuelve sin modificar en la notificación. Se puede añadir para procesos internos.Prueba de pago en mi comercio DS_MERCHANT_TITULAR60 caracteres máximo AlfanuméricoOpcionalNombre del titular de la tarjeta.Pedro Salas DS_MERCHANT_DCCHay 2 formatos posibles: – iniciaPeticion: «Y» o «N» – trataPeticion: Objeto JSON (monedaDCC y importeDCC)Opcional** Requerido en operaciones DCC. – iniciaPeticion: Campo que indica la solicitud de información DCC – trataPeticion: Objeto JSON donde se envían los datos DCC de la operación. – iniciaPeticion: Y – trataPeticion: Objeto JSON (ver campos enviados en la tabla inferior) DS_MERCHANT_EMV3DSObjeto JSON*OpcionalEste parámetro contiene un JSON con los parámetros necesarios para la autenticación EMV3DS (v2 y v1). * Objeto JSON serializado como string.N/A DS_MERCHANT_MERCHANTNAME25 caracteres AlfanuméricoOpcionalIndica el nombre del comercio que se mostrará al cliente durante el proceso de pago. Si no se envía, se mostrará el nombre configurado en Canales. Mi comercio DS_MERCHANT_PRODUCTDESCRIPTION125 caracteres máximo AlfanuméricoOpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo DS_MERCHANT_EXCEP_SCA3 caracteres AlfanuméricoOpcional*– Para iniciaPeticion: Manda «Y» (sin comillas) para ver qué exenciones tiene disponibles el comercio. – Para trataPeticion: Permite solicitar un tipo de exención en la transacción. Valores disponibles en la sección de exenciones. *Requerido enviarlo en operaciones MIT.MIT DS_MERCHANT_MERCHANTDESCRIPTOR25 caracteres AlfanuméricoOpcionalEs un descriptor flexible. Requiere activación por parte de la entidad. Si está activado y no se envía, se enviará por defecto el nombre del comercio. * Pensado para PSPsMi comercio Como la operación es DCC, en el JSON incluido dentro del campo DS_MERCHANT_DCC, se incluyen estos parámetros: ParámetroFormatoRequerido/OpcionalDescripciónEjemplo monedaDCC4 caracteres NuméricoRequeridoCódigo ISO 4217 de la divisa DCC utilizada en la transacción. Ver códigos ISO divisas.840 importeDCC12 caracteres NuméricoRequeridoImporte de la operación en la divisa DCC. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.117 El valor de DS_MERCHANT_TRANSACTIONTYPE cambia según la operativa que esté realizando:Para autorización es 0.Para preautorización es 1.Para validación de tarjeta es 7. Además, tienes que incluir los parámetros 3DS, que se envían como un objeto JSON dentro del campo DS_MERCHANT_EMV3DS, el cual forma parte del JSON general que se codifica y envía en Ds_MerchantParameters: ParámetroFormatoOpcional/RecomendadoDescripciónEjemplo acctID64 caracteres máximo AlfanuméricoOpcionalInformación adicional de la cuenta del cliente. acctInfoObjeto JSONRecomendadoInformación adicional de la cuenta de usuario en tu comercio. Parámetros que incluye. addrMatch1 caracter Valores admitidos: – Y (Yes) – N (No)OpcionalIndica si la dirección de envío es la misma que la dirección de facturación.N billAddrCity50 caracteres máximo AlfanuméricoRecomendadoCiudad de la dirección de facturación del titular de la tarjeta que realiza la compra.Barcelona billAddrCountryISO 3166-1Recomendado*Código ISO 3166-1 del país de la dirección de facturación del titular de la tarjeta que realiza la operación. * Obligatorio si se envía «billAddrState».ES billAddrLine150 caracteres máximo AlfanuméricoRecomendadoPrimera línea de la dirección de facturación del titular de la tarjeta que realiza la operación. Calle Test 1 billAddrLine250 caracteres máximo AlfanuméricoRecomendadoSegunda línea de la dirección de facturación del titular de la tarjeta que realiza la operación. Bloque 2 billAddrLine350 caracteres máximo AlfanuméricoRecomendadoTercera línea de la dirección de facturación del titular de la tarjeta que realiza la operación. Piso 3 C billAddrPostCode16 caracteres máximo AlfanuméricoRecomendadoCódigo postal de la dirección de facturación del titular de la tarjeta que realiza la operación. 08001 billAddrStateISO 3166-2RecomendadoCódigo ISO 3166-2 del estado o provincia de la dirección de facturación del titular de la tarjeta que realiza la operación.B protocolVersionAlfanumérico Valores posibles : – 1.0.2 – 2.1.0 – 2.2.0RecomendadoVersión de protocolo 3DSecure. 2.2.0 cardholderNameDe 2 a 45 caracteres AlfanuméricoRecomendadoNombre del titular de la tarjeta. Juan challengeWindowSize2 caracteres Valores posibles (tamaño en píxeles): – 01 = 250 x 400 – 02 = 390 x 400 – 03 = 500 x 600 – 04 = 600 x 400 – 05 = Full screen (Valor por defecto)OpcionalDimensión de ventana de challenge que el banco emisor presentará al cliente para realizar la autenticación. El tamaño preconfigurado es el ancho x alto en píxeles de la ventana del navegador.05 Email254 caracteres máximo AlfanuméricoRecomendadoDirección de correo electrónico del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.test@mail.com homePhoneObjeto JSONRecomendadoNúmero de teléfono de casa del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.Parámetros que incluye. workPhoneObjeto JSONRecomendadoNúmero de teléfono de trabajo del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.Parámetros que incluye. mobilePhoneObjeto JSONRecomendadoNúmero de teléfono móvil del titular de la tarjeta. Valor muy recomendable de enviar para mejorar la experiencia durante la autenticación.Parámetros que incluye. merchantRiskIndicatorObjeto JSONRecomendadoInformación adicional que representa la evaluación que ha hecho el comercio del nivel de riesgo de fraude en la autenticación.Parámetros que incluye. purchaseInstalDataNumérico Mayor que 1Opcional*Indica el número máximo de autorizaciones en pago aplazado. * Obligatorio para operaciones COF Instalment3 recurringExpiryYYYYMMDDOpcional*Fecha a partir de la cual no se harán más autorizaciones Formato aceptado: YYYYMMDD * Obligatorio para operaciones COF Instalment y Recurring20301231 recurringFrequency4 caracteres NuméricoOpcional*Indica el mínimo número de días entre autorizaciones * Obligatorio para operaciones COF Instalment y Recurring30 shipAddrCityVariable, máximo 50 / JSON Data Type: StringRecomendadoCiudad de la dirección de envío solicitada por el titular de la tarjeta.Barcelona shipAddrCountryISO 3166-1Recomendado*ISO 3166-1 del país de la dirección de envío solicitada por el titular de la tarjeta. * Obligatorio si se envía «shipAddrState».ES shipAddrLine150 caracteres máximo AlfanuméricoRecomendadoPrimera línea de la dirección de envío solicitada por el titular de la tarjeta.Calle Test 1 shipAddrLine250 caracteres máximo AlfanuméricoRecomendadoSegunda línea de la dirección de envío solicitada por el titular de la tarjeta.Bloque 2 shipAddrLine350 caracteres máximo AlfanuméricoRecomendadoTercera línea de la dirección de envío solicitada por el titular de la tarjeta.Piso 3 C shipAddrPostCode16 caracteres máximo AlfanuméricoRecomendadoEl código postal de la dirección de envío solicitada por el titular de la tarjeta.08001 shipAddrStateISO 3166-2RecomendadoEl estado o provincia de la dirección de envío asociada con la tarjeta utilizada para esta compra. Corresponde al código de subdivisión ISO 3166-2.B threeDSInfoValores posibles: – CardData: Indica que solicitas información de la tarjeta. – AuthenticationData – ChallengeResponse: Indica que estás respondiendo al challenge. – 3RI-Recurring – 3RI-OTARecomendadoTipo de solicitud 3DS. CardData threeDSRequestorAuthenticationInfoObjeto JSONOpcionalInformación adicional sobre como el cliente se autenticó en el inicio de sesión en la cuenta del comercio. Parámetros que incluye. cresLongitud variable AlfanuméricoOpcional*Cres codificado en BASE64 de respuesta del ACS al Challenge que contiene el resultado de la autenticación. * Deberás enviarlo en la petición donde envías el resultado de la autenticación.eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImQ3NDJhbnNTdGF0dXMiOiJZIn0= threeDSRequestorChallengeIndValores posibles: – 03: Indica que el comercio quiere aplicar autenticación reforzada (SCA). – 04: Indica que se requiere autenticación reforzada (SCA) por un mandato.Opcional*Indica la preferencia del comercio para que se aplique autenticación reforzada (SCA) a su cliente en esta operación. En caso de no enviarse este parámetro no se indicará preferencia alguna al emisor y la operación puede ser exencionada, autenticada con SCA o autenticada sin SCA (frictionless). * En operativas REST donde se decline la operación con código 195, se deberá enviar este parámetro como «04».04 Importante: Envía el campo threeDSInfo con valor ChallengeResponse. Envío de la 2º petición trataPeticion DCCEstos son los endpoints donde enviar la petición: Tipo de peticiónEntornoURL trataPeticionPruebashttps://sis-t.redsys.es:25443/sis/rest/trataPeticionREST Producciónhttps://sis.redsys.es/sis/rest/trataPeticionREST Estos parámetros deben codificarse en BASE64 y enviarse dentro del campo Ds_MerchantParameters, junto con el resto de campos necesarios en el formulario. A continuación te mostramos un ejemplo de:Los parámetros que se envían en Ds_MerchantParameters en formato JSON.Los parámetros del JSON codificados en BASE64. Este es el valor enviado en Ds_MerchantParameters.El formulario completo que debes enviar. Consulta el resto de campos en la integración REST. Ds_MerchantParameters JSON Ds_MerchantParameters BASE64 Formulario completo REST { "DS_MERCHANT_MERCHANTCODE": "999008881", "DS_MERCHANT_TERMINAL": "99", "DS_MERCHANT_TRANSACTIONTYPE": "0", "DS_MERCHANT_AMOUNT": "100", "DS_MERCHANT_CURRENCY": "978", "DS_MERCHANT_ORDER": "24370986", "DS_MERCHANT_PAN": "4548810000000003", "DS_MERCHANT_EXPIRYDATE": "3012", "DS_MERCHANT_CVV2": "123", "DS_MERCHANT_DCC": { "monedaDCC": "840", "importeDCC": "1.17" }, "DS_MERCHANT_EMV3DS": { "threeDSInfo": "ChallengeResponse", "protocolVersion": "2.2.0", "cres": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImQ3NDMzYzJkLWY0NGQtNDhkYS1hM2EzLWU4ODNmNmE4MmZlOSIsImFjc1RyYW5zSUQiOiJmYjNmM2NjMC05ZDQzLTRmYTEtOGUwMi1jZGJkNGNlYTZhMzQiLCJtZXNzYWdlVHlwZSI6IkNSZXMiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwidHJhbnNTdGF0dXMiOiJZIn0=" } } ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIzOTMzMTA4NiIsCiAgICAiRFNfTUVSQ0hBTlRfUEFOIjogIjQ1NDg4MTAwMDAwMDAwMDNcdCIsCiAgICAiRFNfTUVSQ0hBTlRfRVhQSVJZREFURSI6ICIzMDEyIiwKICAgICJEU19NRVJDSEFOVF9DVlYyIjogIjEyMyIsCiAgICAiRFNfTUVSQ0hBTlRfRU1WM0RTIjogewogICAgICAgICJ0aHJlZURTSW5mbyI6ICJDaGFsbGVuZ2VSZXNwb25zZSIsCiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICIyLjIuMCIsCiAgICAgICAgImNyZXMiOiAiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJbVEzTkRNell6SmtMV1kwTkdRdE5EaGtZUzFoTTJFekxXVTRPRE5tTm1FNE1tWmxPU0lzSW1GamMxUnlZVzV6U1VRaU9pSm1Zak5tTTJOak1DMDVaRFF6TFRSbVlURXRPR1V3TWkxalpHSmtOR05sWVRaaE16UWlMQ0p0WlhOellXZGxWSGx3WlNJNklrTlNaWE1pTENKdFpYTnpZV2RsVm1WeWMybHZiaUk2SWpJdU1pNHdJaXdpZEhKaGJuTlRkR0YwZFhNaU9pSlpJbjA9IgogICAgfQp9 { "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIzOTMzMTA4NiIsCiAgICAiRFNfTUVSQ0hBTlRfUEFOIjogIjQ1NDg4MTAwMDAwMDAwMDNcdCIsCiAgICAiRFNfTUVSQ0hBTlRfRVhQSVJZREFURSI6ICIzMDEyIiwKICAgICJEU19NRVJDSEFOVF9DVlYyIjogIjEyMyIsCiAgICAiRFNfTUVSQ0hBTlRfRU1WM0RTIjogewogICAgICAgICJ0aHJlZURTSW5mbyI6ICJDaGFsbGVuZ2VSZXNwb25zZSIsCiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICIyLjIuMCIsCiAgICAgICAgImNyZXMiOiAiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJbVEzTkRNell6SmtMV1kwTkdRdE5EaGtZUzFoTTJFekxXVTRPRE5tTm1FNE1tWmxPU0lzSW1GamMxUnlZVzV6U1VRaU9pSm1Zak5tTTJOak1DMDVaRFF6TFRSbVlURXRPR1V3TWkxalpHSmtOR05sWVRaaE16UWlMQ0p0WlhOellXZGxWSGx3WlNJNklrTlNaWE1pTENKdFpYTnpZV2RsVm1WeWMybHZiaUk2SWpJdU1pNHdJaXdpZEhKaGJuTlRkR0YwZFhNaU9pSlpJbjA9IgogICAgfQp9", "Ds_Merchant_Signature": "ZfCZSV1Lx0pGTKXf78rBLsU3XmxD3yo1e9hOK9pROwk=", "Ds_SignatureVersion": "HMAC_SHA512_V2" } Notificación del 2º trataPeticion DCCCuando realizas un trataPeticion con éxito, recibes una notificación o respuesta con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles:Recibir y gestionar la notificación: La notificación recibida es un formulario como el que se envía en la petición. El comercio debe validar los datos recibidos en el formulario para verificar su veracidad.Información recibida en la notificación: La notificación contiene unos parámetros con detalles de la operación. Estos parámetros vienen en el campo Ds_MerchantParameters. 1. Recibir y gestionar la notificación 2. Información recibida en la notificación Una vez decodifiques los parámetros dentro de Ds_MerchantParameters, podrás ver el resultado de la operación en el parámetro Ds_Response, si la operación ha finalizado correctamente su valor será 0000. Puedes ver el resto de códigos en esta sección.Una vez recibida la notificación final el flujo de pago ha terminado. En este momento, tu sistema ya dispone del resultado final de la operación (autorizada o denegada) y debe actuar en consecuencia.Autorizada (Ds_Response = 0000):Actualizar el estado del pedido a «pagado» o «confirmado», iniciar el proceso logístico o de envío.Enviar una confirmación de compra al cliente (por email, notificación, etc.).Registrar el identificador de operación para posibles devoluciones o conciliaciones.Indicar al cliente que la operación se ha completado.Denegada:Mostrar un mensaje al cliente explicando que el pago ha fallado.Permitir reintentar la operación si procede. Asegúrate de evitar números de pedido repetidos.Registrar la operación para seguimiento por si vuelve a ocurrir el error. Gestión de operaciones DCCPuedes hacer pruebas de operaciones DCC con tarjetas de pruebas.La operación aparecerá en canales como cualquier otra transacción:Si debido al cambio de divisa aplicado en la transacción, el importe queda por debajo de 0.01, se producirá una incidencia en la liquidación. Marcará el importe en la moneda de tu TPV y en la divisa del cliente.Podrás realizar operaciones secundarias: confirmar, anular, devolver como con cualquier otra operación.Importante: Para devoluciones, la tasa de cambio se vuelve a recalcular en el momento de la devolución. Esto puede significar que, dependiendo del tiempo que pase, el valor puede variar ligeramente a favor del comercio o del cliente. Parámetros de la notificaciónCuando envías una petición al TPV Virtual recibes una notificación con el resultado de la misma.En las operativas REST con una sola petición únicamente recibirás una notificación.En las operativas REST con flujo 3DS, recibes varías notificaciones durante todo el flujo de la operación, que tendrás que analizar y gestionar. En cada paso tienes indicado los parámetros de la notificación que tienes que guardar.Como integrador, para gestionar correctamente las notificaciones tienes que tener 2 cosas en cuenta:1. Recibir y gestionar la notificaciónLa función de la librería te gestiona la recepción de la respuesta.Gestionar la respuesta consiste en validar que la notificación es la original antes de hacer cualquier acción en tu sistema.Tienes la explicación de este punto en la documentación de integración REST, paso 3: Recepción y gestión de la notificación.2. Interpretar los parámetros de la notificaciónEn la notificación que has recibido y gestionado, vienen unos parámetros que indican:El resultado de la operación Ds_Response.Otros parámetros de interés para futuras operaciones. (Id de operación, importe, etc.).Parámetros para el flujo 3DS. Esenciales en las operativas que requieren autenticación 3DS.Estos parámetros vienen en el campo Ds_MerchantParameters, los parámetros vienen en un JSON codificado en BASE64 y sin retornos de carro.Tu sistema debe estar preparado para recibir estos parámetros (obligatorios, opcionales y posibles futuros parámetros) y en función a estos, ejecutar las acciones que correspondan en tu servidor.A continuación tienes un ejemplo de la notificación que recibes a en los siguientes casos.Operación iniciaPeticion solicitando datos de la tarjeta. (flujo 3DS)Operación de autorización trataPeticion con flujo 3DS.Operación de devolución.Operación con algún error de procesamiento. 1. iniciaPeticion 2. trataPeticion 3. Devolución 4. Error en la operación { "Ds_Order":"80536456", "Ds_MerchantCode":"999008881", "Ds_Terminal":"99", "Ds_TransactionType":"0", "Ds_EMV3DS":{ "protocolVersion":"2.2.0", "threeDSServerTransID":"b873ed5d-bcca-48b0-8f12-b6df3db5d19b", "threeDSMethodURL": "https://sis-d.redsys.es:25443/sis-simulador-web/threeDsMethod.jsp", "threeDSInfo":"CardConfiguration" }, "Ds_Excep_SCA":"LWV;TRA[30.0];COR;MIT;ATD", "Ds_Card_PSD2":"Y" } { "Ds_Amount": "2000", "Ds_Currency": "978", "Ds_Order":"80536456", "Ds_MerchantCode":"999008881", "Ds_Terminal":" "Ds_TransactionType": "0", "Ds_EMV3DS": { "threeDSInfo": "ChallengeRequest", "protocolVersion": "2.2.0", "acsURL": "https://sis-d.redsys.es/sis-simulador-web/authenticationRequest.jsp", "creq": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImQ3NDMzYzJkLWY0NGQtNDhkYS1hM2EzLWU4ODNmNmE4MmZlOSIsImFjc1RyYW5zSUQiOiJmYjNmM2NjMC05ZDQzLTRmYTEtOGUwMi1jZGJkNGNlYTZhMzQiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwiY2hhb0" } } { "Ds_Amount": "1500", "Ds_Currency": "978", "Ds_Order": "3456071921", "Ds_MerchantCode": "999008881", "Ds_Terminal": "1", "Ds_Response": "0900", "Ds_AuthorisationCode": "329741", "Ds_TransactionType": "2", "Ds_SecurePayment": "2", "Ds_Language": "1", "Ds_MerchantData": "", "Ds_Card_Country": "724", "Ds_Card_Brand": "1", "Ds_ProcessedPayMethod": "78", "Ds_Control_1680100010873": "4895410001498" } { "errorCode":"SISXXXX" } Importante: En cada tipo de operativa es posible que tengas que guardar algunos parámetros recibidos en la notificación para usarlos en operaciones posteriores. Esta información se detalla en la sección «¿Qué parámetros debo guardar de la notificación para próximas operaciones?» de cada operativa. Recomendamos no validar el número de parámetros que recibes en una notificación. El nº de parámetros recibidos puede variar entre operativas o por nuevas normativas. Parámetros recibidos en la notificaciónLos parámetros en las notificaciones los recibes en el campo Ds_MerchantParameters codificado en BASE64, tienes que decodificarlo.Estos son los parámetros que puedes recibir en las notificaciones del TPV Virtual y su significado: ParámetroFormatoRequerido/OpcionalDescripciónEjemplo DS_MERCHANTDATA1024 caracteres AlfanuméricoRequeridoInformación opcional (en el envío) enviada por el comercio en el formulario de pago. DS_RESPONSE4 caracteres NuméricoRequeridoIndica el resultado de la operación. Si está autorizada o si ha habido algún error.Códigos de Ds_Response0000 DS_MERCHANTCODE9 caracteres NuméricoRequeridoCódigo del comercio (FUC). Se recibe el mismo valor que en la petición.110034987 DS_AMOUNT12 caracteres NuméricoRequeridoMismo valor que en la petición. Es el valor en céntimos, por lo que 1€ es «100».100 DS_ORDER12 caracteres AlfanuméricoRequeridoNúmero de pedido. Mismo valor que en la petición.14787294 DS_CURRENCY4 caracteres NuméricoRequeridoDivisa de la operación. Mismo valor que en la petición. Divisas disponibles.978 DS_SECUREPAYMENTValores posibles: – 0: Pago NO es seguro – 1: Pago attems (Comercio seguro/Titular no seguro) – 2: Pago seguroRequeridoIndica si el pago es seguro. 1 DS_TERMINAL3 caracteres NuméricoRequeridoNúmero de terminal de tu comercio.099 DS_TRANSACTIONTYPE1 caracter NuméricoRequeridoTipo de operación (autorización, preautorización, etc.) que se envió en el formulario de pago.0 DS_CARD_PSD2Valores posibles: – Y (tarjeta afectada por PSD2) – N (tarjeta NO afectada por PSD2)RequeridoIndica si la tarjeta está afectada por PSD2 o no. Recibido en la notificación de iniciaPeticion.Y ERRORCODE7 caracteres AlfanuméricoOpcional Código de error recibido por el TPV Virtual. SIS0002 DS_AUTHORISATIONCODE6 caracteres AlfanuméricoOpcionalCódigo alfanumérico de autorización asignado a la aprobación de la transacción por la institución autorizadora.176789 DS_EMV3DSJSONOpcionalJSON que contiene información sobre pago seguro.N/A DS_EXCEP_SCA40 caracteres máximo AlfanuméricoOpcionalIndica las exenciones permitidas. Parámetro recibido en la notificación de iniciaPeticion.Tipos de exención.LWV;TRA[30.0];COR;MIT;ATD DS_MERCHANT_COF_TXNID15 caracteres AlfanuméricoOpcional*Identificador de la primera operación COF (tokenización, pago recurrente inicial). * sólo se recibe en operaciones que inicien los pagos recurrentes. 7138123 DS_AMOUNT_EURO12 caracteres NuméricoOpcionalEs el importe en euros. Únicamente aplica en operaciones donde la divisa es distinta al euro. DS_AMOUNT_DCC12 caracteres NuméricoOpcionalImporte de la moneda DCC. Sólo aplica en operaciones DCC. DS_CURRENCY_DCC4 caracteres NuméricoOpcionalDivisa de la operación DCC. Sólo aplica en operaciones DCC. DS_DCCJSONOpcional JSON que contiene información sobre DCC. N/A DS_CARD_BRANDValores posibles: – 1: VISA – 2: MASTERCARD – 8: AMEX – 9: JCB – 22: UPI – 6: DINERS – 22: CUP – 7: PRIVADAOpcionalMarca de la tarjeta. Recomendamos no validar este campo, ya que estos valores pueden cambiar o añadirse nuevas. 1 DS_CARD_NUMBER19 caracteres NuméricoOpcionalTarjeta utilizada en la operación.454881******0003 DS_EXPIRYDATEAAMMOpcionalFecha de expiración de la tarjeta. Lo puedes usar para saber hasta cuándo es válido el token de la misma. 2912 DS_CARD_COUNTRY3 caracteres NuméricoOpcionalPaís de emisión de la tarjeta con la que se ha intentado realizar el pago. Códigos de país.724 DS_MERCHANT_IDENTIFIER40 caracteres AlfanuméricoOpcional*Indica la referencia de la tarjeta a utilizar. Lo debes guardar para enviar en operaciones 1-clic o recurrentes sucesivas. * Se recibe tras solicitar la generación del token/referencia. e20523853b18e73843e542826d53ec9689a9098a DS_CARD_TYPEValores posibles: – C: Crédito – D: DébitoOpcionalTipo de tarjeta. D DS_CONTROL_XXXXXXXXXXXXX13 caracteres NuméricoOpcionalCampo con valor aleatorio pensado para que el comercio esté preparado a recibir campos nuevos sin que esto afecte a su servicio. El objetivo es que no se realice una validación restrictiva de los campos en la respuesta que se envía al comercio y que cuando se envíe uno nuevo no afecte al comercio.1748251869196 DS_PROCESSEDPAYMETHODValores posibles: – 1: Visa Secure – 3: Tradicional Mundial – 5: Finanet – 11: Capacidad FINANET – 13: Capacidad Visa Secure – 14: Tradicional UE – 22: MasterCard Identity Check – 23: Capacidad Identity Check – 24: Pago AMEX – 25: Pago MOTO – 28: Pago JCB – 31: Pago DINERS – 39: JCB JSecure – 40: Capacidad JSecure – 41: Domiciliación – 42: Transferencia – 54: PayPal – 57: SafeKey – 58: Capacidad SafeKey – 59: MasterPass Wallet – 68: Bizum – 70: UPI ExpressPay – 71: GooglePay – 72: ApplePay – 73: UPI SecurePlus – 74: Capacidad Discover – 75: Discover ProtectBuy – 76: Discover – 77: Amazon Pay – 78: Challenge Visa – 79: Challenge MasterCard – 80: Frictionless Visa – 81: Frictionless MasterCard – 82: Attempt Visa – 83: Attempt MasterCard – 85: Challenge Amex – 86: Challenge Discover – 87: Frictionless Amex – 88: Frictionless Discover – 89: Attempt Amex – 90: Attempt Discover – 92: Pago DINERS ProtectBuy – 93: Challenge Diners ProtectBuy – 94: Frictionless Diners ProtectBuy – 95: Attempt Diners ProtectBuy – 96: Challenge JCB – 97: Frictionless JCB – 98: Attempt JCB – 106: SamsungPay – 107: Pago con cuentaOpcionalInforma sobre el método en el que se ha realizado la operación.1 RTS24 caracteres NuméricoOpcional*Este campo se recibe en la notificación de una confirmación parcial. Si quieres devolver esa confirmación parcial, envía el valor recibido en RTS en el campos DS_MERCHANT_RTS en la petición de devolución. *Sólo aplica en confirmaciones parciales (transactionType=48) Parámetros 3DS recibidos en la notificaciónLos parámetros en las notificaciones los recibes en el campo Ds_MerchantParameters codificado en BASE64, tienes que decodificarlo. Los relacionados con el flujo 3DS, están dentro del campo DS_EMV3DS.Estos son los parámetros 3DS que puedes recibir en la notificación: ParámetroFormatoDescripciónEjemplo acsURL2048 caracteres máximo AlfanuméricoURL del ACS para la ejecución del Challenge.https://sis-d.redsys.es/sis-simulador-web/authenticationRequest.jsp AuthenticacionValue28 caracteres AlfanuméricoInformación de la autenticación. CAVV. cardholderInfo128 caracteres máximo AlfanuméricoCampo opcional. Contienen información adicional del titular para mostrar después de solicitar la autenticación. creqLongitud variable AlfanuméricoCreq codificado BASE64URL que se debe enviar al ACS para la ejecución del Challenge. Importante: Este dato NO se debe de alterar.eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImQ3NDMzYzJkLWY0NGQtNDhkYS1hM2EzLWU4ODNmNmE4MmZlOSIsImFjc1RyYW5zSUQiOiJmYjNmM2NjMC05ZDQzLTRmYTEtOGUwMi1jZGJkNGNlYTZhMzQiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0 ECI2 caracteresIndica el cómo se ha realizado la operación. Indica la responsabilidad ante un posible caso de fraude.07 protocolVersionValores Posibles: – NO_3DS_V2 – 2.1.0 – 2.2.0Versión del protocolo 3DS.2.2.0 threeDSInfoValores posibles: – CardConfiguration – ChallengeRequestTipo de solicitud 3DS.CardConfiguration threeDSMethodURL256 caracteres máximo AlfanuméricoURL del ACS para ejecutar el 3DSMethod.https://sis-d.redsys.es:25443/sis-simulador-web/threeDsMethod.jsp threeDSRequestorPriorAuthenticationInfoObjeto JSONEste campo se utiliza para recibir información sobre una autenticación 3DS. *Es necesario en determinadas operativas, como por ejemplo: – Pagos recurrentes EMV 3DS subsiguientes: En este caso, debes enviar en este campo el objeto JSON threeDSRequestorPriorAuthenticationInfo que fue generado en la operación recurrente inicial. Es decir, exactamente el mismo valor que devolvió el TPV en el campo threeDSRequestorPriorAuthenticationInfo dentro de Ds_EMV3DS en la primera operación.N/A threeDSServerTransID36 caracteres AlfanuméricoIdentificación de la transacción EMV3DS, se debe mandar el mismo durante todo el flujo EMV3DS.d7433c2d-f44d-48da-a3a3-e883f6a82fe9 TraceId16 caracteres AlfanuméricoIdentificador de la operación.d7433c2d44d whiteListStatusValores posibles: – N: El comercio no está en la lista de beneficiarios de confianza del cliente. – E: El cliente no tiene lista de beneficiarios de confianza. – P: Adhesión pendiente de confirmación por parte del cliente. – R: El cliente rechazó añadir el comercio a su lista. – U: Estado desconocido o no disponible.Campo opcional e informativo. Indica el estado del comercio en la lista de beneficiarios de confianza del cliente (listas blancas), según lo comunica el emisor de la tarjeta. Actualmente no requiere validación por parte del comercio, pero puede ser útil en el futuro para aplicar exenciones SCA por lista blanca.P Parámetros DCC recibidos en la notificaciónLos parámetros en las notificaciones los recibes en el campo Ds_MerchantParameters codificado en BASE64, tienes que decodificarlo.Los relacionados con DCC, están dentro del campo DS_DCC. Además, dentro de ese campo hay dos parámetros que son JSON que contienen los datos DCC. Estos son InfoMonedaTarjeta y InfoMonedaComercio.Estos son los parámetros DCC que recibes en DS_DCC > InfoMonedaTarjeta: ParámetroFormatoDescripciónEjemplo monedaDCCISO 4217Código ISO de la moneda DCC con la que se puede realizar la operación.840 litMonedaDCCAlfanuméricoNombre de la moneda DCC.DOLAR U.S.A. litMonedaRDCCAlfanuméricoSiglas de la moneda DCC.USD importeDCCAlfanuméricoImporte de la operación en la moneda DCC.1.17 cambioDCCAlfanuméricoTipo de cambio entre la moneda de tu TPV y la divisa DCC. Por ejemplo 1€ = 0.85$.0.85 fechacambioDCCAAAA-MM-DDFecha en la que se aplica la tasa de cambio.2025-06-25 markUpAlfanuméricoComisión del tipo de cambio. Se aplica al importe.0.03 cambioBCEAlfanuméricoTipo de cambio que ofrece el BCE entre la moneda DCC y la del TPV Virtual.1,1345 porcentajeSobreBCEAlfanuméricoPorcentaje que supera el tipo de cambio del TPV Virtual respecto al del BCE. Por ejemplo, el TPV ofrece un 2%, el BCE un 1.5%, este valor sería 0.5%.0,05 Estos son los parámetros DCC que recibes en DS_DCC > InfoMonedaComercio: ParámetroFormatoDescripciónEjemplo monedaComeISO 4217Código ISO de la moneda del comercio.978 litMonedaComeAlfanuméricoNombre de la moneda del comercio.EUR importeComeAlfanuméricoImporte de la operación en la moneda del comercio. 1.00 Códigos de errorEn la notificación recibes el parámetro DS_RESPONSE, que son unos dígitos que indican el resultado de la operación.También puedes recibir el parámetro DS_ERRORCODE.En el siguiente enlace tienes los códigos de error y denegaciones: Códigos de error y denegaciones Exenciones SCAEn las operaciones mencionadas, el comportamiento por defecto es que el cliente se someta a una autenticación reforzada (Strong Customer Authentication, SCA). Es decir, debe autenticarse (por ejemplo, mediante una clave o app bancaria) para prevenir el fraude.¿Cuándo puedo solicitar exenciones SCA?Hay operativas en las que, ya sea por la naturaleza de la operativa o por el importe de la misma, pueden tener una exención de la autenticación reforzada.Las exenciones SCA las puede aplicar el emisor de la tarjeta o el comercio.Exenciones por el emisor: El emisor de la tarjeta aplica una exención ya que tiene confianza en la transacción. Por ejemplo, gracias a los parámetros 3D Secure enviados en la petición.Exenciones por el comercio: Como comercio, puedes enviar en la petición las exenciones que quieras aplicar en la operación. Sin embargo, es el adquiriente (la pasarela de pago) quien las presenta al emisor (el banco que emite la tarjeta) en nombre de tu comercio. El emisor decide si aplicar las exenciones o no.En REST puedes conocer qué exenciones están disponibles al solicitar DS_MERCHANT_EXCEP_SCA con valor Y en la petición iniciaPeticion. En la notificación, te devolverá los valores de la tabla inferior, que son los que tienes que enviar en la petición trataPeticion si quieres solicitar exención.¿Cómo puedo solicitar exenciones SCA?En los parámetros de la petición de pago, envía el parámetro DS_MERCHANT_EXCEP_SCA con los siguientes valores: Valor DS_MERCHANT_EXCEP_SCADescripción TRATransacción de bajo riesgo. El bajo riesgo se evalúa con criterios definidos por normativa PSD2. Si el banco o el proveedor de servicios de pago no cumple los criterios, la exención NO se aplicará. Los requisitos que se tienen que cumplir para conseguir la exención son: – 0,13% de fraude para que las transacciones por debajo de 100€. – 0,06% de fraude para que las transacciones por debajo de 250€ queden exentas. – 0,01% de fraude para que las transacciones por debajo de 500€ queden exentas. LWVTransacción de bajo valor (low value). El importe no supera los 30€ (o el importe equivalente al cambio de la divisa). El banco es el que decide si se aplica la exención o no. Por ejemplo, puede no aplicarse si el cliente lleva 5 o más transacciones de bajo valor sin autenticar o si la suma de estas supera los 100€. MITOperación Iniciado por el Comercio, como el pago de una suscripción mensual. Esta exención se puede solicitar si la primera operación que inicia el pago de la suscripción ha sido autenticada y si el importe y la frecuencia de pago es el mismo durante todo el flujo. CORSi la operación se realiza por un canal corporativo, fuera del alcance del consumidor normal, se puede solicitar la exención COR. Importante: Aunque se solicite una exención, es posible que el banco emisor no lo acepte y el cliente tenga que realizar una autenticación reforzada. Los parámetros 3DS y las exenciones son procesos independientes pero relacionados. Enviar los parámetros 3DS puede facilitar que la operación tenga exención SCA. En el siguiente documento puedes ver la relación entre 3D Secure y SCA. ¿Qué tengo que tener en cuenta cuando solicito una exención?Al solicitar una exención del proceso de SCA (Strong Customer Authentication), tu comercio pasará a ser responsable ante posibles reclamaciones futuras del cliente.