How to read and interpret channel manager logs

This article provides guidance on how to read and interpret the channel manager logs, to help resolve different issues that might arise. Channel manager logs can include inventory updates sent from Mews, and new reservations made via the channel manager. The logs could be important to the channel manager support team for resolving queries. For an explanation of how to access the channel manager logs, see How to access channel manager logs.
 

Note: Logs are stored for a maximum of 60 days, so you can’t access data older than 60 days.
 

Channel manager integrations

We refer to the queue and the message logs as the channel manager queue and the channel manager message logs. The majority of such integrations are in fact to channel managers, however note that these integrations could also include direct channels such as central reservation systems or online travel agents, that are not via a channel manager. They all however have similar functionality, sending updates of rates, availability and inventory from Mews to the channel, and receiving bookings or reservations from the channel into Mews.

 

General use cases

The following examples only apply to general integrations using the Mews Open API and not to special integrations such as SiteMinder and SynXis. In all General use cases, the data is in JSON format.
 

Contents

 

 

 1. Inventory update: Check the number of rooms

Use case: "I want to check the number of available rooms for a specific space category, for example, DBL) sent to the channel manager as part of an inventory update."


The number of available spaces is shown against "availability" underneath the corresponding "spaceTypeCode". In the following example, there are 16 DBL rooms available:

{
  "availabilities": [
    {
      "spaceTypeCode": "DBL",
      "availability": 16,
      "from": "2021-07-22",
      "to": "2021-07-22"
    }
  ],
  "clientToken": "{ClientToken}",
  "connectionToken": "{Token}"
}

 

2. Inventory update: Check the price

Use case: "I want to check the price for a specific rate plan sent to the channel manager as part of an inventory update."


The price is shown for a particular guest count and in a particular currency, all against a given rate plan code and space type code. In the example below, the price is €100.00 gross or €93.46 net, against space type 'D1' and rate plan 'FF':

    "ratePrices": [
        {
            "spaceTypeCode": "D1",
            "ratePlanCode": "FF",
            "prices": [
                {
                    "grossAmount": 100.00,
                    "netAmount": 93.46,
                    "currencyCode": "EUR",
                    "guestCount": 1
                },

 

3. Inventory update: What rooms did we close?

Use case: "For an inventory update, I want to see what rooms we closed, and what rooms have length-of-stay restrictions?"


Closed rooms or spaces are those shown with restrictions state '2', as in the example below. This is described in the API documentation.

"restrictions": [
   {
      "ratePlanCode": "BTR",
      "spaceTypeCode": "RCS",
      "state": [
        2,
        8
      ],
      "minLos": null,
      "maxLos": null,
      "from": "2022-07-20",
      "to": "2022-07-20"
    },


In the case of closed spaces, you can also see one or more additional state '6', '7' or '8' to indicate whether the space is closed to arrival, departure, stay, or a combination.
 

Restriction State

CodeDescription
1Open
2Closed
3-
4-
5-
6Closed to Arrival
7Closed to Departure
8Closed to Stay

 

More examples can be found in the API documentation.
 

4. Reservations: Are guest details missing?

Use case: "I want to check the reservations log to see if a guest phone number or other guest details are missing from a particular reservation."


In this case, you can find the reservation and check the data directly. If the 'telephone' field is missing or blank, then no telephone number was sent by the channel manager, and you should follow up with channel manager support.


You can find the specific reservation by filtering the message log data by the appropriate parameters, such as start and end times. If you use multiple channel managers, filter by channel manager name as well.


A guest or customer data record looks like this:

"customer": {
   "address": {
      "addressLine1": "Some street 123",
      "addressLine2": "Some other detail",
      "city": "Some city",
      "country": "US",
      "latitude": 30,
      "longitude": 20,
      "region": "Some region",
      "zip": "123 45"
      },
   "email": "[email protected]",
   "firstName": "John",
   "lastName": "Smith",
   "nationalityCode": "US",
   "languageCode": "en-US",
   "telephone": "1-3526-88918"
},

 

5. Reservations: Troubleshooting payment cards

Use case: "I want to see payment card information for a particular reservation."


A payment card record may be shown as part of a reservation record, as in the example below. For security reasons, the card number is never shown in the logs, instead it is replaced with "XXXXXXXXXXXXXX" or randomized text. Likewise, the CVV number is a dummy number. The only valid data is the card holder name and the card expiry date.

  "paymentCard": {
        "cvv": "666",
        "expireDate": "1222",
        "holderName": "John Smith",
        "number": "XXXXXXXXXXXXXX,
        "type": 1
    }

 

6. Reservations: Where can I see the per night price?

Use case: "I want to see the price for each night of the stay, for a particular reservation."


Prices per night stay are shown as "amounts" in the reservation record, with one amount per night of the overall stay period. For example:

"reservations": [
	{
		"adultCount": 2,
		"code": "02",
		"from": "2020-05-06",
		"to": "2020-05-09",
		"amounts": [
			{
				"net": 81,
				"gross": 100
			},
			{
				"net": 97.2,
				"gross": 120
			},
			{
				"net": 97.2,
				"gross": 120
			}
		],
		"ratePlanCode": "NR",
		"spaceTypeCode": "DBL",
		"state": 2,
		"totalAmount": {
			"net": 275.4,
			"gross": 340
		}


In this example the reservation consists of a three night stay, with prices of 100.00, 120.00 and 120.00 for each night respectively. The total amount for the stay is shown separately as 340.00.

 

7. Reservations: Where can I see the guest count?

Use case: "I want to see the number of guests against a particular reservation."


To see how many adults and children have booked, search for 'adultCount' and 'childCount' in the reservation record.

For a channel manager integration with the option "Use age category in reservation" enabled, you can search for 'GuestCounts' in the reservation record.

 

8. Reservations: Where can I see which products are booked?

Use case: "I want to see which product extras have been booked, against a particular reservation."


To see what add-on products were booked as part of the stay, search for 'extras' within the reservation record.

        "extras": [
                {
                    "code": "1",
                    "count": 1,                    
                    "amount": {
                        "net": 16.2,
                        "gross": 20
                    },
                    "from": "2021-05-06",
                    "to": "2021-05-07",
                    "pricing": 3
                }

 

The product is identified with 'code', this maps to a specified product in your channel manager integration settings. 'pricing' is a code that identifies the charging rule, for example, per person per night, or per stay. The 'amount' is price per unit of product.
 

Pricing codes

CodeDescription
1Once for the reservation
2Per person
3Per night
4Per person per night


For the definitive list of codes, please consult the API documentation.

 

9. Reservations: Where can I see the total price?

Use case: "I want to see the total price for a particular reservation."


The total price for the booking is under 'totalAmount'. This includes the sum of amounts for each night of the stay, plus the total of extra products. This value is received by Mews from the channel manager, the value is only altered if the system is configured with Product Rules that state that an amount should be added on top.
 

As with all amounts, if your property is configured for gross pricing, the gross amount will be used, however if it is configured for net pricing, then the net amount will be taken and taxes will be calculated as per your legal environment.

 

10. Reservations: Is there a company profile attached?

Use case: "I want to see if there is a company profile attached to a particular reservation."


To see if a corporate company profile was sent along with the reservation details, search for 'company'. A company record looks like this:

"company": {
        "id": "MEWS",
        "iata": "65893",
        "name": "Mews Systems, s.r.o.",
        "contact": {
            "email": "[email protected]",
            "phone": "+420 775 684 983",
            "address": {
                "zip": "110 00",
                "city": "Prague",
                "country": "Czech Republic",
                "addressLine1": "586 Ulice Test",
                "addressLine2": "Patro 2"
            }
        }

 

11. Reservations: What channel was used?

Use case: "I want to see which channel the reservation was made through."


To see what channel the reservation was made through, search for 'channel'. Tip: This can be useful when you are not certain if a channel manager sent the correct channel mapping code and it affected your Travel Agency mapping.

    "channel": {
        "code": 1,
        "name": "Expedia"
    }


You can find a full list of channel codes here. There is no need to copy these when mapping travel agency profiles, just simply pick them from the drop-down menu when setting up travel agencies, as explained under Method 1 here. They are already connected to the listed channel codes.

 

12. Reservations: Troubleshooting reservation numbers

Use case: "I want to see what reservation numbers were sent across as part of the reservation."


Mews receives two reservation numbers: one comes from the originating channel ('channelId'), and one comes from the channel manager ('channelManagerId'). The numbers can differ.
 

{
	"clientToken": "[Channel manager client token]",
	"connectionToken": "[Token of a concrete connection]",
	"channelId": "EXP-123456",
	"channelManagerId": "123456",

 

 

Was this article helpful?
10



Feedback