Operativas tarjetas InSite IntroducciónEn esta página te mostramos cómo realizar distintas operativas con tarjetas de crédito o débito si tienes una integración InSite.Las operaciones se envían a través de la integración REST, pero en el caso de InSite, el cajero se renderiza directamente en tu entorno y se genera un parámetro idOper, que identifica de forma única la operación iniciada.Para completar una operación (por ejemplo, un pago), deberás incluir el valor recibido en idOper en el campo DS_MERCHANT_IDOPER dentro de la petición REST correspondiente.Importante: La única diferencia con las peticiones REST, es que se sustituyen los campos de la tarjeta (PAN, CVV, fecha de caducidad) por el idOper.En este documento te mostramos como lanzar las distintas operaciones enviando en idOper. Consulta los siguientes documentos:Integración REST: Explica cómo integrar REST. Necesitarás integrar la creación y envío del formulario, gestión de la respuesta, etc.Integración InSite: Explica cómo renderizar el cajero InSite para mostrar al cliente y obtener el idOper. Integración REST Integración InSite Podrás identificar en Canales las operaciones InSite ya que se registrarán como «InSite 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 NO necesitan PCI DSS: Todas las operativas que se inicien por InSite. Ya que la gestión de los datos de la tarjeta lo lleva el TPV Virtual, y al enviar la operación no envías los datos de la tarjeta, si no el DS_MERCHANT_IDOPER.Operativas que SÍ necesitan PCI DSS: Las operativas donde captures los datos de la tarjeta y los utilices para operar. 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 InSite 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 las peticiones InSite 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_IDOPER40 caracteres AlfanuméricoRequeridoIdentificador de la operación de InSite. Se genera una vez has renderizado el cajero y el cliente ha iniciado el pago455097a74c21b761be86acb26c32609dce222e66 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_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_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. S DS_MERCHANT_COF_TYPEValores posibles: – I: Installments (pago a plazos de una única compra, importe e intervalo fijos) – R: Recurring (pago recurrente, importe fijo o variable, intervalo fijo) – H: Reauthorization (amplía el importe de una autorización, por ejemplo, ampliar la estancia en hotel) – E: Resubmission (operación original denegada por saldo) – D: Delayed (Cargos posteriores, ejemplo la multas a un coche de alquiler) – M: Incremental (cargos adicionales durante la prestación de un servicio) – N: No Show (ejemplo, cliente no acude a reserva en hotel) – C: OtrasOpcional*Indica el tipo de operación COF. * Opcional pero recomendable para la primera operación COF 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 disponiblesen la sección de exenciones.MIT DS_MERCHANT_URLOK250 caracteres AlfanuméricoOpcional URL a la que se redirige al cliente mediante en el flujo 3DS si el proceso es correcto.https://www.example.com/ok DS_MERCHANT_URLKO250 caracteres AlfanuméricoOpcional URL a la que se redirige al cliente mediante en el flujo 3DS si el proceso es incorrecto.https://www.example.com/ko DS_MERCHANT_DIRECTPAYMENTValores posibles: – true – motoOpcionalIdentifica 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. 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 3DSLos parámetros 3DS son necesarios para algunas operativas. Igualmente, los puedes enviar en las peticiones dentro del campo DS_MERCHANT_EMV3DS, ya que enriquecen la petición y mejoran la seguridad de las operaciones. 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 este documento tienes más información sobre 3DS y el resto de tablas con los JSON que conforman los parámetros:acctInfomerchantRiskIndicatorthreeDSRequestorPriorAuthenticationInfothreeDSRequestorAuthenticationInfohomePhone, workPhone y mobilePhone Operativas con autenticación 3DSEstas operativas requieren la autenticación del titular. Para ello, tendrás que preparar varias peticiones y gestionar sus respectivas notificaciones. Las operativas de esta categoría:No requieren PCI DSS. Como se utiliza el idOper en lugar de los datos de la tarjeta, 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 Preautorización Validación de tarjeta 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. 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_IDOPER40 caracteres AlfanuméricoRequeridoIdentificador de la operación de InSite. Se genera una vez has renderizado el cajero y el cliente ha iniciado el pago455097a74c21b761be86acb26c32609dce222e66 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_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_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_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 disponiblesen la sección de exenciones.MIT DS_MERCHANT_URLOK250 caracteres AlfanuméricoOpcional URL a la que se redirige al cliente mediante en el flujo 3DS si el proceso es correcto.https://www.example.com/ok DS_MERCHANT_URLKO250 caracteres AlfanuméricoOpcional URL a la que se redirige al cliente mediante en el flujo 3DS si el proceso es incorrecto.https://www.example.com/ko 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 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_IDOPER": "455097a74c21b761be86acb26c32609dce222e66", "Ds_Merchant_Excep_SCA": "Y", // solicitas información de si hay exenciones disponibles "DS_MERCHANT_EMV3DS": { "threeDSInfo": "CardData" // indicas que solicitas información de la tarjeta } } ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICI5OTkwMDg4ODEiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIyNDM3MDk4NiIsCiAgICAiRFNfTUVSQ0hBTlRfSURPUEVSIjogIjQ1NTA5N2E3NGMyMWI3NjFiZTg2YWNiMjZjMzI2MDlkY2UyMjJlNjYiLAogICAgIkRzX01lcmNoYW50X0V4Y2VwX1NDQSI6ICJZIiwKICAgICJEU19NRVJDSEFOVF9FTVYzRFMiOiB7CiAgICAgICAgInRocmVlRFNJbmZvIjogIkNhcmREYXRhIiAKICAgIH0KfQ== { "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICI5OTkwMDg4ODEiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIyNDM3MDk4NiIsCiAgICAiRFNfTUVSQ0hBTlRfSURPUEVSIjogIjQ1NTA5N2E3NGMyMWI3NjFiZTg2YWNiMjZjMzI2MDlkY2UyMjJlNjYiLAogICAgIkRzX01lcmNoYW50X0V4Y2VwX1NDQSI6ICJZIiwKICAgICJEU19NRVJDSEFOVF9FTVYzRFMiOiB7CiAgICAgICAgInRocmVlRFNJbmZvIjogIkNhcmREYXRhIiAKICAgIH0KfQ==", "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 InSite 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_IDOPER40 caracteres AlfanuméricoRequeridoIdentificador de la operación de InSite. Se genera una vez has renderizado el cajero y el cliente ha iniciado el pago455097a74c21b761be86acb26c32609dce222e66 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_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_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_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 disponiblesen la sección de exenciones.MIT DS_MERCHANT_URLOK250 caracteres AlfanuméricoOpcional URL a la que se redirige al cliente mediante en el flujo 3DS si el proceso es correcto.https://www.example.com/ok DS_MERCHANT_URLKO250 caracteres AlfanuméricoOpcional URL a la que se redirige al cliente mediante en el flujo 3DS si el proceso es incorrecto.https://www.example.com/ko 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 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_IDOPER": "455097a74c21b761be86acb26c32609dce222e66", "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" } } ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICI5OTkwMDg4ODEiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIyNDM3MDk4NiIsCiAgICAiRFNfTUVSQ0hBTlRfSURPUEVSIjogIjQ1NTA5N2E3NGMyMWI3NjFiZTg2YWNiMjZjMzI2MDlkY2UyMjJlNjYiLAogICAgIkRTX01FUkNIQU5UX0VNVjNEUyI6IHsKICAgICAgICAidGhyZWVEU0luZm8iOiAiQXV0aGVudGljYXRpb25EYXRhIiwKICAgICAgICAicHJvdG9jb2xWZXJzaW9uIjogIjIuMi4wIiwKICAgICAgICAiYnJvd3NlckFjY2VwdEhlYWRlciI6ICJ0ZXh0XC9odG1sLGFwcGxpY2F0aW9uXC94aHRtbCt4bWwsYXBwbGljYXRpb25cL3htbDtxPTAuOSwqXC8qO3E9MC44LGFwcGxpY2F0aW9uXC9qc29uIiwKICAgICAgICAiYnJvd3NlckNvbG9yRGVwdGgiOiAiMzIiLAogICAgICAgICJicm93c2VySVAiOiAiODQuMC4wLjEiLAogICAgICAgICJicm93c2VySmF2YUVuYWJsZWQiOiAiMSIsCiAgICAgICAgImJyb3dzZXJKYXZhc2NyaXB0RW5hYmxlZCI6ICIxIiwKICAgICAgICAiYnJvd3Nlckxhbmd1YWdlIjogImVzLUVTIiwKICAgICAgICAiYnJvd3NlclNjcmVlbkhlaWdodCI6ICI4NjQiLAogICAgICAgICJicm93c2VyU2NyZWVuV2lkdGgiOiAiMTUzNiIsCiAgICAgICAgImJyb3dzZXJUWiI6ICItMTIwIiwKICAgICAgICAiYnJvd3NlclVzZXJBZ2VudCI6ICJNb3ppbGxhXC81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXRcLzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZVwvMTM3LjAuMC4wIFNhZmFyaVwvNTM3LjM2IiwKICAgICAgICAidGhyZWVEU1NlcnZlclRyYW5zSUQiOiAiZDc0MzNjMmQtZjQ0ZC00OGRhLWEzYTMtZTg4M2Y2YTgyZmU5IiwKICAgICAgICAibm90aWZpY2F0aW9uVVJMIjogImh0dHBzOlwvXC93ZWJyZWRpcmVjdC5vcmdcL3JlY2VwY2lvbl9ub3RpZmljYWNpb24ucGhwP3RpcG89Y2hhbGxlbmdlIiwKICAgICAgICAidGhyZWVEU0NvbXBJbmQiOiAiWSIKICAgIH0KfQ== { "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICI5OTkwMDg4ODEiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIyNDM3MDk4NiIsCiAgICAiRFNfTUVSQ0hBTlRfSURPUEVSIjogIjQ1NTA5N2E3NGMyMWI3NjFiZTg2YWNiMjZjMzI2MDlkY2UyMjJlNjYiLAogICAgIkRTX01FUkNIQU5UX0VNVjNEUyI6IHsKICAgICAgICAidGhyZWVEU0luZm8iOiAiQXV0aGVudGljYXRpb25EYXRhIiwKICAgICAgICAicHJvdG9jb2xWZXJzaW9uIjogIjIuMi4wIiwKICAgICAgICAiYnJvd3NlckFjY2VwdEhlYWRlciI6ICJ0ZXh0XC9odG1sLGFwcGxpY2F0aW9uXC94aHRtbCt4bWwsYXBwbGljYXRpb25cL3htbDtxPTAuOSwqXC8qO3E9MC44LGFwcGxpY2F0aW9uXC9qc29uIiwKICAgICAgICAiYnJvd3NlckNvbG9yRGVwdGgiOiAiMzIiLAogICAgICAgICJicm93c2VySVAiOiAiODQuMC4wLjEiLAogICAgICAgICJicm93c2VySmF2YUVuYWJsZWQiOiAiMSIsCiAgICAgICAgImJyb3dzZXJKYXZhc2NyaXB0RW5hYmxlZCI6ICIxIiwKICAgICAgICAiYnJvd3Nlckxhbmd1YWdlIjogImVzLUVTIiwKICAgICAgICAiYnJvd3NlclNjcmVlbkhlaWdodCI6ICI4NjQiLAogICAgICAgICJicm93c2VyU2NyZWVuV2lkdGgiOiAiMTUzNiIsCiAgICAgICAgImJyb3dzZXJUWiI6ICItMTIwIiwKICAgICAgICAiYnJvd3NlclVzZXJBZ2VudCI6ICJNb3ppbGxhXC81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXRcLzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZVwvMTM3LjAuMC4wIFNhZmFyaVwvNTM3LjM2IiwKICAgICAgICAidGhyZWVEU1NlcnZlclRyYW5zSUQiOiAiZDc0MzNjMmQtZjQ0ZC00OGRhLWEzYTMtZTg4M2Y2YTgyZmU5IiwKICAgICAgICAibm90aWZpY2F0aW9uVVJMIjogImh0dHBzOlwvXC93ZWJyZWRpcmVjdC5vcmdcL3JlY2VwY2lvbl9ub3RpZmljYWNpb24ucGhwP3RpcG89Y2hhbGxlbmdlIiwKICAgICAgICAidGhyZWVEU0NvbXBJbmQiOiAiWSIKICAgIH0KfQ==", "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_IDOPER40 caracteres AlfanuméricoRequeridoIdentificador de la operación de InSite. Se genera una vez has renderizado el cajero y el cliente ha iniciado el pago455097a74c21b761be86acb26c32609dce222e66 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_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_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_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 disponiblesen la sección de exenciones.MIT DS_MERCHANT_URLOK250 caracteres AlfanuméricoOpcional URL a la que se redirige al cliente mediante en el flujo 3DS si el proceso es correcto.https://www.example.com/ok DS_MERCHANT_URLKO250 caracteres AlfanuméricoOpcional URL a la que se redirige al cliente mediante en el flujo 3DS si el proceso es incorrecto.https://www.example.com/ko 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 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_IDOPER": "455097a74c21b761be86acb26c32609dce222e66", "DS_MERCHANT_EMV3DS": { "threeDSInfo": "ChallengeResponse", "protocolVersion": "2.2.0", "cres": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImQ3NDMzYzJkLWY0NGQtNDhkYS1hM2EzLWU4ODNmNmE4MmZlOSIsImFjc1RyYW5zSUQiOiJmYjNmM2NjMC05ZDQzLTRmYTEtOGUwMi1jZGJkNGNlYTZhMzQiLCJtZXNzYWdlVHlwZSI6IkNSZXMiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwidHJhbnNTdGF0dXMiOiJZIn0=" } } ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICI5OTkwMDg4ODEiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIyNDM3MDk4NiIsCiAgICAiRFNfTUVSQ0hBTlRfSURPUEVSIjogIjQ1NTA5N2E3NGMyMWI3NjFiZTg2YWNiMjZjMzI2MDlkY2UyMjJlNjYiLAogICAgIkRTX01FUkNIQU5UX0VNVjNEUyI6IHsKICAgICAgICAidGhyZWVEU0luZm8iOiAiQ2hhbGxlbmdlUmVzcG9uc2UiLAogICAgICAgICJwcm90b2NvbFZlcnNpb24iOiAiMi4yLjAiLAogICAgICAgICJjcmVzIjogImV5SjBhSEpsWlVSVFUyVnlkbVZ5VkhKaGJuTkpSQ0k2SW1RM05ETXpZekprTFdZME5HUXRORGhrWVMxaE0yRXpMV1U0T0RObU5tRTRNbVpsT1NJc0ltRmpjMVJ5WVc1elNVUWlPaUptWWpObU0yTmpNQzA1WkRRekxUUm1ZVEV0T0dVd01pMWpaR0prTkdObFlUWmhNelFpTENKdFpYTnpZV2RsVkhsd1pTSTZJa05TWlhNaUxDSnRaWE56WVdkbFZtVnljMmx2YmlJNklqSXVNaTR3SWl3aWRISmhibk5UZEdGMGRYTWlPaUpaSW4wPSIKICAgIH0KfQ== { "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICI5OTkwMDg4ODEiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIyNDM3MDk4NiIsCiAgICAiRFNfTUVSQ0hBTlRfSURPUEVSIjogIjQ1NTA5N2E3NGMyMWI3NjFiZTg2YWNiMjZjMzI2MDlkY2UyMjJlNjYiLAogICAgIkRTX01FUkNIQU5UX0VNVjNEUyI6IHsKICAgICAgICAidGhyZWVEU0luZm8iOiAiQ2hhbGxlbmdlUmVzcG9uc2UiLAogICAgICAgICJwcm90b2NvbFZlcnNpb24iOiAiMi4yLjAiLAogICAgICAgICJjcmVzIjogImV5SjBhSEpsWlVSVFUyVnlkbVZ5VkhKaGJuTkpSQ0k2SW1RM05ETXpZekprTFdZME5HUXRORGhrWVMxaE0yRXpMV1U0T0RObU5tRTRNbVpsT1NJc0ltRmpjMVJ5WVc1elNVUWlPaUptWWpObU0yTmpNQzA1WkRRekxUUm1ZVEV0T0dVd01pMWpaR0prTkdObFlUWmhNelFpTENKdFpYTnpZV2RsVkhsd1pTSTZJa05TWlhNaUxDSnRaWE56WVdkbFZtVnljMmx2YmlJNklqSXVNaTR3SWl3aWRISmhibk5UZEdGMGRYTWlPaUpaSW4wPSIKICAgIH0KfQ==", "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?Si la operación se ha completado y es una preautorización o validación de tarjeta DS_MERCHANT_TRANSACTIONTYPE = 1 o 7.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. Confirmación: Puedes confirmar el importe mediante operación REST o mediante Canales.Anulación: Puedes anular el importe a favor del cliente mediante operación REST o mediante Canales. 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 libras (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 InSite. 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 InSiteLos pagos DCC en InSite siguen casi el mismo flujo que el resto de operaciones. Este es el flujo de DCC en InSite:Paso previo: Renderiza el cajero y obtén el idOper. Más detalles en la integración InSite.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 InSite. Recuerda que cualquier operación de cobro puede ser DCC. Paso 1: IniciaPeticion DCCEl primer paso en un pago con DCC en InSite 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_IDOPER40 caracteres AlfanuméricoRequeridoIdentificador de la operación de InSite. Se genera una vez has renderizado el cajero y el cliente ha iniciado el pago455097a74c21b761be86acb26c32609dce222e66 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_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_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_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 disponiblesen la sección de exenciones.MIT DS_MERCHANT_URLOK250 caracteres AlfanuméricoOpcional URL a la que se redirige al cliente mediante en el flujo 3DS si el proceso es correcto.https://www.example.com/ok DS_MERCHANT_URLKO250 caracteres AlfanuméricoOpcional URL a la que se redirige al cliente mediante en el flujo 3DS si el proceso es incorrecto.https://www.example.com/ko 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 InSite. 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_IDOPER": "455097a74c21b761be86acb26c32609dce222e66", "DS_MERCHANT_DCC": "Y", "Ds_Merchant_Excep_SCA": "Y", // solicitas información de si hay exenciones disponibles "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_IDOPER40 caracteres AlfanuméricoRequeridoIdentificador de la operación de InSite. Se genera una vez has renderizado el cajero y el cliente ha iniciado el pago455097a74c21b761be86acb26c32609dce222e66 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_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_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_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 disponiblesen la sección de exenciones.MIT DS_MERCHANT_URLOK250 caracteres AlfanuméricoOpcional URL a la que se redirige al cliente mediante en el flujo 3DS si el proceso es correcto.https://www.example.com/ok DS_MERCHANT_URLKO250 caracteres AlfanuméricoOpcional URL a la que se redirige al cliente mediante en el flujo 3DS si el proceso es incorrecto.https://www.example.com/ko 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 InSite. 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_IDOPER": "455097a74c21b761be86acb26c32609dce222e66", "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_IDOPER40 caracteres AlfanuméricoRequeridoIdentificador de la operación de InSite. Se genera una vez has renderizado el cajero y el cliente ha iniciado el pago455097a74c21b761be86acb26c32609dce222e66 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_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_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_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 disponiblesen la sección de exenciones.MIT DS_MERCHANT_URLOK250 caracteres AlfanuméricoOpcional URL a la que se redirige al cliente mediante en el flujo 3DS si el proceso es correcto.https://www.example.com/ok DS_MERCHANT_URLKO250 caracteres AlfanuméricoOpcional URL a la que se redirige al cliente mediante en el flujo 3DS si el proceso es incorrecto.https://www.example.com/ko 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 InSite. 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_IDOPER": "455097a74c21b761be86acb26c32609dce222e66", "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 InSite 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 con algún error de procesamiento. 1. iniciaPeticion 2. trataPeticion 3. 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" } } { "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 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.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. ¿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.