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

Opción 1. Integración gestionada por Redsys.

Paso 1. Generación de la referencia.

Esta integración es más sencilla para el comercio y es la que recomendamos hacer, para ello, en la primera operación se deben enviar los siguientes parámetros:

  • Ds_Merchant_Identifier: Se debe enviar con el valor «REQUIRED». Este parámetro indica que deseas generar y que la gestión de la referencia la haga Redsys.
  • 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 aquí.

Ejemplo de petición al TPV-Virtual.

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

Ejemplo de respuesta del TPV-Virtual

{
  "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_Card_Last4":"9123",
  "Ds_MerchantData": "",
  "Ds_Card_Country": "724",
  "Ds_Card_Brand": "1",
  "Ds_Merchant_Cof_Txnid": "2006031152000"
}

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

  • Ds_Merchant_Identifier: Tras haber enviado el parametro Ds_Merchant_Identifier con valor «REQUIRED» recibirás en ese mismo campo la referencia generada. Esta referencia es la que debes almacenar y enviar al TPV-Virtual en futuras operaciones. Además, presta atención al campo Ds_ExpiryDate, ya que este campo muestra la fecha de caducidad de la tarjeta y deberás almacenarlo para que tu cliente sepa cuándo caduca su tarjeta y no le permitas usarla en una fecha posterior a la misma. Esta fecha está devuelta en formato AAMM (diciembre de 2029, será 2912).
  • 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 TPV-Virtual lo incorporará automáticamente si no se especifica. De cualquier manera, recomendamos guardarlo con la referencia y enviarlo en las operaciones sucesivas.
  • *NOTA: Es recomendable solicitar la configuración para recibir los datos de tarjeta del titular, para que así puedas mostrarlos a tus clientes y sepan que tarjeta van a usar. Tranquilo, los datos van a venis con ciertas partes asteriscadas, por lo que no hay ningún problema. Los campos que pueden venir informados son:
    • Ds_CardNumber: Tarjeta con la que se ha autorizado la operación. Si tu cliente usó un token para pagar(como por ejemplo usó el método de pago GooglePay o ApplePay entre otros) ten en cuenta que la numeración no va a coincidir con su tarjeta lo que puede generar cierta confusión.
    • Ds_Card_Last4: Campo en el que viajan los 4 últimos dígitos de la tarjeta real del cliente. Este campo viene informado cuando el pago se ha realizado con un token. Por lo que a la hora de mostrar información al cliente, si dispone de este campo, es preferible usar este al campo Ds_CardNumber.

Paso 2. Uso de la referencia. Pago 1-clic

Una vez que hemos obtenido el Ds_Merchant_Identifier, podemos empezar a operar con la referencia, para ello, tendrás que añadir estos nuevos parámetros a tu petición:

  • Ds_Merchant_Identifier: Deberás adjuntar la referencia que se incluyó en la respuesta del TPV Virtual en la primera operación.
  • Ds_Merchant_Cof_Txnid: Si guardaste este dato, puedes volver a enviarlo en la petición. Es opcional.
  • Ds_Merchant_COF_TYPE: Si en la generación de referencia enviaste este parámetro, es recomendable volver a enviarlo. Es opcional.
"DS_MERCHANT_IDENTIFIER": "120c14ed9f7264383434fc1154559f1e2bcc2b1c",
"Ds_Merchant_Cof_Txnid": "2006031152000",
"DS_MERCHANT_COF_TYPE": "R",

Ejemplo de respuesta del TPV-Virtual

{
  "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_Card_Last4":"9123",
  "Ds_MerchantData": "",
  "Ds_Card_Country": "724",
  "Ds_Card_Brand": "1",
  "Ds_Merchant_Cof_Txnid": "2006031152000"
}

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.

Opción 2. Integración gestionada por el comercio

Esta opción es más compleja, y requiere el comercio sea PCI-DSS para poder almacenar los datos de la tarjeta. En estos casos. Aquí Redsys no generará ninguna referencia.

Paso 1. Primera operación

  • 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 aquí.

Ejemplo de los nuevos parámetros que se deben añadir en la primera operación.

"DS_MERCHANT_COF_INI": "S",
"DS_MERCHANT_COF_TYPE": "R",

Ejemplo de respuesta del TPV-Virtual

{
  "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"
}

Paso 2. Uso sucesivo de las tarjetas almacenadas por parte del comercio.

Tras recibir la respuesta, se debe almacenar el Ds_Merchant_COF_TXNID y enviarlo en las operaciones sucesivas.

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

Ejemplo de los nuevos parámetros que se deben añadir:

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

Ejemplo de respuesta del TPV-Virtual.

{
  "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"
}