TABLE OF CONTENTS

Introduction

Notes:
Please note that Push Hotel Mode can only be used with Push ARI 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 hotel lists and product information between hotel suppliers and the DerbySoft Go platform. 


PULL Hotel Mode:

In this mode, DerbySoft uses Pull APIs to periodically retrieve the list of hotels and products from the hotel provider. Hotel suppliers can manage the status of hotels and products through this API. This set includes two mandatory APIs (indicated by a "☆" symbol).


PUSH Hotel Mode:

In this mode, the hotel supplier proactively pushes hotel products to the DerbySoft Go platform. This set also includes two APIs: one for pushing hotel products to the Go platform and another for hotel suppliers to search for hotel products that are already saved on the Go platform. As in the Pull mode, APIs marked with a "☆" are mandatory to implement. 


PULL Hotel APIs:

  • ☆ Hotel List (/hotels) - Get all hotels for a specific distributor.
  • ☆ Hotel Products (/hotel/{hotelId}) - Get all available products of one hotel to a specific distributor.

PUSH Hotel APIs:

  • ☆ Hotel Products(/hotel/{distributorId}) - The Hotel Products API allows hotel suppliers to periodically push hotel information to DerbySoft, which updates this information in real-time.
  • Retrieve Hotel Products(/hotel/{supplierId}/{hotelId}) - This API allows hotel suppliers to view activated products for one hotel on the DerbySoft Go platform.

Hotel List(Pull Mode)

This is an API for DerbySoft to call the Supplier's system to get all hotel summary information for a specific distributor.

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

Request Parameters

Name

DescriptionRequiredType

Example

distributorId

Distributor ID in DerbySoft‘s system

Yesstring

HOTELBEDS

Response Example

  • Success Response (HTTP Status 200)
[
  {
    "hotelId": "100001",
    "hotelName": "This is a test hotel",
    "distributorId": "GTA",
    "status": "Actived"
  }
]
  • Error Response (HTTP Status 500)
{
  "errorCode": "InvalidField",
  "errorMessage": "Invalid Message"
}

Response Specification

Attribute

Type

RequiredDescriptionExample

distributorId

stringYesDistributor ID in DerbySoft's systemGTA
hotelIdstringYesHotel ID provided by hotel suppliers, only the following characters are allowed.

1. Digits (0-9) 

2. Uppercase letters (A-Z) 

3. Hyphen ('-')

100001
NYABO
00016
PEP-B3T2
B8W7
hotelNamestringNoHotel NameTest hotel
statusenumYes

Enum: [ Actived, Deactived ]

Status in supplier's system

Actived

Hotel Products(Pull Mode)

This is an API for DerbySoft to call the Supplier's system to get all products of one hotel to a specific distributor. Fee & Cancel Policy are optional fields because some distributors get this information offline instead of through the API.

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

Request Parameters

NameDescriptionRequiredTypeExample
hotelIdHotel ID provided by hotel suppliers, only the following characters are allowed.

1. Digits (0-9) 

2. Uppercase letters (A-Z) 

3. Hyphen ('-')

Yesstring100001
NYABO
00016
PEP-B3T2
B8W7
distributorIdDistributor ID in DerbySoft's systemYesstringHOTELBEDS

Response Example

  • Success Response (HTTP Status 200)
{
    "hotelId": "100001",
    "hotelName": "This is a test hotel",
    "distributorId": "GTA",
    "status": "Actived",
    "chainCode": "Marriott",
    "brandCode": "Courtyard",
    "longitude": 41.40338,
    "latitude": 2.17403,
    "city": "string",
    "country": "string",
    "state": "string",
    "currency": "USD",
    "address": [
      "AddressLine1",
      "AddressLine2",
      "AddressLine3",
      "AddressLine4",
      "AddressLine5"
    ],
    "phone": {
      "countryAccessCode": "string",
      "areaCityCode": "string",
      "phoneNumber": "string"
    },
    "settings": {
      "key1": "value1",
      "key2": "value2"
    },
    "ariType": "Daily",
    "timezone": "America/Los_Angeles",
    "rateType": "AmountBeforeTax",
    "maxChildAge": 17,
    "childRateType": "ByAge",
    "products": [
      {
        "roomId": "10000101",
        "roomDescription": "Soak in city views in our Deluxe room, which features a well-appointed ensuite bathroom and up-to-date entertainment offerings.",
        "rateId": "123456",
        "rateDescription": "Begin your day with a hearty meal.",
        "stayType": "OverNightRoom",
        "status": "Actived",
        "roomName": "Double Room",
        "rateName": "Bar Rate",
        "occupancy": {
          "maxAdult": 3,
          "maxChild": 2,
          "maxOccupancy": 3
        },
        "paymentType": "PayNow",
        "guarantee": {
          "guaranteeType": "CCG"
        },
        "cancelPolicies": [
          {
            "dateRange": {
              "startDate": "2018-01-01",
              "endDate": "2018-12-31"
            },
            "cancelPolicy": {
              "code": "AD100P_100P",
              "description": "Non Refundable"
            }
          }
        ],
        "fees": [
          {
            "dateRange": {
              "startDate": "2018-01-01",
              "endDate": "2018-12-31"
            },
            "fee": {
              "name": "Service Charge",
              "type": "Exclusive",
              "amount": 10,
              "amountType": "Percent",
              "chargeType": "PerRoomPerNight",
              "paymentType": "PayNow",
              "collectBy": "Distributor"
            }
          },
          {
            "dateRange": {
              "startDate": "2018-01-01",
              "endDate": "2018-12-31"
            },
            "fee": {
              "name": "City Tax",
              "type": "Exclusive",
              "amount": 5,
              "amountType": "Fix",
              "chargeType": "PerPersonPerNight",
              "paymentType": "PayLater",
              "collectBy": "Property"
            }
          }
        ]
      }
    ]
  }
  • Error Response (HTTP Status 500)
{
  "errorCode": "InvalidField",
  "errorMessage": "Invalid Message"
}

Response Specification

Element

Type

Required

Description

Example

hotelId

string

Yes

Hotel ID provided by hotel suppliers, only the following characters are allowed.

1. Digits (0-9) 

2. Uppercase letters (A-Z) 

3. Hyphen ('-')

100001
NYABO
00016
PEP-B3T2
B8W7

hotelName

string

No

Hotel name

This is a test hotel

distributorId

string

Yes

Distributor ID in DerbySoft's system

GTA

status

enum

Yes

Enum: [ Actived, Deactived ]

Status in supplier's system

Actived

chainCode

string

No

The chain code may identify a hotel chain or management group, e.g. Hyatt, Hilton. The hotel chain code is decided between suppliers and is optional if the hotel is an independent property that can be identified by the hotelId field alone.

Marriott

brandCode

string

No

The brand code may identify the brand within a chain, e.g. Courtyard, Hampton Inn. This field is optional if the hotel is an independent property that can be identified by the hotelId field alone.

Courtyard

longitude

string

No

The information for hotel location.

41.40338

latitude

string

No

The information for hotel location.

2.17403

city

string

No

The information for hotel location.

 

country

string

No

The information for hotel location.

 

state

string

No

The information for hotel location.

 

currencystringNo

The currency code of the hotel.

USD

address

array[string]

No

Support up to five enumeration values

[ "AddressLine1", "AddressLine2", "AddressLine3", "AddressLine4", "AddressLine5" ]

phone

object

No

/

/

@countryAccessCode

string

Yes

/

/

@areaCityCode

string

No

@phoneNumber

string

Yes

/

settings

object

Yes

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

"settings": {
"key1": "value1",
"key2": "value2"
}

ariType

enum

Yes

Emun:[ Daily, LOS ]

Indicates which ARI model to be used for ARI API.

Daily

timezone

string

Yes

Timezone of property

America/Los_Angeles

rateType

enum

Yes

Enum: [ AmountBeforeTax, AmountAfterTax, Both ]

  • AmountBeforeTax: only AmountBeforeTax be pushed out to distributors, and only AmountBeforeTax be sent back to the supplier.
  • AmountAfterTax: only AmountAfterTax be pushed out to distributors, and only AmountAfterTax be sent back to the supplier.
  • Both: both of AmountBeforeTax & AmountAfterTax are to be pushed out to distributors, and both AmountBeforeTax & AmountAfterTax be sent back to suppliers.

Both

maxChildAge

integer

No

If childRateType is set as ByAge, max child age must be provided and greater than zero.

17

childRateType

enum

No

Enum: [ Normal, ByAge, Free, AsAdult ]

Indicates which child rate type will be used in ARI OccupancyRate.

  • Normal: by default, occupancy rate is combined by adult rate and child rate without age settings.
  • ByAge: the child will be charged by age, maxChildAge must be provided, and extraChildRates should be provided in ARI.
  • Free: the child is free, maxChildAge may be provided.
  • AsAdult: the child will be charged as an adult.

ByAge

products

array[object]

Yes

 /

 /

@roomId

string

Yes

Room ID in supplier's system

10000101

@roomDescription

string

No

 /

Soak in city views in our Deluxe room, which features a well-appointed ensuite bathroom and up-to-date entertainment offerings.

@rateId

string

Yes

Rate ID in supplier's system

123456

@rateDescription

string

No

 /

Begin your day with a hearty meal.

@stayType

enum

No

Enum: [ OverNightRoom, DayUseRoom ]

 Indicates if the product is specifically for day-use or regular overnight use. The default value is OverNightRoom.

OverNightRoom

@status

enum

Yes

Enum: [ Actived, Deactived ]

Actived

@roomName

string

No

Room type name

Double Room

@rateName

string

No

Rate plan name

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

@paymentType

enum

No

Enum: [ PayLater, PayNow ]

Indicates the product is prepaid to hotel(PayNow) or pay at hotel(PayLater)

PayNow

products/guarantee

object

No

 /

 /

@guaranteeType

string

Yes

Guarantee information for this room rate.
The type of guarantee method, refers to the standard guarantee type list.

CCG

products/cancelPolicies

array[object]

No

 /

 /

cancelPolicies/dateRange

object

No

 /

 /

@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

cancelPolicies / cancelPolicy

object

No

 /

 /

@code

string

Yes

Cancel policy

maxLength: 128

AD100P_100P

@description

string

No

The description of the cancellation policy

maxLength: 1024

Non Refundable

products/fees

 /

No

 /

 /

fees/dateRange

 /

No

 /

 /

@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

fees/fee

object

No

 /

 /

@name

string

Yes

The name of fee or tax

Service Charge

@type

enum

Yes

Enum: [ Inclusive, Exclusive ]

The fee or tax is included in the amount before tax or not.

Exclusive

@amount

number

Yes

Amount value of fee or tax

10

@amountType

enum

Yes

Enum: [ Fix, Percent ]

Indicates how to charge the tax, 10% per room per night in this example.

Percent

@chargeType

enum

Yes

Enum: [ PerRoomPerNight, PerPersonPerNight, PerRoomPerStay, PerPersonPerStay ]

PerRoomPerNight

@paymentType

enum

No

Enum: [Distributor, Property]

Indicates that the fee (e.g., City Tax, Tourist Tax) should be collected by the hotel(Property) at check-in or by distributors when guests make a reservation(Distributor).

Note:

The 'paymentType' field will be replaced by 'collectBy' and removed from the API in the future.

PayNow

@collectByenumNo

Enum: [Distributor, Property]

Indicates that the fee (e.g., City Tax, Tourist Tax) should be collected by the hotel(Property) at check-in or by distributors when guests make a reservation(Distributor).

Distributor


Hotel Products(Push Mode)

This is an API for suppliers to call the DerbySoft system to push hotel information to DerbySoft periodically. DerbySoft would update the hotel information in real-time.

POST /hotel/{distibutorId}HTTP/1.1
URL: {DerbySoft-Go-Endpoint}/hotel/{distibutorId}
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",
  "hotelName": "This is a test hotel",
  "status": "Actived",
  "chainCode": "Marriott",
  "brandCode": "Courtyard",
  "longitude": "41.40338",
  "latitude": "2.17403",
  "city": "string",
  "country": "string",
  "state": "string",
  "currency": "USD",
  "address": [
    "AddressLine1",
    "AddressLine2",
    "AddressLine3",
    "AddressLine4",
    "AddressLine5"
  ],
  "phone": {
    "countryAccessCode": "string",
    "areaCityCode": "string",
    "phoneNumber": "string"
  },
  "settings": {
    "key": "value"
  },
  "ariType": "Daily",
  "timezone": "America/Los_Angeles",
  "rateType": "AmountBeforeTax",
  "maxChildAge": 17,
  "childRateType": "ByAge",
  "products": [
    {
      "roomId": "10000101",
      "roomDescription": "Soak in city views in our Deluxe room, which features a well-appointed ensuite bathroom and up-to-date entertainment offerings.",
      "rateId": "123456",
      "rateDescription": "Begin your day with a hearty meal.",
      "stayType": "OverNightRoom",
      "status": "Actived",
      "roomName": "Double Room",
      "rateName": "Bar Rate",
      "occupancy": {
        "maxAdult": 3,
        "maxChild": 2,
        "maxOccupancy": 3
      },
      "paymentType": "PayNow",
      "guarantee": {
        "guaranteeType": "CCG"
      },
      "cancelPolicies": [
        {
          "dateRange": {
            "startDate": "2018-01-01",
            "endDate": "2018-01-04"
          },
          "cancelPolicy": {
            "code": "AD100P_100P",
            "description": "Non Refundable"
          }
        }
      ],
      "fees": [
        {
          "dateRange": {
            "startDate": "2018-01-01",
            "endDate": "2018-01-04"
          },
          "fee": {
            "name": "Service Charge",
            "type": "Exclusive",
            "amount": 10,
            "amountType": "Percent",
            "chargeType": "PerRoomPerNight",
            "collectBy": "Distributor"
          }
        }
      ]
    }
  ]
}

Request Specification

Attribute

Type

Required

Description

Example

header

/

Yes

object

/

@sourceId

Supplier ID in DerbySoft's system

Max Length: 32

YesstringPEGASUA
@distributorId

Distributor ID in DerbySoft's system

Max Length: 32

YesstringTUI
@versionVersion of API
Max Length: 20
Yesstringv4
@tokenEcho Token
Max Length: 64
Yesstring18393849028490234

hotelId

string

Yes

Hotel IDs provided by hotel suppliers contain the following characters only:

1. Digits (0-9) 

2. Uppercase letters (A-Z) 

3. Hyphen ('-')

GATHI

hotelName

string

No

Hotel name in supplier's system

This is a test hotel

supplierId

string

Yes

Supplier ID in DerbySoft's system

 HILTON

status

enum

Yes

Enum: [ Actived, Deactived ]

Status in supplier's system

Actived

chainCode

string

No

The chain code may identify a hotel chain or management group, e.g. Hyatt, Hilton. The hotel chain code is decided between suppliers and is optional if the hotel is an independent property that can be identified by the hotelId field alone.

Marriott

brandCode

string

No

The brand code may identify the brand within a chain, e.g. Courtyard, Hampton Inn. This field is optional if the hotel is an independent property that can be identified by the hotelId field alone.

Waldorf

longitude

string

No

The information for hotel location.

41.40338

latitude

string

No

The information for hotel location.

2.17403

city

string

No

 /

 /

country

string

No

 /

 /

state

string

No

 /

 /

currency
stringNo The currency code of the hotel.USD

address

array

No

Support up to five enumeration values

[ "AddressLine1", "AddressLine2", "AddressLine3", "AddressLine4", "AddressLine5" ]

phone

object

No

 /

 /

@countryAccessCode

string

Yes

 /

 /

@areaCityCode

string

No

 /

 /

@phoneNumber

string

Yes

 /

 /

settings

object

No

An additional field is used for transmitting extra settings, accounts, etc that are required by Distributors

{

    "key": "value"

}

ariType

enum

Yes

Emun:[ Daily, LOS ]

Indicates which ARI model be used for ARI API

Daily

timezone

string

Yes

Timezone of property

America/Los_Angeles

rateType

enum

Yes

Emun:[ AmountBeforeTax, AmountAfterTax, Both ]

Indicates which rate will be used in ARI and Reservation.

  • AmountBeforeTax: only AmountBeforeTax is pushed out to distributors, and only AmountBeforeTax is sent back to the supplier.
  • AmountAfterTax: only AmountAfterTax is pushed out to distributors, and only AmountAfterTax is sent back to the supplier.
  • Both: AmountBeforeTax & AmountAfterTax will be pushed to Distributors.

AmountBeforeTax

maxChildAge

integer

No

maxChildAge will be provided If childRateType is ByAge.

 /

childRateType

enum

No

Enum: [ Normal, ByAge, Free, AsAdult ]

Indicates which child rate type will be used in ARI OccupancyRate.

  • Normal: This is the default option, hotels provide rates for a combination of adults and children.
  • ByAge: Hotels provide extra child pricing based on age bands, maxChildAge field will be provided as well as extraChildRates nodes will be provided in ARI.
  • Free: Hotels indicate children as free of charge to stay, maxChildAge may be provided.
  • AsAdult: Hotels indicate children will be charged the same rate as adults for their stay.

ByAge

products

array

Yes

 /

 /

@roomId

string

Yes

Room ID in supplier's system

King

@roomName

string

No

Room type name

Max length: 256

King Room

@roomDescription

string

No

 /

Soak in city views in our Deluxe room, which features a well-appointed ensuite bathroom and up-to-date entertainment offerings.

@rateId

string

Yes

Rate ID in supplier's system

BAR

@rateName

string

No

Rate plan name

Max length: 256

Best Available Rate

@rateDescription

string

No

 /

Begin your day with a hearty meal

@stayType

enum

No

Enum: [ OverNightRoom, DayUseRoom ]

This tag indicates if the product is specifically for day-use or regular overnight use. The default is OverNightRoom.

OverNightRoom

@status

enum

Yes

Enum: [ Actived, Deactived ]

Actived

products/occupancy

/

Yes

 /

 /

@maxAdult

integer

Yes

Max adult count

3

@maxChild

integer

Yes

Max child count

2

@maxOccupancy

integer

Yes

Max occupancy

3

@paymentType

enum

No

Enum: [ PayLater, PayNow ]

Indicates the product is prepaid to the hotel(PayNow) or pay at the hotel(PayLater).

PayNow

products/guarantee

 /

No

 /

 /

@guaranteeType

string

Yes

Guarantee information for this room rate.
The type of guarantee method, refers to the standard guarantee type list.

CCG

products/cancelPolicies

 /

No

 /

 /

cancelPolicies/dateRange

object

No

 /

 /

@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

cancelPolicies/cancelPolicy

object

No

 /

 /

@code

string

Yes

Code of cancel policy

Max Length: 128

AD100P_100P

@description

string

No

The description of the cancellation policy

Max Length: 1024

Non Refundable

products/fees

/

No

 /

 /

fees/dateRange

 /

No

 /

 /

@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

fees/fee

object

No

 /

 /

@name

string

Yes

The name of the fee or tax

Service Charge

@type

enum

Yes

Enum: [ Inclusive, Exclusive ]

Indicates fees or tax is included in the amount before tax or not.

Exclusive

@amount

number

Yes

The amount of fee or tax

10

@amountType

enum

Yes

Enum: [ Fix, Percent ]

Indicates how to charge the tax, 10% per room per night in this example.

Percent

@chargeType

enum

Yes

Enum: [ PerRoomPerNight, PerPersonPerNight, PerRoomPerStay, PerPersonPerStay ]

PerRoomPerNight

@collectByenumNoEnum: [Distributor, Property]

Indicates that the fee (e.g., City Tax, Tourist Tax) should be collected by the hotel(Property) at check-in or by distributors when guests make a reservation(Distributor).

Distributor

Response Example

  • Success Response (HTTP Status 200)
{
  "header": {
    "sourceId": "HHBIJSOPLS",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "hotelId": "GATHI"
}
  • Error Response (HTTP Status 401)
{
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}
  • Error Response (HTTP Status 500)
{
  "errorCode": "InvalidField",
  "errorMessage": "Invalid Message"
}

Response Specification

Name

Description

Required

Type

Example

header

/

Yes

object

/

@sourceId

Supplier ID in DerbySoft's system

Max Length: 32

YesstringPEGASUA
@distributorId

Distributor ID in DerbySoft's system

Max Length: 32

YesstringTUI
@versionVersion of API
Max Length: 20
Yesstringv4
@tokenEcho Token
Max Length: 64
Yesstring18393849028490234
hotelIdHotel ID in Supplier's systemYesstring10001

Retrieve Hotel Products (Push Mode)

This API will be used by the supplier to see what products have been activated on the DerbySoft side for one hotel.

GET /hotel/{supplierId}/{hotelId}?distributorId={distributorId} HTTP/1.1
URL: {DerbySoft-Go-Endpoint}/hotel/{supplierId}/{hotelId}?distributorId={distributorId}
Authorization: 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8

Request Parameters

Attribute

Type

RequiredDescriptionExample

supplierId

stringYesSupplier ID in DerbySoft's systemTUI
hotelIdstringYesHotel ID provided by hotel suppliers, only the following characters are allowed.

1. Digits (0-9) 

2. Uppercase letters (A-Z) 

3. Hyphen ('-')

100001
NYABO
00016
PEP-B3T2
B8W7
distributorIdstringYes
Distributor ID in DerbySoft's system
Test hotel

Response Example

  • Success Response (HTTP Status 200)
{
  "hotelId": "100001",
  "hotelName": "This is a test hotel",
  "distributorId": "GTA",
  "status": "Actived",
  "chainCode": "Marriott",
  "brandCode": "Courtyard",
  "longitude": "41.40338",
  "latitude": "2.17403",
  "city": "string",
  "country": "string",
  "state": "string",
  "currency": "USD",
  "address": [
    "AddressLine1",
    "AddressLine2",
    "AddressLine3",
    "AddressLine4",
    "AddressLine5"
  ],
  "phone": {
    "countryAccessCode": "string",
    "areaCityCode": "string",
    "phoneNumber": "string"
  },
  "settings": {
    "key": "value"
  },
  "ariType": "Daily",
  "timezone": "America/Los_Angeles",
  "rateType": "AmountBeforeTax",
  "maxChildAge": 17,
  "childRateType": "ByAge",
  "products": [
    {
      "roomId": "10000101",
      "roomDescription": "Soak in city views in our Deluxe room, which features a well-appointed ensuite bathroom and up-to-date entertainment offerings.",
      "rateId": "123456",
      "rateDescription": "Begin your day with a hearty meal.",
      "stayType": "OverNightRoom",
      "status": "Actived",
      "roomName": "Double Room",
      "rateName": "Bar Rate",
      "occupancy": {
        "maxAdult": 3,
        "maxChild": 2,
        "maxOccupancy": 3
      },
      "paymentType": "PayNow",
      "guarantee": {
        "guaranteeType": "CCG"
      },
      "cancelPolicies": [
        {
          "dateRange": {
            "startDate": "2018-01-01",
            "endDate": "2018-01-04"
          },
          "cancelPolicy": {
            "code": "AD100P_100P",
            "description": "Non Refundable"
          }
        }
      ],
      "fees": [
        {
          "dateRange": {
            "startDate": "2018-01-01",
            "endDate": "2018-01-04"
          },
          "fee": {
            "name": "Service Charge",
            "type": "Exclusive",
            "amount": 10,
            "amountType": "Percent",
            "chargeType": "PerRoomPerNight",
            "collectBy": "Distributor"
          }
        }
      ]
    }
  ]
}
  • Error Response (HTTP Status 401)
{
"errorCode": "InvalidField",
"errorMessage": "Invalid token"
}
  • Error Response (HTTP Status 500)
{
"errorCode": "InvalidField",
"errorMessage": "Invalid Message"
}

Response Specification

Attribute

Type

Required

Description

Example

header

/

Yes

object

/

@sourceId

Supplier ID in DerbySoft's system

Max Length: 32

YesstringPEGASUA
@distributorId

Distributor ID in DerbySoft's system

Max Length: 32

YesstringTUI
@versionVersion of API
Max Length: 20
Yesstringv4
@tokenEcho Token
Max Length: 64
Yesstring18393849028490234

hotelId

string

Yes

Hotel IDs provided by hotel suppliers contain the following characters only:

1. Digits (0-9) 

2. Uppercase letters (A-Z) 

3. Hyphen ('-')

GATHI

hotelName

string

No

Hotel name in supplier's system

This is a test hotel

supplierId

string

Yes

Supplier ID in DerbySoft's system

 HILTON

status

enum

Yes

Enum: [ Actived, Deactived ]

Status in supplier's system

Actived

chainCode

string

No

The chain code may identify a hotel chain or management group, e.g. Hyatt, Hilton. The hotel chain code is decided between suppliers and is optional if the hotel is an independent property that can be identified by the hotelId field alone.

Marriott

brandCode

string

No

The brand code may identify the brand within a chain, e.g. Courtyard, Hampton Inn. This field is optional if the hotel is an independent property that can be identified by the hotelId field alone.

Waldorf

longitude

string

No

The information for hotel location.

41.40338

latitude

string

No

The information for hotel location.

2.17403

city

string

No

 /

 /

country

string

No

 /

 /

state

string

No

 /

 /

currency
stringNo The currency code of the hotel.USD

address

array

No

Support up to five enumeration values

[ "AddressLine1", "AddressLine2", "AddressLine3", "AddressLine4", "AddressLine5" ]

phone

object

No

 /

 /

@countryAccessCode

string

Yes

 /

 /

@areaCityCode

string

No

 /

 /

@phoneNumber

string

Yes

 /

 /

settings

object

No

An additional field is used for transmitting extra settings, accounts, etc that are required by Distributors

{

    "key": "value"

}

ariType

enum

Yes

Emun:[ Daily, LOS ]

Indicates which ARI model be used for ARI API

Daily

timezone

string

Yes

Timezone of property

America/Los_Angeles

rateType

enum

Yes

Emun:[ AmountBeforeTax, AmountAfterTax, Both ]

Indicates which rate will be used in ARI and Reservation.

  • AmountBeforeTax: only AmountBeforeTax is pushed out to distributors, and only AmountBeforeTax is sent back to the supplier.
  • AmountAfterTax: only AmountAfterTax is pushed out to distributors, and only AmountAfterTax is sent back to the supplier.
  • Both: AmountBeforeTax & AmountAfterTax will be pushed to Distributors.

AmountBeforeTax

maxChildAge

integer

No

maxChildAge will be provided If childRateType is ByAge.

 /

childRateType

enum

No

Enum: [ Normal, ByAge, Free, AsAdult ]

Indicates which child rate type will be used in ARI OccupancyRate.

  • Normal: This is the default option, hotels provide rates for a combination of adults and children.
  • ByAge: Hotels provide extra child pricing based on age bands, maxChildAge field will be provided as well as extraChildRates nodes will be provided in ARI.
  • Free: Hotels indicate children as free of charge to stay, maxChildAge may be provided.
  • AsAdult: Hotels indicate children will be charged the same rate as adults for their stay.

ByAge

products

array

Yes

 /

 /

@roomId

string

Yes

Room ID in supplier's system

King

@roomName

string

No

Room type name

Max length: 256

King Room

@roomDescription

string

No

 /

Soak in city views in our Deluxe room, which features a well-appointed ensuite bathroom and up-to-date entertainment offerings.

@rateId

string

Yes

Rate ID in supplier's system

BAR

@rateName

string

No

Rate plan name

Max length: 256

Best Available Rate

@rateDescription

string

No

 /

Begin your day with a hearty meal

@stayType

enum

No

Enum: [ OverNightRoom, DayUseRoom ]

This tag indicates if the product is specifically for day-use or regular overnight use. The default is OverNightRoom.

OverNightRoom

@status

enum

Yes

Enum: [ Actived, Deactived ]

Actived

products/occupancy

/

Yes

 /

 /

@maxAdult

integer

Yes

Max adult count

3

@maxChild

integer

Yes

Max child count

2

@maxOccupancy

integer

Yes

Max occupancy

3

@paymentType

enum

No

Enum: [ PayLater, PayNow ]

Indicates the product is prepaid to the hotel(PayNow) or pay at the hotel(PayLater).

PayNow

products/guarantee

 /

No

 /

 /

@guaranteeType

string

Yes

Guarantee information for this room rate.
The type of guarantee method, refers to the standard guarantee type list.

CCG

products/cancelPolicies

 /

No

 /

 /

cancelPolicies/dateRange

object

No

 /

 /

@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

cancelPolicies/cancelPolicy

object

No

 /

 /

@code

string

Yes

Code of cancel policy

Max Length: 128

AD100P_100P

@description

string

No

The description of the cancellation policy

Max Length: 1024

Non Refundable

products/fees

/

No

 /

 /

fees/dateRange

 /

No

 /

 /

@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

fees/fee

object

No

 /

 /

@name

string

Yes

The name of the fee or tax

Service Charge

@type

enum

Yes

Enum: [ Inclusive, Exclusive ]

Indicates fees or tax is included in the amount before tax or not.

Exclusive

@amount

number

Yes

Amount value of fee or tax

10

@amountType

enum

Yes

Enum: [ Fix, Percent ]

Indicates how to charge the tax, 10% per room per night in this example.

Percent

@chargeType

enum

Yes

Enum: [ PerRoomPerNight, PerPersonPerNight, PerRoomPerStay, PerPersonPerStay ]

PerRoomPerNight

@collectByenumNoEnum: [Distributor, Property]

Indicates that the fee (e.g., City Tax, Tourist Tax) should be collected by the hotel(Property) at check-in or by distributors when guests make a reservation(Distributor).

Distributor

Notes:
Please follow the process below to activate/deactivate hotels or products. If the process doesn't work for you, please kindly share with us your actual scenario.

*** Please note that when deactivating a hotel or product, please indicate the status as Deactived for the hotel or product through the API rather than removing it from the response. Otherwise, the hotel or product will be processed as Deactivated by default, and will be close out for the rooms.
  • To Activate or Deactivate hotels, GO Suppliers activate or deactivate hotels in their system. Upon returning the status of each hotel is either Actived or Deactived on the response of the Hotel List and Hotel Product API.
  • To Activate or Deactivate products, GO Suppliers activate or deactivate products in their system. Upon returning the status of each product is either Actived or Deactived on the response of the Hotel Product API.