Rateplan API

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.