TABLE OF CONTENTS

Introduction


AvailabilityPeer is a set of outbound APIs that allow distributors to receive the ARI (Availability, Rates, and Inventory) data of hotels. By using AvailabilityPeer - ARI Push APIs, distributors can receive the rates and availabilities of hotels and store them for customer searching. AvailabilityPeer supports two types of rate models: Daily and LOS. Distributors can receive corresponding rates based on the type of hotel rate model.

DerbySoft uses ping API to check whether the endpoint provided by distributors is working or not.

Meanwhile, the Hotel API is used by DerbySoft to get the list of active hotels and products from the distributor's system. DerbySoft will use this API to filter the ARI data push to distributors. Distributors should ensure the status of hotels and products are up to date.

Finally, the ARI Push API is used by DerbySoft to push ARI data to distributors periodically. Distributors can receive the ARI data of a hotel by using the Daily Push API (/ari/daily/push) for daily rates or the LOS Push API (/ari/los/push) for length of stay rates.


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

  • ◎ Ping API

  • ☆ Hotel API

    • Hotel List (/hotels/{supplierId})

    • Hotel Products (/hotel/{supplierId}/{hotelId})

  • ☆ ARI Push API

    • Daily Push (/ari/daily/push)

    • LOS Push (/ari/los/push)

Ping

DerbySoft uses ping API to check whether the endpoint provided by distributors is working or not.

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


Response Example

  • Success Response (HTTP Status 200)

"ok"
  • Error Response (HTTP Status 401)

{
    "error": "Key not authorised"
}
  • Error Response (HTTP Status 500)

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

Hotel List

Distributors should select the hotels they wish to activate from their suppliers and provide the list of active hotels for each supplier. DerbySoft uses this API to retrieve the list and push availabilities only for active hotels.

GET /hotels/{supplierId} HTTP/1.1
URL: {{endpoint}}/hotels/{supplierId}
Authorization:Bearer 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8


Request Parameters

Name
DescriptionRequiredTypeExample

supplierId

The ID of the supplier in DerbySoft's system

Yes

string

HILTON


Response Example

  • Success Response (HTTP Status 200)

[
  {
    "supplierId": "HILTON",
    "hotelId": "GATHI",
    "status": "Actived"
  }
]
  • Error Response (HTTP Status 401)

{
    "error": "Key not authorised"
}
  • Error Response (HTTP Status 500)

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


Response Specification

Attribute

Type

Required

Description

Example

supplierId

string

Yes

Supplier ID in DerbySoft's system

HILTON

hotelId

string

Yes

Hotel ID in supplier‘s system

GATHI

status

enum

Yes

Enum: [ Actived, Deactived ]

Status in distributor's system

Actived


Hotel Products

Distributors use this API to indicate hotel product lists that plan to sell or stop-sell with their status (Actived or Deactived) for each hotel. DerbySoft then retrieves this list to push ARI for only active products.

GET /hotel/{supplierId}/{hotelId} HTTP/1.1
URL: {{endpoint}}/hotel/{supplierId}/{hotelId}
Authorization:Bearer 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8

Request Parameters

Name
DescriptionRequiredTypeExample

supplierId

The ID of the supplier in DerbySoft's system

Yes

string

 HILTON

hotelId

The ID of a hotel in the supplier's system

Yes

string

GATHI


Response Example

  • Success Response (HTTP Status 200)

{
  "supplierId": "HILTON",
  "hotelId": "GATHI",
  "status": "Actived",
  "settings": {
    "additionalProp1": "string",
    "additionalProp2": "string",
    "additionalProp3": "string"
  },
  "ariType": "Daily",
  "rateType": "AmountBeforeTax",
  "products": [
    {
      "roomId": "K1",
      "rateId": "CBAR",
      "status": "Actived",
      "roomName": "Double Room",
      "rateName": "Bar Rate",
      "occupancy": {
        "maxAdult": 3,
        "maxChild": 2,
        "maxOccupancy": 3
      }
    }
  ]
}
  • Error Response (HTTP Status 401)

{
    "error": "Key not authorised"
}
  • Error Response (HTTP Status 500)

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


Response Specification

Attribute

Type

Required

Description

Example

supplierId

string

Yes

The ID of the supplier in DerbySoft's system.

 HILTON

hotelId

string

Yes

Hotel ID in supplier's system

GATHI

status

enum

Yes

Enum: [ Actived, Deactived ]

Status in supplier's system

Actived

settings

object

No

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

"settings": {
"key": "value"
}

ariType

enum

Yes

Emun:[ Daily, LOS ]

Indicates which ARI model to be used for ARI API.

Daily

rateType

enum

Yes

Emun: [ AmountBeforeTax, AmountAfterTax, Both ]

Indicates which rate will be used in ARI and Reservation flow.

  • AmountBeforeTax: Only AmountBeforeTax can be sent to the distributor and then back to the supplier.
  • AmountAfterTax: Only AmountAfterTax can be sent to the distributor and then back to the supplier.
  • Both: Both AmountBeforeTax and AmountAfterTax can be sent to the distributor and then back to the supplier.

AmountBeforeTax

products

array

Yes

 /

 /

@roomId

string

Yes

Room ID in supplier's system

King

@rateId

string

Yes

Rate ID in supplier's system

BAR

@status

enum

Yes

Enum: [ Actived, Deactived ]

Actived

@roomName

string

No

Room type name
Max Length: 256

King Room

@rateName

string

No

Rate plan name
Max Length: 256

Best Available Rate

products/occupancy

object

Yes

 /

 /

@maxAdult

integer

Yes

Max adult count

3

@maxChild

integer

Yes

Max child count

2

@maxOccupancy

integer

Yes

Max occupancy

3


Daily Push

This API enables DerbySoft to send Daily ARI to Distributors for a hotel within a specified date range.

POST /ari/daily/push HTTP/1.1
URL: {{endpoint}}/ari/daily/push
Authorization:Bearer 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": "Delta",
  "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"
        ]
      },
      "rateChangeIndicators": [
        true,
        false,
        true,
        false
      ]
    }
  ]
}
  • Occupancy Rate with Child Price

{
    "header": {
        "supplierId": "ABCDE",
        "distributorId": "GTA",
        "version": "v4",
        "token": "18393849028490234"
    },
    "messageType": "Delta",
    "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"
                ]
            },
            "rateChangeIndicators": [
                true,
                false,
                true,
                false
            ]
        }
    ]
}
  • All possible occupancy combinations
Notes: 
GO supports completing possible occupancy combinations up to the maximum occupancy supported by each hotel in cases children will be free of charge by hotel suppliers. Example as follow: Max occupancy = 4, max adult = 3, max children = 2, child pricing = 0. But suppliers don't provide occupancy rate for adult plus child combinations. GO supports to complele it for 3A1C, 3A0C, 2A2C, 2A1C, 2A0C, 1A1C and 1A0C.
*** The feature increases the ARI pushing traffic volume and is turned off as a default setting. If you wish to enable it, please reach out to your Client Manager for more details.
{
    "header": {
        "supplierId": "ABCDE",
        "distributorId": "GTA",
        "version": "v4",
        "token": "18393849028490234"
    },
    "messageType": "Delta",
    "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": 1,
                        "childCount": 0,
                        "amountBeforeTax": [
                            502.19,
                            502.19,
                            502.19,
                            502.19
                        ],
                        "amountAfterTax": [
                            523.23,
                            523.23,
                            523.23,
                            523.23
                        ]
                    },
                    {
                        "adultCount": 1,
                        "childCount": 1,
                        "amountBeforeTax": [
                            502.19,
                            502.19,
                            502.19,
                            502.19
                        ],
                        "amountAfterTax": [
                            523.23,
                            523.23,
                            523.23,
                            523.23
                        ]
                    },
                    {
                        "adultCount": 2,
                        "childCount": 0,
                        "amountBeforeTax": [
                            502.19,
                            502.19,
                            502.19,
                            502.19
                        ],
                        "amountAfterTax": [
                            523.23,
                            523.23,
                            523.23,
                            523.23
                        ]
                    },
                    {
                        "adultCount": 2,
                        "childCount": 1,
                        "amountBeforeTax": [
                            502.19,
                            502.19,
                            502.19,
                            502.19
                        ],
                        "amountAfterTax": [
                            523.23,
                            523.23,
                            523.23,
                            523.23
                        ]
                    },
                    {
                        "adultCount": 2,
                        "childCount": 2,
                        "amountBeforeTax": [
                            502.19,
                            502.19,
                            502.19,
                            502.19
                        ],
                        "amountAfterTax": [
                            523.23,
                            523.23,
                            523.23,
                            523.23
                        ]
                    },
                    {
                        "adultCount": 3,
                        "childCount": 0,
                        "amountBeforeTax": [
                            502.19,
                            502.19,
                            502.19,
                            502.19
                        ],
                        "amountAfterTax": [
                            523.23,
                            523.23,
                            523.23,
                            523.23
                        ]
                    },
                    {
                        "adultCount": 3,
                        "childCount": 1,
                        "amountBeforeTax": [
                            502.19,
                            502.19,
                            502.19,
                            502.19
                        ],
                        "amountAfterTax": [
                            523.23,
                            523.23,
                            523.23,
                            523.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
            ]
        }
    ]
}


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 ]

Omit the attributor means the Message Type is Overlay.

Refer to Delta vs. Overlay for more information

Delta

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

 /

Yes

 /

 /

@type

enum

Yes

Enum: [ OccupancyRate, CommonRate ]

Indicates which rate model to be used: OccupancyRate or CommonRate. refer to Occupancy Rate vs. Common Rate 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

 /

 /

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" ]

dailyAris / rateChangeIndicators

array[boolean]

No

Rate change indicator of each date. For more information refer to: Rate Change Indicator

[ true, false, true, false ]


Response Example

  • Success Response (HTTP Status 200)

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

{
  "errorCode": "InvalidField",
  "errorMessage": "  Unauthorized 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

ABC123

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


LOS Push

This API enables DerbySoft to send LOS ARI to Distributors for a hotel within a specified date range.

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


Request Example

  • Occupancy Rate
{
  "header": {
    "supplierId": "HILTON",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "messageType": "Delta",
  "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": {
        "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
            ]
          }
        ]
      }
    }
  ]
}
  • Occupancy Rate with Child Price
{
    "header": {
        "supplierId": "HILTON",
        "distributorId": "GTA",
        "version": "v4",
        "token": "18393849028490234"
    },
    "messageType": "Delta",
    "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
                        ]
                    }
                ]
            }
        }
    ]
}
  • All possible occupancy combinations
Notes: 
GO supports completing possible occupancy combinations up to the maximum occupancy supported by each hotel in cases children will be free of charge by hotel suppliers. Example as follow: Max occupancy = 4, max adult = 3, max children = 2, child pricing = 0. But suppliers don't provide occupancy rate for adult plus child combinations. GO supports to complele it for 3A1C, 3A0C, 2A2C, 2A1C, 2A0C, 1A1C and 1A0C.
*** The feature increases the ARI pushing traffic volume and is turned off as a default setting. If you wish to enable it, please reach out to your Client Manager for more details.
{
    "header": {
        "supplierId": "HILTON",
        "distributorId": "GTA",
        "version": "v4",
        "token": "18393849028490234"
    },
    "messageType": "Delta",
    "hotelId": "GATHI",
    "dateRange": {
        "startDate": "2018-01-01",
        "endDate": "2018-01-07"
    },
    "currency": "USD",
    "losAris": [
        {
            "roomId": "NCAA",
            "rateId": "LHGKX",
            "los": 1,
            "mealPlans": [
                "BB",
                "BB",
                "BB",
                "BB",
                "BB",
                "BB",
                "BB"
            ],
            "inventories": [
                0,
                0,
                0,
                0,
                1,
                1,
                1
            ],
            "rates": {
                "rates": [
                    {
                        "adultCount": 1,
                        "childCount": 0,
                        "amountBeforeTax": [
                            183.01,
                            141,
                            166,
                            176,
                            176,
                            158,
                            182
                        ]
                    },
                    {
                        "adultCount": 1,
                        "childCount": 1,
                        "amountBeforeTax": [
                            183.01,
                            141,
                            166,
                            176,
                            176,
                            158,
                            182
                        ]
                    },
                    {
                        "adultCount": 2,
                        "childCount": 0,
                        "amountBeforeTax": [
                            183.01,
                            141,
                            166,
                            176,
                            176,
                            158,
                            182
                        ]
                    },
                    {
                        "adultCount": 2,
                        "childCount": 1,
                        "amountBeforeTax": [
                            183.01,
                            141,
                            166,
                            176,
                            176,
                            158,
                            182
                        ]
                    },
                    {
                        "adultCount": 2,
                        "childCount": 2,
                        "amountBeforeTax": [
                            183.01,
                            141,
                            166,
                            176,
                            176,
                            158,
                            182
                        ]
                    },
                    {
                        "adultCount": 3,
                        "childCount": 0,
                        "amountBeforeTax": [
                            191.85,
                            149.87,
                            175.07,
                            184.84,
                            184.84,
                            166.83,
                            190.84
                        ]
                    },
                    {
                        "adultCount": 3,
                        "childCount": 1,
                        "amountBeforeTax": [
                            191.85,
                            149.87,
                            175.07,
                            184.84,
                            184.84,
                            166.83,
                            190.84
                        ]
                    }
                ],
                "type": "OccupancyRate"
            }
        }
    ]
}

Request Specification


Attribute

Type

Required

Description

Example

header

object

Yes

 /

 /

@supplierId

string

Yes

MaxLength: 32

The ID of hotel suppliers in DerbySoft's system

HILTON

@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

messageTypeenumNo

Enum: [ Delta, Overlay ]

Omit the attributor means the Message Type is Overlay.

Refer to Delta vs. Overlay for more information

Delta

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

@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

 /

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 ]

extensions

object

No

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

 /


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": "  Unauthorized 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