Reservations
Receive reservations from SiteMinder directly to your application in real-time.
API: SMX · Operation: Reservations · Direction: SM → App · Method: Push
What is Reservations?
Reservation is a delivery method where SiteMinder actively sends reservations, modifications, and cancellations directly to the application's web service endpoint in real-time. This integration ensures that apps receive up-to-date booking information.
Integration Requirements
Understand the essential requirements for API integration, including connectivity, authentication, message formats, and security protocols.
Understand the essential requirements for API integration, including connectivity, authentication, message formats, and security Understand the essential requirements for API integration, including connectivity, authentication, message formats, and security protocols.
Web Service Endpoint
The application must provide a single global endpoint for all hotels for SiteMinder to push
OTA_HotelResNotifRQmessages and receiveOTA_HotelResNotifRQresponses indicating success or failure.
Authentication
The application must provide a single username/password for all hotels.
SiteMinder will include authentication credentials within the SOAP Security header of each request
OTA_HotelResNotifRQ.
Message Structure
All messages must adhere to the SOAP message format.
OTA message must be encapsulated within the SOAP Body.
Requests will include a SOAP Security Header for authentication.
Responses must be returned in a SOAP envelope with empty SOAP Header.
Content-Type
application/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 reservations are received from a booking channel, or created, modified, or canceled in the property reservation system (Reservation Uploader/Data Publisher) and pushed to SiteMinder Exchange (SMX), it delivers them to your application using a synchronous SOAP/HTTPS exchange. Each reservation triggers a separate request-response cycle.
Reservation Message (SiteMinder to App):
OTA_HotelResNotifRQDelivers a single reservation message (new booking, modification, or cancellation).Confirmation Response (App to SiteMinder):
OTA_HotelResNotifRSConfirms successful receipt or reports processing failure.
Security Header
The Security Header is a mandatory SOAP header that authenticates every reservation request from SiteMinder to your application endpoint. It contains the username and password credentials that you provide to during integration setup.
Key Requirements:
Validation: Your endpoint must 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 must return a SOAP fault with appropriate error code.
The only acceptable value for the Password @Type attribute is http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText. Plain text passwords are acceptable as all communication is done over encrypted HTTP (HTTPS).
Requests will include a SOAP Security Header for authentication.
Responses must be returned in a SOAP envelope with an empty SOAP Header.
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. Reservation Message
OTA_HotelResNotifRQ
OTA_HotelResNotifRQ
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
@Version
Decimal
1
Specifies the API version. Must be set to 1.0.
@EchoToken
String
1
Unique identifier for the request, used to match requests and responses.
@TimeStamp
DateTime
1
Time when the request was generated.
HotelReservation
HotelReservations
Element
1
Contains the reservation details.
HotelReservation
Element
1
Contains the specific reservation information.
@ResStatus
Enumeration
1
Indicates the current status of the reservation.
Valid values are dependent on the roles:
Reserved
Waitlisted
Cancelled
No-show
In-house
Checked-Out
Mandatory: The SMX partner application should be able to accept all ResStatus values and respond with Success (200 OK status).
@CreateDateTime
DateTime
1
This is the date when the reservation was first made. Format like yyyy-MM-dd'T'HH:mm:ssZZ i.e 2012-03-09T20:05:52+08:00
@CreatorID
String
0..1
ID of the creator. The creator could be a software system identifier or an identifier of an employee responsible for the creation.
@LastModifyDateTime
DateTime
0..1
This indicates the last date and time when the reservation was last modified. Format like yyyy-MM-dd'T'HH:mm:ssZZ i.e 2012-03-09T20:05:52+08:00
@LastModifierID
String
0..1
Identifies the last software system or person to modify a record.
Source
POS
Element
1
Contains source details.
Source
Element
1..10
Contains BookingChannel details.
RequestorID
Element
1
Only present in the first Source element. Identifies the system sending the reservation.
@ID
String
1
Channel code. The ID used will be agreed by trading partners and remain consistent across messages.
BookingChannel
Element
0..2
Contains booking channel information.
@Type
Integer
1
The type of booking channel (e.g. Global Distribution System (GDS), Alternative Distribution System (ADS), Sales and Catering System (SCS), Property Management System (PMS), Central Reservation System (CRS), Tour Operator System (TOS), Internet and ALL). Refer to Booking Channel Type (BCT).
@Primary
Boolean
0..1
true for the primary booking channel in the first Source element.
false in the second Source element, if present.
CompanyName
Element
1
Name of the booking channel.
@Code
String
0..1
Code of the booking channel.
UniqueID
UniqueID
Element
1
Used to provide PMS and/or CRS identifiers. An identifier used to uniquely reference an object in a system (e.g. an airline reservation reference, customer profile reference, booking confirmation number, or a reference to a previous availability quote).
@ID
String
1
A unique identifying value assigned by the creating system. The ID attribute may be used to reference a primary-key value within a database or in a particular implementation.
RoomStays
RoomStays
Element
1
Contains details of all room stays.
RoomStay
Element
1..n
One instance of RoomStay per room type booked.
@MarketCode
String
0..1
The code that relates to the market being sold to (e.g., the corporate market, packages).
@SourceOfBusiness
String
0..1
To specify where the business came from e.g. radio, newspaper ad, etc.
@PromotionCode
String
0..1
If configured, this is the promotion code indicating, for instance, a specific marketing campaign (not the rate code).
RoomTypes
RoomTypes
Element
0..1
Provides more information about the room type for this room stay.
RoomType
Element
0..1
Provides details regarding rooms, usually guest rooms. It can be sent to give more information on the room type for this room stay.
@RoomType
String
0..1
A code value that indicates the type of room for which this request is made, e.g.: double, king, etc. Values may use the Hotel Descriptive Content table or codes specific to the property or hotel brand.
@RoomTypeCode
String
0..1
Specific system room type code, ex: A1K, A1Q etc.
@RoomCategory
Integer
0..1
Indicates the category of the room. Typical values would be Moderate, Standard, or Deluxe. Refer to Segment Category Code (SEG)
@RoomID
Integer
0..1
A string value representing the unique identification of a room if the request is looking for a specific room.
@NonSmoking
Boolean
0..1
Non-smoking indicator.
@Configuration
String
0..1
Textual description of room configuration.
RoomDescription
Element
0..1
Description of the room.
@Text
Element
0..n
A text description of the room
AdditionalDetails
Element
0..1
Container for additional information about this room.
AdditionalDetail
Element
1..n
@Type
Integer
0..1
Used to define the type of information being sent (e.g., rate description, property description, room information). Refer to Additional Detail Type (ADT) Some common usages are: 43: Meal plan information 15: Promotion information
@Code
String
0..1
Trading partner code associated to AdditionalDetailType.
DetailDescription
Element
0..1
Textual description of AdditionalDetail information.
Text
Element
0..n
A text description of AdditionalDetail
RatePlans
RatePlans
Element
0..1
Provides more information about the rate plan for this room stay.
RatePlan
Element
0..1
Contains details about the specific rate plan.
@RatePlanCode
String
0..1
Code of the rate booked.
@EffectiveDate
0..1
The effective date of the RatePlan
@ExpireDate
0..1
The expire date for a RatePlan, this should be considered an exclusive date, the date for which the current rate plan information is no longer valid.
@RatePlanName
0..1
Provides the name of the rate plan or group. Typically used with RatePlanType to further describe the rate plan.
RatePlanDescription
Element
0..1
Textual description of the RatePlan.
Text
Element
0..n
A text description of the RatePlan.
RatePlanInclusions
Element
0..1
Defines charges that are included in this rate plan.
@TaxInclusive
0..1
Indicates that service fees are included in the rate.
@ServiceFeeInclusive
0..1
Indicates that tax is included in the rate.
RatePlanInclusionDescription
Element
0..1
Textual description of what is included in the rate plan.
Text
Element
0..1
Textual description of what is included in the rate plan.
MealsIncluded
Element
0..1
@MealPlanIndicator
0..1
When true, a meal plan is included in this rate plan. When false, a meal plan is not included in this rate plan.
@MealPlanCodes
0..1
Used to identify the types of meals included with a rate plan. Refer to Meal Plan Type (MPT)
AdditionalDetails
Element
0..1
Textual description of AdditionalDetail information.
AdditionalDetail
Element
0..1
A text description of AdditionalDetail
@Type
0..1
Used to define the type of information being sent (e.g., rate description, property description, room information). Refer to Additional Detail Type (ADT) Some common usages are: 43: Meal plan information 15: Promotion information
@Code
0..1
Trading partner code associated to AdditionalDetailType.
DetailDescription
Element
0..1
Textual description of AdditionalDetail information.
Text
Element
0..n
A text description of AdditionalDetail
RoomRates
RoomRates
Element
0..1
Contains details of the rates applied to the room stay.
RoomRate
Element
1..n
One RoomRate per RoomStay. Multiple rates are listed under the RoomRate.
@InvBlockCode
String
0..1
Code that identifies an inventory block.
@RoomID
String
0..1
A string value representing the unique identification of a room.
@NumberOfUnits
Integer
0..1
Must be set to 1. If there are multiple RoomStays for the same RoomTypeCode and RatePlanCode, multiple RoomStay elements should be sent.
@RoomTypeCode
String
0..1
Code of the room booked.
@RatePlanCode
String
0..1
Code of the rate plan booked. Must be included if RoomStay / RatePlans is present.
@RatePlanCategory
String
0..1
Hotel systems often group multiple rate plans into a single category. This refers to that category that is specific to the hotel CRS/ PMS and should not be confused with a GDS rate category.
@EffectiveDate
1
Indicates the starting date.
@ExpireDate
1
ExpireDate is the first day after the applicable period (e.g. when expire date is 2012-04-03 the last date of the period is 2012-04-02). Format yyyy-MM-dd. This date is exclusive.
Rates
Element
0..1
Container that will contain instances of Rates.
Rate
Element
1..n
Rate will contain a timespan for which a rate will apply for a room type. Multiple instances of Rate will be sent if rate changes apply.
@UnitMultiplier
Integer
1
Must be set to 1.
@EffectiveDate
Date
1
Starting date of the rate. This date is inclusive.
@ExpireDate
Date
1
Expire date is the first day after the applicable period. This date is not inclusive.
Base
Element
1
Base amount charged for the accommodation.
@AmountBeforeTax
Decimal
0..1
At least one of AmountAfterTax or AmountBeforeTax must be set.
@AmountAfterTax
Decimal
0..1
At least one of AmountAfterTax or AmountBeforeTax must be set.
@CurrencyCode
String
1
Use ISO 4217 currency codes.
Taxes
Element
0..1
Contains details of the taxes applied.
@CurrencyCode
String
0..1
An ISO 4217 (3) alpha character code that specifies a monetary unit.
@Amount
Decimal
0..1
A monetary amount of tax.
Tax
Element
0..n
Contains specific tax information.
@Code
String
0..1
Indicates the specific tax or fee that is being transferred. Refer to Fee Tax Type (FTT).
@Amount
Decimal
0..1
Tax amount applied.
@CurrencyCode
String
0..1
Use ISO 4217 currency codes.
@Percent
Integer
0..1
Tax percentage; if zero, assume use of the Amount attribute (Amount or Percent must be a zero value).
TaxDescription
Element
0..5
Text description of the taxes.
Text
Element
0..n
Textual description of the tax
Total
Element
1
Total amount charged, including additional occupants and fees. If empty, assume the Base amount equals the Total amount.
@AmountBeforeTax
Decimal
0..1
At least one of AmountAfterTax or AmountBeforeTax must be set.
@AmountAfterTax
Decimal
0..1
At least one of AmountAfterTax or AmountBeforeTax must be set.
@CurrencyCode
String
0..1
Use ISO 4217 currency codes.
Taxes
Element
0..1
Contains details of the taxes applied.
@Amount
Decimal
0..1
Tax amount applied.
@CurrencyCode
String
0..1
Use ISO 4217 currency codes.
Tax
Element
0..99
An individual tax per tax element. This element allows for both percentages and flat amounts. If one field is used, the other should be zero since logically, taxes should be calculated in only one of the two ways.
@Amount
Integer
0..1
A monetary amount of tax. if zero, assume use of the Percent attribute (Amount or Percent must be a zero value).
@CurrencyCode
String
0..1
An ISO 4217 (3) alpha character code that specifies a monetary unit.
@Percent
Integer
0..1
Tax percentage; if zero, assume use of the Amount attribute (Amount or Percent must be a zero value).
TaxDescription
Element
0..5
Text description of the taxes.
Text
String
0..n
Textual description of the tax
ServiceRPHs
Element
0..1
A collection of unsigned integers that reference the RPH (Reference Place holder) attribute in the Service object. The ServiceRPH attribute in the Service object is an indexing attribute that identifies the services attached this RoomRate.
ServiceRPH
Element
1..n
This is a reference placeholder used as an index for a service to be associated with this stay
@RPH
Integer
1
Provides a unique reference to the service.
GuestCounts
GuestCounts
Element
1
Total guest counts, divided by age group (adult, child, infant). Adult count must always be sent.
GuestCount
Element
1..n
Represents the count for a specific age group.
@AgeQualifyingCode
Integer
1
10 = Adult (mandatory)
8 = Child (optional)
7 = Infant (optional)
@Count
Integer
1
Number of guests for this age group.
@Age
Integer
0..1
Age of the guest, required only for children and infants.
@AgeBucket
String
0..1
Defines the age range category or bucket a guest can be booked into. This is typically used in conjunction with the age qualifying code to further define the applicable age range.
TimeSpan
TimeSpan
Element
1
Contains the timespan for the RoomStay.
@Start
Date
1
Check-in date.
@End
Date
1
Check-out date. Must be after Start.
Guarantee (RoomStay Level)
Guarantee
Element
0..1
Guarantee provided with the reservation. Used if no deposit is paid for the reservation.
@GuaranteeCode
String
0..1
Contains the details of accepted Guarantee Code.
@GuaranteeType
Enumeration
0..1
An enumerated type defining the guarantee to be applied to this reservation.
Value: CC/DC/Voucher Deposit DepositRequired GuaranteeRequired None PrePay Profile
GuaranteesAccepted
Element
0.1
The guarantee information associated to the Room Stay. A maximum of 5 occurrences are available for use depending on the context.
GuaranteeAccepted
Element
1..n
Guarantee Detail.
One of PaymentCard, Voucher, DirectBill elements must be included within GuranteeAccepted.
@PaymentTransactionTypeCode
String
0..1
This is used to indicate either a charge, reserve (deposit) or refund.
charge: This indicates that an actual payment has been made.
refund: This indicates that the payment amount of this PaymentDetail element is for a refund.
reserve: This indicates that a hold for the indicated amount has been placed on a credit card or that a cash amount has been taken from the customer to guarantee final payment.
PaymentCard
Element
0..1
Specific payment card information. Details of a debit or credit card.
@EffectiveDate
String
0..1
Indicates the starting date. format MMyy).
@ExpireDate
String
0..1
Expiry date of the credit card (format MMyy).
CardHolderName
Element
0..1
Card Holder Name
CardNumber
String
0..1
Secure information that supports PCI tokens, data masking and other encryption methods.
@Mask
String
0..1
Masked data.
@Token
Integer
0..1
Tokenized information.
@TokenProviderID
String
0..1
Provider ID.
Voucher
Element
0..1
Identification of a series of coupons or vouchers identified by serial number(s).
@SeriesCode
String
0..1
Identification of a series of coupons or vouchers identified by serial number(s).
DirectBill
Element
0..1
Details of a direct billing arrangement.
@DirectBill_ID
Integer
0..1
Identifier for the organization to be billed directly for travel services.
GuaranteeDescription
Element
0..1
Text description relating to the Guarantee.
Text
Sting
0..n
Textual information relating to the Guarantee.
DepositPayments
DepositPayments
Element
0..1
A collection of required payments.
GuaranteePayment
Element
1..n
Used to define the deposit policy, guarantees policy, and/or accepted forms of payment.
AcceptedPayments
Element
0..1
Collection of forms of payment accepted for payment. Used to define the types of payments accepted.
AcceptedPayment
Element
0..1