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

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_HotelResNotifRQ messages and receive OTA_HotelResNotifRQ responses 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.

  1. Reservation Message (SiteMinder to App): OTA_HotelResNotifRQ Delivers a single reservation message (new booking, modification, or cancellation).

  2. Confirmation Response (App to SiteMinder): OTA_HotelResNotifRS Confirms 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.

M
Definition

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

Element / @Attribute
Type
M
Description

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

Element / @Attribute
Type
M
Description

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

Element / @Attribute
Type
M
Description

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

Element / @Attribute
Type
M
Description

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

Element / @Attribute
Type
M
Description

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

Element / @Attribute
Type
M
Description

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

Element / @Attribute
Type
M
Description

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

Element / @Attribute
Type
M
Description

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.

@Code

Integer

0..1

The type of tax being applied to the total. Refer to Fee Tax Type (FTT).

@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

Element / @Attribute
Type
M
Description

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

Element / @Attribute
Type
M
Description

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)

Element / @Attribute
Type
M
Description

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.

@CardCode

String

1

2-character code of the credit card issuer. Refer to Payment Card Provider Codes.

@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

Element / @Attribute
Type
M
Description

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