Tokenización – MIT

las operaciones MIT, o Transacciones Iniciadas por el Comerciante, son aquellas transacciones que son iniciadas por el comercio sin la participación directa del cliente en el momento de la compra. Estas transacciones se utilizan comúnmente en situaciones donde los pagos se realizan de manera automática o programada.

Las principales características de las operaciones MIT son:

  • Sin participación directa del cliente: a diferencia de las transacciones iniciadas por el cliente (CIT), en las operaciones MIT el cliente no necesita estar presente ni proporcionar detalles de pago en el momento de la transacción.
  • Autorización previa: el cliente otorga una autorización previa para que el comerciante pueda realizar estas transacciones. Esta autorización suele darse al momento de establecer un acuerdo de pago recurrente o suscripción.
  • Pagos recurrentes: Las MIT se utilizan frecuentemente para pagos recurrentes, como suscripciones mensuales, servicios de streaming, membresías de gimnasios, o cualquier servicio que requiera pagos periódicos.
  • Cobros adicionales o ajustes: también se pueden usar para cobrar importantes adicionales aprobados previamente por el cliente, como en el caso de propinas, cargos por uso extra de servicios, o ajustes de facturación.

Para garantizar la seguridad de las operaciones MIT, se utiliza la tokenización. La tokenización reemplaza la información sensible de la tarjeta de crédito del cliente con un identificador único llamado referencia, que puede ser usado para procesar transacciones sin exponer los datos reales de la tarjeta. Esto protege tanto al cliente como al comerciante contra posibles fraudes y violaciones de datos.

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.