Tokenización – CIT

Las operaciones CIT, o Transacciones Iniciadas por el Cliente, son transacciones donde el cliente toma la acción directa para iniciar y autorizar el pago en el momento de la compra, es decir, el cliente está presente durante todo el proceso. Estas transacciones son las más comunes en las situaciones de compra.

La tokenización aporta varios beneficios a las transacciones iniciadas por el cliente, especialmente cuando se trata de pago en un clic. El pago en un clic, permite a los clientes almacenar sus datos de tarjeta de manera segura en tu tienda, facilitando el proceso de compra en las siguientes compras que pudiera realizar. Esto facilita y mejora la experiencia de usuario significativamente, porque elimina la necesidad de ingresar los detalles de la tarjeta en cada compra. Además, es especialmente beneficioso en dispositivos móviles donde la entrada de datos puede ser algo más tediosa.

Las principales características de las operaciones CIT son:

  • Iniciación directa por el cliente: el cliente es quien inicia la transacción proporcionando su información de pago.
  • Autenticación en el momento de la compra: el cliente debe autenticar la transacción ingresando los detalles de la tarjeta, un código de seguridad, o utilizando un método de autenticación adicional como lo es 3D Secure (SMS, código OTP o App)
  • Transacciones únicas o recurrentes: las CIT pueden ser tanto para comprar únicas como para pagos recurrentes, siempre que el cliente autoriza cada transacción individualmente.

Las operaciones CIT son una forma segura y controlada de realizar transacciones, donde el cliente inicia y autoriza el pago en el momento de la compra. La tokenización añade una capa adicional de seguridad, protegiendo los datos sensibles del cliente, además de proporcionar una experiencia más

Proceso de integración

En este apartado, verás como integrar COF y tokenización dentro de la operativa de pagos estándar que ya tengas implementada. Como verás a continuación, la manera de obtener una referencia y un ID de transacción es muy sencilla, y sólo tendrás que ocuparte de la lógica interna de gestión de esa referencia (cómo guardarla, cuando mostrarla a tu cliente, etcétera).

Primera operación

Para la primera operación, es posible el envío de dos nuevos parámetros adicionales a los normalmente utilizados en la integración que ya tengas realizada en tu comercio. Estos son:

  • Si quieres que Redsýs cree y gestione la referencia.
    • Ds_Merchant_Identifier: Se deberá enviar con el valor «REQUIRED». En este caso, el parámetro Ds_Merchant_COF_INI es opcional, ya que al solicitar una referencia, es inequívoco que quieres usar operativa COF.
  • Si quieres almacenar tú mismo los datos de la tarjeta del cliente, ¡ten cuidado con las implicaciones PCI-DSS!
    • Ds_Merchant_COF_INI: Parámetro que indica que se trata de una operativa COF. Para marcar que es la primera operación es necesario enviar Ds_Merchant_COF_INI con el valor «S».
  • Ds_Merchant_COF_TYPE: Este parámetro siempre es opcional pero altamente recomendable. Indica el tipo de operativa COF que quieres utilizar en las sucesivas operaciones. Si este parámetro no se enviase, se usaría como predeterminado el valor «C» (otras). Puedes ver la tabla de valores en el comienzo de esta página.

Para incluir la operativa COF dentro de tu integración, deberás agregar dos parámetros adicionales a la llamada al TPV Virtual en función de cómo quieras gestionar la operación, debidamente cumplimentados tal y como se ha explicado. Puedes usar como ejemplo de integración completa la mostrada dentro de la página Realizar un Pago, teniendo que agregar sólo los parámetros que se explican en los puntos anteriores o siguiendo los ejemplos siguientes.

"DS_MERCHANT_IDENTIFIER": "REQUIRED",
"DS_MERCHANT_COF_INI": "S",
"DS_MERCHANT_COF_TYPE": "R",
"DS_MERCHANT_COF_INI": "S",
"DS_MERCHANT_COF_TYPE": "R",

Un ejemplo de respuesta del TPV Virtual es el que se muestra a continuación:

{
  "Ds_Amount": "145",
  "Ds_Currency": "978",
  "Ds_Order": "9722vBXOv5O",
  "Ds_MerchantCode": "999008881",
  "Ds_Terminal": "1",
  "Ds_Response": "0000",
  "Ds_AuthorisationCode": "381927",
  "Ds_TransactionType": "0",
  "Ds_SecurePayment": "0",
  "Ds_Language": "1",
  "Ds_CardNumber": "454881******0003",
  "Ds_ExpiryDate": "3412",
  "Ds_Merchant_Identifier": "120c14ed9f7264383434fc1154559f1e2bcc2b1c",
  "Ds_MerchantData": "",
  "Ds_Card_Country": "724",
  "Ds_Card_Brand": "1",
  "Ds_Merchant_Cof_Txnid": "2006031152000"
}
{
  "Ds_Amount": "145",
  "Ds_Currency": "978",
  "Ds_Order": "9722vBXOv5O",
  "Ds_MerchantCode": "999008881",
  "Ds_Terminal": "1",
  "Ds_Response": "0000",
  "Ds_AuthorisationCode": "381927",
  "Ds_TransactionType": "0",
  "Ds_SecurePayment": "0",
  "Ds_Language": "1",
  "Ds_CardNumber": "454881******0003",
  "Ds_ExpiryDate": "3412",
  "Ds_MerchantData": "",
  "Ds_Card_Country": "724",
  "Ds_Card_Brand": "1",
  "Ds_Merchant_Cof_Txnid": "2006031152000"
}

En la respuesta, puedes observar dos nuevos parámetros que deberás almacenar:

  • Ds_Merchant_Identifier: Si has solicitado la generación de referencia, esta es la que debes almacenar y que enviarás en las sucesivas operaciones para que el cliente no tenga que introducir sus datos de tarjeta. Esto sólo lo recibirás si enviaste el parámetro Ds_Merchant_Identifier con el valor «REQUIRED».
  • Ds_Merchant_Cof_Txnid: Es la identificador de la operación original. Puedes no guardarlo si solicitaste la creación de referencia, ya que el SIS lo incorporará automáticamente si no se especifica; pero es obligatorio en caso de que gestiones los datos de la tarjeta tú mismo. De cualquier manera, recomendamos guardarlo con la referencia y enviarlo en las operaciones sucesivas.

También se adjunta la tarjeta asteriscada si seguiste nuestro consejo de solicitarlo, por lo que podrás mostrar a tu cliente los últimos cuatro dígitos de la tarjeta que se va a utilizar para pagar si vas a operar COF usando referencias.

Operaciones sucesivas

Para la primera operación, es posible el envío de dos nuevos parámetros adicionales a los normalmente utilizados en la integración que ya tengas realizada en tu comercio. Estos son:

  • Si quieres que Redsýs cree y gestione la referencia.
    • Ds_Merchant_Identifier: Deberás adjuntar la referencia que se incluyó en la respuesta del TPV Virtual en la primera operación.
  • Si almacenaste tú mismo los datos de la tarjeta del cliente.
    • Ds_Merchant_COF_TXNID: Es el identificador que se incluyó en la respuesta del TPV Virtual en la primera operación.
  • Ds_Merchant_COF_TYPE: Este parámetro siempre es opcional pero altamente recomendable. Indica el tipo de operativa COF que quieres utilizar en las sucesivas operaciones. Si este parámetro no se enviase, se recuperaría el utilizado en la primera operación.

Además, en las operaciones sucesivas, debes tener en cuenta que como tu comercio es el que está iniciando la operación (una suscripción, por ejemplo) entonces debes incorporar el parámetro Ds_Merchant_DirectPayment con el valor «TRUE».

Puedes usar como ejemplo de integración completa la mostrada dentro de la página Realizar un Pago, teniendo que agregar sólo los parámetros que se explican en los puntos anteriores o siguiendo los ejemplos siguientes. En las operaciones sucesivas usando inSite y una referencia generada anteriormente, no tienes por qué realizar el proceso de generación del idOper, ya que la referencia actuará como tal a la hora de realizar el proceso de autorización.

"DS_MERCHANT_IDENTIFIER": "120c14ed9f7264383434fc1154559f1e2bcc2b1c",
"DS_MERCHANT_COF_TYPE": "R",
"DS_MERCHANT_PAN": "4548**********03",
"DS_MERCHANT_EXPIRYDATE": "4912",
"DS_MERCHANT_COF_TXNID": "2006031152000",
"DS_MERCHANT_COF_TYPE": "R",

Un ejemplo de respuesta del TPV Virtual es el que se muestra a continuación:

{
  "Ds_Date":"10%2F12%2F2019",
  "Ds_Hour":"09%3A41",
  "Ds_SecurePayment":"0",
  "Ds_Card_Type":"D",
  "Ds_Card_Country":"724",
  "Ds_Amount":"1000",
  "Ds_Currency":"978",
  "Ds_Merchant_Identifier": "219851688d37e3b965e41c1545a34b6f4538f9e7",
  "Ds_Order":"1575967259",
  "Ds_MerchantCode":"999008881",
  "Ds_Terminal":"1",
  "Ds_Response":"0000",
  "Ds_MerchantData":"",
  "Ds_TransactionType":"0",
  "Ds_ConsumerLanguage":"1",
  "Ds_AuthorisationCode":"372663",
  "Ds_Card_Brand":"2"
}																
{
  "Ds_Amount": "145",
  "Ds_Currency": "978",
  "Ds_Order": "9722vBXOv5O",
  "Ds_MerchantCode": "999008881",
  "Ds_Terminal": "1",
  "Ds_Response": "0000",
  "Ds_AuthorisationCode": "381927",
  "Ds_TransactionType": "0",
  "Ds_SecurePayment": "0",
  "Ds_Language": "1",
  "Ds_CardNumber": "454881******0003",
  "Ds_ExpiryDate": "3412",
  "Ds_MerchantData": "",
  "Ds_Card_Country": "724",
  "Ds_Card_Brand": "1",
  "Ds_Merchant_Cof_Txnid": "2006031152000"
}

Como puedes comprobar, el TPV Virtual te responderá con la referencia en el parámetro Ds_Merchant_Identifier y con el identificador COF en parámetro Ds_Merchant_Cof_Txnid. En ambos casos, estos valores deben ser idénticos a los que ya tenías guardados hasta ahora.