# Hotels Channel Managers

## Before you begin[​](#before-you-begin "Direct link to Before you begin")

This document outlines the process of payment card tokenization, where card information is received, tokenized, and the tokens are returned for secure payment processing. The integration involves making a request to MONEI's endpoint, specifying the channel manager for retrieving this information.

Payment card tokenization is a secure process where card information is replaced with tokens for enhanced security during payment transactions. This document details the tokenization process, supported channel managers, and provides integration guidelines.

## Tokenization Process Overview[​](#tokenization-process-overview "Direct link to Tokenization Process Overview")

The payment card tokenization for our side involves the following key steps:

1. **Request Channel Manager Information:** Make a request to our endpoint, specifying the desired channel manager to retrieve the cards information.
2. **Receive Card Information:** As a PCI-compliant company, the system receives card information securely.
3. **Tokenization:** The received card information is tokenized, and a response containing the tokens is generated.
4. **Return Tokens:** The generated tokens are returned to the requesting entity for secure payment processing.

## Integration[​](#integration "Direct link to Integration")

important

You will have to add your [MONEI API Key](http://localhost:3000/api/#section/Authentication) on your request header in order to authenticate the request.

You can enable **test mode and we will use Siteminder and Channex preprod URLs**, you can enable it on your dashboard.

### [Siteminder](https://www.siteminder.com/)[​](#siteminder "Direct link to siteminder")

Siteminder is a widely used channel management system. We support payment card tokenization through the following API endpoint:

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

**Method:** `POST`

#### Request:[​](#request "Direct link to Request:")

```
{

  "accountId": "<monei_account_id>",

  "hotelCode": "<hotel_code>",

  "sessionId": "<uuid4>",

  "channelManagerType": "SITEMINDER",

  "siteminderName": "<siteminder_name>",

  "username": "<username>",

  "password": "<password>",

  "echoToken": "<uuid4>"

}
```

* **accountId** `string` - Unique identifier representing the **account ID from MONEI which the payment will be transfered**. It is a UUID (Universal Unique Identifier).
* **hotelCode** `string` - Code that uniquely identifies the hotel. **This is provided from Siteminder**
* **sessionId** `string` - A universally unique identifier (UUID) representing the session.
* **channelManagerType** `string` - Indicates the **name of channel manager**. It is a String with two possible values: `SITEMINDER` or `CHANNEX`. In this case we're going to use `SITEMINDER`.
* **siteminderName** `string` - The name of your account with Siteminder.
* **username** `string` - The username used for authentication. **This is provided from Siteminder**.
* **password** `string` - The password associated with the provided username, for authentication purposes. **This is provided from Siteminder**.
* **echoToken** `string` - Globally unique identifier for the request, **value will be returned as an EchoToken in the response**.

note

When acting as a [**proxy for Siteminder**](https://siteminder.atlassian.net/wiki/spaces/PMSXCHANGEV2/pages/1875838050/PMS+Tokenization+in+SiteMinder), the same response is returned as if directly interacting with them, with the addition of the `<MoneiResponse>` field containing the **payment token information**.

#### Response:[​](#response "Direct link to Response:")

```
<?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>`: This is a container element that **encapsulates the Monei response** information.
* `<payment_token>`: **MONEI's created token of booking card information**. This token is typically used in [subsequent transactions](https://docs.monei.com/apis/rest/payments-create/.md) instead of the actual card details for security reasons.
* `<expiration>`: Indicates the **expiration date** of the payment token.
* `<type>`: Specifies the type of the payment method, in this case, "credit." It indicates that the tokenized information is related to a credit card.
* `<last4>`: Represents the **last four digits** of the card number.
* `<brand>`: Denotes the **brand or card network** associated with the card. In this example, "MC" likely stands for MasterCard.
* `<cardHolderName>`: Provides the name of the cardholder associated with the card, this field contains the\*\* name of the person to whom the card belongs\*\*.

These elements collectively provide details about a tokenized payment method, allowing for secure and privacy-enhanced transactions without exposing sensitive card information.

### [Channex](https://channex.io/)[​](#channex "Direct link to channex")

Channex is another channel management system that seamlessly integrates with the tokenization process. **We expose the same endpoint, but changing the channelManagerType parameter to `CHANNEX`**:

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

**Method:** `POST`

#### Request:[​](#request-1 "Direct link to Request:")

```
{

  "accountId": "<monei_account_id>",

  "sessionId": "<uuid4>",

  "channelManagerType": "CHANNEX",

  "channexId": "<your_channex_api_key>",

  "propertyId": "<property_id>"

}
```

* **accountId** `string` - Unique identifier representing the **account ID from MONEI which the payment will be transfered**. It is a UUID (Universal Unique Identifier).
* **sessionId** `string` - A universally unique identifier (UUID) representing the session.
* **channelManagerType** `string` - Indicates the **name of channel manager**. It is a String with two possible values: `SITEMINDER` or `CHANNEX`. In this case we're going to use `CHANNEX`.
* **channexId** `string` - [Channex API key](https://docs.channex.io/application-documentation/api-key-access).
* **propertyId** `string` - **Optional**. The ID of the property you want to filter by, if not provided will return all the [Booking Revision Feed](https://docs.channex.io/api-v.1-documentation/bookings-collection#booking-revisions-feed).

#### Response:[​](#response-1 "Direct link to Response:")

```
[

  {

    "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`: **MONEI's created token of booking card information**. This token is typically used in [subsequent transactions](https://docs.monei.com/apis/rest/payments-create/.md) instead of the actual card details for security reasons.
* `expireAt`: Indicates the **expiration date** of the payment token.
* `paymentMethod`: Indicates **more information** about the payment method that the user used on his booking.
