TABLE OF CONTENTS

Introduction

Notes:
Please note that Push ARI Mode can only be used with Push Hotel Mode. Therefore, if you select pushing ARI to the Go platform, you must choose Push Hotel Mode. Conversely, if you select Pull ARI Mode, only Pull Hotel Mode can be combined with it.

DerbySoft Go provides two methods for communicating  Availability, Rates, and Inventory (ARI)  between hotel suppliers and the DerbySoft Go platform. 


PULL ARI Mode:

In this mode, DerbySoft uses Pull ARI APIs to periodically retrieve ARI from hotel providers. This set includes two mandatory APIs (indicated by a "☆" symbol) and an optional CDS API.


PUSH ARI Mode:

In this mode, the hotel supplier actively sends ARI to the DerbySoft Go platform. The API set includes two APIs: one for pushing daily rates and another for pushing Length of Stay (LOS) rates. Generally, each hotel supplier will provide ARI with only one pricing model, either daily rates or LOS rates.


PULL ARI APIs:

PULL ARI APIs are used by DerbySoft to sync ARI from the supplier and publish it to distributors automatically. DerbySoft does support two ways to sync ARI: With CDS API - DerbySoft does get ARI changes by calling CDS API with a regular schedule and then getting ARI to change details accordingly; Without CDS API - DerbySoft will get ARI details on a regular schedule.


APIs marked with "☆" are mandatory to implement, while those marked with "◎" are optional but recommended.

  • ☆ Daily ARI (/ari/daily/details) - Get daily ARI of one hotel to one distributor(It's an optional API if hotel supplier supports LOS ARI Only).
  • ☆ LOS ARI (/ari/los/details) - Get LOS ARI of one hotel to one distributor(It's an optional API if hotel supplier supports Daily ARI Only).
  • ◎ CDS (/ari/changes) - Change Discovery Service to detect changes by one hotel to one distributor.


PUSH ARI APIs

  • ☆ Daily ARI (/ari/daily/push) - This API is used by hotel suppliers to push daily ARI data for a hotel within a specified date range to the Go platform.
  • ☆ LOS ARI (/ari/los/push) - This API is used by hotel suppliers to push LOS ARI data for a hotel within a specified date range to the Go platform.


Pull Daily ARI

This is an API for DerbySoft to call the Supplier's system to get the daily ARI of one hotel by date range.

POST /ari/daily/details HTTP/1.1
URL: {{endpoint}}/ari/daily/details
Authorization: 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8

Request Example

{
  "header": {
    "sourceId": "HHBIJSOPLS",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "hotelId": "100001",
  "dateRange": {
    "startDate": "2018-01-01",
    "endDate": "2018-01-04"
  }
}

Request  Specification


Attribute

Type

Required

Description

Example

header

object

Yes

 /

 /

@sourceId

string

Yes

maxLength: 32

id of hotel's source in DerbySoft's system

HHBIJSOPLS

@distributorId

string

Yes

maxLength: 32

id of distributor in DerbySoft's system

GTA

@version

string

Yes

maxLength: 20

version of API

v4

@token

string 

Yes

maxLength: 64

A unique id to identify request and response, normally it should be UUID.

18393849028490234

hotelId

string

Yes

 /

100001

dateRange

object

Yes

 /

 /

@startDate

string

Yes

start date of date range, format with yyyy-MM-dd

2018-01-01

@endDate

string

Yes

end date of date range, format with yyyy-MM-dd

2018-01-04


Response Example

  • Common Rate Success Response (HTTP Status 200)
{
  "header": {
    "sourceId": "HHBIJSOPLS",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "hotelId": "100001",
  "dateRange": {
    "startDate": "2018-01-01",
    "endDate": "2018-01-04"
  },
  "currency": "USD",
  "dailyAris": [
    {
      "roomId": "10000101",
      "rateId": "123456",
      "mealPlans": [
        "BB",
        "BB",
        "BB",
        "BB"
      ],
      "inventories": [
        9,
        0,
        9,
        9
      ],
      "rates": {
        "type": "CommonRate",
        "amountAfterTax": [
          623.23,
          623.23,
          623.23,
          623.23
        ]
      },
      "availStatuses": {
        "close": [
          false,
          false,
          false,
          false
        ],
        "minStayArrival": [
          0,
          2,
          0,
          0
        ],
        "maxStayArrival": [
          0,
          2,
          0,
          0
        ],
        "minStayThrough": [
          0,
          2,
          0,
          0
        ],
        "maxStayThrough": [
          0,
          2,
          0,
          0
        ],
        "minAdvanceDay": [
          0,
          2,
          0,
          0
        ],
        "maxAdvanceDay": [
          365,
          365,
          365,
          365
        ],
        "cta": [
          false,
          false,
          false,
          true
        ],
        "ctd": [
          false,
          false,
          false,
          true
        ],
        "fplos": [
          "1111111",
          "1001111",
          "1000001",
          "0000000"
        ]
      },
      "rateChangeIndicators": [
        true,
        false,
        true,
        false
      ],
      "extensions": {
        "key": "value"
      }
    }
  ]
}
  • Occupancy Rate Success Response (HTTP Status 200)
{
  "header": {
    "sourceId": "HHBIJSOPLS",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "hotelId": "100001",
  "dateRange": {
    "startDate": "2018-01-01",
    "endDate": "2018-01-04"
  },
  "currency": "USD",
  "dailyAris": [
    {
      "roomId": "10000101",
      "rateId": "123456",
      "mealPlans": [
        "BB",
        "BB",
        "BB",
        "BB"
      ],
      "inventories": [
        9,
        0,
        9,
        9
      ],
      "rates": {
        "type": "OccupancyRate",
        "rates": [
          {
            "adultCount": 2,
            "childCount": 1,
            "amountBeforeTax": [
              502.19,
              502.19,
              502.19,
              502.19
            ],
            "amountAfterTax": [
              623.23,
              623.23,
              623.23,
              623.23
            ]
          }
        ]
      },
      "availStatuses": {
        "close": [
          false,
          false,
          false,
          false
        ],
        "minStayArrival": [
          0,
          2,
          0,
          0
        ],
        "maxStayArrival": [
          0,
          2,
          0,
          0
        ],
        "minStayThrough": [
          0,
          2,
          0,
          0
        ],
        "maxStayThrough": [
          0,
          2,
          0,
          0
        ],
        "minAdvanceDay": [
          0,
          2,
          0,
          0
        ],
        "maxAdvanceDay": [
          365,
          365,
          365,
          365
        ],
        "cta": [
          false,
          false,
          false,
          true
        ],
        "ctd": [
          false,
          false,
          false,
          true
        ],
        "fplos": [
          "1111111",
          "1001111",
          "1000001",
          "0000000"
        ]
      },
      "rateChangeIndicators": [
        true,
        false,
        true,
        false
      ],
      "extensions": {
        "key": "value"
      }
    }
  ]
}
  • Occupancy Rate with Child Pricing based on age bands Success Response (HTTP Status 200)
{
  "header": {
    "sourceId": "HHBIJSOPLS",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "hotelId": "100001",
  "dateRange": {
    "startDate": "2018-01-01",
    "endDate": "2018-01-04"
  },
  "currency": "USD",
  "dailyAris": [
    {
      "roomId": "10000101",
      "rateId": "123456",
      "mealPlans": [
        "BB",
        "BB",
        "BB",
        "BB"
      ],
      "inventories": [
        9,
        0,
        9,
        9
      ],
      "rates": {
        "extraChildRates": [
          {
            "amountAfterTax": [
              50.00,
              50.00,
              50.00,
              50.00
            ],
            "amountBeforeTax": [
              40.00,
              40.00,
              40.00,
              40.00
            ],
            "maxAge": "2",
            "minAge": "0"
          },
          {
            "amountAfterTax": [
              60.00,
              60.00,
              60.00,
              60.00
            ],
            "amountBeforeTax": [
              50.00,
              50.00,
              50.00,
              50.00
            ],
            "maxAge": "8",
            "minAge": "3"
          },
          {
            "amountAfterTax": [
              70.00,
              70.00,
              70.00,
              70.00
            ],
            "amountBeforeTax": [
              60.00,
              60.00,
              60.00,
              60.00
            ],
            "maxAge": "17",
            "minAge": "9"
          }
        ],
        "type": "OccupancyRate",
        "rates": [
          {
            "adultCount": 1,
            "amountBeforeTax": [
              180.00,
              180.00,
              180.00,
              180.00
            ],
            "amountAfterTax": [
              198.00,
              198.00,
              198.00,
              198.00
            ]
          },
          {
            "adultCount": 2,
            "amountBeforeTax": [
              200.00,
              200.00,
              200.00,
              200.00
            ],
            "amountAfterTax": [
              220.00,
              220.00,
              220.00,
              220.00
            ]
          }
        ]
      },
      "availStatuses": {
        "close": [
          false,
          false,
          false,
          false
        ],
        "minStayArrival": [
          0,
          2,
          0,
          0
        ],
        "maxStayArrival": [
          0,
          2,
          0,
          0
        ],
        "minStayThrough": [
          0,
          2,
          0,
          0
        ],
        "maxStayThrough": [
          0,
          2,
          0,
          0
        ],
        "minAdvanceDay": [
          0,
          2,
          0,
          0
        ],
        "maxAdvanceDay": [
          365,
          365,
          365,
          365
        ],
        "cta": [
          false,
          false,
          false,
          true
        ],
        "ctd": [
          false,
          false,
          false,
          true
        ],
        "fplos": [
          "1111111",
          "1001111",
          "1000001",
          "0000000"
        ]
      },
      "rateChangeIndicators": [
        true,
        false,
        true,
        false
      ],
      "extensions": {
        "key": "value"
      }
    }
  ]
}
  • Error Response (HTTP Status 500)
{
  "errorCode": "InvalidField",
  "errorMessage": "Invalid Message"
}

Response Specification

Attribute

Type

Required

Description

Example

header

object

Yes

 /

 /

@sourceId

string

Yes

maxLength: 32

id of hotel's source in DerbySoft's system

HHBIJSOPLS

@distributorId

string

Yes

maxLength: 32

id of distributor in DerbySoft's system

GTA

@version

string

Yes

maxLength: 20

version of API

v4

@token

string 

Yes

maxLength: 64

A unique id to identify request and response, normally it should be UUID.

18393849028490234

hotelId

string

Yes

 /

100001

dateRange

object

Yes

 /

 /

@startDate

string

Yes

start date of date range, format with yyyy-MM-dd

2018-01-01

@endDate

string

Yes

end date of date range, format with yyyy-MM-dd

2018-01-04

currency

string

Yes

currency code[ISO-4217]

USD

dailyAris

array

Yes

daily rate & inventory within the date range

 /

@roomId

string

Yes

room id in supplier's system

10000101

@rateId

string

Yes

rate id in supplier's system

123456

@mealPlans

array[string]

No

meal plan of each date

[ "BB", "BB", "BB", "BB" ]

@inventories

array[integer]

Yes

room inventory of each date

[ 9, 0, 9, 9 ]

dailyAris / rates

 /

Yes

 /

 /

@type

enum

Yes

Enum: [ OccupancyRate, CommonRate ]

Indicates which rate model to use: OccupancyRate or CommonRate.,

 /

rates / rates

array[object]

Yes

The node disappears if it’s the Common Rate Model.

 /

@adultCount

integer

Yes

 /

 /

@childCount

integer

Yes

If extraChildRates is provided, childCount is not required

 /

@amountBeforeTax

array[number]

No

 /

[ 502.19, 502.19, 502.19, 502.19 ]

@amountAfterTax

array[number]

No

 /

[ 623.23, 623.23, 623.23, 623.23 ]

availStatuses

 /

Yes

 /

 /

@close

array[boolean]

Yes

close or not for each date.

[ false, false, false, false ]

@minStayArrival

array[integer]

No

Minimal length of stay based on checkin for each date, zero means no restriction.

[ 0, 2, 0, 0 ]

@maxStayArrival

array[integer]

No

Maximal length of stay based on checkin for each date, zero means no restriction.

[ 0, 2, 0, 0 ]

@minStayThrough

array[integer]

No

Minimal length of stay based on a date through for each date, zero means no restriction.

[ 0, 2, 0, 0 ]

@maxStayThrough

array[integer]

No

The maximum length of stay based on a date through for each date, zero means no restriction.

[ 0, 2, 0, 0 ]

@minAdvanceDay

array[integer]

No

Minimal days to book in advance for each date, zero means no restriction.

[ 0, 2, 0, 0 ]

@maxAdvanceDay

array[integer]

No

Maximum days to book in advance for each date, zero means no restriction.

[ 365, 365, 365, 365 ]

@cta

array[boolean]

No

close to arrival for each date

[ false, false, false, true ]

@ctd

array[boolean]

No

close to departure for each date

[ false, false, false, true ]

@fplos

array[string]

No

Full pattern length of stay to indicate if the stay is available.

[ "1111111", "1001111", "1000001", "0000000" ]

rateChangeIndicators

array[boolean]

No

rate change indicator of each date. for more information, refer to: Rate Change Indicators

[ true, false, true, false ]

extensions

object

No

a common extension object for extra attributes like account, extra setting required by a distributor, etc

 /


Pull LOS ARI

This is an API for DerbySoft to call the Supplier's system to get LOS ARI of one hotel by date range.

Notes:
① Full length of stay ARI for each date should be included in the response. Any missing ARI of the length of stay CANNOT be pushed out to the distributor.
② If no rate in the supplier's system, it's recommended to set both of rate and inventory to zero.
③ The meal plan is an optional field, as some distributors get this offline instead of through the API.
POST /ari/los/details HTTP/1.1
URL: {{endpoint}}/ari/los/details
Authorization: 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8


Request Example

{
  "header": {
    "sourceId": "HHBIJSOPLS",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "hotelId": "100001",
  "dateRange": {
    "startDate": "2018-01-01",
    "endDate": "2018-01-04"
  }
}


Request  Specification


Attribute

Type

Required

Description

Example

header

object

Yes

 /

 /

@sourceId

string

Yes

maxLength: 32

id of hotel's source in DerbySoft's system

HHBIJSOPLS

@distributorId

string

Yes

maxLength: 32

id of distributor in DerbySoft's system

GTA

@version

string

Yes

maxLength: 20

version of API

v4

@token

string 

Yes

maxLength: 64

A unique id to identify request and response, normally it should be UUID.

18393849028490234

hotelId

string

Yes

 /

100001

dateRange

object

Yes

 /

 /

@startDate

string

Yes

start date of date range, format with yyyy-MM-dd

2018-01-01

@endDate

string

Yes

end date of date range, format with yyyy-MM-dd

2018-01-04


Response Example

  • Common Rate Success Response (HTTP Status 200) 
{
  "header": {
    "sourceId": "HHBIJSOPLS",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "hotelId": "100001",
  "dateRange": {
    "startDate": "2018-01-01",
    "endDate": "2018-01-04"
  },
  "currency": "USD",
  "losAris": [
    {
      "roomId": "10000101",
      "rateId": "123456",
      "los": 1,
      "mealPlans": [
        "BB",
        "BB",
        "BB",
        "BB"
      ],
      "inventories": [
        9,
        0,
        9,
        9
      ],
      "rates": {
        "type": "CommonRate",
          "amountAfterTax": [
            623.23,
            623.23,
            623.23,
            623.23
          ]
      },
      "extensions": {
        "key": "value"
      }
    },
    {
        "roomId": "10000101",
        "rateId": "123456",
        "los": 2,
        "mealPlans": [
          "BB",
          "BB",
          "BB",
          "BB"
        ],
        "inventories": [
          9,
          0,
          9,
          9
        ],
        "rates": {
          "type": "CommonRate",
          "amountBeforeTax": [
            1004.38,
            1004.38,
            1004.38,
            1004.38
          ]
        },
        "extensions": {
          "key": "value"
        }
      }
  ]
}
  • Occupancy Rate Success Response (HTTP Status 200)
{
  "header": {
    "sourceId": "HHBIJSOPLS",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "hotelId": "100001",
  "dateRange": {
    "startDate": "2018-01-01",
    "endDate": "2018-01-04"
  },
  "currency": "USD",
  "losAris": [
    {
      "roomId": "10000101",
      "rateId": "123456",
      "los": 1,
      "mealPlans": [
        "BB",
        "BB",
        "BB",
        "BB"
      ],
      "inventories": [
        9,
        0,
        9,
        9
      ],
      "rates": {
        "type": "OccupancyRate",
        "rates": [
          {
            "adultCount": 2,
            "childCount": 1,
            "amountBeforeTax": [
              502.19,
              502.19,
              502.19,
              502.19
            ],
            "amountAfterTax": [
              623.23,
              623.23,
              623.23,
              623.23
            ]
          }
        ]
      },
      "extensions": {
        "key": "value"
      }
    },
    {
        "roomId": "10000101",
        "rateId": "123456",
        "los": 2,
        "mealPlans": [
          "BB",
          "BB",
          "BB",
          "BB"
        ],
        "inventories": [
          9,
          0,
          9,
          9
        ],
        "rates": {
          "type": "OccupancyRate",
          "rates": [
            {
              "adultCount": 2,
              "childCount": 1,
              "amountBeforeTax": [
                1004.38,
                1004.38,
                1004.38,
                1004.38
              ],
              "amountAfterTax": [
                1246.46,
                1246.46,
                1246.46,
                1246.46
              ]
            }
          ]
        },
        "extensions": {
          "key": "value"
        }
      }
  ]
}
  • Occupancy Rate with Child Pricing based on age bands Success Response (HTTP Status 200)
{
  "header": {
    "sourceId": "HHBIJSOPLS",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "hotelId": "100001",
  "dateRange": {
    "startDate": "2018-01-01",
    "endDate": "2018-01-04"
  },
  "currency": "USD",
  "losAris": [
    {
      "roomId": "10000101",
      "rateId": "123456",
      "los": 1,
      "mealPlans": [
        "BB",
        "BB",
        "BB",
        "BB"
      ],
      "inventories": [
        9,
        0,
        9,
        9
      ],
      "rates": {
        "extraChildRates": [
          {
            "amountAfterTax": [
              50.00,
              50.00,
              50.00,
              50.00
            ],
            "amountBeforeTax": [
              40.00,
              40.00,
              40.00,
              40.00
            ],
            "maxAge": "2",
            "minAge": "0"
          },
          {
            "amountAfterTax": [
              60.00,
              60.00,
              60.00,
              60.00
            ],
            "amountBeforeTax": [
              50.00,
              50.00,
              50.00,
              50.00
            ],
            "maxAge": "8",
            "minAge": "3"
          },
          {
            "amountAfterTax": [
              70.00,
              70.00,
              70.00,
              70.00
            ],
            "amountBeforeTax": [
              60.00,
              60.00,
              60.00,
              60.00
            ],
            "maxAge": "17",
            "minAge": "9"
          }
        ],
        "type": "OccupancyRate",
        "rates": [
          {
            "adultCount": 1,
            "amountBeforeTax": [
              180.00,
              180.00,
              180.00,
              180.00
            ],
            "amountAfterTax": [
              198.00,
              198.00,
              198.00,
              198.00
            ]
          },
          {
            "adultCount": 2,
            "amountBeforeTax": [
              200.00,
              200.00,
              200.00,
              200.00
            ],
            "amountAfterTax": [
              220.00,
              220.00,
              220.00,
              220.00
            ]
          }
        ]
      },
      "extensions": {
        "key": "value"
      }
    },
    {
      "roomId": "10000101",
      "rateId": "123456",
      "los": 2,
      "mealPlans": [
        "BB",
        "BB",
        "BB",
        "BB"
      ],
      "inventories": [
        9,
        0,
        9,
        9
      ],
      "rates": {
        "extraChildRates": [
          {
            "amountAfterTax": [
              50.00,
              50.00,
              50.00,
              50.00
            ],
            "amountBeforeTax": [
              40.00,
              40.00,
              40.00,
              40.00
            ],
            "maxAge": "2",
            "minAge": "0"
          },
          {
            "amountAfterTax": [
              60.00,
              60.00,
              60.00,
              60.00
            ],
            "amountBeforeTax": [
              50.00,
              50.00,
              50.00,
              50.00
            ],
            "maxAge": "8",
            "minAge": "3"
          },
          {
            "amountAfterTax": [
              70.00,
              70.00,
              70.00,
              70.00
            ],
            "amountBeforeTax": [
              60.00,
              60.00,
              60.00,
              60.00
            ],
            "maxAge": "17",
            "minAge": "9"
          }
        ],
        "type": "OccupancyRate",
        "rates": [
          {
            "adultCount": 1,
            "amountBeforeTax": [
              360.00,
              360.00,
              360.00,
              360.00
            ],
            "amountAfterTax": [
              396.00,
              396.00,
              396.00,
              396.00
            ]
          },
          {
            "adultCount": 2,
            "amountBeforeTax": [
              400.00,
              400.00,
              400.00,
              400.00
            ],
            "amountAfterTax": [
              440.00,
              440.00,
              440.00,
              440.00
            ]
          }
        ]
      },
      "extensions": {
        "key": "value"
      }
    }
  ]
}
  • Error Response (HTTP Status 500)
{
  "errorCode": "InvalidField",
  "errorMessage": "Invalid Message"
}


Response Specification

Attribute

Type

Required

Description

Example

header

object

Yes

 /

 /

@sourceId

string

Yes

maxLength: 32

id of hotel's source in DerbySoft's system

HHBIJSOPLS

@distributorId

string

Yes

maxLength: 32

id of distributor in DerbySoft's system

GTA

@version

string

Yes

maxLength: 20

version of API

v4

@token

string 

Yes

maxLength: 64

A unique id to identify request and response, normally it should be UUID.

18393849028490234

hotelId

string

Yes

 /

100001

dateRange

object

Yes

 /

 /

@startDate

string

Yes

start date of date range, format with yyyy-MM-dd

2018-01-01

@endDate

string

Yes

end date of date range, format with yyyy-MM-dd

2018-01-04

currency

string

Yes

currency code[ISO-4217]

USD

losAris

array

Yes

Full length of stay ARI for each date should ALL be included in the response. Any missing ARI of the length of stay CANNOT be pushed out to the distributor.

If no rate in the supplier's system, it's recommended to set both rate and inventory to zero.

The meal plan is an optional field, as some distributors get this offline instead of through the API.

 /

@roomId

string

Yes

room id in supplier's system

10000101

@rateId

string

Yes

rate id in supplier's system

123456

@los

integer

Yes

length of stay

1

@mealPlans

array[string]

No

meal plan of each date

[ "BB", "BB", "BB", "BB" ]

@inventories

array[integer]

Yes

room inventory of each date

[ 9, 0, 9, 9 ]

losAris / rates

object

Yes

 /

 /

@type

enum

Yes

Enum: [ OccupancyRate, CommonRate ]

indicates which rate model be used: OccupancyRate or CommonRate

 /

rates / rates

array[object]

Yes

The node disappears if it’s the Common Rate Model.

 /

@adultCount

integer

Yes

 /

 /

@childCount

integer

Yes

If extraChildRates is provided, childCount is not required

 /

@amountBeforeTax

array[number]

No

 /

[ 502.19, 502.19, 502.19, 502.19 ]

@amountAfterTax

array[number]

No

 /

[ 623.23, 623.23, 623.23, 623.23 ]

rates / extraChildRates

object

No

Extra child rate is only used with occupancy rate, max child age must be provided for available hotel product.

 /

@minAge

integer

Yes

Minimal child age is greater than or equal to zero.

0

@maxAge

integer

Yes

Maximum child age is less than or equal to maxChildAge.

2

@amountBeforeTax

array[number]

No

 /

[ 40, 40 ]

@amountAfterTax

array[number]

No

 /

[ 40, 40 ]

extensions

object

No

a common extension object for extra attributes like account, extra setting required by a distributor, etc

 /


CDS(Pull Mode)

This is an API for DerbySoft to call the Supplier's system to get daily ARI changes for one hotel. It's an optional function, but it is recommended for the Supplier's system to implement.

POST /ari/changes HTTP/1.1
URL: {{endpoint}}/ari/changes
Authorization: 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8


Request Example

{
  "header": {
    "sourceId": "HHBIJSOPLS",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "timestamp": "2017-07-21T17:32:28.000Z",
  "dateRange": {
    "startDate": "2018-01-01",
    "endDate": "2018-01-04"
  },
  "hotelIds": [
    "100001",
    "100002",
    "100003"
  ]
}


Request  Specification


Attribute

Type

Required

Description

Example

header

object

Yes

 /

 /

@sourceId

string

Yes

MaxLength: 32

ID of hotel's source in DerbySoft's system.

HHBIJSOPLS

@distributorId

string

Yes

MaxLength: 32

The ID of the distributor in DerbySoft's system.

GTA

@version

string

Yes

MaxLength: 20

The version of API.

v4

@token

string 

Yes

MaxLength: 64

A unique id to identify request and response, normally it should be UUID.

18393849028490234

timestamp

string

Yes

Timestamp to request changes in UTC timezone.

2017-07-21T17:32:28.000Z

dateRange

object

Yes

 /

 /

@startDate

string

Yes

Start date of date range, format with yyyy-MM-dd.

2018-01-01

@endDate

string

Yes

End date of date range, format with yyyy-MM-dd.

2018-01-04

hotelIds

array[string]

Yes

Hotel IDs in supplier's system

[ "100001", "100002", "100003" ]


Response Example

  • Success Response (HTTP Status 200)
{
  "header": {
    "sourceId": "HHBIJSOPLS",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "timestamp": "2017-07-21T17:32:28.000Z",
  "dateRange": {
    "startDate": "2018-01-01",
    "endDate": "2018-01-04"
  },
  "changes": {
    "100001": [
      "2018-01-01",
      "2018-01-02"
    ],
    "100002": [
      "2018-01-02"
    ]
  }
}
  • Error Response (HTTP Status 500)
{
  "errorCode": "InvalidField",
  "errorMessage": "Invalid Message"
}


Response Specification

Attribute

Type

Required

Description

Example

header

object

Yes

 /

 /

@sourceId

string

Yes

MaxLength: 32

ID of hotel's source in DerbySoft's system

HHBIJSOPLS

@distributorId

string

Yes

MaxLength: 32

ID of distributor in DerbySoft's system

GTA

@version

string

Yes

MaxLength: 20

Version of API

v4

@token

string 

Yes

maxLength: 64

A unique id to identify request and response, normally it should be UUID.

18393849028490234

timestamp

string

Yes

Timestamp to request changes in UTC timezone

2017-07-21T17:32:28.000Z

dateRange

object

Yes

 /

 /

@startDate

string

Yes

Start date of date range, format with yyyy-MM-dd

2018-01-01

@endDate

string

Yes

End date of date range, format with yyyy-MM-dd

2018-01-04

changes

object

Yes

Aate format: yyyy-MM-dd

A changed date array by each hotel

2018-01-01

Push Daily ARI

This API is used by Hotel Supplier to push Daily ARI to the Go platform for a hotel within a specified date range.

POST /ari/daily/details HTTP/1.1
URL: {DerbySoft-Go-Endpoint}/ari/daily/details
Authorization: 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8

Request Example

  • Occupancy Rate

{
  "header": {
    "supplierId": "ABCDE",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "messageType": "Overlay",
  "hotelId": "ABC123",
  "dateRange": {
    "startDate": "2018-01-01",
    "endDate": "2018-01-04"
  },
  "currency": "USD",
  "dailyAris": [
    {
      "roomId": "K1",
      "rateId": "BARB",
      "mealPlans": [
        "BB",
        "BB",
        "BB",
        "BB"
      ],
      "inventories": [
        9,
        0,
        9,
        9
      ],
      "rates": {
        "type": "OccupancyRate",
        "rates": [
          {
            "adultCount": 2,
            "childCount": 1,
            "amountBeforeTax": [
              502.19,
              502.19,
              502.19,
              502.19
            ],
            "amountAfterTax": [
              623.23,
              623.23,
              623.23,
              623.23
            ]
          }
        ]
      },
      "availStatuses": {
        "close": [
          false,
          false,
          false,
          false
        ],
        "minStayArrival": [
          0,
          2,
          0,
          0
        ],
        "maxStayArrival": [
          0,
          2,
          0,
          0
        ],
        "minStayThrough": [
          0,
          2,
          0,
          0
        ],
        "maxStayThrough": [
          0,
          2,
          0,
          0
        ],
        "minAdvanceDay": [
          0,
          2,
          0,
          0
        ],
        "maxAdvanceDay": [
          365,
          365,
          365,
          365
        ],
        "cta": [
          false,
          false,
          false,
          true
        ],
        "ctd": [
          false,
          false,
          false,
          true
        ],
        "fplos": [
          "1111111",
          "1001111",
          "1000001",
          "0000000"
        ]
      }
    }
  ]
}
  • Common Rate

{
  "header": {
    "sourceId": "HHBIJSOPLS",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "hotelId": "100001",
  "dateRange": {
    "startDate": "2018-01-01",
    "endDate": "2018-01-04"
  },
  "currency": "USD",
  "dailyAris": [
    {
      "roomId": "10000101",
      "rateId": "123456",
      "mealPlans": [
        "BB",
        "BB",
        "BB",
        "BB"
      ],
      "inventories": [
        9,
        0,
        9,
        9
      ],
      "rates": {
        "type": "CommonRate",
        "amountAfterTax": [
          623.23,
          623.23,
          623.23,
          623.23
        ]
      },
      "availStatuses": {
        "close": [
          false,
          false,
          false,
          false
        ],
        "minStayArrival": [
          0,
          2,
          0,
          0
        ],
        "maxStayArrival": [
          0,
          2,
          0,
          0
        ],
        "minStayThrough": [
          0,
          2,
          0,
          0
        ],
        "maxStayThrough": [
          0,
          2,
          0,
          0
        ],
        "minAdvanceDay": [
          0,
          2,
          0,
          0
        ],
        "maxAdvanceDay": [
          365,
          365,
          365,
          365
        ],
        "cta": [
          false,
          false,
          false,
          true
        ],
        "ctd": [
          false,
          false,
          false,
          true
        ],
        "fplos": [
          "1111111",
          "1001111",
          "1000001",
          "0000000"
        ]
      }
    }
  ]
}
  • Occupancy Rate with Child Pricing based on age bands

{
  "header": {
    "supplierId": "ABCDE",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "messageType": "Overlay",
  "hotelId": "ABC123",
  "dateRange": {
    "startDate": "2018-01-01",
    "endDate": "2018-01-04"
  },
  "currency": "USD",
  "dailyAris": [
    {
      "roomId": "K1",
      "rateId": "BARB",
      "mealPlans": [
        "BB",
        "BB",
        "BB",
        "BB"
      ],
      "inventories": [
        9,
        0,
        9,
        9
      ],
      "rates": {
        "extraChildRates": [
          {
            "amountAfterTax": [
              50.00,
              50.00,
              50.00,
              50.00
            ],
            "amountBeforeTax": [
              40.00,
              40.00,
              40.00,
              40.00
            ],
            "maxAge": 2,
            "minAge": 0
          },
          {
            "amountAfterTax": [
              60.00,
              60.00,
              60.00,
              60.00
            ],
            "amountBeforeTax": [
              50.00,
              50.00,
              50.00,
              50.00
            ],
            "maxAge": 8,
            "minAge": 3
          },
          {
            "amountAfterTax": [
              70.00,
              70.00,
              70.00,
              70.00
            ],
            "amountBeforeTax": [
              60.00,
              60.00,
              60.00,
              60.00
            ],
            "maxAge": 17,
            "minAge": 9
          }
        ],
        "type": "OccupancyRate",
        "rates": [
          {
            "adultCount": 1,
            "amountBeforeTax": [
              502.19,
              502.19,
              502.19,
              502.19
            ],
            "amountAfterTax": [
              623.23,
              623.23,
              623.23,
              623.23
            ]
          },
          {
            "adultCount": 2,
            "amountBeforeTax": [
              520.19,
              520.19,
              520.19,
              520.19
            ],
            "amountAfterTax": [
              641.23,
              641.23,
              641.23,
              641.23
            ]
          }
        ]
      },
      "availStatuses": {
        "close": [
          false,
          false,
          false,
          false
        ],
        "minStayArrival": [
          0,
          2,
          0,
          0
        ],
        "maxStayArrival": [
          0,
          2,
          0,
          0
        ],
        "minStayThrough": [
          0,
          2,
          0,
          0
        ],
        "maxStayThrough": [
          0,
          2,
          0,
          0
        ],
        "minAdvanceDay": [
          0,
          2,
          0,
          0
        ],
        "maxAdvanceDay": [
          365,
          365,
          365,
          365
        ],
        "cta": [
          false,
          false,
          false,
          true
        ],
        "ctd": [
          false,
          false,
          false,
          true
        ],
        "fplos": [
          "1111111",
          "1001111",
          "1000001",
          "0000000"
        ]
      }
    }
  ]
}


Request Specification

Attribute

Type

Required

Description

Example

header

object

Yes

 /

 /

@supplierId

string

Yes

MaxLength: 32

The ID of hotel suppliers in DerbySoft's system.

ABCDE

@distributorId

string

Yes

MaxLength: 32

The ID of the distributor in DerbySoft's system

GTA

@version

string

Yes

MaxLength: 20

Version of API

v4

@token

string

Yes

MaxLength: 64

A unique ID to identify request and response, normally it should be UUID.

18393849028490234

messageTypeenumNoEnum: [ Delta, Overlay ]

If the messageType is missing or not specified, it defaults to "Overlay".

Overlay

hotelId

string

Yes

ID of the hotel in the supplier's system

GATHI

dateRange

object

Yes

 /

 /

@startDate

string

Yes

Start date of date range, format with yyyy-MM-dd

2018-01-01

@endDate

string

Yes

End date of date range, format with yyyy-MM-dd

2018-01-04

currency

string

Yes

Currency code [ISO-4217]

USD

dailyAris

array

Yes

Daily rate and inventory within a date range

 /

@roomId

string

Yes

Room ID in supplier's system

10000101

@rateId

string

Yes

Rate ID in supplier's system

123456

@mealPlans

array[string]

No

Meal plan for each date

[ "BB", "BB", "BB", "BB" ]

@inventories

array[integer]

Yes

Room inventory for each date

[ 9, 0, 9, 9 ]

dailyAris/rates

object

Yes

 /

 /

@type

enum

Yes

Enum: [ OccupancyRate, CommonRate ]

Indicates which rate model to be used: OccupancyRate or CommonRate. Refer to Occupancy Rate vs. Common Rate to get to know the differences.  

 /

rates/rates

array[object]

Yes

This node will not display if it’s the Common Rate Model.

 /

@adultCount

integer

No

The attribute will not display if it’s the Common Rate Model.

 /

@childCount

integer

No

The attribute will not display if it’s the Common Rate Model.

 /

@amountBeforeTax

array[number]

No

 /

[ 502.19, 502.19, 502.19, 502.19 ]

@amountAfterTax

array[number]

No

 /

[ 623.23, 623.23, 623.23, 623.23 ]

dailyAris/availStatuses

object

No

For more clarification on the following restrictions, please refer to the article.

 /

@close

array[boolean]

Yes

Closed or not for each date

[false, false, false, false]

@minStayArrival

array[integer]

No

Minimum length of stay based on check-in for each date, zero means no restriction.

[ 0, 2, 0, 0 ]

@maxStayArrival

array[integer]

No

Maximum length of stay based on check-in for each date, zero means no restriction.

[ 0, 2, 0, 0 ]

@minStayThrough

array[integer]

No

Minimum length of stay based on a date through for each date, zero means no restriction.

[ 0, 2, 0, 0 ]

@maxStayThrough

array[integer]

No

Maximum length of stay based on a date for each date, zero means no restriction.

[ 0, 2, 0, 0 ]

@minAdvanceDay

array[integer]

No

Minimum days to book in advance for each date, zero means no restriction.

[ 0, 2, 0, 0 ]

@maxAdvanceDay

array[integer]

No

Maximum days to book in advance for each date, zero means no restriction.

[ 365, 365, 365, 365 ]

@cta

array[boolean]

No

Closed to arrival for each date

[ false, false, false, true ]

@ctd

array[boolean]

No

Closed to departure for each date

[ false, false, false, true ]

@fplos

array[string]

No

Full pattern length of stay to indicate if the stay is available.

[ "1111111", "1001111", "1000001", "0000000" ]

Response Example

  • Success Response (HTTP Status 200)

{
  "header": {
    "sourceId": "HHBIJSOPLS",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "hotelId": "GATHI",
  "updateDateRange": {
    "startDate": "2018-01-01",
    "endDate": "2018-01-04"
  }
}
  • Error Response (HTTP Status 403)

{
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}
  • Error Response (HTTP Status 500)

{
  "errorCode": "InvalidField",
  "errorMessage": "Invalid Message"
}


Response Specification

Attribute

Type

Required

Description

Example

header

object

Yes

 /

 /

@supplierId

string

Yes

MaxLength: 32

The ID of the hotel supplier in DerbySoft's system

ABCDE

@distributorId

string

Yes

MaxLength: 32

The ID of the distributor in DerbySoft's system

GTA

@version

string

Yes

MaxLength: 20

Version of API

v4

@token

string

Yes

MaxLength: 64

A unique ID to identify request and response, normally it should be UUID.

18393849028490234

hotelId

string

Yes

The ID of a hotel in the supplier's system

GATHI

updateDateRange

object

Yes

 /

 /

@startDate

string

Yes

start date of date range, format with yyyy-MM-dd

2018-01-01

@endDate

string

Yes

end date of date range, format with yyyy-MM-dd

2018-01-04


Push LOS ARI

This API is used by Hotel Supplier to push LOS ARI to the Go platform for a hotel within a specified date range.

POST /ari/los/details HTTP/1.1
URL: {DerbySoft-Go-Endpoint}/ari/los/details
Authorization: 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8


Request Example

  • Occupancy Rate
{
  "header": {
    "sourceId": "HHBIJSOPLS",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "messageType": "Overlay",
  "hotelId": "GATHI",
  "dateRange": {
    "startDate": "2018-01-01",
    "endDate": "2018-01-04"
  },
  "currency": "USD",
  "losAris": [
    {
      "roomId": "10000101",
      "rateId": "123456",
      "los": 1,
      "mealPlans": [
        "BB",
        "BB",
        "BB",
        "BB"
      ],
      "inventories": [
        9,
        0,
        9,
        9
      ],
      "rates": {
        "type": "OccupancyRate",
        "rates": [
          {
            "adultCount": 2,
            "childCount": 1,
            "amountBeforeTax": [
              502.19,
              502.19,
              502.19,
              502.19
            ],
            "amountAfterTax": [
              623.23,
              623.23,
              623.23,
              623.23
            ]
          }
        ]
      }
    }
  ]
}
  • Common Rate
{
  "header": {
    "sourceId": "HHBIJSOPLS",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "hotelId": "100001",
  "dateRange": {
    "startDate": "2018-01-01",
    "endDate": "2018-01-04"
  },
  "currency": "USD",
  "losAris": [
    {
      "roomId": "10000101",
      "rateId": "123456",
      "los": 1,
      "mealPlans": [
        "BB",
        "BB",
        "BB",
        "BB"
      ],
      "inventories": [
        9,
        0,
        9,
        9
      ],
      "rates": {
        "type": "CommonRate",
        "amountAfterTax": [
          623.23,
          623.23,
          623.23,
          623.23
        ]
      },
      "extensions": {
        "key": "value"
      }
    },
    {
      "roomId": "10000101",
      "rateId": "123456",
      "los": 2,
      "mealPlans": [
        "BB",
        "BB",
        "BB",
        "BB"
      ],
      "inventories": [
        9,
        0,
        9,
        9
      ],
      "rates": {
        "type": "CommonRate",
        "amountBeforeTax": [
          1004.38,
          1004.38,
          1004.38,
          1004.38
        ]
      }
    }
  ]
}


  • Occupancy Rate with Child Pricing based on age bands
{
  "header": {
    "supplierId": "HILTON",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "messageType": "Overlay",
  "hotelId": "GATHI",
  "dateRange": {
    "startDate": "2018-01-01",
    "endDate": "2018-01-04"
  },
  "currency": "USD",
  "losAris": [
    {
      "roomId": "K1",
      "rateId": "BARB",
      "los": 1,
      "mealPlans": [
        "BB",
        "BB",
        "RO",
        "BB"
      ],
      "inventories": [
        9,
        0,
        9,
        9
      ],
      "rates": {
        "extraChildRates": [
          {
            "minAge": 0,
            "maxAge": 2,
            "amountAfterTax": [
              50.00,
              50.00,
              50.00,
              50.00
            ],
            "amountBeforeTax": [
              40.00,
              40.00,
              40.00,
              40.00
            ]
          },
          {
            "minAge": 3,
            "maxAge": 8,
            "amountAfterTax": [
              60.00,
              60.00,
              60.00,
              60.00
            ],
            "amountBeforeTax": [
              50.00,
              50.00,
              50.00,
              50.00
            ]
          },
          {
            "minAge": 9,
            "maxAge": 17,
            "amountAfterTax": [
              70.00,
              70.00,
              70.00,
              70.00
            ],
            "amountBeforeTax": [
              60.00,
              60.00,
              60.00,
              60.00
            ]
          }
        ],
        "type": "OccupancyRate",
        "rates": [
          {
            "adultCount": 2,
            "amountBeforeTax": [
              200.00,
              200.00,
              200.00,
              200.00
            ],
            "amountAfterTax": [
              220.00,
              220.00,
              220.00,
              220.00
            ]
          },
          {
            "adultCount": 1,
            "amountBeforeTax": [
              160.00,
              160.00,
              160.00,
              160.00
            ],
            "amountAfterTax": [
              192.00,
              192.00,
              192.00,
              192.00
            ]
          }
        ]
      }
    },
    {
      "roomId": "K1",
      "rateId": "BARB",
      "los": 2,
      "mealPlans": [
        "BB",
        "BB",
        "RO",
        "BB"
      ],
      "inventories": [
        9,
        0,
        9,
        9
      ],
      "rates": {
        "extraChildRates": [
          {
            "minAge": 0,
            "maxAge": 2,
            "amountAfterTax": [
              100.00,
              100.00,
              100.00,
              100.00
            ],
            "amountBeforeTax": [
              80.00,
              80.00,
              80.00,
              80.00
            ]
          },
          {
            "minAge": 3,
            "maxAge": 8,
            "amountAfterTax": [
              120.00,
              120.00,
              120.00,
              120.00
            ],
            "amountBeforeTax": [
              100.00,
              100.00,
              100.00,
              100.00
            ]
          },
          {
            "minAge": 9,
            "maxAge": 17,
            "amountAfterTax": [
              140.00,
              140.00,
              140.00,
              140.00
            ],
            "amountBeforeTax": [
              120.00,
              120.00,
              120.00,
              120.00
            ]
          }
        ],
        "type": "OccupancyRate",
        "rates": [
          {
            "adultCount": 2,
            "amountBeforeTax": [
              400.00,
              400.00,
              400.00,
              400.00
            ],
            "amountAfterTax": [
              440.00,
              440.00,
              440.00,
              440.00
            ]
          },
          {
            "adultCount": 1,
            "amountBeforeTax": [
              320.00,
              320.00,
              320.00,
              320.00
            ],
            "amountAfterTax": [
              384.00,
              384.00,
              384.00,
              384.00
            ]
          }
        ]
      }
    }
  ]
}

Request Specification


Attribute

Type

Required

Description

Example

header

object

Yes

 /

 /

@supplierId

string

Yes

max length: 32

The ID of hotel suppliers in DerbySoft's system

HILTON

@distributorId

string

Yes

max length: 32

ID of distributor in DerbySoft's system

GTA

@version

string

Yes

max length: 20

Version of API

v4

@token

string

Yes

max length: 64

A unique ID to identify requests and response, normally it should be UUID.

18393849028490234

messageTypeenumNo

Enum: [ Delta, Overlay ]

If the messageType is missing or not specified, it defaults to "Overlay".

Overlay

hotelId

string

Yes

The ID of a hotel in the supplier's system

GATHI

dateRange

object

Yes

 /

 /

@startDate

string

Yes

Start date of date range, format with yyyy-MM-dd

2018-01-01

@endDate

string

Yes

End date of date range, format with yyyy-MM-dd

2018-01-04

currency

string

Yes

Currency code[ISO-4217]

USD

losAris

array

Yes

Length of stay rate and inventory within a date range.  If no available rates, it means the hotel was closed.  If the available rates are only for certain room types, it means other room types are closed.

 /

@roomId

string

Yes

Room ID in supplier's system

10000101

@rateId

string

Yes

Rate ID in supplier's system

123456

@connectionTypeenumNo

Enum: [Exchange, Standard]

Indicates the connection type of product. 

Notes: If the field is omitted, it means the Connection Type is Standard.

Standard

@los

integer

Yes

Length of stay

1

@mealPlans

array[string]

No

Meal plan for each date

[ "BB", "BB", "BB", "BB" ]

@inventories

array[integer]

Yes

Room inventory for each date

[ 9, 0, 9, 9 ]

losAris/rates

object

Yes

 /

 /

@type

enum

Yes

Enum: [ OccupancyRate, CommonRate ]

Indicates which rate model to be used: OccupancyRate or CommonRate.

 /

rates/rates

array[object]

Yes

This node will not display if it’s the Common Rate Model.

 /

@adultCount

integer

No

This node will not display if it’s the Common Rate Model.

 /

@childCount

integer

No

The node will not display if it’s the Common Rate Model.

 /

@amountBeforeTax

array[number]

No

 /

[ 502.19, 502.19, 502.19, 502.19 ]

@amountAfterTax

array[number]

No

 /

[ 623.23, 623.23, 623.23, 623.23 ]

rates/extraChildRates

object

No

Extra child rate is only used with occupancy rate, max child age must be provided for available hotel product.

 /

@minAge

integer

Yes

Minimum child age is greater than or equal to zero.

0

@maxAge

integer

Yes

Maximum child age is less than or equal to maxChildAge.

2

@amountBeforeTax

array[number]

No

 /

[ 40, 40 ]

@amountAfterTax

array[number]

No

 /

[ 40, 40 ]


Response Example

  • Success Response (HTTP Status 200)

{
  "header": {
    "supplierId": "HILTON",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "hotelId": "GATHI",
  "updateDateRange": {
    "startDate": "2018-01-01",
    "endDate": "2018-01-04"
  }
}
  • Error Response (HTTP Status 403)

{
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}
  • Error Response (HTTP Status 500)

{
  "errorCode": "InvalidField",
  "errorMessage": "Invalid Message"
}

Response Specification

Attribute

Type

Required

Description

Example

header

object

Yes

 /

 /

@supplierId

string

Yes

MaxLength: 32

The ID of the hotel supplier in DerbySoft's system

HILTON

@distributorId

string

Yes

MaxLength: 32

The ID of distributor in DerbySoft's system

GTA

@version

string

Yes

MaxLength: 20

Version of API

v4

@token

string

Yes

MaxLength: 64

A unique ID to identify request and response, normally it should be UUID.

18393849028490234

hotelId

string

Yes

ID of a hotel in supplier's system

GATHI

updateDateRange

object

 Yes

 /

 /

@startDate

string

Yes

Start date of date range, format with yyyy-MM-dd

2018-01-01

@endDate

string

Yes

End date of date range, format with yyyy-MM-dd

2018-01-04