API – Developers Docs API – Developers Docs
  • Cyberpac
  • Addon Payments
  • Pagos integrados en TPV
API – Developers Docs API – Developers Docs
API – Developers Docs
  • Cyberpac
  • Addon Payments
  • Pagos integrados en TPV
Cyberpac
  • Folder icon closed Folder open iconCanales
    • Consultas de operaciones e informes
    • Devoluciones
    • Consulta de notificaciones
    • Confirmar y anular operaciones
    • PayGold desde Canales
    • MO/TO desde Canales
    • Configuración de comercio
    • Preguntas frecuentes Canales
  • Folder icon closed Folder open iconMódulos de integración
    • PrestaShop
    • WooCommerce
    • Magento (Adobe Commerce)
    • Instalación y configuración avanzada de módulos de integración
    • Preguntas y errores frecuentes módulos
  • Folder icon closed Folder open iconIntegraciones a medida
    • Redirección
      • Operativas tarjetas redirección
    • REST
      • Operativas tarjetas REST
    • InSite
      • Operativas tarjetas InSite
    • InApp
      • Integración Android
      • Integración iOS
    • PayGold
  • Folder icon closed Folder open iconMétodos de pago
    • ApplePay
    • Google Pay
    • Bizum
  • Folder icon closed Folder open iconComplementa tu integración
    • 3D Secure: Qué es y parámetros
    • Consulta de operaciones REST
    • Entorno de pruebas y pase a producción
    • Personalizar pasarela de pago
  • Folder icon closed Folder open iconRecursos
    • Códigos de Error y Denegaciones
    • Códigos: Divisas e Idiomas
    • Tarjetas para pruebas y casuísticas

Operativas tarjetas InSite

Introducción

En 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 DSS

Dependiendo 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 entornos

En 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ón

La 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 entornos

Puedes 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ón

  • Entorno 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. 

Endpoints

Estas 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ón

Estos 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érico
RequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987
DS_MERCHANT_TERMINAL3 caracteres
Numérico
RequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99
DS_MERCHANT_AMOUNT12 caracteres
Numérico
RequeridoImporte 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érico
RequeridoCó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érico
RequeridoIdentificador 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érico
Opcional* 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érico
OpcionalURL 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érico
Opcional*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 COF
Opcional*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: Otras
Opcional*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érico
Opcional** 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érico
Opcional 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érico
OpcionalNombre 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érico
OpcionalIndicador del código de grupo asociado a la referencia/token. Opcional si se envía el DS_MERCHANT_IDENTIFIER.
DS_MERCHANT_MERCHANTNAME25 caracteres
Alfanumérico
OpcionalIndica 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érico
OpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo
DS_MERCHANT_EXCEP_SCA3 caracteres
Alfanumérico
Opcional– 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érico
Opcional 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érico
Opcional 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
– moto
OpcionalIdentifica 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érico
OpcionalEs 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 PSPs
Mi 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 tarjeta
S

Parámetros 3DS

Los 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érico
OpcionalInformació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érico
RecomendadoCiudad 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érico
RecomendadoPrimera 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érico
RecomendadoSegunda 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érico
RecomendadoTercera 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érico
RecomendadoCó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érico
RecomendadoHTTP 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érico
RecomendadoIP 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érico
RecomendadoAltura total de la pantalla en píxeles. Este valor lo devuelve la propiedad «screen.height».
1080
browserScreenWidth1 a 6 caracteres
Alfanumérico
RecomendadoAnchura 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érico
RecomendadoHttp 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érico
RecomendadoURL 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.0
RecomendadoVersión de protocolo 3DSecure.
2.2.0
cardholderNameDe 2 a 45 caracteres
Alfanumérico
RecomendadoNombre 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érico
RecomendadoDirecció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 1
Opcional*Indica el número máximo de autorizaciones en pago aplazado.

* Obligatorio para operaciones COF Instalment
3
recurringExpiryYYYYMMDDOpcional*Fecha a partir de la cual no se harán más autorizaciones Formato aceptado: YYYYMMDD

* Obligatorio para operaciones COF Instalment y Recurring
20301231
recurringFrequency4 caracteres
Numérico
Opcional*Indica el mínimo número de días entre autorizaciones

* Obligatorio para operaciones COF Instalment y Recurring
30
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érico
RecomendadoPrimera línea de la dirección de envío solicitada por el titular de la tarjeta.Calle Test 1
shipAddrLine250 caracteres máximo
Alfanumérico
RecomendadoSegunda línea de la dirección de envío solicitada por el titular de la tarjeta.Bloque 2
shipAddrLine350 caracteres máximo
Alfanumérico
RecomendadoTercera línea de la dirección de envío solicitada por el titular de la tarjeta.Piso 3 C
shipAddrPostCode16 caracteres máximo
Alfanumérico
RecomendadoEl 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 ejecutado
RecomendadoIndica 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-OTA
RecomendadoTipo 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érico
RecomendadoIdentificador de la transacción 3DSecuro. Es el mismo valor devuelto en la consulta de tarjeta.d7433c2d-f44d-48da-a3a3-e883f6a82fe9
cresLongitud variable
Alfanumérico
Opcional*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:

  • acctInfo
  • merchantRiskIndicator
  • threeDSRequestorPriorAuthenticationInfo
  • threeDSRequestorAuthenticationInfo
  • homePhone, workPhone y mobilePhone

Operativas con autenticación 3DS

Estas 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: IniciaPeticion

El 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 IniciaPeticion

Esta 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érico
RequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987
DS_MERCHANT_TERMINAL3 caracteres
Numérico
RequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99
DS_MERCHANT_AMOUNT12 caracteres
Numérico
RequeridoImporte 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érico
RequeridoCó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érico
RequeridoIdentificador 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érico
Opcional* 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érico
Opcional 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érico
OpcionalIndica 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érico
OpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo
DS_MERCHANT_EXCEP_SCA3 caracteres
Alfanumérico
Opcional– 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érico
Opcional 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érico
Opcional 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érico
OpcionalEs 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 PSPs
Mi 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-OTA
RecomendadoTipo de solicitud 3DS.
CardData

Envío de la petición de solicitud de información

Estos 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:

  1. Los parámetros que se envían en Ds_MerchantParameters en formato JSON.
  2. Los parámetros del JSON codificados en BASE64. Este es el valor enviado en Ds_MerchantParameters.
  3. El formulario completo que debes enviar. Consulta el resto de campos en la integración 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 iniciaPeticion

Cuando 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:

  1. 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.
  2. 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 3DSMethod

El 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 3DSMethod

1. 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 BASE64URL

El 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 anterior

Codifica el JSON anterior en BASE64URL.

				
					ewogICJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ICJ2YWxvcl9yZWNpYmlkbyIsCiAgInRocmVlRFNNZXRob2ROb3RpZmljYXRpb25VUkwiOiAiaHR0cHM6Ly90dXdlYi5jb20vbm90aWZpY2FjaW9uLTNkcyIKfQ==

				
			

4. Crea y envía el iframe oculto al cliente

Inserta 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:

				
					<body>
    <form id="3dsmethod-form" action="https://urlDevueltaEniniciaPeticion.es" method="POST">
        <input type="hidden" name="threeDSMethodData" value="eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImM5ODgzMzBiLTZjMmItNDg5My05ZjJhLTNjYjNiNzA4YmY3NCIsInRocmVlRFNNZXRob2ROb3RpZmljYXRpb25VUkwiOiJodHRwczovL3Npcy1kLnJlZHN5cy5lczoyNTQ0My9zaXMvc2VydmljZXMvcmVzdC9yZXN0M0RTL3Byb2Nlc2FyM0RTTWV0aG9kIn0="> 
    </form>

    <iframe id="3dsmethod-iframe" name="3dsmethod" style="display:none;"></iframe>
</body>

<script>
    function ejecutar3DSMethod() { 
        var form = document.getElementById("3dsmethod-form"); 
        var iframe = document.getElementById("3dsmethod-iframe"); 
        
        form.target = "3dsmethod"; 
        form.submit(); 
    } 
</script>

				
			

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 navegador

El 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 3DSMethod

El ú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ón

Una 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ón

Esta 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érico
RequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987
DS_MERCHANT_TERMINAL3 caracteres
Numérico
RequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99
DS_MERCHANT_AMOUNT12 caracteres
Numérico
RequeridoImporte 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érico
RequeridoCó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érico
RequeridoIdentificador 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érico
Opcional* 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érico
OpcionalURL 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érico
Opcional 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érico
OpcionalNombre 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érico
OpcionalIndica 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érico
OpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo
DS_MERCHANT_EXCEP_SCA3 caracteres
Alfanumérico
Opcional– 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érico
Opcional 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érico
Opcional 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érico
OpcionalEs 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 PSPs
Mi 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érico
OpcionalInformació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érico
RecomendadoCiudad 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érico
RecomendadoPrimera 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érico
RecomendadoSegunda 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érico
RecomendadoTercera 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érico
RecomendadoCó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érico
RecomendadoHTTP 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érico
RecomendadoIP 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érico
RecomendadoAltura total de la pantalla en píxeles. Este valor lo devuelve la propiedad «screen.height».
1080
browserScreenWidth1 a 6 caracteres
Alfanumérico
RecomendadoAnchura 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érico
RecomendadoHttp 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érico
RecomendadoURL 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.0
RecomendadoVersión de protocolo 3DSecure.
2.2.0
cardholderNameDe 2 a 45 caracteres
Alfanumérico
RecomendadoNombre 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érico
RecomendadoDirecció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 1
Opcional*Indica el número máximo de autorizaciones en pago aplazado.

* Obligatorio para operaciones COF Instalment
3
recurringExpiryYYYYMMDDOpcional*Fecha a partir de la cual no se harán más autorizaciones Formato aceptado: YYYYMMDD

* Obligatorio para operaciones COF Instalment y Recurring
20301231
recurringFrequency4 caracteres
Numérico
Opcional*Indica el mínimo número de días entre autorizaciones

* Obligatorio para operaciones COF Instalment y Recurring
30
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érico
RecomendadoPrimera línea de la dirección de envío solicitada por el titular de la tarjeta.Calle Test 1
shipAddrLine250 caracteres máximo
Alfanumérico
RecomendadoSegunda línea de la dirección de envío solicitada por el titular de la tarjeta.Bloque 2
shipAddrLine350 caracteres máximo
Alfanumérico
RecomendadoTercera línea de la dirección de envío solicitada por el titular de la tarjeta.Piso 3 C
shipAddrPostCode16 caracteres máximo
Alfanumérico
RecomendadoEl 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 ejecutado
RecomendadoIndica 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-OTA
RecomendadoTipo 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érico
RecomendadoIdentificador 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ón

Estos 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:

  1. Los parámetros que se envían en Ds_MerchantParameters en formato JSON.
  2. Los parámetros del JSON codificados en BASE64. Este es el valor enviado en Ds_MerchantParameters.
  3. El formulario completo que debes enviar. Consulta el resto de campos en la integración 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:

  1. 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.
  2. 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 KO

La 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ón

Si 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 emisor

A 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:

				
					<form id="authentication-form" method="POST" action="https://sis-d.redsys.es/sis-simulador-web/authenticationRequest.jsp" target="_blank">
  <label for="creq" style="display:none;">CReq</label>
  <input type="hidden" id="creq" name="creq" value="eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImQ3NDMzYzJkLWY0NGQtNDhkYS1hM2EzLWU4ODNmNmE4MmZlOSIsImFjc1RyYW5zSUQiOiJmYjNmM2NjMC05ZDQzLTRmYTEtOGUwMi1jZGJkNGNlYTZhMzQiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0" />
  
  <button type="submit">Realizar pago</button>
</form>
				
			

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.  

				
					<?php

function redirect_to_acs() {

    $form='<iframe name="redsys_iframe_acs" name="redsys_iframe_acs" src=""
    id="redsys_iframe_acs" target="_parent" referrerpolicy="origin"
    sandbox="allow-same-origin allow-scripts allow-top-navigation allow-forms"
    height="95%" width="100%" style="border: none; display: none;"></iframe>

    <form name="redsysAcsForm" id="redsysAcsForm"
        action="'. $urlACS .'" method="POST"
        target="redsys_iframe_acs" style="border: none;">
        <table name="dataTable" border="0" cellpadding="0">
            <input type="hidden" name="creq"
                value="'. $creq .'">
            <br>
            <p style="font-family: Arial; font-size: 16; font-weight: bold; color: black; align: center;">
                Conectando con el emisor...
            </p>
        </table>
    </form>
            
    <script>
        window.onload = function () {
            document.getElementById("redsys_iframe_acs").onload = function() {
                document.getElementById("redsysAcsForm").style.display="none";
                document.getElementById("redsys_iframe_acs").style.display="inline";
            }
            document.redsysAcsForm.submit();
        }
    </script>';

    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/challenge

Una 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ón

Una 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ón

Esta 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érico
RequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987
DS_MERCHANT_TERMINAL3 caracteres
Numérico
RequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99
DS_MERCHANT_AMOUNT12 caracteres
Numérico
RequeridoImporte 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érico
RequeridoCó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érico
RequeridoIdentificador 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érico
Opcional* 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érico
OpcionalURL 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érico
Opcional 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érico
OpcionalNombre 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érico
OpcionalIndica 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érico
OpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo
DS_MERCHANT_EXCEP_SCA3 caracteres
Alfanumérico
Opcional– 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érico
Opcional 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érico
Opcional 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érico
OpcionalEs 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 PSPs
Mi 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érico
OpcionalInformació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érico
RecomendadoCiudad 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érico
RecomendadoPrimera 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érico
RecomendadoSegunda 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érico
RecomendadoTercera 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érico
RecomendadoCó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.0
RecomendadoVersión de protocolo 3DSecure.
2.2.0
cardholderNameDe 2 a 45 caracteres
Alfanumérico
RecomendadoNombre 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érico
RecomendadoDirecció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 1
Opcional*Indica el número máximo de autorizaciones en pago aplazado.

* Obligatorio para operaciones COF Instalment
3
recurringExpiryYYYYMMDDOpcional*Fecha a partir de la cual no se harán más autorizaciones Formato aceptado: YYYYMMDD

* Obligatorio para operaciones COF Instalment y Recurring
20301231
recurringFrequency4 caracteres
Numérico
Opcional*Indica el mínimo número de días entre autorizaciones

* Obligatorio para operaciones COF Instalment y Recurring
30
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érico
RecomendadoPrimera línea de la dirección de envío solicitada por el titular de la tarjeta.Calle Test 1
shipAddrLine250 caracteres máximo
Alfanumérico
RecomendadoSegunda línea de la dirección de envío solicitada por el titular de la tarjeta.Bloque 2
shipAddrLine350 caracteres máximo
Alfanumérico
RecomendadoTercera línea de la dirección de envío solicitada por el titular de la tarjeta.Piso 3 C
shipAddrPostCode16 caracteres máximo
Alfanumérico
RecomendadoEl 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-OTA
RecomendadoTipo 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érico
Opcional*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ón

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:

  1. Los parámetros que se envían en Ds_MerchantParameters en formato JSON.
  2. Los parámetros del JSON codificados en BASE64. Este es el valor enviado en Ds_MerchantParameters.
  3. El formulario completo que debes enviar. Consulta el resto de campos en la integración 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ó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:

  1. 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.
  2. 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 InSite

Los 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.
  1. 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.
  2. Ejecutar el 3DSMethod: Paso opcional pero recomendable si la tarjeta requiere autenticación 3DS.
  3. 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).
  4. 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.
  5. 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.
  6. 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 DCC

El 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 DCC

Estos 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érico
RequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987
DS_MERCHANT_TERMINAL3 caracteres
Numérico
RequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99
DS_MERCHANT_AMOUNT12 caracteres
Numérico
RequeridoImporte 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érico
RequeridoCó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érico
RequeridoIdentificador 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érico
Opcional* 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érico
Opcional 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érico
OpcionalIndica 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érico
OpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo
DS_MERCHANT_EXCEP_SCA3 caracteres
Alfanumérico
Opcional– 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érico
Opcional 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érico
Opcional 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érico
OpcionalEs 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 PSPs
Mi 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-OTA
RecomendadoTipo de solicitud 3DS.
CardData
Envío de la petición iniciaPeticion DCC

Estos 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:

  1. Los parámetros que se envían en Ds_MerchantParameters en formato JSON.
  2. Los parámetros del JSON codificados en BASE64. Este es el valor enviado en Ds_MerchantParameters.
  3. El formulario completo que debes enviar. Consulta el resto de campos en la integración InSite.
				
					{
    "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 DCC

Cuando 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:

  1. 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.
  2. 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, Libra

Es 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 3DS

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.

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ón

A 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 3DSMethod

El 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 DCC

El siguiente paso es incluir en tu flujo una pantalla con esta información:

  1. 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: importeCome
    • Importe en la moneda DCC: importeDCC
    • Nombre y siglas moneda DCC: litMonedaDCC y litMonedaRDCC
    • Tasa de cambio: cambioDCC
    • Comisión de tipo de cambio o Markup: markUp
    • Fecha en la que se ha aplicado el cambio DCC: fechaCambioDCC
  2. La 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 DCC

Una 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 DCC

Esta 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érico
RequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987
DS_MERCHANT_TERMINAL3 caracteres
Numérico
RequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99
DS_MERCHANT_AMOUNT12 caracteres
Numérico
RequeridoImporte 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érico
RequeridoCó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érico
RequeridoIdentificador 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érico
Opcional* 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érico
OpcionalURL 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érico
Opcional 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érico
OpcionalNombre 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érico
OpcionalIndica 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érico
OpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo
DS_MERCHANT_EXCEP_SCA3 caracteres
Alfanumérico
Opcional– 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érico
Opcional 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érico
Opcional 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érico
OpcionalEs 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 PSPs
Mi 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érico
RequeridoCódigo ISO 4217 de la divisa DCC utilizada en la transacción. Ver códigos ISO divisas.840
importeDCC12 caracteres
Numérico
RequeridoImporte 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érico
OpcionalInformació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érico
RecomendadoCiudad 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érico
RecomendadoPrimera 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érico
RecomendadoSegunda 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érico
RecomendadoTercera 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érico
RecomendadoCó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érico
RecomendadoHTTP 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érico
RecomendadoIP 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érico
RecomendadoAltura total de la pantalla en píxeles. Este valor lo devuelve la propiedad «screen.height».
1080
browserScreenWidth1 a 6 caracteres
Alfanumérico
RecomendadoAnchura 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érico
RecomendadoHttp 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érico
RecomendadoURL 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.0
RecomendadoVersión de protocolo 3DSecure.
2.2.0
cardholderNameDe 2 a 45 caracteres
Alfanumérico
RecomendadoNombre 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érico
RecomendadoDirecció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 1
Opcional*Indica el número máximo de autorizaciones en pago aplazado.

* Obligatorio para operaciones COF Instalment
3
recurringExpiryYYYYMMDDOpcional*Fecha a partir de la cual no se harán más autorizaciones Formato aceptado: YYYYMMDD

* Obligatorio para operaciones COF Instalment y Recurring
20301231
recurringFrequency4 caracteres
Numérico
Opcional*Indica el mínimo número de días entre autorizaciones

* Obligatorio para operaciones COF Instalment y Recurring
30
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érico
RecomendadoPrimera línea de la dirección de envío solicitada por el titular de la tarjeta.Calle Test 1
shipAddrLine250 caracteres máximo
Alfanumérico
RecomendadoSegunda línea de la dirección de envío solicitada por el titular de la tarjeta.Bloque 2
shipAddrLine350 caracteres máximo
Alfanumérico
RecomendadoTercera línea de la dirección de envío solicitada por el titular de la tarjeta.Piso 3 C
shipAddrPostCode16 caracteres máximo
Alfanumérico
RecomendadoEl 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 ejecutado
RecomendadoIndica 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-OTA
RecomendadoTipo 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érico
RecomendadoIdentificador 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 DCC

Estos 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:

  1. Los parámetros que se envían en Ds_MerchantParameters en formato JSON.
  2. Los parámetros del JSON codificados en BASE64. Este es el valor enviado en Ds_MerchantParameters.
  3. El formulario completo que debes enviar. Consulta el resto de campos en la integración InSite.
				
					{
    "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 DCC

Cuando 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:

  1. 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.
  2. 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 KO

La 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 DCC

Si 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 DCC

Una 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 DCC

Esta 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érico
RequeridoCódigo FUC o número de comercio. No cambia entre entornos. 110034987
DS_MERCHANT_TERMINAL3 caracteres
Numérico
RequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99
DS_MERCHANT_AMOUNT12 caracteres
Numérico
RequeridoImporte 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érico
RequeridoCó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érico
RequeridoIdentificador 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érico
Opcional* 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érico
OpcionalURL 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érico
Opcional 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érico
OpcionalNombre 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érico
OpcionalIndica 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érico
OpcionalDescripción del producto que está comprando. El cliente lo verá durante el proceso de pago.Monitor de trabajo
DS_MERCHANT_EXCEP_SCA3 caracteres
Alfanumérico
Opcional– 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érico
Opcional 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érico
Opcional 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érico
OpcionalEs 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 PSPs
Mi 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érico
RequeridoCódigo ISO 4217 de la divisa DCC utilizada en la transacción. Ver códigos ISO divisas.840
importeDCC12 caracteres
Numérico
RequeridoImporte 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érico
OpcionalInformació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érico
RecomendadoCiudad 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érico
RecomendadoPrimera 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érico
RecomendadoSegunda 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érico
RecomendadoTercera 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érico
RecomendadoCó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.0
RecomendadoVersión de protocolo 3DSecure.
2.2.0
cardholderNameDe 2 a 45 caracteres
Alfanumérico
RecomendadoNombre 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érico
RecomendadoDirecció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 1
Opcional*Indica el número máximo de autorizaciones en pago aplazado.

* Obligatorio para operaciones COF Instalment
3
recurringExpiryYYYYMMDDOpcional*Fecha a partir de la cual no se harán más autorizaciones Formato aceptado: YYYYMMDD

* Obligatorio para operaciones COF Instalment y Recurring
20301231
recurringFrequency4 caracteres
Numérico
Opcional*Indica el mínimo número de días entre autorizaciones

* Obligatorio para operaciones COF Instalment y Recurring
30
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érico
RecomendadoPrimera línea de la dirección de envío solicitada por el titular de la tarjeta.Calle Test 1
shipAddrLine250 caracteres máximo
Alfanumérico
RecomendadoSegunda línea de la dirección de envío solicitada por el titular de la tarjeta.Bloque 2
shipAddrLine350 caracteres máximo
Alfanumérico
RecomendadoTercera línea de la dirección de envío solicitada por el titular de la tarjeta.Piso 3 C
shipAddrPostCode16 caracteres máximo
Alfanumérico
RecomendadoEl 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-OTA
RecomendadoTipo 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érico
Opcional*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 DCC

Estos 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:

  1. Los parámetros que se envían en Ds_MerchantParameters en formato JSON.
  2. Los parámetros del JSON codificados en BASE64. Este es el valor enviado en Ds_MerchantParameters.
  3. El formulario completo que debes enviar. Consulta el resto de campos en la integración InSite.
				
					{
    "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 DCC

Cuando 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:

  1. 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.
  2. 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 DCC

Puedes 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ón

Cuando 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ón

  • La 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ón

En 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.

  1. Operación iniciaPeticion solicitando datos de la tarjeta. (flujo 3DS)
  2. Operación de autorización trataPeticion con flujo 3DS.
  3. Operación con algún error de procesamiento.
				
					{
   "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ón

Los 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érico
RequeridoInformación opcional (en el envío) enviada por el comercio en el formulario de pago.
DS_RESPONSE4 caracteres
Numérico
RequeridoIndica 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érico
RequeridoCódigo del comercio (FUC). Se recibe el mismo valor que en la petición.110034987
DS_AMOUNT12 caracteres
Numérico
RequeridoMismo valor que en la petición. Es el valor en céntimos, por lo que 1€ es «100».100
DS_ORDER12 caracteres
Alfanumérico
RequeridoNúmero de pedido. Mismo valor que en la petición.14787294
DS_CURRENCY4 caracteres
Numérico
RequeridoDivisa 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 seguro
RequeridoIndica si el pago es seguro. 1
DS_TERMINAL3 caracteres
Numérico
RequeridoNúmero de terminal de tu comercio.099
DS_TRANSACTIONTYPE1 caracter
Numérico
RequeridoTipo 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érico
Opcional Código de error recibido por el TPV Virtual. SIS0002
DS_AUTHORISATIONCODE6 caracteres
Alfanumérico
OpcionalCó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érico
OpcionalIndica 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érico
Opcional*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érico
OpcionalEs el importe en euros. Únicamente aplica en operaciones donde la divisa es distinta al euro.
DS_AMOUNT_DCC12 caracteres
Numérico
OpcionalImporte de la moneda DCC. Sólo aplica en operaciones DCC.
DS_CURRENCY_DCC4 caracteres
Numérico
OpcionalDivisa 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: PRIVADA
OpcionalMarca de la tarjeta. Recomendamos no validar este campo, ya que estos valores pueden cambiar o añadirse nuevas. 1
DS_CARD_NUMBER19 caracteres
Numérico
OpcionalTarjeta 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érico
OpcionalPaí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érico
Opcional*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ébito
OpcionalTipo de tarjeta. D
DS_CONTROL_XXXXXXXXXXXXX13 caracteres
Numérico
OpcionalCampo 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 cuenta
OpcionalInforma sobre el método en el que se ha realizado la operación.1
RTS24 caracteres
Numérico
Opcional*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ón

Los 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érico
URL del ACS para la ejecución del Challenge.https://sis-d.redsys.es/sis-simulador-web/authenticationRequest.jsp
AuthenticacionValue28 caracteres
Alfanumérico
Información de la autenticación. CAVV.
cardholderInfo128 caracteres máximo
Alfanumérico
Campo opcional. Contienen información adicional del titular para mostrar después de solicitar la autenticación.
creqLongitud variable
Alfanumérico
Creq 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.0
Versión del protocolo 3DS.2.2.0
threeDSInfoValores posibles:
– CardConfiguration
– ChallengeRequest
Tipo de solicitud 3DS.CardConfiguration
threeDSMethodURL256 caracteres máximo
Alfanumérico
URL 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érico
Identificación de la transacción EMV3DS, se debe mandar el mismo durante todo el flujo EMV3DS.d7433c2d-f44d-48da-a3a3-e883f6a82fe9
TraceId16 caracteres
Alfanumérico
Identificador 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 error

  • En 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 SCA

En 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.

Comparte este documento

Operativas tarjetas InSite

Copiar el enlace

Clipboard Icon
Tabla de Contenidos

Productos

  • Cyberpac
  • Addon Payments
  • Pagos integrados en TPV
  • Universal Pay
  • Addon 1 - XML API Integration

Ventas

Cuéntanos cómo es tu negocio para ofrecerte la mejor solución.

Contacta con un experto

Soporte técnico

¿Ya eres cliente y necesitas ayuda? Contacta con nosotros, estamos a tu disposición.

Ayuda

Socios

Trabajamos con los mejores partners de soluciones in-store y eCommerce. ¿Quieres unirte?

Únete a nosotros

© Comercia Global Payments

Política de privacidad
Ejercicio de Derechos
Información a Clientes
Canal de denuncia
Aviso Legal
Política de cookies
Pregúntale a la IA
Escribe tu pregunta. Por ejemplo: ¿Cómo creo un enlace de pago?
La SmartWiki puede omitir datos. Verifica la información o contacta con soporte.

SmartWiki, Impulsada por IA

API - Developers Docs
Gestionar el consentimiento de las cookies
Para ofrecer las mejores experiencias, utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. El consentimiento de estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.
Funcional Siempre activo
El almacenamiento o acceso técnico es estrictamente necesario para el propósito legítimo de permitir el uso de un servicio específico explícitamente solicitado por el abonado o usuario, o con el único propósito de llevar a cabo la transmisión de una comunicación a través de una red de comunicaciones electrónicas
Preferencias
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario
Estadísticas
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos. El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en una web o en varias web con fines de marketing similares.
Administrar opciones Gestionar los servicios Gestionar {vendor_count} proveedores Leer más sobre estos propósitos
Ver preferencias
{title} {title} {title}

Cyberpac

Consulta la documentación de Cyberpac. Aquí tienes las distintas secciones:

Canales

Módulos de integración

Integraciones a medida

Consulta la documentación de las distintas secciones de integraciones:

Comienza a integrar

undraw_add_to_cart_re_wrdo 1 (1) (1)

Plugins para CMS

Complementa la integración

SDKs

Métodos de pago

Herramientas

Addon Payments

Consulta la documentación de Addon Payments. Aquí tienes las distintas secciones:

Integraciones

Consultas frecuentes

Portal Backoffice

Pagos integrados en TPV

Crea una solución que te ayudará a automatizar procesos. Incluso, podrás agregar procesos de pago en terminales físicos.

Pago integrado con TPV Android

Pago integrado con Smartphone TPV

Fichas Técnicas TPVs

Addon Payments

Comercia Global Payments has several integration options so you can choose the most efficient one for you.

Integrations

Frequently Asked Questions

BackOffice Portal

Consult the documentation of the different integrations sections:​

Start integration

undraw_add_to_cart_re_wrdo 1 (1) (1)

CMS Plugins

Complement your integration

SDKs

Payment Methods

Tools