Rates
Sync pricing from your PMS to SiteMinder for channel distribution.
What is Rates
Rates is an update method where the Property Management System (PMS) actively sends room pricing information to the SiteMinder Platform for distribution across all connected channels. This integration ensures that all booking channels receive synchronized rate updates in real-time, maintaining accurate pricing across your distribution network and maximizing revenue opportunities.
The API supports two pricing models:
Per Day Pricing (PDP): Base rates are set for each individual day, allowing different prices on different days. Rate updates specify rates for each date within the defined range, enabling precise daily rate management.
Occupancy Based Pricing (OBP): Rates vary based on the number of occupants in the room. Rate updates include pricing for various occupancy levels (single, double, triple, etc.), providing detailed pricing based on the number of guests.
Pricing Model Configuration: The pricing model (PDP or OBP) is configured at the PMS/RMS level and applies to all properties connected to your integration. You cannot have some properties using Per Day Pricing while others use Occupancy Based Pricing.
For partners migrating from PDP to OBP: The Included Occupancy value must be set by each property in their SiteMinder Platform for all room rates before sending OBP updates.
Integration Requirements
Understand the essential requirements for API integration, including connectivity, authentication, message formats, and security protocols.
Web Service Endpoint
SiteMinder will provide a single global endpoint for all hotels for PMS to send update requests
OTA_HotelRateAmountNotifRQ
and receive confirmation responsesOTA_HotelRateAmountNotifRS
.
Authentication
SiteMinder will provide a single username/password for all hotels (PMS Level authentication).
PMS must include authentication credentials within the SOAP Security header of each request
OTA_HotelRateAmountNotifRQ
.
Message Structure
All messages must adhere to the SOAP message format.
OTA message must be encapsulated within the SOAP Body.
Requests must include a SOAP Security Header for authentication.
Responses will be returned in a SOAP envelope with empty SOAP Header.
Content-Type
text/xml; charset=utf-8
Version
SOAP 1.1
Protocol & Security
All communication must occur over HTTPS using TLS 1.2 or higher.
Non-secure (HTTP) connections are not permitted.
Communication is synchronous request/response pairs.
Each message is atomic - processed entirely or not at all.
Message Exchange Flow
When your PMS needs to update room pricing, it sends updates to SiteMinder using a synchronous SOAP/HTTPS exchange. SiteMinder then distributes these updates to all connected channels in real-time. Each update triggers a simple request-response cycle.
Rates Update (PMS to SiteMinder):
OTA_HotelRateAmountNotifRQ
Delivers rate values for specific room types and rate plans across defined date ranges. Rates can be configured as Per Day Pricing (PDP) with fixed amounts, or Occupancy Based Pricing (OBP) with rates varying by guest count.Confirmation Response (SiteMinder to PMS):
OTA_HotelRateAmountNotifRS
Confirms successful receipt and processing or reports validation errors.
Security Header
The Security Header is a mandatory SOAP header that authenticates every reservation request from your PMS to SiteMinder endpoint. It contains the username and password credentials that we provide to the PMS during integration setup.
Key Requirements:
Validation: Our endpoint will validate these credentials on every request.
Scope: One set of credentials is used for all properties in your integration.
Security: Credentials are transmitted as plain text within the HTTPS encrypted channel.
Response: Invalid credentials will return a SOAP fault with appropriate error code.
Requests must include a SOAP Security Header for authentication.
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<wsse:Security
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" SOAP-ENV:mustUnderstand="1">
<wsse:UsernameToken>
<wsse:Username>USERNAME</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">VKcYa3ShbPkp2AqgFcTsjK</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<OTA_HotelRateAmountNotifRQ
xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2024-07-06T15:27:41+00:00" EchoToken="ed8835ff-6198-4f38-b589-3058397f677c">
<!-- ... other elements and attributes have been omitted for brevity ... -->
</OTA_HotelRateAmountNotifRQ>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Multiplicity
In the SOAP Specification tables below M refers to the number of instances or occurrences of an element or attribute that are allowed or required in a given context. It defines how many times a particular component (element or attribute) can appear within a specific structure.
1
The element or attribute must be present exactly once.
0..1
The element or attribute is optional; it can be present zero or one time.
0..n
The element or attribute can be present zero or more times, with no upper limit (where n represents an infinite number of occurrences).
1..n
The element or attribute must be present at least once and can be present any number of times, with no upper limit.
n..m
Specific range, the element or attribute must be present at least n times and no more than m times (where n and m are specific numbers).
1. Rates Update
Only adult occupancy rates are supported, indicated by
@AgeQualifyingCode="10"
. Child occupancy rates are not supported in the primary rate structure.The
@NumberOfGuests
attribute must specify adult occupancy as a positive integer between 1 and 5. Sending a value greater than 5 will result in an error.If certain occupancy levels are missing in the request, SiteMinder will automatically backfill those levels with the provided rate. For example, if only
@NumberOfGuests="3"
is received, the same rate will apply to occupancies of 1 and 2 guests.While child occupancy rates are not directly supported in the primary rate setup, the
AdditionalGuestAmounts
element provides a way to include specific charges for extra adults and children as needed.
<OTA_HotelRateAmountNotifRQ
xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="ed8835ff-6198-4f38-b589-3058397f677c" TimeStamp="2024-07-06T15:27:41+00:00" Version="1.0">
<POS>
<Source>
<RequestorID Type="22" ID="PMSCODE"/>
</Source>
</POS>
<RateAmountMessages HotelCode="HOTEL">
<RateAmountMessage>
<StatusApplicationControl InvTypeCode="SUP" RatePlanCode="BAR"/>
<Rates>
<Rate CurrencyCode="AUD" Start="2025-03-01" End="2025-03-14">
<BaseByGuestAmts>
<BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="1" AmountAfterTax="100.00"/>
<BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="2" AmountAfterTax="200.00"/>
<BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="3" AmountAfterTax="250.00"/>
<BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="4" AmountAfterTax="300.00"/>
<BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="5" AmountAfterTax="350.00"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount AgeQualifyingCode="10" Amount="50"/> <!-- Extra Adult Rate -->
<AdditionalGuestAmount AgeQualifyingCode="8" Amount="10"/> <!-- Extra Child Rate -->
</AdditionalGuestAmounts>
</Rate>
</Rates>
</RateAmountMessage>
<!-- Additional RateAmountMessage elements -->
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
OTA_HotelRateAmountNotifRQ
Element
1
Root element for the request.
@xmlns
String
1
Defines the XML namespace for the request. Will be set to http://www.opentravel.org/OTA/2003/05
@EchoToken
String
1
Unique identifier for the request, used to match requests and responses.
@TimeStamp
DateTime
1
Time when the request was generated.
@Version
String
1
Specifies the API version. Will be set to 1.0
.
POS / Source / RequestorID
1
@Type
1
Fixed at 22
(ESRP)
@ID
1
RateAmountMessages
Element
1
Container for rate status messages.
@HotelCode
String
1
Identifier for the hotel.
RateAmountMessage
Element
1..n
Single rate status message.
StatusApplicationControl
Element
1
Contains date and room identification information. Note: No overlapping dates allowed.
@InvTypeCode
Integer
1
Identifies the room.
@RatePlanCode
Element
0..1
Identifies the rate.
Rates
String
1
Container for rate information.
Rate
String
1
Contains individual rate information.
@CurrencyCode
String
1
Use ISO 4217 currency codes.
@Start
Date
1
The start date for which the update is being set. This date is inclusive.
@End
Date
1
The end date for which the update is being set. This date is inclusive.
Mon
, Tue
, Weds
, Thur
, Fri
, Sat
, Sun
0..1
The day-of-week indicators are used to specify which days a rate update applies to. These indicators accept values of "0"
or "1"
, where:
"1"
indicates the update applies to that day."0"
indicates the update does not apply to that day.
BaseByGuestAmts
Element
1
Base charge for a given number of guests.
BaseByGuestAmt
Element
1
Contains individual rate amounts.
@AmountAfterTax
Decimal
0..1
Either @AmountAfterTax
or @AmountBeforeTax
must be included.
Positive decimal value for the rate amount after tax.
@AmountBeforeTax
Decimal
0..1
Either @AmountAfterTax
or @AmountBeforeTax
must be included. Positive decimal value for the rate amount after tax.
@NumberOfGuests
Integer
0..1
Number of guests in the room. Mandatory for OBP.
@AgeQualifyingCode
Element
0..1
Age qualification for the rate:
10
Adult
Mandatory for OBP.
AdditionalGuestAmounts
Element
0..1
For OBP: Additional charges for extra guests based on age qualification.
AdditionalGuestAmount
Element
0..2
For OBP: Contains details of extra guest charges.
@AgeQualifyingCode
String
1
Age qualification for the extra guest charge:
10
Adult (only for PDP)
8
Child
@Amount
Decimal
1
Extra charge amount.
@CurrencyCode
String
0..1
Use ISO 4217 currency codes.
2. Confirmation Response
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<OTA_HotelRateAmountNotifRS
xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2024-07-06T15:27:41+00:00" EchoToken="ed8835ff-6198-4f38-b589-3058397f677c">
<Success/>
</OTA_HotelRateAmountNotifRS>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
OTA_HotelRateAmountNotifRS
Element
1
Root element for the response.
@xmlns
String
1
Defines the XML namespace for the request. Will be set to http://www.opentravel.org/OTA/2003/05
@EchoToken
String
1
Unique identifier for the request, used to match requests and responses.
@TimeStamp
DateTime
1
Time when the response was generated.
@Version
String
1
Specifies the API version. Must be set to 1.0
.
Success
Element
0..1
Indicates successful processing of the request.
Errors
Element
0..1
Indicates an error occurred during the processing of the request.
Error
Element
1..n
Single error information containing free text.
Help Centre
Last updated
Was this helpful?