Saltar al contenido principal

Tokenización con channel managers

Antes de empezar

Este documento describe el proceso de tokenización de tarjetas de pago, donde la información de la tarjeta se recibe, se tokeniza y se devuelven los tokens para el procesamiento seguro de pagos. La integración consiste en realizar una solicitud al endpoint de MONEI, especificando el para recuperar esta información.

La de tarjetas de pago es un proceso seguro en el que la información de la tarjeta se sustituye por tokens para mejorar la seguridad durante las transacciones de pago. Este documento detalla el proceso de tokenización, los channel managers compatibles y proporciona directrices de integración.

Descripción general del proceso de tokenización

El proceso de tokenización de tarjetas de pago en nuestro lado implica los siguientes pasos clave:

  1. Solicitar información del channel manager: Realiza una solicitud a nuestro endpoint, especificando el channel manager deseado para recuperar la información de las tarjetas.
  2. Recibir información de la tarjeta: Como empresa compatible con PCI, el sistema recibe la información de la tarjeta de forma segura.
  3. Tokenización: La información de la tarjeta recibida se tokeniza y se genera una respuesta con los tokens.
  4. Devolver tokens: Los tokens generados se devuelven a la entidad solicitante para el procesamiento seguro de pagos.

Integración

info

Debes añadir tu clave de API de MONEI en la cabecera de tu solicitud para autenticarla.

Puedes activar el modo de prueba y usaremos las URLs de preproducción de Siteminder y Channex; puedes activarlo en tu panel.

Siteminder

Siteminder es un sistema de gestión de canales ampliamente utilizado. Admitimos la tokenización de tarjetas de pago a través del siguiente endpoint de API:

Endpoint: https://api.monei.com/v1/partner/tokens

Método: POST

Solicitud:

{
"accountId": "<monei_account_id>",
"hotelCode": "<hotel_code>",
"sessionId": "<uuid4>",
"channelManagerType": "SITEMINDER",
"siteminderName": "<siteminder_name>",
"username": "<username>",
"password": "<password>",
"echoToken": "<uuid4>"
}
  • accountId string - Identificador único que representa el ID de cuenta de MONEI al que se transferirá el pago. Es un UUID (Identificador Único Universal).
  • hotelCode string - Código que identifica de forma única al hotel. Lo proporciona Siteminder
  • sessionId string - Un identificador único universal (UUID) que representa la sesión.
  • channelManagerType string - Indica el nombre del channel manager. Es un String con dos valores posibles: SITEMINDER o CHANNEX. En este caso usaremos SITEMINDER.
  • siteminderName string - El nombre de tu cuenta en Siteminder.
  • username string - El nombre de usuario utilizado para la autenticación. Lo proporciona Siteminder.
  • password string - La contraseña asociada al nombre de usuario proporcionado, para fines de autenticación. La proporciona Siteminder.
  • echoToken string - Identificador único global para la solicitud; el valor se devolverá como EchoToken en la respuesta.
nota

Al actuar como proxy para Siteminder, se devuelve la misma respuesta que si se interactuara directamente con ellos, con la adición del campo <MoneiResponse> que contiene la información del .

Respuesta:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header />
<SOAP-ENV:Body>
<OTA_ResRetrieveRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0"
TimeStamp="2024-01-17T11:38:03+00:00" EchoToken="uuid4">
<Success />
<ReservationsList>
<HotelReservation CreateDateTime="2024-01-16T16:47:07+00:00" ResStatus="Book">
<!--
All the siteminder response
<POS>
<RoomStays>
<ResGuests>
... -->
<MoneiResponse>
<payment_token>298b7c3bc2951ca0513e0e07d495b33ddf29d7ae</payment_token>
<expiration>1843430400</expiration>
<type>credit</type>
<last4>4414</last4>
<brand>MC</brand>
<cardHolderName>Joan Sanfeliu</cardHolderName>
</MoneiResponse>
</ResGlobalInfo>
</HotelReservation>
</ReservationsList>
</OTA_ResRetrieveRS>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
  • <MoneiResponse>: Es un elemento contenedor que encapsula la información de la respuesta de MONEI.
  • <payment_token>: Token creado por MONEI con la información de la tarjeta de la reserva. Este token se utiliza normalmente en transacciones posteriores en lugar de los datos reales de la tarjeta por razones de seguridad.
  • <expiration>: Indica la fecha de vencimiento del token de pago.
  • <type>: Especifica el tipo de método de pago, en este caso "credit". Indica que la información tokenizada corresponde a una tarjeta de crédito.
  • <last4>: Representa los últimos cuatro dígitos del número de tarjeta.
  • <brand>: Denota la marca o asociada a la tarjeta. En este ejemplo, "MC" probablemente significa MasterCard.
  • <cardHolderName>: Proporciona el nombre del titular de la tarjeta asociado a la tarjeta; este campo contiene el nombre de la persona a quien pertenece la tarjeta.

Estos elementos proporcionan conjuntamente detalles sobre un método de pago tokenizado, permitiendo transacciones seguras y con privacidad mejorada sin exponer información sensible de la tarjeta.

Channex

Channex es otro sistema de gestión de canales que se integra perfectamente con el proceso de tokenización. Exponemos el mismo endpoint, pero cambiando el parámetro channelManagerType a CHANNEX:

Endpoint: https://api.monei.com/v1/partner/tokens

Método: POST

Solicitud:

{
"accountId": "<monei_account_id>",
"sessionId": "<uuid4>",
"channelManagerType": "CHANNEX",
"channexId": "<your_channex_api_key>",
"propertyId": "<property_id>"
}
  • accountId string - Identificador único que representa el ID de cuenta de MONEI al que se transferirá el pago. Es un UUID (Identificador Único Universal).
  • sessionId string - Un identificador único universal (UUID) que representa la sesión.
  • channelManagerType string - Indica el nombre del channel manager. Es un String con dos valores posibles: SITEMINDER o CHANNEX. En este caso usaremos CHANNEX.
  • channexId string - Clave de API de Channex.
  • propertyId string - Opcional. El ID de la propiedad por la que deseas filtrar; si no se proporciona, devolverá todas las entradas del Booking Revision Feed.

Respuesta:

[
{
"paymentToken": "b27b97a729ab9cefa8765eccf25d636b13f887cc",
"expireAt": 2678401,
"paymentMethod": {
"method": "card",
"card": {
"country": "US",
"last4": "8164",
"bank": "Wex Bank",
"bin": "53463306",
"cardholderName": "Joan Sanfeliu",
"expiration": 1767225600,
"type": "credit",
"brand": "mastercard"
}
},
"attributes": {
"id": "cbc57822-912c-4663-a9e5-3930b7539958",
"meta": {
"ruid": "Ykc2RlIyh9YUA66gHNu0pFCmOkmrTcr9qWngFe1gY4xjUlSmD+RVGXDjWrLMNL75u7DwI7i7eM9Vu047Nzj/TuNw+WkXmHOFc="
},
"status": "new",
"currency": "GBP",
"amount": "615.00",
All the rest of the channex response without card number exposed ...
}
}
]
  • payment_token: Token creado por MONEI con la información de la tarjeta de la reserva. Este token se utiliza normalmente en transacciones posteriores en lugar de los datos reales de la tarjeta por razones de seguridad.
  • expireAt: Indica la fecha de vencimiento del token de pago.
  • paymentMethod: Indica más información sobre el método de pago que el usuario utilizó en su reserva.