TABLE OF CONTENTS

Hotel Products

The Retrieve Hotel Products API enables distributors to fetch detailed product offerings for a specific hotel, such as room and rate combinations, along with product status (Active/Inactive). This step is essential for managing the availability of products within a distributor’s system.


Distributors can use this API to:

  • Retrieve the list of products available for a particular hotel.
  • Sync product data regularly (daily is preferred) to ensure accurate and up-to-date information.
GET /hotel/{supplierId}/{hotelId}?distributorId={distributorId} HTTP/1.1 
URL: {BookingUSB-Endpoint}/hotel/{supplierId}/{hotelId}?distributorId={distributorId} 
Authorization: 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8

Hotel Products Request Schema

Request(METHOD: GET)
LevelField NameData TypeRequiredDescriptionExample
1
supplierIdstringYThe code that uniquely identifies a supplier in DerbySoft's systemHILTON
1hotelIdstringY

Hotel IDs provided by hotel suppliers. Accepted characters only: 

1. Digits (0-9) 

2. Uppercase letters (A-Z) 

3. Hyphen ('-') 

100001 

GATHI 

00016 

PEP-B3T2 B8W7

1distributorIdstringYThe code that uniquely identifies a distributor in DerbySoft's system.TUI

Hotel Products Request Example

Sample URL:
https://solo.derbysoft-test.com/bookingusbv4/hotel/GOHOTEL/GOH103?distributorId=ABCDE


Hotel Products Response Schema

Response
LevelField NameData TypeRequiredDescriptionExample
1

hotelId

string

Y

The code that uniquely identifies a Hotel in the hotel suppliers system. Accepted characters only: 

1. Digits (0-9) 

2. Uppercase letters (A-Z) 

3. Hyphen ('-') 

GATHI

1

hotelName

string

N

Hotel name in supplier's system

This is a test hotel

1

supplierId

string

Y

The code that uniquely identifies a supplier in DerbySoft's system

 HILTON

1

status

enum

Y

Enum: [ Actived, Deactived ]

Hotel Status provided by hotel suppliers [ Actived, Deactived]: Actived means the hotel is active for the distribution.

Deactived means the hotel is NOT active for the distribution. ARI will not flow for deactivated hotels

Actived

1

chainCode

string

N

Unique identifier for the hotel chain or group, assigned by the chain’s central system. This code is used to consistently identify the parent brand or hotel group that a property belongs to across systems and distribution channels. e.g., Hyatt, Hilton. Independent hotels don't have Chain codes

Marriott

1

brandCode

string

N

Unique identifier for the hotel brand, assigned by the hotel group’s central system. This code represents the specific brand under which a property operates (e.g., Courtyard, DoubleTree) and is used to categorize and differentiate properties within the same hotel chain. Independent hotels don't have Chain codes

Waldorf

1

longitude

string

N

Geographic coordinate that specifies the east–west position of the hotel on the Earth's surface. The longitude value is part of the geolocation data provided by the hotel system and is used for mapping, proximity searches, and location-based services in distribution platforms.

41.40338

1

latitude

string

N

Geographic coordinate that specifies the north–south position of the hotel on the Earth's surface. The latitude is provided by the hotel system and is used for mapping the property's location, enabling geolocation-based searches and distance calculations in distribution platforms.

2.17403

1

city

string

N

Name of the city or locality where the hotel is physically located.

 /

1

country

string

N

Name of the country where the hotel is physically located.

 /

1

state

string

N

Name of the state where the hotel is physically located.

 /

1currencystringN The currency code of the hotel.USD
1

address

array

N

Street address of the hotel, provided as an ordered array of address lines. This array captures the full physical address of the property and supports formatting flexibility across global address structures. Each element in the array represents a single address line. Support up to five enumeration values.

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

1

phone

object

N

Primary phone number for the hotel, provided by the hotel system.

 /

2

@countryAccessCode

string

C

International dialing code is used to place calls to the country where the hotel is located.

 /

2

@areaCityCode

string

N

Telephone area or city dialing code used within the country to reach the hotel's geographic region. This code is part of the complete phone number and is typically placed after the countryAccessCode and before the local subscriber number.

 /

2

@phoneNumber

string

C

Local subscriber phone number of the hotel, excluding the country access code and area/city code. This is the core numeric portion used for direct dialing once the full international prefix has been resolved.

 /

1

settings

object

N

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

{

    "key": "value"

}

1

extensions

objectN

This additional field will consist of a cluster code and its corresponding rate plan IDs. Only use for certain providers.

{

    "key1": "value1",

    "key2": "value2"

  }

1

ariType

enum

Y

Emun: [ Daily, LOS ]

Defines the pricing model applied to a rate amount or value over time. The AryType indicates whether the rate is calculated on a daily or as a length-of-stay (LOS).

Daily

1

timezone

string

Y

Time zone in which the hotel is physically located.

America/Los_Angeles

1

rateType

enum

Y

Emun: [ AmountBeforeTax, AmountAfterTax, Both ]

"Specifies the tax-inclusion status of the rate amount provided by the hotel system in ARI and Reservation. This field indicates whether the rate is expressed before taxes (ABT), after taxes (AAT), or Both. 

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

1

maxChildAge

integer

N

Maximum age, in years, that a guest can be classified as a child according to the hotel's policy. Only provided if childRateType is ByAge.

 /

1

childRateType

enum

N

Enum: [ Normal, ByAge, Free, AsAdult ]

"Indicates which child rate type will be used in ARI OccupancyRate. [Normal, ByAge, Free, AsAdult] 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

1

products

array

Y

Collection of product elements offered by the hotel

 /

2

@roomId

string

Y

Unique identifier for a room type, assigned by the hotel's system (PMS or CRS).

King

2

@rateId

string

Y

Unique identifier for a rate plan, assigned by the hotel system (CRS, PMS, or channel manager).

BAR

2@rateModelenumNEnum: [Retail, Net ]

Rate model of the product

Retail
2@connectionTypeenumNEnum: [Exchange, Standard ]

Indicates the connection type of products. 

Notes: If the connection type is not specified or labeled as "Standard", neither the "rateModel" nor the "commissions" field/node will appear.

Standard
2

@stayType

enum

N

Enum: [ OverNightRoom, DayUseRoom ]

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

OverNightRoom

2

@status

enum

Y

Enum: [ Actived, Deactived ]

Indicates the current operational or distribution state of an entity [Actived, Deactived], such as a hotel, room type, rate plan, or product.

Actived

2

@roomName

string

N

Display name of the room type, as provided by the hotel system. 

Max length: 256

King Room

2

@roomDescription

string

N

Detailed textual description of the room type, provided by the hotel system for display across distribution channels.

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

2

@rateName

string

N

Display name of the rate type, as provided by the hotel system. 

Max length: 256

Best Available Rate

2

@rateDescription

string

N

Detailed textual description of the rate type, provided by the hotel system for display across distribution channels.

Begin your day with a hearty meal

2

occupancy

/

Y

Defines the maximum allowed occupancy for a room type, rate plan, or product. This includes the number of adults, children, and total guests that can be accommodated according to hotel policy and system configuration.

 /

3

@maxAdult

integer

Y

Maximum number of adult guests allowed in the room type or product, as defined by the hotel’s policy.

3

3

@maxChild

integer

Y

Maximum number of child guests allowed in the room type or product, as defined by the hotel’s policy.

2

3

@maxOccupancy

integer

Y

Defines the maximum allowed occupancy for a room type, rate plan, or product.

3

2

@paymentType

enum

N

Enum: [ PayLater, PayNow ]

Specifies the payment model associated with the booking or rate plan [PayLater, PayNow]. The paymentType indicates whether the guest pays at the time of booking (PayNow) or at the hotel (PayLater).

PayNow

2

guarantee

 /

N

Defines the guarantee requirements for holding a reservation.

 /

3

@guaranteeType

string

C

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

CCG

2

cancelPolicies

 /

N

A collection of cancellation policies, each defining a specific set of rules based on timeframes, booking/stay dates, or penalty conditions. The cancelPolicies object enables hotels to apply different policies depending on the situation, such as seasonality, advance notice, or rate plan types.

 /

3

dateRange

object

N

Specifies the date range during which the cancellation policy is applicable.

 /

4

@startDate

string

C

The starting date of a validity period during which a specific policy is applicable. YYYY-MM-DD

2028-01-01

4

@endDate

string

C

The ending date of a validity period during which a specific policy is applicable. YYYY-MM-DD

2028-01-04

3

cancelPolicy

object

N

Defines the rules and penalties applied when a guest cancels a reservation. The cancelPolicy object specifies conditions such as how far in advance cancellation is allowed, whether penalties apply, and how those penalties are calculated.

 /

4

@code

string

C

Unique identifier assigned to a specific cancellation policy. 

Max Length: 128

AD100P_100P

4

@description

string

N

Explanation of the cancellation policy terms. Max Length: 1024

Non Refundable

4

cancelPenalties

 /

Y

Details about the cancellation Penalty

 /

5

@noShow

boolean

Y

When true, it means the penalty charge is applied for No-Show, and the cancellable and cancelDeadline nodes won't appear.

true

5

@cancellable

boolean

N

Indicates if cancellation is allowed or not. If false, it cannot be canceled. If true, the cancelDeadline node will appear.

true

5

cancelDeadline

 /

N

Specifies the time-based condition by which a guest must cancel to avoid the cancellation penalty.

 /

6

@offsetTimeDropType

enum

N

Enum: [ BeforeArrival ]

An enumerated type indicates when the deadline drop time goes into effect. Being the only current value available is BeforeArrival.

BeforeArrival

6

@offsetTimeUnit

enum

N

Enum: [ D, H ]

D is used to express days. H is used to express hours.

 /

6

@offsetTimeValue

number

N

The number of hours or days for the offset.

1

6

@deadline

string

N

The cutoff date and time by which a guest must cancel their reservation to avoid the cancellation penalty, expressed in the hotel's local time zone. like 4 PM, 6 PM

 /

5

penaltyCharge

 /

Y

Defines the charge rule applied as a penalty when a guest cancels after the allowed deadline.

 /

6

@chargeBase

enum

N

Enum: [ FullStay, NightBase ]

If FullStay, it will be a percentage or an amount. If NightBased, the nights are required.

 /

6

@nights

number

N

Exists if the penalty charge is based on the night, like the first night

 /

6

@amount

number

N

Exists if the penalty charge is a flat charge, like USD 30.00

 /

6

@percent

number

N

Exists if the penalty charge is a percent, like 15.5 means 15.5%

 /

2

fees

/

N

Represents a list of additional charges applied to the reservation, including both taxes and fees.

 /

3

dateRange

 /

N

Specifies the date range during which the fees are applicable.

 /

4

@startDate

string

C

The starting date of a validity period during which a specific policy is applicable. YYYY-MM-DD

2028-01-01

4

@endDate

string

C

The ending date of a validity period during which a specific policy is applicable. YYYY-MM-DD

2028-01-04

3

fee

object

N

Represents a single fee or tax item applied to the product.

 /

4

@name

string

C

The name of the fee or tax

Service Charge

4

@type

enum

C

Enum: [ Inclusive, Exclusive ]

Indicates whether fees or tax are included in the amount before tax or not.

Exclusive

4

@amount

number

C

Amount value of fee or tax

10

4

@amountType

enum

C

Enum: [ Fix, Percent ]

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

Percent

4

@chargeType

enum

C

Enum: [ PerRoomPerNight, PerPersonPerNight, PerRoomPerStay, PerPersonPerStay ]

Indicates how the fee is charge[PerRoomPerNight, PerPersonPerNight, PerRoomPerStay, PerPersonPerStay]

PerRoomPerNight

4

@paymentType

enum

N

Enum: [ PayLater, PayNow ]

Indicates if the fee is prepaid to hotels(PayNow) or paid at the hotel(PayLater). [PayLater, PayNow] Note: The 'paymentType' field will be replaced by 'collectBy' and removed from the API in the future.

PayNow

4@collectByenumNEnum: [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
4@effectivePersonnumberN

It indicates the fee will be charged starting from which occupancy, such as the "Extra Person Charge" fee. The EffectivePerson is 3, meaning an extra fee will be applied from the third person onward.

3

2bookingChannelsarray[string ]NField use with certain suppliers["channel1", "channel2" ]
2sourceMarketsarray[string ]NSold to specific markets["region1", "region2" ]
2productAddonsarray[object ]N/
3@typestringC
product addon typeDisneyTicket
3@requiredbooleanC
Indicate whether the addon must be chosen with the roomtrue
3candidateCodesarray[string ]Y/["code1", "code2" ]
2commissionsarray[object ]N//
3@startDatestringNStart date of date range, expressed YYYY-MM-DD2028-01-01
3@endDatestringNEnd date of commission, expressed YYYY-MM-DD2028-01-04
3@valuenumberC

Commission value

10
3@typeenumCEnum: [ Percent, Amount ]
Commission type
Percent
1errorstringNerror responseKey not authorized
1errorCodestringCerror responseInvalidField
1errorMessagestringCerror responseInvalid Message

Hotel Products Response Example

Success Response (HTTP Status 200)
{
  "hotelId": "GATHI",
  "hotelName": "This is a test hotel",
  "supplierId": "HILTON",
  "status": "Actived",
  "chainCode": "Hilton",
  "brandCode": "Hampton",
  "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"
  },
  "extensions": {
    "key1": "value1",
    "key2": "value2"
  },
  "ariType": "Daily",
  "timezone": "America/Los_Angeles",
  "rateType": "AmountBeforeTax",
  "maxChildAge": 17,
  "childRateType": "ByAge",
  "products": [
    {
      "roomId": "10000101",
      "rateId": "123456",
      "stayType": "OverNightRoom",
      "status": "Actived",
      "roomName": "Double Room",
      "roomDescription": "Soak in city views in our Deluxe room, which features a well-appointed ensuite bathroom and up-to-date entertainment offerings.",
      "rateName": "Bar Rate",
      "rateDescription": "Begin your day with a hearty meal.",
      "occupancy": {
        "maxAdult": 3,
        "maxChild": 2,
        "maxOccupancy": 3
      },
      "paymentType": "PayNow",
      "guarantee": {
        "guaranteeType": "CCG"
      },
      "cancelPolicies": [
        {
          "dateRange": {
            "startDate": "2018-01-01",
            "endDate": "2018-01-04"
          },
          "cancelPolicy": {
            "code": "1D1N_1N",
            "description": "Cancellations or changes to bookings for this room will be charged the first night of the booking in 1 day before arrival date, if no show, will be charged the first night of the booking.",
            "cancelPenalties": [
              {
                "noShow": false,
                "cancellable": true,
                "cancelDeadline": {
                  "offsetTimeDropType": "BeforeArrival",
                  "offsetTimeUnit": "D",
                  "offsetTimeValue": 1
                },
                "penaltyCharge": {
                  "chargeBase": "NightBase",
                  "nights": 1
                }
              },
              {
                "noShow": true,
                "penaltyCharge": {
                  "chargeBase": "NightBase",
                  "nights": 1
                }
              }
            ]
          }
        }
      ],
      "fees": [
        {
          "dateRange": {
            "startDate": "2018-01-01",
            "endDate": "2018-01-04"
          },
          "fee": {
            "name": "Service Charge",
            "type": "Exclusive",
            "amount": 10,
            "amountType": "Percent",
            "chargeType": "PerRoomPerNight",
            "paymentType": "PayNow",
            "collectBy": "Distributor",
            "effectivePerson": 0
          }
        },
        {
          "dateRange": {
            "startDate": "2018-01-01",
            "endDate": "2018-01-04"
          },
          "fee": {
            "name": "City Tax",
            "type": "Exclusive",
            "amount": 5,
            "amountType": "Fix",
            "chargeType": "PerPersonPerNight",
            "paymentType": "PayLater",
            "collectBy": "Property",
            "effectivePerson": 0
          }
        }
      ],
      "bookingChannels": [
        "channel",
        "channel"
      ],
      "sourceMarkets": [
        "region",
        "region"
      ],
      "productAddons": [
        {
          "type": "DisneyTicket",
          "required": true,
          "candidateCodes": [
            "code",
            "code"
          ]
        }
      ]
    }
  ]
}
Success Response from Exchange Connection and Retail Rate Model(HTTP Status 200)
{
  "hotelId": "GATHI",
  "hotelName": "This is a test hotel",
  "supplierId": "HILTON",
  "status": "Actived",
  "chainCode": "Hilton",
  "brandCode": "Hampton",
  "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"
  },
  "extensions": {
    "key1": "value1",
    "key2": "value2"
   },
  "ariType": "Daily",
  "timezone": "America/Los_Angeles",
  "rateType": "AmountBeforeTax",
  "maxChildAge": 17,
  "childRateType": "ByAge",
  "products": [
    {
      "roomId": "10000101",
      "rateId": "123456",
      "rateModel": "Retail",
      "connectionType": "Exchange",
      "stayType": "OverNightRoom",
      "status": "Actived",
      "roomName": "Double Room",
      "roomDescription": "Soak in city views in our Deluxe room, which features a well-appointed ensuite bathroom and up-to-date entertainment offerings.",
      "rateName": "Bar Rate",
      "rateDescription": "Begin your day with a hearty meal.",
      "occupancy": {
        "maxAdult": 3,
        "maxChild": 2,
        "maxOccupancy": 3
      },
      "paymentType": "PayNow",
      "guarantee": {
        "guaranteeType": "CCG"
      },
      "cancelPolicies": [
        {
          "dateRange": {
            "startDate": "2018-01-01",
            "endDate": "2018-01-04"
          },
          "cancelPolicy": {
            "code": "1D1N_1N",
            "description": "Cancellations or changes to bookings for this room will be charged the first night of the booking in 1 day before arrival date, if no show, will be charged the first night of the booking.",
            "cancelPenalties": [
                {
                    "noShow": false,
                    "cancellable": true,
                    "cancelDeadline": {
                        "offsetTimeDropType": "BeforeArrival",
                        "offsetTimeUnit": "D",
                        "offsetTimeValue": 1
                    },
                    "penaltyCharge": {
                        "chargeBase": "NightBase",
                        "nights": 1
                    }
                },
                {
                    "noShow": true,
                    "penaltyCharge": {
                        "chargeBase": "NightBase",
                        "nights": 1
                    }
                }
            ]
          }
        }
      ],
      "fees": [
        {
          "dateRange": {
            "startDate": "2018-01-01",
            "endDate": "2018-01-04"
          },
          "fee": {
            "name": "Service Charge",
            "type": "Exclusive",
            "amount": 10,
            "amountType": "Percent",
            "chargeType": "PerRoomPerNight",
            "collectBy": "Distributor",
            "effectivePerson": 0
          }
        },
        {
          "dateRange": {
            "startDate": "2018-01-01",
            "endDate": "2018-01-04"
          },
          "fee": {
            "name": "City Tax",
            "type": "Exclusive",
            "amount": 5,
            "amountType": "Fix",
            "chargeType": "PerPersonPerNight",
            "collectBy": "Property",
            "effectivePerson": 0
          }
        }
      ],
      "bookingChannels": [
        "channel",
        "channel"
      ],
      "sourceMarkets": [
        "region",
        "region"
      ],
      "productAddons": [
        {
          "type": "DisneyTicket",
          "required": true,
          "candidateCodes": [
            "code",
            "code"
          ]
        }
      ],
      "commissions": [
        {
          "startDate": "2018-01-01",
          "endDate": "2018-01-04",
          "value": 10,
          "type": "Percent"
        }
      ]
    }
  ]
}


Response from Exchange Connection and Net Rate Model(HTTP Status 200)
{
  "hotelId": "GATHI",
  "hotelName": "This is a test hotel",
  "supplierId": "HILTON",
  "status": "Actived",
  "chainCode": "Hilton",
  "brandCode": "Hampton",
  "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"
  },
  "extensions": {
    "key1": "value1",
    "key2": "value2"
   },
  "ariType": "Daily",
  "timezone": "America/Los_Angeles",
  "rateType": "AmountBeforeTax",
  "maxChildAge": 17,
  "childRateType": "ByAge",
  "products": [
    {
      "roomId": "10000101",
      "rateId": "123456",
      "rateModel": "Net",
      "connectionType": "Exchange",
      "stayType": "OverNightRoom",
      "status": "Actived",
      "roomName": "Double Room",
      "roomDescription": "Soak in city views in our Deluxe room, which features a well-appointed ensuite bathroom and up-to-date entertainment offerings.",
      "rateName": "Bar Rate",
      "rateDescription": "Begin your day with a hearty meal.",
      "occupancy": {
        "maxAdult": 3,
        "maxChild": 2,
        "maxOccupancy": 3
      },
      "paymentType": "PayNow",
      "guarantee": {
        "guaranteeType": "CCG"
      },
      "cancelPolicies": [
        {
          "dateRange": {
            "startDate": "2018-01-01",
            "endDate": "2018-01-04"
          },
          "cancelPolicy": {
            "code": "1D1N_1N",
            "description": "Cancellations or changes to bookings for this room will be charged the first night of the booking in 1 day before arrival date, if no show, will be charged the first night of the booking.",
            "cancelPenalties": [
                {
                    "noShow": false,
                    "cancellable": true,
                    "cancelDeadline": {
                        "offsetTimeDropType": "BeforeArrival",
                        "offsetTimeUnit": "D",
                        "offsetTimeValue": 1
                    },
                    "penaltyCharge": {
                        "chargeBase": "NightBase",
                        "nights": 1
                    }
                },
                {
                    "noShow": true,
                    "penaltyCharge": {
                        "chargeBase": "NightBase",
                        "nights": 1
                    }
                }
            ]
          }
        }
      ],
      "fees": [
        {
          "dateRange": {
            "startDate": "2018-01-01",
            "endDate": "2018-01-04"
          },
          "fee": {
            "name": "Service Charge",
            "type": "Exclusive",
            "amount": 10,
            "amountType": "Percent",
            "chargeType": "PerRoomPerNight",
            "collectBy": "Distributor",
            "effectivePerson": 0
          }
        },
        {
          "dateRange": {
            "startDate": "2018-01-01",
            "endDate": "2018-01-04"
          },
          "fee": {
            "name": "City Tax",
            "type": "Exclusive",
            "amount": 5,
            "amountType": "Fix",
            "chargeType": "PerPersonPerNight",
            "collectBy": "Property",
            "effectivePerson": 0
          }
        }
      ],
      "bookingChannels": [
        "channel",
        "channel"
      ],
      "sourceMarkets": [
        "region",
        "region"
      ],
      "productAddons": [
        {
          "type": "DisneyTicket",
          "required": true,
          "candidateCodes": [
            "code",
            "code"
          ]
        }
      ]
    }
  ]
}
Error Response (HTTP Status 401)
{
    "error": "Key not authorized"
}


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