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 the HTTP Headers are mandatory. These headers are applicable and remain the same for both end-points of the Rateplan API.
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 | Object | 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 |
endDate | Array | Yes | Start date for the cancellation policy in YYYY-MM-DD format |
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.