The Rateplan Metadata request, initiated by Hotel Trader, contains detailed rateplan information, including rateplan name, mealplan information, cancellation policy information, etc.
Initiator - Hotel Trader
Endpoint
New Rateplans
For creating single or multiple rateplans for the first time in the system.
[POST] https://<client-base-url>/rateplans
Update Rateplan
API to push updates to existing rateplans. Updates are processed individually, with one request per rateplan.
[PUT] https://<client-base-url>/rateplan/<code>
Request
HTTP Headers
All HTTP headers are mandatory and apply consistently across both endpoints of the API.
Clients must provide their username and password to Hotel Trader. For more information on username and password encoding, please refer to the Authentication page in our Knowledge Base.
Header Name | Type |
---|---|
Content-Type | application/json |
Accept-Encoding | gzip |
Authorization | Basic <token> |
Request Description
All the fields in the request are described below.
Field/Object | Datatype | Required | Description |
---|---|---|---|
messageId | String | Yes | A string that uniquely identifies this particular message. This should be returned in the response. |
updateType | String | Yes | The type of rateplan update.
Possible values - NEW, UPDATE. ENABLE or DISABLE are not allowed for this API. More information on this object can be found here. |
propertyCode | String | Yes | A unique hotel code provided by Hotel Trader identifies the hotel for which rateplan metadata is sent in this request. |
rateplans | Array | Yes | An array of rateplan objects, which contain the rateplan metadata. |
Rateplan
Field/Object | Datatype | Required | Description |
---|---|---|---|
name | String | Yes | The name of the rateplan. |
code | String | Yes | A code provided by Hotel Trader identifies this rateplan.
It's unique for each rateplan for a property and is used while sending availability and rate information to the client. |
currency | String | Yes | The currency used by the rateplan. Corresponds to the Currency standard object. |
mealplan | Object | Yes | Mealplan option for this rateplan. It holds meal plan-related data.
|
shortDescription | String | Yes | A short description of the rateplan. |
detailDescription | String | No | A detailed description of the rateplan. |
commissionable | Boolean | No | If true, all rates sent to the client are commissionable, for this rateplan and the rates being supplied include the commission paid to the client. |
commissionType | String | No | Describes the type of commission.
Possible values: PERCENT, FIXED, HYBRID. Mandatory if commissionable is true. |
commissionAmount | Float | Yes | This is the fixed commission amount that the client shall receive for every reservation.
Applicable only if commissionable is true. |
commissionPercent | Float | Yes | This is the commission percentage that the client shall receive for every reservation.
Applicable only if commissionable is true. |
comments | String | No | Additional notes related to this rateplan. |
cancellationPolicyCode | String | Yes | The default cancellation policy code associated with the rateplan. The cancellationPolicy object contains the rateplan cancellation policy definition and is sent in a separate message to the client. See here for more details. |
seasonalPolicies | Array | No | A list of seasonal policies (overrides) associated with the rateplan based on date range. Each seasonal policy includes: name, code, startDate and endDate. |
isTaxInclusive
|
Boolean
|
Yes | Indicates whether the taxes are included in the price. |
isRefundable
|
Boolean | Yes | Indicates whether rateplan is refundable. |
isPromo
|
Boolean
|
Yes
|
Indicates whether this rateplan is a promo on top of another base rateplan.
|
rateplanType
|
Array | Yes | This field can have multiple values from one of the following:
Enum: B2B_Package, B2B_Room_Only, B2C_Package, B2B_Room_Only. Null value indicates no distribution limitations. |
destinationExclusive
|
Array | No | List of Destinations for which the distribution is exclusive. This is just the supplementary data. Null value indicates no distribution limitations.
|
destinationRestriction
|
Array | No | List of Destinations for which the distribution is restricted. This is just the supplementary data. Null value indicates no distribution limitations.
|
Mealplan
Field/Object | Datatype | Required | Description |
---|---|---|---|
mealplanCode
|
String | Yes | A unique identifier for the meal plan.
Possible value: BI, LI, DI, AI, None |
mealplanName
|
String | Yes | Name of the mealplan option.
|
mealplanDescription
|
String | Yes | A more detailed description of the meal plan.
|
Destination
Field/Object | Datatype | Required | Description |
---|---|---|---|
name
|
String | Yes | Name of the destination.
|
code
|
String | Yes | Country or Region Code as follows:
Country: ISO 3166 Codes Region Codes: EMEA (Europe, the Middle East and Africa) NA (North America) LATAM (Latin America) APAC (Asia-Pacific) |
type
|
String | Yes | Enum: COUNTRY, REGION
|
Seasonal Policy
Field/Object | Datatype | Required | Description |
---|---|---|---|
name | String | Yes | Name of the cancellation policy |
code | String | Yes | The cancellation policy code is the unique identifier for the policy. |
startDate | String | Yes | Start date for the cancellation policy in YYYY-MM-DD format (inclusive). |
endDate | String | Yes | End date for the cancellation policy in YYYY-MM-DD format. (inclusive). |
Examples
Request for creating a new rateplan
{
"messageId": "s6aa3d81-6c1d-4e12-b374-c76735b49fc9",
"updateType": "NEW",
"propertyCode": "NYCMIL",
"rateplans": [
{
"name": "Package Rate",
"code": "HTPKG",
"currency": {
"name": "US Dollar",
"code": "USD"
},
"shortDescription": "Hotel Trader Package Rate",
"detailDescription": "Hotel Trader Package Rate - the best package rates for Row NYC.",
"cancellationPolicyCode": "24H",
"mealplan": {
"mealplanCode": "BI",
"mealplanName": "Breakfast Included",
"mealplanDescription": "Breakfast Included"
},
"isTaxInclusive": false,
"isRefundable": true,
"rateplanType": ["B2B_PACKAGE"],
"isPromo": false,
"destinationExclusive": {
"type": "country",
"name": "United States",
"code": "US"
},
"destinationRestriction": null,
"seasonalPolicies": [
{
"name": "24 hour cancellation",
"code": "24H",
"startDate": "2025-12-01",
"endDate": "2025-12-31"
},
{
"name": "24 hour cancellation",
"code": "24H",
"startDate": "2025-01-01",
"endDate": "2025-11-30"
}
]
}
]
}
Request for updating existing rateplans
{
"messageId": "s6aa3d81-6c1d-4e12-b374-c76735b49fc9",
"updateType": "UPDATE",
"propertyCode": "NYCMIL",
"rateplan": {
"name": "Package Rate",
"code": "HTPKG",
"currency": {
"name": "US Dollar",
"code": "USD"
},
"shortDescription": "Hotel Trader Package Rate",
"detailDescription": "Hotel Trader Package Rate - the best package rates for Row NYC.",
"cancellationPolicyCode": "24H",
"mealplan": {
"mealplanCode": "BI",
"mealplanName": "Breakfast Included",
"mealplanDescription": "Breakfast Included"
},
"isTaxInclusive": false,
"isRefundable": true,
"rateplanType": ["B2B_PACKAGE"],
"isPromo": false,
"destinationExclusive": {
"type": "country",
"name": "United States",
"code": "US"
},
"destinationRestriction": null,
"seasonalPolicies": [
{
"name": "24 hour cancellation",
"code": "24H",
"startDate": "2025-12-01",
"endDate": "2025-12-31"
},
{
"name": "24 hour cancellation",
"code": "24H",
"startDate": "2025-01-01",
"endDate": "2025-11-30"
}
]
}
}
Response
This API follows the Standard Response model of the Metadata Push API.