For the complete documentation index, see llms.txt. This page is also available as Markdown.

Hotel Promotions

Specifies Promotions and Discount

post
/promotions

The Promotions message defines rules for discounting rates using OTA_HotelRateAmountNotifRQ.

For each rate, the defined promotions are evaluated and the greatest allowed discount is applied to the rate.

This message type is optional and you only need to define promotions if they are used in your system to apply rate discounts.

You can combine promotions and apply them to different user attributes, such as device types (mobile, tablet, desktop) and country codes.

Authorizations
AuthorizationstringRequired
Body

The root element of a promotions message.

EchoTokenstring · min: 1 · max: 100Required

A unique identifier for this request message. This value is returned in the response message. Allowed characters are a-z, A-Z, 0-9, _ (underscore), and - (dash). The minimum length of this identifier is 1 (inclusive) and maximum length is 100 (inclusive)

Example: 5fe69c95ed70a9869d9f9af7d8400a6673bb9ce9Pattern: ^[a-zA-Z0-9_-]{1,}$
Timestampstring · date-timeRequired

The creation date and time of this message. The date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z Format :YYYY-MM-DDTHH:mm:ss.SSS+|-HH:mm[Z]

VersionstringOptional

Current API Version. Example- '1.0'

Example: 1.0
Responses
200

Success Response

Indicates that the request message was processed successfully or not. Either 'Success' or 'Errors' is present in each message.

Timestampstring · date-timeRequired

The creation date and time of this message. The date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z Format :YYYY-MM-DDTHH:mm:ss.SSS+|-HH:mm[Z]

VersionstringOptional

Current API Version. Example- '1.0'

Example: 1.0
EchoTokenstring · min: 1 · max: 100Required

A unique identifier for this request message. This value is returned in the response message. Allowed characters are a-z, A-Z, 0-9, _ (underscore), and - (dash). The minimum length of this identifier is 1 (inclusive) and maximum length is 100 (inclusive)

Example: 5fe69c95ed70a9869d9f9af7d8400a6673bb9ce9Pattern: ^[a-zA-Z0-9_-]{1,}$
SuccessobjectOptional

Indicates that the request message was processed successfully

post/promotions
POST /supplier/promotions HTTP/1.1
Host: ratehub.rategain.com
Authorization: Basic username:password
Content-Type: application/xml
Accept: */*
Content-Length: 2508

"<?xml version="1.0" encoding="UTF-8"?> <HotelPromotionNotifRQ EchoToken="5fe69c95ed70a9869d9f9af7d8400a6673bb9ce9" Timestamp="2023-04-14T14:03:58.439Z" Version="1.0">
	<POS>
		<Source>
			<RequestorID ID="Partner Key">
			</RequestorID>
		</Source>
	</POS>
	<HotelPromotions HotelCode="TEST_Hotel" NotifType="overlay">
		<Promotions Id="PromotionID" Name="PromotionName" NotifType="delete">
			<BookingDates>
				<DateRange Start="2023-10-10T00:00:00.000+00:00" End="2023-10-11T00:00:00.000+00:00" Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true">
				</DateRange>
			</BookingDates>
			<BookingWindow Min="1" Max="180">
			</BookingWindow>
			<CheckinDates>
				<DateRange Start="2023-04-14" End="2023-04-14" Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true">
				</DateRange>
			</CheckinDates>
			<CheckoutDates>
				<DateRange Start="2023-04-14" End="2023-04-14" Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true">
				</DateRange>
			</CheckoutDates>
			<Discount Percentage="20.1" FixedAmount="2" FixedAmountPerNight="2.2" AppliedNights="2">
				<FreeNights StayNights="2" DiscountNights="1" DiscountPercentage="50" NightSelection="cheapest" Repeats="true">
				</FreeNights>
			</Discount>
			<Devices>
				<Device Type="desktop">
				</Device>
			</Devices>
			<InventoryCount Min="2" Max="3">
			</InventoryCount>
			<LengthOfStay Min="1" Max="3">
			</LengthOfStay>
			<MinimumAmount BeforeDiscount="5">
			</MinimumAmount>
			<Occupancy Min="1" Max="3">
			</Occupancy>
			<RatePlans>
				<RatePlan RatePlanCode="RPC_1">
				</RatePlan>
			</RatePlans>
			<RoomTypes>
				<RoomType InvTypeCode="ITC_1">
				</RoomType>
			</RoomTypes>
			<Stacking Type="any">
			</Stacking>
			<StayDates Application="all">
				<DateRange Start="2023-04-14" End="2023-04-14" Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true">
				</DateRange>
			</StayDates>
			<UserCountries Type="include">
				<Country Code="US">
				</Country>
			</UserCountries>
		</Promotions>
	</HotelPromotions>
</HotelPromotionNotifRQ>"
<?xml version="1.0" encoding="UTF-8"?> <HotelNotifRS Timestamp="2023-02-28T11:44:23.691Z" Version="1.0" EchoToken="5fe69c95ed70a9869d9f9af7d8400a6673bb9ce9">
    <Success>
    </Success>
</HotelNotifRS>

Get all Promotions by hotel code

get
/promotions/{hotelCode}
Authorizations
AuthorizationstringRequired
Path parameters
hotelCodestringRequired
Query parameters
Requester_IDstringOptional
Responses
200

Success

application/json

Get the whole information of Promotions from the dataset.

EchoTokenstring · min: 1 · max: 100Optional

A unique identifier for this request message. This value is returned in the response message. Allowed characters are a-z, A-Z, 0-9, _ (underscore), and - (dash). The minimum length of this identifier is 1 (inclusive) and maximum length is 100 (inclusive)

Example: 5fe69c95ed70a9869d9f9af7d8400a6673bb9ce9Pattern: ^[a-zA-Z0-9_-]{1,}$
Timestampstring · date-timeOptional

The creation date and time of this message. The date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z Format :YYYY-MM-DDTHH:mm:ss.SSS+|-HH:mm[Z]

VersionstringOptional

Current API Version. Example- '1.0'

Example: 1.0
get/promotions/{hotelCode}
GET /supplier/promotions/{hotelCode} HTTP/1.1
Host: ratehub.rategain.com
Authorization: Basic username:password
Accept: */*
200

Success

{
  "EchoToken": "5fe69c95ed70a9869d9f9af7d8400a6673bb9ce9",
  "Timestamp": "2026-01-01T00:00:00.000Z",
  "Version": "1.0",
  "HotelPromotions": {
    "HotelCode": "TEST_HOTEL",
    "Promotions": [
      {
        "LastUpdatedEchoToken": "5fe69c95ed70a9869d9f9af7d8400a6673bb9ce9",
        "CreatedAt": "2026-01-01T00:00:00.000Z",
        "UpdatedAt": "2026-01-01T00:00:00.000Z",
        "Source": "RH",
        "Id": "PromotionID",
        "Name": "PromotionName",
        "NotifType": "delete",
        "BookingDates": {
          "DateRange": [
            {
              "Start": "2023-10-10T00:00:00.000+00:00",
              "End": "2023-10-11T00:00:00.000+00:00",
              "Mon": true,
              "Tue": true,
              "Weds": true,
              "Thur": true,
              "Fri": true,
              "Sat": true,
              "Sun": true
            }
          ]
        },
        "BookingWindow": {
          "Min": 1,
          "Max": 180
        },
        "CheckinDates": {
          "DateRange": [
            {
              "Start": "2026-01-01",
              "End": "2026-01-01",
              "Mon": true,
              "Tue": true,
              "Weds": true,
              "Thur": true,
              "Fri": true,
              "Sat": true,
              "Sun": true
            }
          ]
        },
        "CheckoutDates": {
          "DateRange": [
            {
              "Start": "2026-01-01",
              "End": "2026-01-01",
              "Mon": true,
              "Tue": true,
              "Weds": true,
              "Thur": true,
              "Fri": true,
              "Sat": true,
              "Sun": true
            }
          ]
        },
        "Discount": {
          "Percentage": 20.1,
          "FixedAmount": 2,
          "FixedAmountPerNight": 2.2,
          "AppliedNights": 2,
          "FreeNights": {
            "StayNights": 2,
            "DiscountNights": 1,
            "DiscountPercentage": 50,
            "NightSelection": "cheapest",
            "Repeats": true
          }
        },
        "Devices": {
          "Device": [
            {
              "Type": "desktop"
            }
          ]
        },
        "InventoryCount": {
          "Min": 2,
          "Max": 3
        },
        "LengthOfStay": {
          "Min": 1,
          "Max": 3
        },
        "MinimumAmount": {
          "BeforeDiscount": 5
        },
        "Occupancy": {
          "Min": 1,
          "Max": 3
        },
        "RatePlans": {
          "RatePlan": [
            {
              "RatePlanCode": "RPC_1"
            }
          ]
        },
        "RoomTypes": {
          "RoomType": [
            {
              "InvTypeCode": "ITC_1"
            }
          ]
        },
        "Stacking": {
          "Type": "any"
        },
        "StayDates": {
          "Application": "all",
          "DateRange": [
            {
              "Start": "2026-01-01",
              "End": "2026-01-01",
              "Mon": true,
              "Tue": true,
              "Weds": true,
              "Thur": true,
              "Fri": true,
              "Sat": true,
              "Sun": true
            }
          ]
        },
        "UserCountries": {
          "Type": "include",
          "Country": [
            {
              "Code": "US"
            }
          ]
        }
      }
    ]
  },
  "Errors": {
    "Error": [
      {
        "Type": 12,
        "Code": 450,
        "Status": "Not processed",
        "Text": "Error Text"
      }
    ]
  }
}

Last updated