API – Developers Docs API – Developers Docs
  • Addon Payments
  • Pagos integrados en TPV
API – Developers Docs API – Developers Docs
API – Developers Docs
  • 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 REST

Introducción

En esta página te mostramos cómo realizar distintas operativas con tarjetas de crédito o débito a través de la integración REST.

Lo que detallamos en este documento es la forma de realizar cada operación:

  1. Enviar diferentes parámetros dentro del campo Ds_MerchantParameters.
  2. Enviar y realizar diferentes acciones para el flujo 3DS. No todas las operaciones requieren este flujo.

Ten en cuenta que esto representa solo una parte del proceso completo de integración. Como paso previo, te dejamos el enlace donde se explica todo el proceso la integración REST:

Integración REST

Necesidad de PCI DSS

Dependiendo del tipo de operativa que vayas a realizar con tu integración, necesitarás (o no) PCI DSS:

  • Operativas que SÍ necesitan PCI DSS: Las operativas donde captures los datos de la tarjeta y los utilices para operar. Por ejemplo, autorizaciones, preautorizaciones, etc.
  • Operativas que NO necesitan PCI DSS: Las operativas donde no utilices datos de la tarjeta o donde utilices únicamente un token de la tarjeta que has obtenido por redirección. Por ejemplo, devoluciones, confirmaciones, pagos tokenizados, etc. 

Endpoints: Tipos de petición y entornos

En esta sección tienes la información sobre los distintos endpoints según el tipo de petición REST y el entorno donde estés operando. 

Tipos de petició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 la integración REST. 

  • Los requeridos son necesarios en cualquier operativa, y los opcionales son necesarios en algunas operativas. Consulta la sección de la documentación de la operativa que estés realizando para más detalles.
ParámetroFormatoRequerido/OpcionalDescripciónEjemplo
DS_MERCHANT_MERCHANTCODE9 caracteres
Numé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_PAN19 caracteres
Numérico
Requerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta.
* Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)
4548810000000003
DS_MERCHANT_CVV23 a 4 caracteres
Numérico
Requerido*Código CVV2 de la tarjeta del cliente.
* Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT.
050
DS_MERCHANT_EXPIRYDATE4 caracteres
Numérico
AAMM
Requerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes).
* Requerido cuando se envía DS_MERCHANT_PAN
3012
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_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 y los sucesivos, sean 1-clic o MIT.
S
DS_MERCHANT_COF_TYPETienes la descripción de los valores en la tabla de DS_MERCHANT_COF_TYPE.
Valores posibles:
– I: Installments
– R: Recurring
– H: Reauthorization
– E: Resubmission
– D: Delayed
– M: Incremental
– N: No Show
– C: Otras
Opcional*Indica el tipo de operación COF.

* Requerido para las operaciones COF iniciales o sucesivas y el pago 1-clic.
R
DS_MERCHANT_COF_TXNID15 caracteres
Alfanumé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_AUTHORISATIONCODE6 caracteres
Alfanumérico
OpcionalCódigo de autorización que identifica la transacción original que se quiere devolver. El valor no es único, se puede repetir. Útil para comercios que repiten nº de pedido. 245232
DS_MERCHANT_TRANSACTIONDATE10 caracteres
yyyy-mm-dd
OpcionalFecha de la operación que se quiere devolver. Permite identificar sin equivocación la transacción que se quiere devolver, útil si tu comercio permite repetir números de pedido.2025-06-11
DS_MERCHANT_RTS24 caracteres
Numérico
Opcional*Valor RTS para Devoluciones de confirmaciones parciales.
* Requerido en devoluciones de confirmaciones parciales.
2452452334132434
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_DCCHay 2 formatos posibles:
– iniciaPeticion: «Y» o «N»
– trataPeticion: Objeto JSON (monedaDCC y importeDCC)
Opcional** Requerido en operaciones DCC.

– iniciaPeticion: Campo que indica la solicitud de información DCC

– trataPeticion: Objeto JSON donde se envían los datos DCC de la operación.
– iniciaPeticion: Y
– trataPeticion: Objeto JSON (ver campos enviados en la tabla inferior)
DS_MERCHANT_EMV3DSObjeto JSON*OpcionalEste parámetro contiene un JSON con los parámetros necesarios para la autenticación EMV3DS (v2 y v1).
* Objeto JSON serializado como string.
N/A
DS_MERCHANT_GROUP9 caracteres
Numé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 disponibles en la sección de exenciones.

*Requerido enviarlo en operaciones MIT.
MIT
DS_MERCHANT_DIRECTPAYMENTValores posibles:
– true
– moto
Opcional*Identifica si es un pago directo por parte del comercio (sin autenticación).
– Si se envía true, la operación se identifica como sin autenticación. (esto no se tendrá en cuenta si la tarjeta está afectada por PSD2).
– Si se envía moto, la operación se identifica como pago MOTO.

*Requerido enviarlo en operaciones que inicia el comercio, como los pagos MIT. Y en pagos MOTO.
true
DS_MERCHANT_MERCHANTDESCRIPTOR25 caracteres
Alfanumé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 3D Secure

Los parámetros 3D Secure se tienen que enviar en las peticiones de las operativas que requieren de este protocolo. Estos parámetros amplían la información sobre el cliente que realiza la transacción, lo que aumenta la seguridad y reduce el fraude.

Tienes todo el proceso explicado en la sección Operativas con autenticación 3DS. Estos parámetros se envían dentro del campo DS_MERCHANT_EMV3DS:

ParámetroFormatoOpcional/RecomendadoDescripciónEjemplo
acctID64 caracteres máximo
Alfanumé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 el documento 3D Secure: Qué es y parámetros tienes más información sobre el protocolo 3DS y el resto de tablas con los JSON que conforman los parámetros:

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

Operativas con una sola petición

Estas operativas no requieren la autenticación del titular. Únicamente tendrás que preparar la petición con los parámetros de Ds_MerchantParameters necesarios según la operativa y enviar la petición al endpoint correspondiente según el entorno:

Tipo de peticiónEntornoURL
trataPeticionPruebashttps://sis-t.redsys.es:25443/sis/rest/trataPeticionREST
Producciónhttps://sis.redsys.es/sis/rest/trataPeticionREST

Las operativas de esta categoría:

  • No tienen que cumplir la normativa PCI DSS por norma general. Si lo requiere si se manejan datos de la tarjeta.
  • No pasan por el flujo 3DS. Sólo hay que enviar una petición al endpoint trataPeticion y gestionar la notificación.
  • El resto de la integración (montar el formulario, enviarlo, gestionar notificación, etc.) se explica en el documento Integración REST.

Las operativas REST que puedes realizar con una petición son: 

  • Devolución
  • Confirmación
  • Anulación
  • Pago COF sucesivo MIT. Más detalles en esta sección.
  • Otras exenciones
  • MO/TO
Las operativas mencionadas se activan por separado. Tienes que pedir su activación a oficina. Se activan para todo el comercio.

Flujo operaciones con una petición

A continuación tienes un diagrama del flujo que sigue una operación con una sola petición en REST:

  1. Inicio de la operación: El cliente entra en tu tienda online y pulsa en el botón de pagar para iniciar el proceso. 
  2. Petición de pago (trataPeticion): El comercio monta y envía una petición de pago siguiendo la lógica de la integración y enviando los parámetros necesarios según la operativa. 
  3. Resultado de la operación: El TPV Virtual notifica a tu comercio el resultado de la operación.
  4. Indicar resultado al cliente: Tu comercio le indica al cliente el resultado de la operación. 

Devolución

Una devolución permite reembolsar, de forma total o parcial, el importe de una operación previamente autorizada.

Estos son los requisitos para realizar una devolución vía REST:

  • La operación original debe haber sido autorizada y cobrada correctamente (es decir, debe tener un código de respuesta de éxito).
  • El campo DS_MERCHANT_ORDER de la devolución debe coincidir exactamente con el número de pedido de la operación original que se desea devolver.
  • El abono en la cuenta del cliente varía según la política de la entidad emisora. Puede ir desde un par de días a un mes. 
  • Pueden ser totales o parciales. Puedes hacer tantas devoluciones parciales como necesites, pero nunca superarán el importe original. 

Parámetros de la petición de devolución

Esta es la tabla con los parámetros requeridos y opcionales que debes incluir en Ds_MerchantParameters para realizar una devolución vía REST:

ParámetroFormatoRequerido/OpcionalDescripciónEjemplo
DS_MERCHANT_MERCHANTCODE9 caracteres
Numé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_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_AUTHORISATIONCODE6 caracteres
Alfanumérico
OpcionalCódigo de autorización que identifica la transacción original que se quiere devolver. El valor no es único, se puede repetir. Útil para comercios que repiten nº de pedido. 245232
DS_MERCHANT_TRANSACTIONDATE10 caracteres
yyyy-mm-dd
OpcionalFecha de la operación que se quiere devolver. Permite identificar sin equivocación la transacción que se quiere devolver, útil si tu comercio permite repetir números de pedido.2025-06-11
DS_MERCHANT_RTS24 caracteres
Numérico
Opcional*Valor RTS para Devoluciones de confirmaciones parciales.
* Requerido en devoluciones de confirmaciones parciales.
2452452334132434
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_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_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

Para la operativa de devolución, el valor de DS_MERCHANT_TRANSACTIONTYPE debe ser 3.

Envío de la petición de devolució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": "3",
    "DS_MERCHANT_AMOUNT": "100",
    "DS_MERCHANT_CURRENCY": "978",
    "DS_MERCHANT_ORDER": "79430110"
}
				
			
				
					ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMyIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICI3OTQzMDExMCIKfQ==
				
			
				
					{
    "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMyIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICI3OTQzMDExMCIKfQ==",
    "Ds_Merchant_Signature": "jYKQo8CFY7Pqp+4gi6EvLtWAGyBOZ8TWJd+nTrPl1Ew==",
    "Ds_SignatureVersion": "HMAC_SHA512_V2"
}
				
			

Notificación de devolución

Una vez realizada la petición de devolución con éxito, recibes la respuesta del TPV Virtual con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles: 

  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

Resultado de la devolución

El resultado de la operación de devolución se indica en el campo Ds_Response el valor 0900 indica que ha ido correctamente. 

Confirmación

Una confirmación permite capturar a favor del comercio el importe que se ha retenido o validado al cliente durante una preautorización o validación de tarjeta.

Puedes confirmar todo el importe o una cantidad menor. Si confirmas menos cantidad, la diferencia se liberará a favor del cliente una vez pase el tiempo establecido por su entidad. Antes de esto, puedes realizar otras confirmaciones parciales.

Con la integración REST, puedes confirmar los siguientes tipos de operaciones:

  • Preautorizaciones, las preautorizaciones retienen el importe marcado en la cuenta del cliente. Recomendamos confirmar la preautorización en un plazo de 7 días, aunque pueden ser hasta 30 días (depende del emisor de la tarjeta). El DS_MERCHANT_TRANSACTIONTYPE de las preautorizaciones es 1.
  • Validación de tarjeta, las validaciones de tarjeta no retienen el importe en la cuenta. Si en la validación te tarjeta autenticas un importe, luego puedes confirmarlo, aunque esta confirmación no está asegurada ya que el importe no se retiene al cliente (a diferencia de las preautorizaciones). El DS_MERCHANT_TRANSACTIONTYPE de las validaciones de tarjeta es 7.

El campo DS_MERCHANT_ORDER de la devolución debe coincidir exactamente con el número de pedido de la operación original que se desea devolver.

Parámetros de la petición de Confirmación

Esta es la tabla con los parámetros requeridos y opcionales que debes incluir en Ds_MerchantParameters para realizar una confirmación vía REST:

ParámetroFormatoRequerido/OpcionalDescripciónEjemplo
DS_MERCHANT_MERCHANTCODE9 caracteres
Numé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_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_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_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_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

Para la operativa de confirmación, el valor de DS_MERCHANT_TRANSACTIONTYPE es:

  • 2 para confirmar preautorizaciones.
  • 8 para confirmar validaciones de tarjeta.

Envío de la petición de confirmació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": "2", // El valor 2 es para confirmar preautorizaciones, usa el 8 para confirmar validaciones.
    "DS_MERCHANT_AMOUNT": "100",
    "DS_MERCHANT_CURRENCY": "978",
    "DS_MERCHANT_ORDER": "79430110"
}
				
			
				
					ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMiIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICI3OTQzMDExMCIKfQ==
				
			
				
					{
    "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMiIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICI3OTQzMDExMCIKfQ==",
    "Ds_Merchant_Signature": "fE7Pm4Tf3PrbzaWhJIeF2jdId53ELNZjj+d7K/4fkzs=",
    "Ds_SignatureVersion": "HMAC_SHA512_V2"
}
				
			

Notificación de confirmación

Una vez realizada la petición de devolución con éxito, recibes la respuesta del TPV Virtual con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles: 

  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

Resultado según tipo de confirmación

El resultado de la operación se indica en el campo Ds_Response:

  • Si la confirmación de la preautorización ha ido correctamente, el código será 0900.
  • Si la confirmación de la validación ha ido correctamente, el código será 0000.

Además, si la confirmación es parcial, recibirás el campo RTS, si quieres devolver esa confirmación parcial, envía el valor recibido en RTS en el campo DS_MERCHANT_RTS en la petición de devolución.

Anulación

Una anulación revierte o cancela la operación indicada. Es posible anular los siguientes tipos de operación: 

  • Preautorización: Anula el importe que se le ha retenido el cliente.
  • Autorización: Anula un pago autorizado y devuelve del dinero al cliente. Para este flujo recomendamos realizar una devolución, vía REST o por Canales. 
  • Devolución: Anula el importe devuelvo a un cliente.
    • Recomendamos reservar esta operativa para casos excepcionales donde haya habido algún error en el proceso de compra o devolución. 
    • Si la devolución se abona en la cuenta del cliente, no se podrá realizar la anulación. El cliente no verá ningún rastro de la devolución original ni de la anulación. 
  • Validación de tarjeta: Anula la validación de tarjeta. 

La anulación es total, es decir, todo el importe de la operación. 

El campo DS_MERCHANT_ORDER de la anulación debe coincidir exactamente con el número de pedido de la operación original que se desea anular.

Parámetros de la petición de Anulación

Esta es la tabla con los parámetros requeridos y opcionales que debes incluir en Ds_MerchantParameters para realizar una anulación vía REST:

ParámetroFormatoRequerido/OpcionalDescripciónEjemplo
DS_MERCHANT_MERCHANTCODE9 caracteres
Numé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_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_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_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_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

Además, según el tipo de anulación que quieras realizar, tienes que enviar un valor en DS_MERCHANT_TRANSACTIONTYPE.

Para la operativa de anulación, el valor de DS_MERCHANT_TRANSACTIONTYPE es:

  • 9 para anular preautorizaciones y autorizaciones.
  • 46 para anular devoluciones.
  • 47 para anular la validación de tarjeta.

Envío de la petición de anulació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": "9", // El valor 9 es para anular preautorizaciones, usa el resto de valores indicados para anular otro tipo de operaciones.
    "DS_MERCHANT_AMOUNT": "100",
    "DS_MERCHANT_CURRENCY": "978",
    "DS_MERCHANT_ORDER": "79430110"
}
				
			
				
					ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiOSIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICI3OTQzMDExMCIKfQ==
				
			
				
					{
    "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiOSIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICI3OTQzMDExMCIKfQ==",
    "Ds_Merchant_Signature": "DLsO8PWspG1yhViVzJ3YjC3n9qARsWyQEfooebL75V0=",
    "Ds_SignatureVersion": "HMAC_SHA512_V2"
}
				
			

Notificación de anulación

Una vez realizada la petición de anulación con éxito, recibes la respuesta del TPV Virtual con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles: 

  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

Resultado de la anulación

El resultado de la anulación se indica en el campo Ds_Response, si ha ido correctamente su valor será 0400. 

Pagos MO/TO

MO/TO (Mail Order/Telephone Order) es una operativa que permite introducir los datos de la tarjeta del cliente de forma manual. Si ya estás integrado por redirección, puedes realizar pagos MO/TO una vez hayas solicitado a Soporte u oficina su activación.

El cliente indica los datos de su tarjeta por teléfono o por correo electrónico. Tu comercio introduce los datos mediante un agente o sistema automatizado. Este tipo de pago es utilizado en callcenters tipo teletienda, por ejemplo.

Ni el cliente ni su tarjeta se encuentra presente en el momento del cobro, por lo que las operaciones son calificadas como «no seguras» y NO se solicita autenticación

Esta operativa se puede realizar con la integración por redirección, como verás en este documento. También se puede hacer desde Canales o REST:

  • Pago MO/TO desde Canales.
  • Integración por Redirección.

Tienes que solicitar la activación de MO/TO a Soporte u Oficina. Contacta con Soporte para la activación de MO/TO. 

Autorización o Preautorización con MO/TO

Si tienes activos los pago MO/TO puedes realizar 2 tipos de operativas:

  • La autorización es la operativa de pago básica: permite realizar un cargo inmediato sobre la tarjeta del cliente.
  • La preautorización es una operativa de pago que retiene o aparta el importe de la cuenta del cliente. El comercio tiene que confirmar la operación para recibir la operación.
Parámetros petición de autorización o preautorización MO/TO

Esta es la tabla con los parámetros requeridos y opcionales que debes incluir en Ds_MerchantParameters para realizar una autorización o preautorización MO/TO mediante REST:

ParámetroFormatoRequerido/OpcionalDescripciónEjemplo
DS_MERCHANT_MERCHANTCODE9 caracteres
Numé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_PAN19 caracteres
Numérico
Requerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta.
* Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)
4548810000000003
DS_MERCHANT_CVV23 a 4 caracteres
Numérico
Requerido*Código CVV2 de la tarjeta del cliente.
* Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT.
050
DS_MERCHANT_EXPIRYDATE4 caracteres
Numérico
AAMM
Requerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes).
* Requerido cuando se envía DS_MERCHANT_PAN
3012
DS_MERCHANT_DIRECTPAYMENTValores posibles:
– true
– moto
Opcional*Identifica si es un pago directo por parte del comercio (sin autenticación).
– Si se envía true, la operación se identifica como sin autenticación. (esto no se tendrá en cuenta si la tarjeta está afectada por PSD2).
– Si se envía moto, la operación se identifica como pago MOTO.

*Requerido enviarlo en operaciones que inicia el comercio, como los pagos MIT. Y en pagos MOTO.
true

El valor de DS_MERCHANT_TRANSACTIONTYPE cambia según la operativa que esté realizando:

  • Para autorización es 0.
  • Para preautorización es 1.
Envío de la petición de autorización o preautorización MO/TO

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", // Valor 0 para autorización; valor 1 para preautorización
    "DS_MERCHANT_DIRECTPAYMENT": "MOTO",
    "DS_MERCHANT_AMOUNT": "100",
    "DS_MERCHANT_CURRENCY": "978",
    "DS_MERCHANT_ORDER": "24370986",
    "DS_MERCHANT_EXPIRYDATE": "3012"
    "DS_MERCHANT_CVV2": "123",
    "DS_MERCHANT_PAN": "4548810000000003"
}
				
			
				
					ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiOSIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICI3OTQzMDExMCIKfQ==
				
			
				
					{
    "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiOSIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICI3OTQzMDExMCIKfQ==",
    "Ds_Merchant_Signature": "DLsO8PWspG1yhViVzJ3YjC3n9qARsWyQEfooebL75V0=",
    "Ds_SignatureVersion": "HMAC_SHA512_V2"
}
				
			
Notificación de pago MO/TO

Una vez realizada la petición de anulación con éxito, recibes la respuesta del TPV Virtual con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles: 

  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

Si la operación MO/TO es una autorización, este punto NO aplica.

Una vez la preautorización se ha completado con éxito, tienes que confirmar o anular la operación.  Recomendamos hacerlo en un plazo de 7 días, aunque pueden ser hasta 30 días (depende del emisor de la tarjeta):

  • Confirmar la operación: Para recibir el importe que has preautorizado. Puedes confirmar una preautorización desde Canales o vía REST.
  • Anular la operación: Para liberar el importe a favor del cliente. Puedes anular una preautorización desde Canales o vía REST.

Recuerda que para confirmar (o anular) una preautorización debes utilizar valor del Ds_Merchant_Order recibido en la notificación.

Operativas con autenticación 3DS

La autenticación 3D Secure consiste en el envío de parámetros con datos del cliente o la implementación de protocolos para autenticar la identidad del cliente durante la transacción. En la integración REST, tu comercio tendrá que recoger y enviar los parámetros que indicamos a continuación, así como preparar su integración para un posible flujo con Autenticación Reforzada del cliente (challenge).

Además, es posible solicitar exenciones de la Autenticación Reforzada del Cliente. Se solicitan en las peticiones con el campo DS_MERCHANT_EXCEP_SCA, como verás en las siguientes secciones.

En los siguientes documentos tienes más información sobre: 

  • 3D Secure, Autenticación Reforzada y normativa. 
  • Exenciones SCA. 
Los parámetros 3DS y las exenciones son procesos independientes pero relacionados. Enviar los parámetros 3DS puede facilitar que la operación tenga exención SCA.

Tendrás que preparar varias peticiones y gestionar sus respectivas notificaciones. Las operativas con autenticación 3D Secure tienen las siguientes características:

  • Requieren PCI DSS por norma general. En caso de que NO utilicen los datos de la tarjeta (y usen un token en su lugar) no hace falta PCI.
  • Incorporan el flujo 3DS, por lo que requieren varias peticiones a los endpoints iniciaPeticion y trataPeticion, así como la gestión de la notificación correspondiente.
  • El resto de la integración (montar el formulario, enviarlo, gestionar notificación, etc.) se explica en el documento Integración REST.

Envía los Ds_MerchantParameters necesarios según la operativa y manda la petición al endpoint correspondiente según el entorno y paso del flujo:

Tipo de peticiónEntornoURL
iniciaPeticionPruebas https://sis-t.redsys.es:25443/sis/rest/iniciaPeticionREST
Producciónhttps://sis.redsys.es/sis/rest/iniciaPeticionREST
trataPeticionPruebashttps://sis-t.redsys.es:25443/sis/rest/trataPeticionREST
Producciónhttps://sis.redsys.es/sis/rest/trataPeticionREST

Las operativas REST que requieren la autenticación 3DS del titular son:

  • Autorización, pago inmediato de la tarjeta del cliente a la cuenta de tu comercio.
  • Preautorización, retiene el importe al cliente hasta que el comercio captura la transacción. Puedes confirmar o anular desde Canales o vía petición REST.
  • Validación de tarjeta, realiza una operación que NO retiene el importe al cliente. Puedes confirmar por Canales o vía REST, aunque es posible que el importe no esté disponible ya que no se retiene.
  • Pago COF inicial o tokenización, genera un token de la tarjeta del cliente para usar en futuras operaciones. Más detalles en esta sección.
  • Pago 1-clic, utiliza el token de la tarjeta del cliente para pagar más rápidamente. Más detalles en esta sección.

Para poder operar con preautorizaciones el comercio tiene que pedir su activación a su oficina. La preautorización se activa para todo el comercio y sus terminales.

Flujo operaciones 3DS

A continuación tienes unos diagramas de flujo de las operaciones con 3DS en la integración REST. En el primer diagrama tienes el flujo frictionless y en el segundo el challenge: 

  1. Inicio de la operación: El cliente entra en tu tienda online y pulsa en el botón de pagar para iniciar la operación.
  2. Petición de información (iniciaPeticion):El comercio envía una petición al TPV Virtual con los datos básicos de la operación y la tarjeta. Esta petición sirve para iniciar el flujo 3DS y obtener los datos necesarios para valorar el riesgo de la transacción.
  3. Información 3DS: El TPV Virtual notifica a tu comercio la información 3DS sobre la tarjeta y la operación, incluyendo la URL donde realizar el 3DS Method.
  4. 3DS Method (opcional pero recomendable): Tu comercio ejecuta el 3DS Method, que consiste en recopilar información sobre el cliente para que la transacción sea más segura.
  5. Intercambio de datos con el ACS: El navegador del cliente establece comunicación directa con el servidor del emisor (ACS) para proporcionar información adicional. Esto ocurre automáticamente y no requiere interacción del cliente.
  6. Resultado 3DS Method: El navegador del cliente comunica a tu comercio el resultado del 3DS Method.
  7. Petición de pago (trataPeticion): Tu comercio envía la petición de pago con datos 3DS (recopilados del iniciaPeticion y del 3DS Method) al TPV Virtual.
  8. Respuesta petición de pago (frictionless): El TPV Virtual valora el riesgo y, si la operación es considerada de bajo riesgo, autoriza la operación directamente sin requerir autenticación adicional del cliente (no hay challenge).
  9. Resultado operación: Tu comercio indica al cliente el resultado de la operación.
    1. Inicio de la operación: El cliente entra en tu tienda online y pulsa en el botón de pagar para iniciar la operación.
    2. Petición de información (iniciaPeticion):El comercio envía una petición al TPV Virtual con los datos básicos de la operación y la tarjeta. Esta petición sirve para iniciar el flujo 3DS y obtener los datos necesarios para valorar el riesgo de la transacción.
    3. Información 3DS: El TPV Virtual notifica a tu comercio la información 3DS sobre la tarjeta y la operación, incluyendo la URL donde realizar el 3DS Method.
    4. 3DS Method (opcional pero recomendable): Tu comercio ejecuta el 3DS Method, que consiste en recopilar información sobre el cliente para que la transacción sea más segura.
    5. Intercambio de datos con el ACS: El navegador del cliente establece comunicación directa con el servidor del emisor (ACS) para proporcionar información adicional. Esto ocurre automáticamente y no requiere interacción del cliente.
    6. Resultado 3DS Method: El navegador del cliente comunica a tu comercio el resultado del 3DS Method.
    7. Petición de pago (trataPeticion): Tu comercio envía la petición de pago con datos 3DS (recopilados del iniciaPeticion y del 3DS Method) al TPV Virtual.
    8. Respuesta petición de pago (challenge): El TPV Virtual valora el riesgo y determina que el cliente se tiene que autenticar mediante challenge.
    9. Cliente realiza challenge: El cliente realiza el challenge. El challenge puede ser una autenticación en su aplicación bancaria, un SMS con un código, etc.
    10. Resultado del challenge: El Banco emisor (ACS) le comunica a tu comercio el resultado del challenge.
    11. Petición de autenticación (trataPeticion): Tu comercio envía al TPV Virtual una petición con los parámetros que indican el resultado del challenge, entre otros.
    12. Resultado autenticación: El TPV Virtual le comunica a tu comercio el resultado de la operación de autenticación.
    13. Resultado operación: Tu comercio indica al cliente el resultado de la operación.

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_PAN19 caracteres
Numérico
Requerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta.
* Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)
4548810000000003
DS_MERCHANT_CVV23 a 4 caracteres
Numérico
Requerido*Código CVV2 de la tarjeta del cliente.
* Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT.
050
DS_MERCHANT_EXPIRYDATE4 caracteres
Numérico
AAMM
Requerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes).
* Requerido cuando se envía DS_MERCHANT_PAN
3012
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_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_DCCHay 2 formatos posibles:
– iniciaPeticion: «Y» o «N»
– trataPeticion: Objeto JSON (monedaDCC y importeDCC)
Opcional** Requerido en operaciones DCC.

– iniciaPeticion: Campo que indica la solicitud de información DCC

– trataPeticion: Objeto JSON donde se envían los datos DCC de la operación.
– iniciaPeticion: Y
– trataPeticion: Objeto JSON (ver campos enviados en la tabla inferior)
DS_MERCHANT_EMV3DSObjeto JSON*OpcionalEste parámetro contiene un JSON con los parámetros necesarios para la autenticación EMV3DS (v2 y v1).
* Objeto JSON serializado como string.
N/A
DS_MERCHANT_MERCHANTNAME25 caracteres
Alfanumé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 disponibles en la sección de exenciones.

*Requerido enviarlo en operaciones MIT.
MIT
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. Este campo van en un JSON dentro del parámetro DS_MERCHANT_EMV3DS:

ParámetroFormatoOpcional/RecomendadoDescripciónEjemplo
threeDSInfoValores posibles:
– CardData: Indica que solicitas información de la tarjeta.
– AuthenticationData
– ChallengeResponse: Indica que estás respondiendo al challenge.
– 3RI-Recurring
– 3RI-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_EXPIRYDATE": "3012"
    "DS_MERCHANT_CVV2": "123",
    "Ds_Merchant_Excep_SCA": "Y", // solicitas información de si hay exenciones disponibles
    "DS_MERCHANT_PAN": "4548810000000003",
    "DS_MERCHANT_EMV3DS": {
        "threeDSInfo": "CardData" // indicas que solicitas información de la tarjeta
    }
}
				
			
				
					ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIyNDM3MDk4NiIsCiAgICAiRHNfTWVyY2hhbnRfRXhjZXBfU0NBIjogIlkiLAogICAgIkRTX01FUkNIQU5UX1BBTiI6ICI0NTQ4ODEwMDAwMDAwMDAzIiwKICAgICJEU19NRVJDSEFOVF9FTVYzRFMiOiB7CiAgICAgICAgInRocmVlRFNJbmZvIjogIkNhcmREYXRhIgogICAgfQp9
				
			
				
					{
    "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIyNDM3MDk4NiIsCiAgICAiRHNfTWVyY2hhbnRfRXhjZXBfU0NBIjogIlkiLAogICAgIkRTX01FUkNIQU5UX1BBTiI6ICI0NTQ4ODEwMDAwMDAwMDAzIiwKICAgICJEU19NRVJDSEFOVF9FTVYzRFMiOiB7CiAgICAgICAgInRocmVlRFNJbmZvIjogIkNhcmREYXRhIgogICAgfQp9",
    "Ds_Merchant_Signature": "3tup2ld5l+TzMTpRFL2e62P9yzOioNHHy4Wl26mPstA=",
    "Ds_SignatureVersion": "HMAC_SHA512_V2"
}
				
			

Notificación del 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 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_PAN19 caracteres
Numérico
Requerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta.
* Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)
4548810000000003
DS_MERCHANT_CVV23 a 4 caracteres
Numérico
Requerido*Código CVV2 de la tarjeta del cliente.
* Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT.
050
DS_MERCHANT_EXPIRYDATE4 caracteres
Numérico
AAMM
Requerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes).
* Requerido cuando se envía DS_MERCHANT_PAN
3012
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_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_DCCHay 2 formatos posibles:
– iniciaPeticion: «Y» o «N»
– trataPeticion: Objeto JSON (monedaDCC y importeDCC)
Opcional** Requerido en operaciones DCC.

– iniciaPeticion: Campo que indica la solicitud de información DCC

– trataPeticion: Objeto JSON donde se envían los datos DCC de la operación.
– iniciaPeticion: Y
– trataPeticion: Objeto JSON (ver campos enviados en la tabla inferior)
DS_MERCHANT_EMV3DSObjeto JSON*OpcionalEste parámetro contiene un JSON con los parámetros necesarios para la autenticación EMV3DS (v2 y v1).
* Objeto JSON serializado como string.
N/A
DS_MERCHANT_MERCHANTNAME25 caracteres
Alfanumé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 disponibles en la sección de exenciones.

*Requerido enviarlo en operaciones MIT.
MIT
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 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 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_PAN": "4548810000000003",
    "DS_MERCHANT_EXPIRYDATE": "3012",
    "DS_MERCHANT_CVV2": "123",
    "DS_MERCHANT_EMV3DS": {
        "threeDSInfo": "AuthenticationData",
        "protocolVersion": "2.2.0",
        "browserAcceptHeader": "text\/html,application\/xhtml+xml,application\/xml;q=0.9,*\/*;q=0.8,application\/json",
        "browserColorDepth": "32",
        "browserIP": "84.0.0.1",
        "browserJavaEnabled": "1",
        "browserJavascriptEnabled": "1",
        "browserLanguage": "es-ES",
        "browserScreenHeight": "864",
        "browserScreenWidth": "1536",
        "browserTZ": "-120",
        "browserUserAgent": "Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/137.0.0.0 Safari\/537.36",
        "threeDSServerTransID": "d7433c2d-f44d-48da-a3a3-e883f6a82fe9",
        "notificationURL": "https:\/\/webredirect.org\/recepcion_notificacion.php?tipo=challenge",
        "threeDSCompInd": "Y"
    }
}
				
			
				
					ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIzOTMzMTA4NiIsCiAgICAiRFNfTUVSQ0hBTlRfUEFOIjogIjQ1NDg4MTAwMDAwMDAwMDNcdCIsCiAgICAiRFNfTUVSQ0hBTlRfRVhQSVJZREFURSI6ICIzMDEyIiwKICAgICJEU19NRVJDSEFOVF9DVlYyIjogIjEyMyIsCiAgICAiRFNfTUVSQ0hBTlRfRU1WM0RTIjogewogICAgICAgICJ0aHJlZURTSW5mbyI6ICJDaGFsbGVuZ2VSZXNwb25zZSIsCiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICIyLjIuMCIsCiAgICAgICAgImNyZXMiOiAiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJbVEzTkRNell6SmtMV1kwTkdRdE5EaGtZUzFoTTJFekxXVTRPRE5tTm1FNE1tWmxPU0lzSW1GamMxUnlZVzV6U1VRaU9pSm1Zak5tTTJOak1DMDVaRFF6TFRSbVlURXRPR1V3TWkxalpHSmtOR05sWVRaaE16UWlMQ0p0WlhOellXZGxWSGx3WlNJNklrTlNaWE1pTENKdFpYTnpZV2RsVm1WeWMybHZiaUk2SWpJdU1pNHdJaXdpZEhKaGJuTlRkR0YwZFhNaU9pSlpJbjA9IgogICAgfQp9
				
			
				
					{
    "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIzOTMzMTA4NiIsCiAgICAiRFNfTUVSQ0hBTlRfUEFOIjogIjQ1NDg4MTAwMDAwMDAwMDNcdCIsCiAgICAiRFNfTUVSQ0hBTlRfRVhQSVJZREFURSI6ICIzMDEyIiwKICAgICJEU19NRVJDSEFOVF9DVlYyIjogIjEyMyIsCiAgICAiRFNfTUVSQ0hBTlRfRU1WM0RTIjogewogICAgICAgICJ0aHJlZURTSW5mbyI6ICJDaGFsbGVuZ2VSZXNwb25zZSIsCiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICIyLjIuMCIsCiAgICAgICAgImNyZXMiOiAiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJbVEzTkRNell6SmtMV1kwTkdRdE5EaGtZUzFoTTJFekxXVTRPRE5tTm1FNE1tWmxPU0lzSW1GamMxUnlZVzV6U1VRaU9pSm1Zak5tTTJOak1DMDVaRFF6TFRSbVlURXRPR1V3TWkxalpHSmtOR05sWVRaaE16UWlMQ0p0WlhOellXZGxWSGx3WlNJNklrTlNaWE1pTENKdFpYTnpZV2RsVm1WeWMybHZiaUk2SWpJdU1pNHdJaXdpZEhKaGJuTlRkR0YwZFhNaU9pSlpJbjA9IgogICAgfQp9",
    "Ds_Merchant_Signature": "ZfCZSV1Lx0pGTKXf78rBLsU3XmxD3yo1e9hOK9pROwk=",
    "Ds_SignatureVersion": "HMAC_SHA512_V2"
}
				
			

Notificación de la petición de autorización 

Cuando realizas una petición de autorización con éxito, recibes una notificación o respuesta con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles:

  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_PAN19 caracteres
Numérico
Requerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta.
* Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)
4548810000000003
DS_MERCHANT_CVV23 a 4 caracteres
Numérico
Requerido*Código CVV2 de la tarjeta del cliente.
* Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT.
050
DS_MERCHANT_EXPIRYDATE4 caracteres
Numérico
AAMM
Requerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes).
* Requerido cuando se envía DS_MERCHANT_PAN
3012
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_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_DCCHay 2 formatos posibles:
– iniciaPeticion: «Y» o «N»
– trataPeticion: Objeto JSON (monedaDCC y importeDCC)
Opcional** Requerido en operaciones DCC.

– iniciaPeticion: Campo que indica la solicitud de información DCC

– trataPeticion: Objeto JSON donde se envían los datos DCC de la operación.
– iniciaPeticion: Y
– trataPeticion: Objeto JSON (ver campos enviados en la tabla inferior)
DS_MERCHANT_EMV3DSObjeto JSON*OpcionalEste parámetro contiene un JSON con los parámetros necesarios para la autenticación EMV3DS (v2 y v1).
* Objeto JSON serializado como string.
N/A
DS_MERCHANT_MERCHANTNAME25 caracteres
Alfanumé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 disponibles en la sección de exenciones.

*Requerido enviarlo en operaciones MIT.
MIT
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 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 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_PAN": "4548810000000003",
    "DS_MERCHANT_EXPIRYDATE": "3012",
    "DS_MERCHANT_CVV2": "123",
    "DS_MERCHANT_EMV3DS": {
        "threeDSInfo": "ChallengeResponse",
        "protocolVersion": "2.2.0",
        "cres": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImQ3NDMzYzJkLWY0NGQtNDhkYS1hM2EzLWU4ODNmNmE4MmZlOSIsImFjc1RyYW5zSUQiOiJmYjNmM2NjMC05ZDQzLTRmYTEtOGUwMi1jZGJkNGNlYTZhMzQiLCJtZXNzYWdlVHlwZSI6IkNSZXMiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwidHJhbnNTdGF0dXMiOiJZIn0="
    }
}
				
			
				
					ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIzOTMzMTA4NiIsCiAgICAiRFNfTUVSQ0hBTlRfUEFOIjogIjQ1NDg4MTAwMDAwMDAwMDNcdCIsCiAgICAiRFNfTUVSQ0hBTlRfRVhQSVJZREFURSI6ICIzMDEyIiwKICAgICJEU19NRVJDSEFOVF9DVlYyIjogIjEyMyIsCiAgICAiRFNfTUVSQ0hBTlRfRU1WM0RTIjogewogICAgICAgICJ0aHJlZURTSW5mbyI6ICJDaGFsbGVuZ2VSZXNwb25zZSIsCiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICIyLjIuMCIsCiAgICAgICAgImNyZXMiOiAiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJbVEzTkRNell6SmtMV1kwTkdRdE5EaGtZUzFoTTJFekxXVTRPRE5tTm1FNE1tWmxPU0lzSW1GamMxUnlZVzV6U1VRaU9pSm1Zak5tTTJOak1DMDVaRFF6TFRSbVlURXRPR1V3TWkxalpHSmtOR05sWVRaaE16UWlMQ0p0WlhOellXZGxWSGx3WlNJNklrTlNaWE1pTENKdFpYTnpZV2RsVm1WeWMybHZiaUk2SWpJdU1pNHdJaXdpZEhKaGJuTlRkR0YwZFhNaU9pSlpJbjA9IgogICAgfQp9
				
			
				
					{
    "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIzOTMzMTA4NiIsCiAgICAiRFNfTUVSQ0hBTlRfUEFOIjogIjQ1NDg4MTAwMDAwMDAwMDNcdCIsCiAgICAiRFNfTUVSQ0hBTlRfRVhQSVJZREFURSI6ICIzMDEyIiwKICAgICJEU19NRVJDSEFOVF9DVlYyIjogIjEyMyIsCiAgICAiRFNfTUVSQ0hBTlRfRU1WM0RTIjogewogICAgICAgICJ0aHJlZURTSW5mbyI6ICJDaGFsbGVuZ2VSZXNwb25zZSIsCiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICIyLjIuMCIsCiAgICAgICAgImNyZXMiOiAiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJbVEzTkRNell6SmtMV1kwTkdRdE5EaGtZUzFoTTJFekxXVTRPRE5tTm1FNE1tWmxPU0lzSW1GamMxUnlZVzV6U1VRaU9pSm1Zak5tTTJOak1DMDVaRFF6TFRSbVlURXRPR1V3TWkxalpHSmtOR05sWVRaaE16UWlMQ0p0WlhOellXZGxWSGx3WlNJNklrTlNaWE1pTENKdFpYTnpZV2RsVm1WeWMybHZiaUk2SWpJdU1pNHdJaXdpZEhKaGJuTlRkR0YwZFhNaU9pSlpJbjA9IgogICAgfQp9",
    "Ds_Merchant_Signature": "ZfCZSV1Lx0pGTKXf78rBLsU3XmxD3yo1e9hOK9pROwk=",
    "Ds_SignatureVersion": "HMAC_SHA512_V2"
}
				
			

Notificación de la petición con el resultado de la autenticació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?

La operación se ha completado y es una preautorización o validación de tarjeta DS_MERCHANT_TRANSACTIONTYPE = 1 o 7.

En este caso, puedes completar la operación con una confirmación (capturar el importe a favor de tu comercio) o con una anulación (liberar el importe a favor del cliente). Recomendamos hacerlo en un plazo de 7 días, aunque pueden ser hasta 30 días (depende del emisor de la tarjeta):

  • Confirmación: Tu comercio confirma el importe mediante operación REST o mediante Canales.
  • Anulación: Tu comercio anula el importe a favor del cliente mediante operación REST o mediante Canales.

Tokenización

Para poder operar con tokenización el comercio tiene que pedir su activación a su oficina. La tokenización se activa para todo el comercio y sus terminales.

La tokenización o generación de referencia es el proceso de convertir los datos sensibles de la tarjeta en un identificador único (token) que puede ser reutilizado para futuros pagos sin tener que almacenar los datos completos de la tarjeta.

La tokenización tiene una serie de ventajas para tu comercio y operativas:

  • En redirección, el almacenamiento del token lo gestiona el TPV Virtual, por lo que tu integración no tiene que cumplir con PCI DSS.
  • Los tokens se asocian a nivel de comercio. Si tienes varios terminales bajo el mismo comercio, los tokens creados en uno estarán disponibles en todos.
  • La seguridad es mayor. El nº del token no tiene valor y no puede ser utilizado fuera del sistema. Esto lo hace más seguro en robos de datos, por ejemplo.
  • La tokenización se complementa con operativas como pagos 1-clic o pagos MIT.

¿Cómo activar la tokenización?

Para activar la tokenización el comercio se lo tienes que pedir a tu oficina. Se activan para todo el comercio y sus terminales.

Adicionalmente, en caso de que lo necesites, tendrás que pedir a nuestro equipo de Soporte la configuración para que te lleguen a la notificación los siguientes elementos:

  • Los parámetros de la tarjeta asteriscados, para que puedas mostrar al cliente qué tarjeta está usando en la pasarela de pago.

Más detalles sobre estos parámetros y otros campos que recibes en la notificación de tokenización en la sección de notificaciones.

Funcionalidades adicionales tokenización

Además de la generación de tokens, los comercios también pueden solicitar la activación de 2 funcionalidades:

1. Migración de tokens

Si ya estás tokenizando tarjetas con tu actual banco, puedes migrar los tokens de las tarjetas contactando con Soporte. Ten en cuenta que en la mayoría de casos tendrá un coste asociado que te comunicará tu gestor habitual de Caixabank.

2. Merchant Group

El Merchant Group es una funcionalidad que permite que distintos comercios asociados a uno común puedan usar los tokens que se generen en este grupo por todos los comercios del mismo. Esto facilita la gestión de pagos y la utilización de tokens entre los comercios que forman parte del grupo.

Para utilizar la funcionalidad Merchant Group, tienes que solicitarlo a Soporte indicando el comercio interesado.

Si estás utilizando Merchant Group, los comercios solo podrán utilizar tokens si en la petición enviada incluyen el parámetro DS_MERCHANT_GROUP con el valor correspondiente al MG.

Generar token o pago COF inicial

La operación de tokenización puede usarse en dos escenarios principales:

  1. Guardar el token para futuros pagos: El token se usará en pagos, como el 1-clic. El cliente autoriza que se almacene el token de la tarjeta, también tendrás que indicar el tipo de operación COF y que es inicial.
  2. Guardar token para pagos COF MIT: En este caso sería un pago COF inicial con el cliente presente. Este pago de generación de token tiene las siguientes características:
    • Se tokeniza la tarjeta y se indica su caducidad para que el comercio la tenga en cuenta.
    • El comercio tiene que indicar cliente el importe y la existencia de pagos recurrentes iniciados por el comercio (MIT).
    • El cliente tiene que dar su autorización, tanto a la generación del token como a los pagos sucesivos.

En cualquier caso, el cliente tendrá que autenticar la operación por 3DSecure. 

Por REST puedes generar el token y hacer el pago COF inicial, que es una transacción iniciada por el cliente (CIT). Esta operación inicial tiene las siguientes características:

  • Es una operación que inicia el cliente.
  • El cliente autentica la operación con alguno de los métodos de su banco (código de seguridad, 3DS, etc).

Para lanzar pagos COF sucesivos se utiliza la exención Merchant Initiated Transaction (MIT). Estos pagos:

  • Requieren de una operación COF inicial.
  • Se hacen por integración REST, como puedes ver en la sección de pagos COF sucesivos MIT de este documento.

Petición de tokenización o COF inicial en REST

A continuación explicamos el flujo para realizar una operación de tokenización o pago COF inicial en REST:

1. iniciaPeticion: El proceso y parámetros es el mismo que el de la sección enlazada.

2. Ejecución del 3DSMethod: El proceso es el mismo que el de la sección enlazada. Recuerda que este paso es opcional pero recomendable.

3. Petición de autorización: En este paso, que es la primera petición al endpoint trataPeticion tienes que enviar los parámetros que indicamos a continuación para las operativas de tokenización o pago COF inicial.

El proceso de envío de la petición, notificación, etc. es el mismo que el indicado en la sección enlazada.

En la primera pestaña tienes los parámetros que tendrás que enviar en la petición. Además, en la pestaña DS_MERCHANT_COF_TYPE tienes el detalle de los tipos de pagos COF:

JSON 3DS

Los parámetros del JSON 3DS que tienes que enviar son los mismos. 

Parámetros petición

Los parámetros que tienes que añadir a la petición:

  • DS_MERCHANT_IDENTIFIER con valor REQUIRED // Indica que quieres generar una referencia.
  • DS_MERCHANT_COF_INI con valor S // Indica que es la transacción COF inicial (si fuera valor N, no lo sería).
  • DS_MERCHANT_COF_TYPE con valor R // Indica el tipo de pago recurrente.
ParámetroFormatoRequerido/OpcionalDescripciónEjemplo
DS_MERCHANT_MERCHANTCODE9 caracteres
Numé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_PAN19 caracteres
Numérico
Requerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta.
* Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)
4548810000000003
DS_MERCHANT_CVV23 a 4 caracteres
Numérico
Requerido*Código CVV2 de la tarjeta del cliente.
* Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT.
050
DS_MERCHANT_EXPIRYDATE4 caracteres
Numérico
AAMM
Requerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes).
* Requerido cuando se envía DS_MERCHANT_PAN
3012
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_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 y los sucesivos, sean 1-clic o MIT.
S
DS_MERCHANT_COF_TYPETienes la descripción de los valores en la tabla de DS_MERCHANT_COF_TYPE.
Valores posibles:
– I: Installments
– R: Recurring
– H: Reauthorization
– E: Resubmission
– D: Delayed
– M: Incremental
– N: No Show
– C: Otras
Opcional*Indica el tipo de operación COF.

* Requerido para las operaciones COF iniciales o sucesivas y el pago 1-clic.
R
DS_MERCHANT_MERCHANTDATA1024 caracteres
Alfanumé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 disponibles en la sección de exenciones.

*Requerido enviarlo en operaciones MIT.
MIT
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

En la generación del token tendrás que indicar en el parámetro DS_MERCHANT_COF_TYPE para indicar el uso del token. El tipo de COF tendrá que ser el mismo en la COF inicial y en las sucesivas.

  • Por ejemplo, si lo vas a usar para el pago de una suscripción mensual, utiliza el valor R. Para simplemente guardar el token y permitir que el cliente haga pagos 1-clic, usa C.
Tipo de COFDescripción
IInstallments (Pago Aplazado): Son compras individuales. El importe tiene que ser fijo y con intervalo de tiempo definido.
RRecurring (Pagos recurrentes): El importe de las transacciones puede ser variable. El intervalo de tiempo tiene que ser definido. Por ejemplo, es utilizado en suscripciones a servicios de streaming.
HReauthorization: Para casos donde el valor final de la operación se desconoce, o casos donde el cliente amplía un servicio que ha pagado previamente. Por ejemplo, la estancia en un hotel.
EResubmission: Usado únicamente cuando la operación original se ha rechazado por saldo. No es válido en todos los sectores de actividad. Depende de la normativa de las marcas.
DDelayed: Importes que se realizan a posterior de la operación principal. Por ejemplo, el minibar de un hotel o daños en un vehículo de alquiler.
MIncremental: Se utiliza cuando existen gastos adicionales en un servicio contratado que no se habían previsto en la operación inicial.
NNo Show: Se utiliza cuando el cliente no se presenta a una cita o compromiso contratado previamente. Por ejemplo, la reserva de un hotel.
COtras: Es el valor que se envía por defecto a no ser que se marque otro tipo de COF. También se puede enviar si la operación no se corresponde con ninguna de las anteriores. Este es el campo que hay que enviar si la operación es 1-clic.

Cuando generas un token, debes indicar el tipo de COF para el que se utilizará. El token generado por la pasarela será siempre el mismo mientras se use la misma tarjeta. Sin embargo, el valor del campo Ds_Merchant_Cof_Txnid (recibido en la notificación) cambia si se indica un tipo de COF diferente.

Por ejemplo, si en una primera operación defines el tipo COF recurrente (R), deberás mantener el mismo Ds_Merchant_Cof_Txnid en los pagos sucesivos asociados a esa suscripción. En cambio, si realizas una operación con otro tipo de COF, como No Show (N), el token seguirá siendo el mismo, pero se generará un nuevo Ds_Merchant_Cof_Txnid específico para ese flujo.

4. Ejecución del challenge/autenticación: El proceso y parámetros es el mismo que el de la sección enlazada.

5. Enviar resultado de la autenticación: En este paso, que es la segunda petición al endpoint trataPeticion tienes que enviar los parámetros que indicamos a continuación para las operativas de tokenización o pago COF inicial.

El proceso de envío de la petición, notificación, etc. es el mismo que el indicado en la sección enlazada.

En la primera pestaña tienes los parámetros que tendrás que enviar en la petición. Además, en la pestaña DS_MERCHANT_COF_TYPE tienes el detalle de los tipos de pagos COF:

JSON 3DS

Los parámetros del JSON 3DS que tienes que enviar son los mismos. 

Parámetros petición

Los parámetros que tienes que añadir a la petición:

  • DS_MERCHANT_IDENTIFIER con valor REQUIRED // Indica que quieres generar una referencia.
  • DS_MERCHANT_COF_INI con valor S // Indica que es la transacción COF inicial (si fuera valor N, no lo sería).
  • DS_MERCHANT_COF_TYPE con valor R // Indica el tipo de pago recurrente.
ParámetroFormatoRequerido/OpcionalDescripciónEjemplo
DS_MERCHANT_MERCHANTCODE9 caracteres
Numé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_PAN19 caracteres
Numérico
Requerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta.
* Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)
4548810000000003
DS_MERCHANT_CVV23 a 4 caracteres
Numérico
Requerido*Código CVV2 de la tarjeta del cliente.
* Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT.
050
DS_MERCHANT_EXPIRYDATE4 caracteres
Numérico
AAMM
Requerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes).
* Requerido cuando se envía DS_MERCHANT_PAN
3012
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_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 y los sucesivos, sean 1-clic o MIT.
S
DS_MERCHANT_COF_TYPETienes la descripción de los valores en la tabla de DS_MERCHANT_COF_TYPE.
Valores posibles:
– I: Installments
– R: Recurring
– H: Reauthorization
– E: Resubmission
– D: Delayed
– M: Incremental
– N: No Show
– C: Otras
Opcional*Indica el tipo de operación COF.

* Requerido para las operaciones COF iniciales o sucesivas y el pago 1-clic.
R
DS_MERCHANT_MERCHANTDATA1024 caracteres
Alfanumé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 disponibles en la sección de exenciones.

*Requerido enviarlo en operaciones MIT.
MIT
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

En la generación del token tendrás que indicar en el parámetro DS_MERCHANT_COF_TYPE para indicar el uso del token. El tipo de COF tendrá que ser el mismo en la COF inicial y en las sucesivas.

  • Por ejemplo, si lo vas a usar para el pago de una suscripción mensual, utiliza el valor R. Para simplemente guardar el token y permitir que el cliente haga pagos 1-clic, usa C.
Tipo de COFDescripción
IInstallments (Pago Aplazado): Son compras individuales. El importe tiene que ser fijo y con intervalo de tiempo definido.
RRecurring (Pagos recurrentes): El importe de las transacciones puede ser variable. El intervalo de tiempo tiene que ser definido. Por ejemplo, es utilizado en suscripciones a servicios de streaming.
HReauthorization: Para casos donde el valor final de la operación se desconoce, o casos donde el cliente amplía un servicio que ha pagado previamente. Por ejemplo, la estancia en un hotel.
EResubmission: Usado únicamente cuando la operación original se ha rechazado por saldo. No es válido en todos los sectores de actividad. Depende de la normativa de las marcas.
DDelayed: Importes que se realizan a posterior de la operación principal. Por ejemplo, el minibar de un hotel o daños en un vehículo de alquiler.
MIncremental: Se utiliza cuando existen gastos adicionales en un servicio contratado que no se habían previsto en la operación inicial.
NNo Show: Se utiliza cuando el cliente no se presenta a una cita o compromiso contratado previamente. Por ejemplo, la reserva de un hotel.
COtras: Es el valor que se envía por defecto a no ser que se marque otro tipo de COF. También se puede enviar si la operación no se corresponde con ninguna de las anteriores. Este es el campo que hay que enviar si la operación es 1-clic.

Cuando generas un token, debes indicar el tipo de COF para el que se utilizará. El token generado por la pasarela será siempre el mismo mientras se use la misma tarjeta. Sin embargo, el valor del campo Ds_Merchant_Cof_Txnid (recibido en la notificación) cambia si se indica un tipo de COF diferente.

Por ejemplo, si en una primera operación defines el tipo COF recurrente (R), deberás mantener el mismo Ds_Merchant_Cof_Txnid en los pagos sucesivos asociados a esa suscripción. En cambio, si realizas una operación con otro tipo de COF, como No Show (N), el token seguirá siendo el mismo, pero se generará un nuevo Ds_Merchant_Cof_Txnid específico para ese flujo.

Notificación de la petición de tokenización y pago recurrente inicial

Cuando realizas una petición de tokenización o de pago recurrente inicial, recibes una notificación o respuesta con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles:

  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 una operación de pago recurrente inicial recibes una serie de parámetros en la notificación en Ds_MerchantParameters que debes guardar para próximas operaciones como el pago 1-clic o el pago COF sucesivo MIT.

Los parámetros que tienes que guardar son:

  • Ds_Merchant_Identifier: En la notificación recibes en este campo un valor alfanumérico. Este es el token de la tarjeta que tienes que guardar para futuras operaciones. Recuerda que en la petición tienes que mandar este parámetro como «REQUIRED».
  • Ds_CardNumber o Ds_Card_Last4: Numeración de la tarjeta asteriscado. Pueden ser la numeración completa o los últimos 4 dígitos. Guárdalo para mostrar al cliente algunos de los dígitos para que sepa qué tarjeta está utilizando.
  • Ds_ExpiryDate: Fecha de expiración de la tarjeta utilizado. Guárdalo para mostrar al cliente en pagos posteriores cuándo caduca la tarjeta utilizada, y para saber hasta cuándo puedes usar el token. El formato es AAMM.
  • Ds_Merchant_Cof_Txnid (opcional): Identificador de la operación original. Si no lo guardas, se incorporará automáticamente en las operaciones posteriores, aunque recomendamos guardarlo y enviarlo.

Operativas con token: Credential On File (COF) 

La tokenización (generar una referencia de la tarjeta del cliente) se aplica en distintas operativas y casos de uso que puedes integrar en tu comercio.

Las operativas en las que se almacena la tarjeta tokenizada del cliente para utilizarla, o los casos donde el comercio almacena la tarjeta real del cliente se denominan Credential on File (COF). Hay distintos tipos de pagos COF según el caso de uso, los veremos a continuación. Las operaciones Credential On File con la tarjeta real del cliente almacenada, requieren un cumplimiento de la normativa PCI.

Ya sea utilizando un token o los datos de la tarjeta reales, en las operaciones COF el cliente ha tenido que dar su autorización explícita al comercio para que almacene sus datos y los utilice en operaciones posteriores.

Cuando generas un token, debes indicar el tipo de COF para el que se utilizará. El token generado por la pasarela será siempre el mismo mientras se use la misma tarjeta. Sin embargo, el valor del campo Ds_Merchant_Cof_Txnid (recibido en la notificación) cambia si se indica un tipo de COF diferente.

Por ejemplo, si en una primera operación defines el tipo COF recurrente (R), deberás mantener el mismo Ds_Merchant_Cof_Txnid en los pagos sucesivos asociados a esa suscripción. En cambio, si realizas una operación con otro tipo de COF, como No Show (N), el token seguirá siendo el mismo, pero se generará un nuevo Ds_Merchant_Cof_Txnid específico para ese flujo.

Las operativas con la tarjeta almacenada (COF) pueden ser:

  1. Pagos iniciados por el cliente (CIT): El usuario participa activamente en la transacción. Son operaciones seguras donde el cliente autentica la operación por 3DSecure. Por ejemplo los pagos 1-clic o pagos con referencia, donde el cliente puede pagar sin volver a introducir los datos de su tarjeta. Esto es posible gracias a que el comercio ha guardado el token y lo está enviando en la petición.
  2. Pagos iniciados por el comercio (MIT): El comercio utiliza el token generado en la operación inicial y la exención MIT para enviar pagos sin interacción del cliente. El usuario ha consentido en la operación COF inicial el uso del token para pagos recurrentes. Estas operaciones son autenticadas ya que el cliente no interviene y se utiliza la exención MIT. Esta exención se utiliza para evitar la autenticación en pagos iniciados por el comercio. Tienes más información en la sección específica de Pagos MIT. 

Tipos de pagos COF

Se tiene que identificar correctamente el tipo de transacción COF en la petición. Esto es relevante para cumplir la normativa PSD2. Se tienen que identificar las operaciones iniciadas por el cliente (CIT) y las iniciadas por el comercio (MIT), aunque es especialmente importante en los pagos MIT.

En la siguiente tabla tienes los tipos de operaciones COF. Este valor se indica dentro del campo DS_MERCHANT_COF_TYPE junto al resto de campos de la petición:

Tipo de COFDescripción
IInstallments (Pago Aplazado): Son compras individuales. El importe tiene que ser fijo y con intervalo de tiempo definido.
RRecurring (Pagos recurrentes): El importe de las transacciones puede ser variable. El intervalo de tiempo tiene que ser definido. Por ejemplo, es utilizado en suscripciones a servicios de streaming.
HReauthorization: Para casos donde el valor final de la operación se desconoce, o casos donde el cliente amplía un servicio que ha pagado previamente. Por ejemplo, la estancia en un hotel.
EResubmission: Usado únicamente cuando la operación original se ha rechazado por saldo. No es válido en todos los sectores de actividad. Depende de la normativa de las marcas.
DDelayed: Importes que se realizan a posterior de la operación principal. Por ejemplo, el minibar de un hotel o daños en un vehículo de alquiler.
MIncremental: Se utiliza cuando existen gastos adicionales en un servicio contratado que no se habían previsto en la operación inicial.
NNo Show: Se utiliza cuando el cliente no se presenta a una cita o compromiso contratado previamente. Por ejemplo, la reserva de un hotel.
COtras: Es el valor que se envía por defecto a no ser que se marque otro tipo de COF. También se puede enviar si la operación no se corresponde con ninguna de las anteriores. Este es el campo que hay que enviar si la operación es 1-clic.

Pago 1-clic

Para poder operar con pagos 1-clic el comercio tiene que pedir su activación a su oficina.

El pago 1-clic es una operativa que permite al cliente pagar sin tener que volver a introducir los datos de su tarjeta. Esto es posible gracias a que se ha generado un token de su tarjeta.

El cliente participa activamente en la operación y autentica por 3DSecure si es necesario. Aunque también es posible solicitar exenciones de autenticación reforzada (SCA). 

Operación previa de tokenización

El token se obtiene siguiendo los pasos del punto anterior. En esta primera operación de tokenización:

  • El cliente ha dado su consentimiento para generar el token y ha autenticado la operación por 3DSecure. 
  • El token queda guardado de forma segura en el sistema (sin necesidad de PCI).

Una vez lanzada la operación previa de generación de token, recibirás una notificación con información sobre el token, entre otros.

Petición de pago 1-clic

A continuación explicamos el flujo para realizar una operación de pago 1-clic en REST:

1. iniciaPeticion: El proceso y parámetros es el mismo que el de la sección enlazada.

2. Ejecución del 3DSMethod: El proceso es el mismo que el de la sección enlazada. Recuerda que este paso es opcional pero recomendable.

3. Petición de autorización: En este paso, que es la primera petición al endpoint trataPeticion tienes que enviar los parámetros que indicamos a continuación para el pago 1-clic.

El proceso de envío de la petición, notificación, etc. es el mismo que el indicado en la sección enlazada.

JSON 3DS: Los parámetros del JSON 3DS que tienes que enviar son los mismos.

ParámetroFormatoRequerido/OpcionalDescripciónEjemplo
DS_MERCHANT_MERCHANTCODE9 caracteres
Numé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_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_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 y los sucesivos, sean 1-clic o MIT.
S
DS_MERCHANT_COF_TYPETienes la descripción de los valores en la tabla de DS_MERCHANT_COF_TYPE.
Valores posibles:
– I: Installments
– R: Recurring
– H: Reauthorization
– E: Resubmission
– D: Delayed
– M: Incremental
– N: No Show
– C: Otras
Opcional*Indica el tipo de operación COF.

* Requerido para las operaciones COF iniciales o sucesivas y el pago 1-clic.
R
DS_MERCHANT_COF_TXNID15 caracteres
Alfanumé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 disponibles en la sección de exenciones.

*Requerido enviarlo en operaciones MIT.
MIT
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

4. Ejecución del challenge/autenticación: El proceso y parámetros es el mismo que el de la sección enlazada.

5. Enviar resultado de la autenticación: En este paso, que es la segunda petición al endpoint trataPeticion tienes que enviar los parámetros que indicamos a continuación para la operativa de pago 1-clic.

El proceso de envío de la petición, notificación, etc. es el mismo que el indicado en la sección enlazada.

JSON 3DS: Los parámetros del JSON 3DS que tienes que enviar son los mismos.

ParámetroFormatoRequerido/OpcionalDescripciónEjemplo
DS_MERCHANT_MERCHANTCODE9 caracteres
Numé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_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_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 y los sucesivos, sean 1-clic o MIT.
S
DS_MERCHANT_COF_TYPETienes la descripción de los valores en la tabla de DS_MERCHANT_COF_TYPE.
Valores posibles:
– I: Installments
– R: Recurring
– H: Reauthorization
– E: Resubmission
– D: Delayed
– M: Incremental
– N: No Show
– C: Otras
Opcional*Indica el tipo de operación COF.

* Requerido para las operaciones COF iniciales o sucesivas y el pago 1-clic.
R
DS_MERCHANT_COF_TXNID15 caracteres
Alfanumé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 disponibles en la sección de exenciones.

*Requerido enviarlo en operaciones MIT.
MIT
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

Notificación de la petición de pago 1-clic

Cuando realizas una petición de pago 1-clic, recibes una notificación o respuesta con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles:

  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

Pagos COF Sucesivos (MIT)

Para poder operar con pagos MIT el comercio tiene que pedir su activación a su oficina.

Los pagos COF sucesivos son operaciones iniciadas por el comercio (MIT) en las que el cliente no tiene interacción, pero que ha dado su consentimiento en una operación previa. Estas operaciones se ejecutan pidiendo la exención MIT, que se indica en el parámetro: DS_MERCHANT_EXCEP_SCA = MIT.

En los pagos COF sucesivos es posible solicitar la exención porque existe una operación COF inicial que cumple las condiciones necesarias:

  • En la operación inicial el cliente se ha autenticado mediante 3DSecure y ha dado su consentimiento para que se genere el token y se utilice en pagos sucesivos.
  • En las siguientes operaciones el comercio puede reclamar la exención MIT, ya que el titular ya autorizó el uso del token en el pago inicial.

El pago COF inicial lo puedes hacer de 2 formas:

  1. Si tienes una integración por Redirección, puedes realizar el pago COF inicial sin tener que cumplir con PCI DSS.
  2. Para hacer el pago COF inicial por REST, consulta la sección enlazada (tendrás que cumplir PCI DSS).

Características de las operaciones de pagos COF sucesivos (MIT)

Estas operaciones no piden autenticación del cliente, por lo que son calificadas como no seguras. Un ejemplo sería el pago de una suscripción.

  • Las operaciones COF sucesivas MIT se indican en la petición con parámetros específicos que indican la exención MIT y el tipo de pago COF. Estos parámetros los verás a continuación.
  • Sólo se pueden lanzar desde una integración REST. Sin embargo, el inicial se puede lanzar tanto por REST como redirección.
  • El cliente NO está presente. Por este motivo, en el pago inicial el cliente tiene que autenticar y dar su consentimiento para las operaciones posteriores.
  • Se pueden realizar cobros adicionales, como propinas o cargos extra. El cliente tendrá que aprobarlos previamente.

Hay distintos tipos de pagos COF recurrentes. Consulta la tabla para más detalles. Recomendamos que el tipo de pago COF utilizado en la operación inicial se mantenga durante todas las recurrentes.

Puedes ver el tipo de pago COF en esta tabla. Recuerda que este valor se envía dentro del campo DS_MERCHANT_COF_TYPE junto al resto de campos de la petición. :

Tipo de COFDescripción
IInstallments (Pago Aplazado): Son compras individuales. El importe tiene que ser fijo y con intervalo de tiempo definido.
RRecurring (Pagos recurrentes): El importe de las transacciones puede ser variable. El intervalo de tiempo tiene que ser definido. Por ejemplo, es utilizado en suscripciones a servicios de streaming.
HReauthorization: Para casos donde el valor final de la operación se desconoce, o casos donde el cliente amplía un servicio que ha pagado previamente. Por ejemplo, la estancia en un hotel.
EResubmission: Usado únicamente cuando la operación original se ha rechazado por saldo. No es válido en todos los sectores de actividad. Depende de la normativa de las marcas.
DDelayed: Importes que se realizan a posterior de la operación principal. Por ejemplo, el minibar de un hotel o daños en un vehículo de alquiler.
MIncremental: Se utiliza cuando existen gastos adicionales en un servicio contratado que no se habían previsto en la operación inicial.
NNo Show: Se utiliza cuando el cliente no se presenta a una cita o compromiso contratado previamente. Por ejemplo, la reserva de un hotel.
COtras: Es el valor que se envía por defecto a no ser que se marque otro tipo de COF. También se puede enviar si la operación no se corresponde con ninguna de las anteriores. Este es el campo que hay que enviar si la operación es 1-clic.

Parámetros de Pagos COF Sucesivos (MIT)

Estos son los parámetros que tienes que enviar en un solicitud de pago COF sucesivo iniciado por el comercio (MIT):

ParámetroFormatoRequerido/OpcionalDescripciónEjemplo
DS_MERCHANT_MERCHANTCODE9 caracteres
Numé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_PAN19 caracteres
Numérico
Requerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta.
* Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)
4548810000000003
DS_MERCHANT_CVV23 a 4 caracteres
Numérico
Requerido*Código CVV2 de la tarjeta del cliente.
* Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT.
050
DS_MERCHANT_EXPIRYDATE4 caracteres
Numérico
AAMM
Requerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes).
* Requerido cuando se envía DS_MERCHANT_PAN
3012
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_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 y los sucesivos, sean 1-clic o MIT.
S
DS_MERCHANT_COF_TYPETienes la descripción de los valores en la tabla de DS_MERCHANT_COF_TYPE.
Valores posibles:
– I: Installments
– R: Recurring
– H: Reauthorization
– E: Resubmission
– D: Delayed
– M: Incremental
– N: No Show
– C: Otras
Opcional*Indica el tipo de operación COF.

* Requerido para las operaciones COF iniciales o sucesivas y el pago 1-clic.
R
DS_MERCHANT_COF_TXNID15 caracteres
Alfanumé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_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 disponibles en la sección de exenciones.

*Requerido enviarlo en operaciones MIT.
MIT
DS_MERCHANT_DIRECTPAYMENTValores posibles:
– true
– moto
Opcional*Identifica si es un pago directo por parte del comercio (sin autenticación).
– Si se envía true, la operación se identifica como sin autenticación. (esto no se tendrá en cuenta si la tarjeta está afectada por PSD2).
– Si se envía moto, la operación se identifica como pago MOTO.

*Requerido enviarlo en operaciones que inicia el comercio, como los pagos MIT. Y en pagos MOTO.
true
DS_MERCHANT_MERCHANTDESCRIPTOR25 caracteres
Alfanumé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

Además de los parámetros requeridos de todas las operativas, como se indica en la tabla, en los pagos COF sucesivos tienes que añadir los siguientes campos que sin indican en la tabla a la petición:

  • Puedes enviar el token de la tarjeta (DS_MERCHANT_IDENTIFIER) o los datos de la tarjeta (DS_MERCHANT_PAN y DS_MERCHANT_EXPIRYDATE, si envías los datos de la tarjeta NO tendrás que enviar el CVV). Recomendamos generar token de la tarjeta en el pago recurrente inicial y usarlo en los sucesivos.
  • DS_MERCHANT_EXCEP_SCA, muy importante, para indicar que es una operación iniciada por el comercio (valor MIT).
  • DS_MERCHANT_DIRECTPAYMENT, con valor true para indicar que es una operación no segura.
  • DS_MERCHANT_COF_INI, para indicar que no es la primera operación COF (valor N).

Para la operativa de pago recurrente sucesivo, el valor de DS_MERCHANT_TRANSACTIONTYPE es 0.

Envío de la petición del pago COF sucesivo

Estos parámetros deben codificarse en BASE64 y enviarse dentro del campo Ds_MerchantParameters, junto con el resto de campos necesarios en el formulario. A continuación te mostramos un ejemplo de:
  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_ORDER": "632381965",
    "DS_MERCHANT_MERCHANTCODE": "999008881",
    "DS_MERCHANT_TERMINAL": "001",
    "DS_MERCHANT_CURRENCY": "978",
    "DS_MERCHANT_TRANSACTIONTYPE": "0",
    "DS_MERCHANT_AMOUNT": "950",
    "DS_MERCHANT_IDENTIFIER":"d20712480feef6b4ec3480fa091af91d1b45ba90",
    "DS_MERCHANT_COF_INI":"N",
    "DS_MERCHANT_DIRECTPAYMENT":"true",
    "DS_MERCHANT_EXCEP_SCA":"MIT"
}
				
			
				
					ewogICAgIkRTX01FUkNIQU5UX09SREVSIjogIjYzMjM4MTk2NSIsCiAgICAiRFNfTUVSQ0hBTlRfTUVSQ0hBTlRDT0RFIjogIjk5OTAwODg4MSIsCiAgICAiRFNfTUVSQ0hBTlRfVEVSTUlOQUwiOiAiMDAxIiwKICAgICJEU19NRVJDSEFOVF9DVVJSRU5DWSI6ICI5NzgiLAogICAgIkRTX01FUkNIQU5UX1RSQU5TQUNUSU9OVFlQRSI6ICIwIiwKICAgICJEU19NRVJDSEFOVF9BTU9VTlQiOiAiOTUwIiwKICAgICJEU19NRVJDSEFOVF9JREVOVElGSUVSIjoiZDIwNzEyNDgwZmVlZjZiNGVjMzQ4MGZhMDkxYWY5MWQxYjQ1YmE5MCIsCiAgICAiRFNfTUVSQ0hBTlRfQ09GX0lOSSI6Ik4iLAogICAgIkRTX01FUkNIQU5UX0RJUkVDVFBBWU1FTlQiOiJ0cnVlIiwKICAgICJEU19NRVJDSEFOVF9FWENFUF9TQ0EiOiJNSVQiCn0=
				
			
				
					{
    "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX09SREVSIjogIjYzMjM4MTk2NSIsCiAgICAiRFNfTUVSQ0hBTlRfTUVSQ0hBTlRDT0RFIjogIjk5OTAwODg4MSIsCiAgICAiRFNfTUVSQ0hBTlRfVEVSTUlOQUwiOiAiMDAxIiwKICAgICJEU19NRVJDSEFOVF9DVVJSRU5DWSI6ICI5NzgiLAogICAgIkRTX01FUkNIQU5UX1RSQU5TQUNUSU9OVFlQRSI6ICIwIiwKICAgICJEU19NRVJDSEFOVF9BTU9VTlQiOiAiOTUwIiwKICAgICJEU19NRVJDSEFOVF9JREVOVElGSUVSIjoiZDIwNzEyNDgwZmVlZjZiNGVjMzQ4MGZhMDkxYWY5MWQxYjQ1YmE5MCIsCiAgICAiRFNfTUVSQ0hBTlRfQ09GX0lOSSI6Ik4iLAogICAgIkRTX01FUkNIQU5UX0RJUkVDVFBBWU1FTlQiOiJ0cnVlIiwKICAgICJEU19NRVJDSEFOVF9FWENFUF9TQ0EiOiJNSVQiCn0=",
    "Ds_Merchant_Signature": "DLsO8PWspG1yhViVzJ3YjC3n9qARsWyQEfooebL75V0=",
    "Ds_SignatureVersion": "HMAC_SHA512_V2"
}
				
			

Notificación del pago recurrente sucesivo

Una vez realizada la petición de pago recurrente sucesivo con éxito, recibes la respuesta del TPV Virtual con los detalles de la operación y su resultado. Consulta la siguiente documentación para más detalles:

  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

Operativas con DCC

Esta funcionalidad la tiene que activar Soporte. Contacta con Soporte para la activación de DCC. 

¿Qué son los pagos DCC?

Los pagos DCC (Dynamic Currency Conversion) permiten al cliente pagar con la divisa de su tarjeta en tu pasarela de pago, aunque la divisa configurada en tu TPV Virtual sea distinta.

Por ejemplo, tu TPV Virtual está configurado en euros (€) y un cliente quiere pagar con su tarjeta, que está en dólares ($). En este caso, el cliente podrá pagar en dólares (sujeto a tasa de cambio). 

¿Qué necesito modificar para integrar los pagos DCC?

  • Tendrás que modificar algunos de los parámetros que se envían durante el flujo de operaciones REST. Lo detallaremos a continuación. 
  • Puedes hacer pagos DCC en cualquier operación de pago: autorización, preautorización, etc. (Siempre que tengas activo DCC). 
  • Tendrás que informar al cliente sobre la posibilidad de pagar en la moneda de tu TPV o en la divisa de su tarjeta. Si tienes una integración REST, tendrás que preparar esta pantalla e informar al cliente del tipo de cambio y las divisas disponibles. Esta información te la da el TPV Virtual en la notificación de la primera petición.
    • Importante: Es el cliente quien tiene que elegir con qué divisa pagar la operación. En ningún caso el comercio puede elegir por el cliente. 

Flujo DCC en REST

Los pagos DCC en REST siguen casi el mismo flujo que el resto de operaciones (con autenticación 3DS o sin ella). Este es el flujo de DCC en REST:

  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 REST. Recuerda que cualquier operación de cobro puede ser DCC. 

Paso 1: IniciaPeticion DCC

El primer paso en un pago con DCC en REST es enviar la petición iniciaPeticion. En esta petición se solicita información sobre la capacidad de la tarjeta del cliente en cuanto a:

  • Versión del protocolo 3DS a utilizar. O si requiere autenticación 3DS o no. 
  • Exenciones disponibles.
  • Posible aplicación de DCC.

Esta información se devuelve en la respuesta de la petición, como verás a continuación.

Parámetros de la petición iniciaPeticion 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_PAN19 caracteres
Numérico
Requerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta.
* Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)
4548810000000003
DS_MERCHANT_CVV23 a 4 caracteres
Numérico
Requerido*Código CVV2 de la tarjeta del cliente.
* Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT.
050
DS_MERCHANT_EXPIRYDATE4 caracteres
Numérico
AAMM
Requerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes).
* Requerido cuando se envía DS_MERCHANT_PAN
3012
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_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_DCCHay 2 formatos posibles:
– iniciaPeticion: «Y» o «N»
– trataPeticion: Objeto JSON (monedaDCC y importeDCC)
Opcional** Requerido en operaciones DCC.

– iniciaPeticion: Campo que indica la solicitud de información DCC

– trataPeticion: Objeto JSON donde se envían los datos DCC de la operación.
– iniciaPeticion: Y
– trataPeticion: Objeto JSON (ver campos enviados en la tabla inferior)
DS_MERCHANT_EMV3DSObjeto JSON*OpcionalEste parámetro contiene un JSON con los parámetros necesarios para la autenticación EMV3DS (v2 y v1).
* Objeto JSON serializado como string.
N/A
DS_MERCHANT_MERCHANTNAME25 caracteres
Alfanumé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 disponibles en la sección de exenciones.

*Requerido enviarlo en operaciones MIT.
MIT
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 REST.
				
					{
    "DS_MERCHANT_MERCHANTCODE": "999008881",
    "DS_MERCHANT_TERMINAL": "99",
    "DS_MERCHANT_TRANSACTIONTYPE": "0",
    "DS_MERCHANT_AMOUNT": "100",
    "DS_MERCHANT_CURRENCY": "978",
    "DS_MERCHANT_ORDER": "24370986",
    "DS_MERCHANT_EXPIRYDATE": "3012",
    "DS_MERCHANT_CVV2": "123",
    "DS_MERCHANT_DCC": "Y",
    "Ds_Merchant_Excep_SCA": "Y", // solicitas información de si hay exenciones disponibles
    "DS_MERCHANT_PAN": "4548810000000003",
    "DS_MERCHANT_EMV3DS": {
        "threeDSInfo": "CardData" // indicas que solicitas información de la tarjeta
    }
}
				
			
				
					ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIyNDM3MDk4NiIsCiAgICAiRHNfTWVyY2hhbnRfRXhjZXBfU0NBIjogIlkiLAogICAgIkRTX01FUkNIQU5UX1BBTiI6ICI0NTQ4ODEwMDAwMDAwMDAzIiwKICAgICJEU19NRVJDSEFOVF9FTVYzRFMiOiB7CiAgICAgICAgInRocmVlRFNJbmZvIjogIkNhcmREYXRhIgogICAgfQp9
				
			
				
					{
    "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIyNDM3MDk4NiIsCiAgICAiRHNfTWVyY2hhbnRfRXhjZXBfU0NBIjogIlkiLAogICAgIkRTX01FUkNIQU5UX1BBTiI6ICI0NTQ4ODEwMDAwMDAwMDAzIiwKICAgICJEU19NRVJDSEFOVF9FTVYzRFMiOiB7CiAgICAgICAgInRocmVlRFNJbmZvIjogIkNhcmREYXRhIgogICAgfQp9",
    "Ds_Merchant_Signature": "3tup2ld5l+TzMTpRFL2e62P9yzOioNHHy4Wl26mPstA=",
    "Ds_SignatureVersion": "HMAC_SHA512_V2"
}
				
			
Notificación del iniciaPeticion 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_PAN19 caracteres
Numérico
Requerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta.
* Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)
4548810000000003
DS_MERCHANT_CVV23 a 4 caracteres
Numérico
Requerido*Código CVV2 de la tarjeta del cliente.
* Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT.
050
DS_MERCHANT_EXPIRYDATE4 caracteres
Numérico
AAMM
Requerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes).
* Requerido cuando se envía DS_MERCHANT_PAN
3012
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_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_DCCHay 2 formatos posibles:
– iniciaPeticion: «Y» o «N»
– trataPeticion: Objeto JSON (monedaDCC y importeDCC)
Opcional** Requerido en operaciones DCC.

– iniciaPeticion: Campo que indica la solicitud de información DCC

– trataPeticion: Objeto JSON donde se envían los datos DCC de la operación.
– iniciaPeticion: Y
– trataPeticion: Objeto JSON (ver campos enviados en la tabla inferior)
DS_MERCHANT_EMV3DSObjeto JSON*OpcionalEste parámetro contiene un JSON con los parámetros necesarios para la autenticación EMV3DS (v2 y v1).
* Objeto JSON serializado como string.
N/A
DS_MERCHANT_MERCHANTNAME25 caracteres
Alfanumé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 disponibles en la sección de exenciones.

*Requerido enviarlo en operaciones MIT.
MIT
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 REST.
				
					{
    "DS_MERCHANT_MERCHANTCODE": "999008881",
    "DS_MERCHANT_TERMINAL": "99",
    "DS_MERCHANT_TRANSACTIONTYPE": "0",
    "DS_MERCHANT_AMOUNT": "100",
    "DS_MERCHANT_CURRENCY": "978",
    "DS_MERCHANT_ORDER": "24370986",
    "DS_MERCHANT_PAN": "4548810000000003",
    "DS_MERCHANT_EXPIRYDATE": "3012",
    "DS_MERCHANT_CVV2": "123",
    "DS_MERCHANT_DCC": {
        "monedaDCC": "840",
        "importeDCC": "1.17"
    },
    "DS_MERCHANT_EMV3DS": {
        "threeDSInfo": "AuthenticationData",
        "protocolVersion": "2.2.0",
        "browserAcceptHeader": "text\/html,application\/xhtml+xml,application\/xml;q=0.9,*\/*;q=0.8,application\/json",
        "browserColorDepth": "32",
        "browserIP": "84.0.0.1",
        "browserJavaEnabled": "1",
        "browserJavascriptEnabled": "1",
        "browserLanguage": "es-ES",
        "browserScreenHeight": "864",
        "browserScreenWidth": "1536",
        "browserTZ": "-120",
        "browserUserAgent": "Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/137.0.0.0 Safari\/537.36",
        "threeDSServerTransID": "d7433c2d-f44d-48da-a3a3-e883f6a82fe9",
        "notificationURL": "https:\/\/webredirect.org\/recepcion_notificacion.php?tipo=challenge",
        "threeDSCompInd": "Y"
    }
}
				
			
				
					ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIzOTMzMTA4NiIsCiAgICAiRFNfTUVSQ0hBTlRfUEFOIjogIjQ1NDg4MTAwMDAwMDAwMDNcdCIsCiAgICAiRFNfTUVSQ0hBTlRfRVhQSVJZREFURSI6ICIzMDEyIiwKICAgICJEU19NRVJDSEFOVF9DVlYyIjogIjEyMyIsCiAgICAiRFNfTUVSQ0hBTlRfRU1WM0RTIjogewogICAgICAgICJ0aHJlZURTSW5mbyI6ICJDaGFsbGVuZ2VSZXNwb25zZSIsCiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICIyLjIuMCIsCiAgICAgICAgImNyZXMiOiAiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJbVEzTkRNell6SmtMV1kwTkdRdE5EaGtZUzFoTTJFekxXVTRPRE5tTm1FNE1tWmxPU0lzSW1GamMxUnlZVzV6U1VRaU9pSm1Zak5tTTJOak1DMDVaRFF6TFRSbVlURXRPR1V3TWkxalpHSmtOR05sWVRaaE16UWlMQ0p0WlhOellXZGxWSGx3WlNJNklrTlNaWE1pTENKdFpYTnpZV2RsVm1WeWMybHZiaUk2SWpJdU1pNHdJaXdpZEhKaGJuTlRkR0YwZFhNaU9pSlpJbjA9IgogICAgfQp9
				
			
				
					{
    "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIzOTMzMTA4NiIsCiAgICAiRFNfTUVSQ0hBTlRfUEFOIjogIjQ1NDg4MTAwMDAwMDAwMDNcdCIsCiAgICAiRFNfTUVSQ0hBTlRfRVhQSVJZREFURSI6ICIzMDEyIiwKICAgICJEU19NRVJDSEFOVF9DVlYyIjogIjEyMyIsCiAgICAiRFNfTUVSQ0hBTlRfRU1WM0RTIjogewogICAgICAgICJ0aHJlZURTSW5mbyI6ICJDaGFsbGVuZ2VSZXNwb25zZSIsCiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICIyLjIuMCIsCiAgICAgICAgImNyZXMiOiAiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJbVEzTkRNell6SmtMV1kwTkdRdE5EaGtZUzFoTTJFekxXVTRPRE5tTm1FNE1tWmxPU0lzSW1GamMxUnlZVzV6U1VRaU9pSm1Zak5tTTJOak1DMDVaRFF6TFRSbVlURXRPR1V3TWkxalpHSmtOR05sWVRaaE16UWlMQ0p0WlhOellXZGxWSGx3WlNJNklrTlNaWE1pTENKdFpYTnpZV2RsVm1WeWMybHZiaUk2SWpJdU1pNHdJaXdpZEhKaGJuTlRkR0YwZFhNaU9pSlpJbjA9IgogICAgfQp9",
    "Ds_Merchant_Signature": "ZfCZSV1Lx0pGTKXf78rBLsU3XmxD3yo1e9hOK9pROwk=",
    "Ds_SignatureVersion": "HMAC_SHA512_V2"
}
				
			
Notificación del 1º trataPeticion 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_PAN19 caracteres
Numérico
Requerido*Número de la tarjeta. Su longitud puede variar según el tipo de tarjeta.
* Requerido cuando NO se usa token de la tarjeta o cuando se está solicitando la creación del token (DS_MERCHANT_IDENTIFIER=REQUIRED)
4548810000000003
DS_MERCHANT_CVV23 a 4 caracteres
Numérico
Requerido*Código CVV2 de la tarjeta del cliente.
* Requerido cuando se envía DS_MERCHANT_PAN, excepto en los pagos sucesivos COF MIT.
050
DS_MERCHANT_EXPIRYDATE4 caracteres
Numérico
AAMM
Requerido*Fecha de caducidad de la tarjeta. Su formato es AAMM (Año y Mes).
* Requerido cuando se envía DS_MERCHANT_PAN
3012
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_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_DCCHay 2 formatos posibles:
– iniciaPeticion: «Y» o «N»
– trataPeticion: Objeto JSON (monedaDCC y importeDCC)
Opcional** Requerido en operaciones DCC.

– iniciaPeticion: Campo que indica la solicitud de información DCC

– trataPeticion: Objeto JSON donde se envían los datos DCC de la operación.
– iniciaPeticion: Y
– trataPeticion: Objeto JSON (ver campos enviados en la tabla inferior)
DS_MERCHANT_EMV3DSObjeto JSON*OpcionalEste parámetro contiene un JSON con los parámetros necesarios para la autenticación EMV3DS (v2 y v1).
* Objeto JSON serializado como string.
N/A
DS_MERCHANT_MERCHANTNAME25 caracteres
Alfanumé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 disponibles en la sección de exenciones.

*Requerido enviarlo en operaciones MIT.
MIT
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 REST.
				
					{
    "DS_MERCHANT_MERCHANTCODE": "999008881",
    "DS_MERCHANT_TERMINAL": "99",
    "DS_MERCHANT_TRANSACTIONTYPE": "0",
    "DS_MERCHANT_AMOUNT": "100",
    "DS_MERCHANT_CURRENCY": "978",
    "DS_MERCHANT_ORDER": "24370986",
    "DS_MERCHANT_PAN": "4548810000000003",
    "DS_MERCHANT_EXPIRYDATE": "3012",
    "DS_MERCHANT_CVV2": "123",
    "DS_MERCHANT_DCC": {
        "monedaDCC": "840",
        "importeDCC": "1.17"
    },
    "DS_MERCHANT_EMV3DS": {
        "threeDSInfo": "ChallengeResponse",
        "protocolVersion": "2.2.0",
        "cres": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImQ3NDMzYzJkLWY0NGQtNDhkYS1hM2EzLWU4ODNmNmE4MmZlOSIsImFjc1RyYW5zSUQiOiJmYjNmM2NjMC05ZDQzLTRmYTEtOGUwMi1jZGJkNGNlYTZhMzQiLCJtZXNzYWdlVHlwZSI6IkNSZXMiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwidHJhbnNTdGF0dXMiOiJZIn0="
    }
}
				
			
				
					ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIzOTMzMTA4NiIsCiAgICAiRFNfTUVSQ0hBTlRfUEFOIjogIjQ1NDg4MTAwMDAwMDAwMDNcdCIsCiAgICAiRFNfTUVSQ0hBTlRfRVhQSVJZREFURSI6ICIzMDEyIiwKICAgICJEU19NRVJDSEFOVF9DVlYyIjogIjEyMyIsCiAgICAiRFNfTUVSQ0hBTlRfRU1WM0RTIjogewogICAgICAgICJ0aHJlZURTSW5mbyI6ICJDaGFsbGVuZ2VSZXNwb25zZSIsCiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICIyLjIuMCIsCiAgICAgICAgImNyZXMiOiAiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJbVEzTkRNell6SmtMV1kwTkdRdE5EaGtZUzFoTTJFekxXVTRPRE5tTm1FNE1tWmxPU0lzSW1GamMxUnlZVzV6U1VRaU9pSm1Zak5tTTJOak1DMDVaRFF6TFRSbVlURXRPR1V3TWkxalpHSmtOR05sWVRaaE16UWlMQ0p0WlhOellXZGxWSGx3WlNJNklrTlNaWE1pTENKdFpYTnpZV2RsVm1WeWMybHZiaUk2SWpJdU1pNHdJaXdpZEhKaGJuTlRkR0YwZFhNaU9pSlpJbjA9IgogICAgfQp9
				
			
				
					{
    "Ds_Merchant_MerchantParameters": "ewogICAgIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6ICIyMjMxMDg4NTMiLAogICAgIkRTX01FUkNIQU5UX1RFUk1JTkFMIjogIjk5IiwKICAgICJEU19NRVJDSEFOVF9UUkFOU0FDVElPTlRZUEUiOiAiMCIsCiAgICAiRFNfTUVSQ0hBTlRfQU1PVU5UIjogIjEwMCIsCiAgICAiRFNfTUVSQ0hBTlRfQ1VSUkVOQ1kiOiAiOTc4IiwKICAgICJEU19NRVJDSEFOVF9PUkRFUiI6ICIzOTMzMTA4NiIsCiAgICAiRFNfTUVSQ0hBTlRfUEFOIjogIjQ1NDg4MTAwMDAwMDAwMDNcdCIsCiAgICAiRFNfTUVSQ0hBTlRfRVhQSVJZREFURSI6ICIzMDEyIiwKICAgICJEU19NRVJDSEFOVF9DVlYyIjogIjEyMyIsCiAgICAiRFNfTUVSQ0hBTlRfRU1WM0RTIjogewogICAgICAgICJ0aHJlZURTSW5mbyI6ICJDaGFsbGVuZ2VSZXNwb25zZSIsCiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICIyLjIuMCIsCiAgICAgICAgImNyZXMiOiAiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJbVEzTkRNell6SmtMV1kwTkdRdE5EaGtZUzFoTTJFekxXVTRPRE5tTm1FNE1tWmxPU0lzSW1GamMxUnlZVzV6U1VRaU9pSm1Zak5tTTJOak1DMDVaRFF6TFRSbVlURXRPR1V3TWkxalpHSmtOR05sWVRaaE16UWlMQ0p0WlhOellXZGxWSGx3WlNJNklrTlNaWE1pTENKdFpYTnpZV2RsVm1WeWMybHZiaUk2SWpJdU1pNHdJaXdpZEhKaGJuTlRkR0YwZFhNaU9pSlpJbjA9IgogICAgfQp9",
    "Ds_Merchant_Signature": "ZfCZSV1Lx0pGTKXf78rBLsU3XmxD3yo1e9hOK9pROwk=",
    "Ds_SignatureVersion": "HMAC_SHA512_V2"
}
				
			
Notificación del 2º trataPeticion 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 REST con una sola petición únicamente recibirás una notificación.
  • En las operativas REST con flujo 3DS, recibes varías notificaciones durante todo el flujo de la operación, que tendrás que analizar y gestionar. En cada paso tienes indicado los parámetros de la notificación que tienes que guardar.

Como integrador, para gestionar correctamente las notificaciones tienes que tener 2 cosas en cuenta:

1. Recibir y gestionar la notificació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 de devolución.
  4. 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"
    }
}
				
			
				
					{
    "Ds_Amount": "1500",
    "Ds_Currency": "978",
    "Ds_Order": "3456071921",
    "Ds_MerchantCode": "999008881",
    "Ds_Terminal": "1",
    "Ds_Response": "0900",
    "Ds_AuthorisationCode": "329741",
    "Ds_TransactionType": "2",
    "Ds_SecurePayment": "2",
    "Ds_Language": "1",
    "Ds_MerchantData": "",
    "Ds_Card_Country": "724",
    "Ds_Card_Brand": "1",
    "Ds_ProcessedPayMethod": "78",
    "Ds_Control_1680100010873": "4895410001498"
}
				
			
				
					{
    "errorCode":"SISXXXX"
}
				
			

Importante: En cada tipo de operativa es posible que tengas que guardar algunos parámetros recibidos en la notificación para usarlos en operaciones posteriores. Esta información se detalla en la sección «¿Qué parámetros debo guardar de la notificación para próximas operaciones?» de cada operativa.

Recomendamos no validar el número de parámetros que recibes en una notificación. El nº de parámetros recibidos puede variar entre operativas o por nuevas normativas.

Parámetros recibidos en la notificació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

Parámetros DCC 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 DCC, están dentro del campo DS_DCC. Además, dentro de ese campo hay dos parámetros que son JSON que contienen los datos DCC. Estos son InfoMonedaTarjeta y InfoMonedaComercio.

Estos son los parámetros DCC que recibes en DS_DCC > InfoMonedaTarjeta:

ParámetroFormatoDescripciónEjemplo
monedaDCCISO 4217Código ISO de la moneda DCC con la que se puede realizar la operación.840
litMonedaDCCAlfanuméricoNombre de la moneda DCC.DOLAR U.S.A.
litMonedaRDCCAlfanuméricoSiglas de la moneda DCC.USD
importeDCCAlfanuméricoImporte de la operación en la moneda DCC.1.17
cambioDCCAlfanuméricoTipo de cambio entre la moneda de tu TPV y la divisa DCC. Por ejemplo 1€ = 0.85$.0.85
fechacambioDCCAAAA-MM-DDFecha en la que se aplica la tasa de cambio.2025-06-25
markUpAlfanuméricoComisión del tipo de cambio. Se aplica al importe.0.03
cambioBCEAlfanuméricoTipo de cambio que ofrece el BCE entre la moneda DCC y la del TPV Virtual.1,1345
porcentajeSobreBCEAlfanuméricoPorcentaje que supera el tipo de cambio del TPV Virtual respecto al del BCE. Por ejemplo, el TPV ofrece un 2%, el BCE un 1.5%, este valor sería 0.5%.0,05

Estos son los parámetros DCC que recibes en DS_DCC > InfoMonedaComercio:

ParámetroFormatoDescripciónEjemplo
monedaComeISO 4217Código ISO de la moneda del comercio.978
litMonedaComeAlfanuméricoNombre de la moneda del comercio.EUR
importeComeAlfanuméricoImporte de la operación en la moneda del comercio. 1.00

Códigos de 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.

Las exenciones SCA las puede aplicar el emisor de la tarjeta o el comercio.

  • Exenciones por el emisor: El emisor de la tarjeta aplica una exención ya que tiene confianza en la transacción. Por ejemplo, gracias a los parámetros 3D Secure enviados en la petición.
  • Exenciones por el comercio: Como comercio, puedes enviar en la petición las exenciones que quieras aplicar en la operación. Sin embargo, es el adquiriente (la pasarela de pago) quien las presenta al emisor (el banco que emite la tarjeta) en nombre de tu comercio. El emisor decide si aplicar las exenciones o no.

En REST puedes conocer qué exenciones están disponibles al solicitar DS_MERCHANT_EXCEP_SCA con valor Y en la petición iniciaPeticion. En la notificación, te devolverá los valores de la tabla inferior, que son los que tienes que enviar en la petición trataPeticion si quieres solicitar exención.

¿Cómo puedo solicitar exenciones SCA?

En los parámetros de la petición de pago, envía el parámetro DS_MERCHANT_EXCEP_SCA con los siguientes valores:

Valor DS_MERCHANT_EXCEP_SCADescripción
TRATransacción de bajo riesgo. El bajo riesgo se evalúa con criterios definidos por normativa PSD2. Si el banco o el proveedor de servicios de pago no cumple los criterios, la exención NO se aplicará.

Los requisitos que se tienen que cumplir para conseguir la exención son:
– 0,13% de fraude para que las transacciones por debajo de 100€.
– 0,06% de fraude para que las transacciones por debajo de 250€ queden exentas.
– 0,01% de fraude para que las transacciones por debajo de 500€ queden exentas.
LWVTransacción de bajo valor (low value). El importe no supera los 30€ (o el importe equivalente al cambio de la divisa).

El banco es el que decide si se aplica la exención o no. Por ejemplo, puede no aplicarse si el cliente lleva 5 o más transacciones de bajo valor sin autenticar o si la suma de estas supera los 100€.
MITOperación Iniciado por el Comercio, como el pago de una suscripción mensual.

Esta exención se puede solicitar si la primera operación que inicia el pago de la suscripción ha sido autenticada y si el importe y la frecuencia de pago es el mismo durante todo el flujo.
CORSi la operación se realiza por un canal corporativo, fuera del alcance del consumidor normal, se puede solicitar la exención COR.

Importante: Aunque se solicite una exención, es posible que el banco emisor no lo acepte y el cliente tenga que realizar una autenticación reforzada.

Los parámetros 3DS y las exenciones son procesos independientes pero relacionados. Enviar los parámetros 3DS puede facilitar que la operación tenga exención SCA. En el siguiente documento puedes ver la relación entre 3D Secure y SCA.

¿Qué tengo que tener en cuenta cuando solicito una exención?

Al solicitar una exención del proceso de SCA (Strong Customer Authentication), tu comercio pasará a ser responsable ante posibles reclamaciones futuras del cliente.

Comparte este documento

Operativas tarjetas REST

Copiar el enlace

Clipboard Icon
Tabla de Contenidos

Productos

  • 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}

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

Cyberpac

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

Canales

Módulos de integración

Integraciones a medida

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