Reservations PULL
Retrieve to your PMS reservations from the SiteMinder Platform.
What is Reservations PULL
Reservation PULL is a delivery method where the Property Management Systems (PMS) actively retrieve undelivered reservations, modifications, and cancellations from SiteMinder at regular intervals. This integration ensures that PMSs receive up-to-date booking information from various channels, maintaining consistency and reducing the risk of overbooking.
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 pull requests
OTA_ReadRQ
and receive reservation responsesOTA_ResRetrieveRS
.
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_ReadRQ
andOTA_NotifReportRQ
).
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 using the pull method, your PMS requests reservations from SiteMinder at regular intervals (typically every 2-5 minutes) using a synchronous SOAP/HTTPS exchange. SiteMinder responds with any pending reservations, modifications, and cancellations that haven't been delivered yet. This process involves two request-response cycles to ensure reliable delivery and confirmation.
Pull Request (PMS to SiteMinder):
OTA_ReadRQ
Requests undelivered reservations, modifications, and cancellations from SiteMinder.Reservations Response (SiteMinder to PMS):
OTA_ResRetrieveRS
Delivers a list of reservations (new bookings, modifications, and cancellations) in response to the pull request.Confirmation Request (PMS to SiteMinder):
OTA_NotifReportRQ
Confirms successful receipt or reports processing failure of the received reservations by the PMS.Receipt Response (SiteMinder to PMS):
OTA_NotifReportRS
Acknowledges the confirmation and completes the pull transaction cycle.
Security Header
The Security Header is a mandatory SOAP header that authenticates every 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="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<wsse:Security soap:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<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">PASSWORD</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<OTA_ReadRQ
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">
<!-- ... other elements and attributes have been omitted for brevity ... -->
</OTA_ReadRQ>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
The PMS must send OTA_HotelAvailNotifRQ
to SiteMinder with the updated availability after the reservations, modifications, and cancellations are processed on the PMS system. Refer to the Availability and Restrictions.
Multiplicity
In the SOAP Specification tables 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. Pull Request Structure
The PMS uses OTA_ReadRQ
to pull reservations from SiteMinder at regular intervals between 2-5 minutes. The request frequency must be no more than every 2 minutes (e.g. not every 1 minute) and no less than every 5 minutes (e.g. not every 6 minutes).
Returns all undelivered reservations, modifications, and cancellations for all hotels
associated with PMS code: {PMSCODE}
Requirements: PMS Level authentication.
<OTA_ReadRQ
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>
<ReadRequests>
<HotelReadRequest>
<SelectionCriteria SelectionType="Undelivered"/>
</HotelReadRequest>
</ReadRequests>
</OTA_ReadRQ>
OTA_ReadRQ
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. Preferred format: UUID 8-4-4-4-12
.
@TimeStamp
DateTime
1
Time when the request was generated. TimeStamp must use ISO 8601
format.
@Version
Decimal
1
Specifies the API version. Must be set to 1.0
.
POS / Source / RequestorID
Element
1
Identifies the system which is sending the request. Container for the PMS code.
@Type
Integer
1
Fixed at 22
(ESRP)
@ID
String
1
PMS Code assigned by SiteMinder. Remains the same throughout the messages.
ReadRequests
Element
1
ReadRequests / HotelReadRequest
Element
1
@HotelCode
String
0..1
Hotel code as recognised by SiteMinder. If omitted, all reservations for the PMS will be returned. Note: This attribute is only optional for central property management systems. It is mandatory for on-site systems.
SelectionCriteria
Element
1
@SelectionType
String
1
Must be "Undelivered
"
@ResStatus
Enumeration
0..1
Specifies the booking status:
Book
Modify
Cancel
2. Reservations Response Structure
OTA_ResRetrieveRS
The OTA_ResRetrieveRS
message returns a list of HotelReservation elements in response to the pull request. Content varies as SiteMinder aggregates reservations from multiple booking channels, each with different formats and data structures.
Key Concepts
ReservationsList
Container element returned by SiteMinder in response to pull requests
May contain zero, one, or multiple HotelReservation elements
Empty when no pending reservations are available
HotelReservation
Represents a single booking from one channel
Multiple reservations can be returned in one ReservationsList
Each includes all associated rooms, guests, and payments
RoomStays
Container for all room bookings within each reservation
Each room type booked creates a separate RoomStay
Example: 2 Double Rooms + 1 Suite = 3 RoomStay elements
Split Stays
When a guest changes room type during their stay
Creates multiple RoomStays with different date ranges
Example: Double Room (Jan 1-3) + Suite (Jan 3-5) = 2 RoomStays
Guest Assignment
ResGuests can be linked to specific RoomStays via ResGuestRPH
Some channels provide no guest details (ResGuests may be empty)
Primary guest indicated by PrimaryIndicator="true"
Batch Processing
Single pull request can retrieve multiple reservations
Each HotelReservation processed independently
All retrieved reservations must be confirmed via
OTA_NotifReportRQ
Contains
<Success/>
element.Includes
<ReservationsList>
with one or more reservations.Each reservation has unique SiteMinder identifiers (e.g.,
ABC-1234567890
,CBA-0987654321
), with the corresponding message IDs (e.g.,isuokfr1pyc2ntest7
andpbp6s5j08test9n0zi
).
<OTA_ResRetrieveRS
xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2024-07-06T15:27:45+00:00" EchoToken="ed8835ff-6198-4f38-b589-3058397f677c">
<Success/>
<ReservationsList>
<HotelReservation CreateDateTime="2024-07-06T15:23:35+00:00" ResStatus="Book">
<UniqueID Type="14" ID="ABC-1234567890"/>
<UniqueID Type="16" ID="isuokfr1pyc2ntest7" ID_Context="MESSAGE_UNIQUE_ID"/>
<!-- HOTEL RESERVATION DETAILS OMITTED -->
</HotelReservation>
<HotelReservation CreateDateTime="2024-07-06T15:23:35+00:00" ResStatus="Book">
<UniqueID Type="14" ID="CBA-0987654321"/>
<UniqueID Type="16" ID="pbp6s5j08test9n0zi" ID_Context="MESSAGE_UNIQUE_ID"/>
<!-- HOTEL RESERVATION DETAILS OMITTED -->
</HotelReservation>
<!-- Additional HotelReservation elements -->
</ReservationsList>
</OTA_ResRetrieveRS>
OTA_ResRetrieveRS
Element
1
Root element
@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. Preferred format: UUID 8-4-4-4-12
.
@TimeStamp
DateTime
1
Time when the response was generated. TimeStamp must use ISO 8601
format.
@Version
String
1
Specifies the API version.
Must be set to 1.0
Success
Element
0..1
Either Success
or Error
element present.
Errors
Element
0..1
Contains a list of errors.
Error
Element
1
Single error information containing free text.
ReservationsList
<ReservationsList>
<HotelReservation CreateDateTime="2024-07-06T15:23:35+00:00" ResStatus="Book">
<UniqueID Type="14" ID="ABC-1234567890"/>
<UniqueID Type="16" ID="isuokfr1pyc2ntest7" ID_Context="MESSAGE_UNIQUE_ID"/>
<!-- HOTEL RESERVATION DETAILS OMITTED -->
</HotelReservation>
<HotelReservation CreateDateTime="2024-07-06T15:23:35+00:00" ResStatus="Book">
<UniqueID Type="14" ID="CBA-0987654321"/>
<UniqueID Type="16" ID="pbp6s5j08test9n0zi" ID_Context="MESSAGE_UNIQUE_ID"/>
<!-- HOTEL RESERVATION DETAILS OMITTED -->
</HotelReservation>
<!-- Additional HotelReservation elements -->
</ReservationsList>
ReservationsList
Element
0..1
Contains a list of retrieved reservations.
HotelReservation
Element
1..n
Contains the specific reservation information.
@CreateDateTime
DateTime
1
Date and time when the reservation was first made.
Must be set when ResStatus
is Book
.
CreateDateTime
must follow the ISO 8601
Date and Time format.
@LastModifyDateTime
DateTime
0..1
Date and time when the reservation was last modified.
Must be set when ResStatus
is Modify
or Cancel
.
LastModifyDateTime
must follow the ISO 8601
Date and Time format.
@ResStatus
Enumeration
1
Specifies the booking status:
Book
Modify
Cancel
UniqueID
Element
1..2
Unique identifier of the reservation in SiteMinder.
- The first UniqueID Type="14"
is the unique identifier for the entire reservation and through any subsequent modifications or cancellations.
The second UniqueID Type="16"
with ID_Context="MESSAGE_UNIQUE_ID"
is the unique ID for this message. This identifier must be used to confirm the message once processed.
@Type
Integer
1
Type="14"
: Identifier for the reservation in SiteMinder.
Type="16"
: Identifier for the message transferring the reservation.
@ID
String
1
SiteMinder reservation ID.
Refer to the HotelReservationID
attribute for the booking source/channel reservation ID.
@ID_Context
String
0..1
Present for the second UniqueID and always will be "MESSAGE_UNIQUE_ID
"
Source
<POS>
<Source>
<RequestorID Type="22" ID="SITEMINDER"/>
<BookingChannel Primary="true" Type="7">
<CompanyName Code="ABC">Booking Channel</CompanyName>
</BookingChannel>
</Source>
<!-- Additional Source element -->
</POS>
POS
Element
1
Contains Source
details.
Source
Element
1..2
Contains BookingChannel
details.
RequestorID
Element
1
Only present in the first Source
element. Identifies the system sending the reservation.
@Type
Integer
1
Must be set to 22
(ESRP).
@ID
String
1
Always SITEMINDER
BookingChannel
Element
1
Contains booking channel information.
@Primary
Boolean
1
true
for the primary booking channel in the first Source element.
false
in the second Source element, if present.
@Type
Integer
1
Always 7
for 'Internet'.
CompanyName
Element
1
Name of the Booking Channel.
NOTE: This name is subject to change/variation by the Booking Channel. Use the Code
attribute below to identify the booking channels.
RoomStays
<RoomStays>
<RoomStay MarketCode="Corporate" PromotionCode="STAYANDSAVE" SourceOfBusiness="Radio">
<RoomTypes>
<RoomType RoomType="Double Room" RoomTypeCode="DR" NonSmoking="true" Configuration="2 Beds and 1 cot">
<!-- Additional RoomType elements -->
</RoomType>
</RoomTypes>
<RatePlans>
<!-- Additional RatePlan elements -->
</RatePlan>
</RatePlans>
<RoomRates>
<RoomRate RoomTypeCode="DR" RatePlanCode="RAC1" NumberOfUnits="1">
<!-- Additional RoomRate elements -->
</RoomRate>
</RoomRates>
<!-- Additional RoomStay elements -->
</RoomStay>
</RoomStays>
RoomStays
Element
1
Contains details of all room stays.
RoomStay
Element
1..n
One instance of RoomStay
per room type booked.
@PromotionCode
String
0..1
If configured, this is the promotion code indicating, for instance, a specific marketing campaign (not the rate code).
@MarketCode
String
0..1
A code to match a market segment for the booking.
@SourceOfBusiness
String
0..1
Specifies where the business came from e.g. radio, newspaper ad, etc.
RoomTypes
<RoomTypes>
<RoomType RoomType="Double Room" RoomTypeCode="DR" NonSmoking="true" Configuration="2 Beds and 1 cot">
<RoomDescription>
<Text>Double room</Text>
</RoomDescription>
<AdditionalDetails>
<AdditionalDetail Type="4" Code="PIA">
<DetailDescription>
<Text>Room paid in advance with credit card</Text>
</DetailDescription>
</AdditionalDetail>
<AdditionalDetail Type="5" Code="ECB">
<DetailDescription>
<Text>Continental breakfast included</Text>
</DetailDescription>
</AdditionalDetail>
</AdditionalDetails>
</RoomType>
</RoomTypes>
RoomTypes
Element
0..1
Provides more information about the room type for this room stay.
RoomType
Element
0..1
Contains specific information about the room type.
@RoomTypeCode
String
0..1
Code of the room booked.
@NonSmoking
Boolean
0..1
Provided by the source channel.
@Configuration
String
0..1
Information about the bedding configuration.
RoomDescription
Element
0..1
Description of the room.
@Text
String
0..1
Name of the room.
AdditionalDetails
Element
0..1
Additional room information provided by the source channel.
AdditionalDetail
Element
0..n
@Type
Integer
1
Eefer to the OTA Additional Detail Type (ADT) Code Table Common usages are:
43
- Meal plan information
15
- Promotion information
@Code
String
0..1
Reference code provided by the source channel.
DetailDescription
Element
0..1
Contains the description Text
.
@Text
String
1
Details provided by the source channel.
RatePlans
<RatePlans>
<RatePlan RatePlanCode="RAC1" EffectiveDate="2025-03-12" ExpireDate="2025-03-14" RatePlanName="RACK Rate1">
<RatePlanDescription>
<Text>Long Stay Discount</Text>
</RatePlanDescription>
<AdditionalDetails>
<AdditionalDetail Type="15" Code="EB1">
<DetailDescription>
<Text>Stay n Save promotion grants 10% discount</Text>
</DetailDescription>
</AdditionalDetail>
<AdditionalDetail Type="43">
<DetailDescription>
<Text>Continental breakfast included</Text>
</DetailDescription>
</AdditionalDetail>
</AdditionalDetails>
</RatePlan>
</RatePlans>
RatePlans
Element
0..1
Provides more information about the rate plan for this room stay.
RatePlan
Element
0..n
Contains details about the specific rate plan.
@RatePlanCode
String
0..1
Code of the rate booked.
@RatePlanName
String
0..1
Name of the rate plan.
@EffectiveDate
1
The effective date of the RatePlan
.
@ExpireDate
Date
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.
RatePlanDescription
Element
0..1
Contains the description Text
.
@Text
String
0..1
Details provided about the rate plan.
AdditionalDetails
Element
0..1
Additional rate plan information provided by the source channel.
AdditionalDetail
Element
0..n
@Type
Integer
1
Eefer to the OTA Additional Detail Type (ADT) Code Table Common usages are:
43
- Meal plan information
15
- Promotion information
@Code
String
0..1
Reference code provided by the source channel.
DetailDescription
Element
0..1
Contains the description Text
.
@Text
String
1
Details provided by the source channel.
RoomRates
<RoomRates>
<RoomRate RoomTypeCode="DR" RatePlanCode="RAC1" NumberOfUnits="1">
<Rates>
<Rate UnitMultiplier="2" RateTimeUnit="Day" EffectiveDate="2025-03-12" ExpireDate="2025-03-14">
<Base AmountBeforeTax="100.00" AmountAfterTax="110.00" CurrencyCode="USD">
<Taxes Amount="10.00">
<Tax Code="19" Percent="10" Amount="10.00">
<TaxDescription>
<Text>GST 10 percent</Text>
</TaxDescription>
</Tax>
</Taxes>
</Base>
<Total AmountBeforeTax="102.50" AmountAfterTax="112.75" CurrencyCode="USD">
<Taxes Amount="10.25">
<Tax Code="19" Percent="10" Amount="10.25">
<TaxDescription>
<Text>GST 10 percent</Text>
</TaxDescription>
</Tax>
</Taxes>
</Total>
</Rate>
<!-- Additional Rate -->
</Rates>
<ServiceRPHs>
<ServiceRPH RPH="1"/>
<!-- Additional ServiceRPH -->
</ServiceRPHs>
</RoomRate>
<!-- Additional RoomRate -->
</RoomRates>
RoomRates
Element
1
A RoomStay
can include multiple RoomRate
, each containing several rates. This occurs when a single room is booked, but different rate plans apply across the duration of the stay.
RoomRate
Element
1..n
One RoomRate per RoomStay. Multiple rates are listed under the RoomRate.
@RoomTypeCode
String
1
Code of the room booked.
@RatePlanCode
String
1
Code of the rate plan booked.
@NumberOfUnits
Integer
1
Always 1
. Each room will be listed in it's own RoomStay element.
Rates
Element
0..1
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.
Rate
Element
1..n
Contains the daily rate information which matches the entire date range specified in the RoomStay/TimeSpan
element.
@UnitMultiplier
Integer
1
Equal to the number of days between EffectiveDate
and ExpireDate
. Multiply with the UnitMultiplier
to get the total cost for the date span.
@RateTimeUnit
String
1
Always Day
.
@EffectiveDate
Date
1
Starting date of the rate. This date is inclusive.
@ExpireDate
Date
1
First day after the applicable period. This date is exclusive.
Base
Element
0..1
Base/Gross per-day amount charged for the room.
@AmountBeforeTax
Decimal
0..1
The unit amount before tax.
@AmountAfterTax
Decimal
0..1
The unit amount after tax.
@CurrencyCode
String
0..1
Use ISO 4217
currency codes.
Taxes
Element
0..1
Contains details of the taxes applied.
@Amount
Decimal
0..1
The unit tax amount.
Tax
Element
0..n
Contains specific tax information.
@Code
String
1
Indicates the specific tax or fee that is being transferred. Refer to Fee Tax Type (FTT).
@Amount
Decimal
0..1
Tax amount applied.
@Percentage
Decimal
0..1
Tax percentage.
TaxDescription
Element
0..1
Contains the tax description Text
.
@Text
String
1
Text description of the tax.
Total
Element
0..1
Base Rate + any additional occupants and fees/extras. If empty, assume the Base amount equals the Total amount.
NOTE: It is possible that some OTAs do not provide any form of Rate information and as such a RoomRate / Rate / Total cannot be provided in such cases. Currently Hotelbeds (HBD) is a known channel that does not always provide Rate information.
NOTE: Any extras that are to be included in the RoomRate total will be linked through the ServiceRPH node.
@AmountBeforeTax
Decimal
0..1
The total amount before tax.
@AmountAfterTax
Decimal
0..1
The total amount after tax.
@CurrencyCode
String
1
Use ISO 4217
currency codes.
Taxes
Element
0..1
Contains details of the total taxes applied.
@Amount
Decimal
0..1
The total tax amount.
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.
@Percentage
0..1
Tax percentage.
TaxDescription
0..1
Text description of the tax.
@Text
String
1
ServiceRPHs
Element
0..1
Container for the ServiceRPH
elements.
ServiceRPH
Element
0..n
Links a service to the Service information at the RoomRate
level.
@RPH
Integer
1..n
Links a Service
to the Service information provided at the HotelReservation level (if applicable) to this RoomRate
.
GuestCounts
<GuestCounts>
<GuestCount AgeQualifyingCode="10" Count="2"/>
<GuestCount AgeQualifyingCode="8" Count="1"/>
<GuestCount AgeQualifyingCode="7" Count="1"/>
</GuestCounts>
GuestCounts
Element
1
Total guest counts for adult, child, and infant. Adult count must always be sent.
GuestCount
Element
1..3
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.
TimeSpan
<TimeSpan Start="2025-10-05" End="2025-10-08"/>
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.
RoomStay Total
<Total CurrencyCode="USD" AmountBeforeTax="500.00" AmountAfterTax="615.00">
<Taxes Amount="115.00">
<Tax Amount="50.00" Code="10">
<TaxDescription>
<Text>Occupancy Tax</Text>
</TaxDescription>
</Tax>
<Tax Amount="65.00" Code="13">
<TaxDescription>
<Text>Sales Tax</Text>
</TaxDescription>
</Tax>
</Taxes>
</Total>
Total
Element
0..1
The total amount of the RoomStay
.
@AmountBeforeTax
Decimal
0..1
The total amount before tax.
@AmountAfterTax
Decimal
0..1
The total amount after tax.
@CurrencyCode
String
0..1
Use ISO 4217
currency codes.
Taxes
Element
0..1
Contains details of the taxes applied.
@Amount
Decimal
0..1
The total tax amount.
Tax
Element
0..n
Contains specific tax information.
@Code
String
1
Indicates the specific tax or fee that is being transferred. Refer to Fee Tax Type (FTT).
@Amount
Decimal
0..1
Amount of the tax/fee transferred.
@Percentage
Decimal
0..1
Tax percentage.
TaxDescription
Element
0..1
Contains the tax description Text
.
@Text
String
1
Text description of the tax
BasicPropertyInfo
<BasicPropertyInfo HotelCode="HOTELCODE" HotelName="The Hotel Name"/>
BasicPropertyInfo
Element
0..1
Contains basic identification details for the hotel associated with the reservation.
BasicPropertyInfo
will always be sent as either part of the RoomStay or ResGlobalInfo, depending on your setup in SiteMinder. We recommend receiving the BasicPropertyInfo
as part of the ResGlobalInfo
due to how Booking.com cancellation messages are sent.
@HotelCode
String
1
Identifier for the hotel.
@HotelName
String
0..1
Name of the hotel.
ServiceRPHs
<ServiceRPHs>
<ServiceRPH RPH="1"/>
<!-- Additional ServiceRPH elements -->
</ServiceRPHs>
ServiceRPHs
Element
0..1
Container for the ServiceRPH
elements.
ServiceRPH
Element
1..n
Service at the RoomStay
level.
@RPH
Integer
1
Links a Service
to the Service information provided at the HotelReservation level (if applicable).
ResGuestRPHs
<ResGuestRPHs>
<ResGuestRPH RPH="1"/>
<!-- Additional ResGuestRPH elements -->
</ResGuestRPHs>
ResGuestRPHs
Element
0..1
Container for the ResGuestRPH
elements.
ResGuestRPH
Element
1..n
Container for the RPH
attribute.
Comments
<Comments>
<Comment>
<Text>See the room stay comments here</Text>
</Comment>
</Comments>
Comments
Element
0..1
Contains comment for the RoomStay
.
Comment
Element
1..n
Holds the actual comment.
Text
Element
1
The content of the comment.
PCI sensitive data is prohibited.
Services
<Services>
<Service ServiceInventoryCode="EXTRA_BED" Inclusive="true" ServiceRPH="1" Quantity="1" ID="12346" ID_Context="CHANNEL" Type="18">
<Price>
<Base AmountBeforeTax="2.50" AmountAfterTax="2.75" CurrencyCode="EUR">
<Taxes Amount="0.25">
<Tax Code="19" Percent="10" Amount="0.25">
<TaxDescription>
<Text>GST 10 percent</Text>
</TaxDescription>
</Tax>
</Taxes>
</Base>
<Total AmountBeforeTax="5.00" AmountAfterTax="5.50" CurrencyCode="EUR">
<Taxes Amount="0.50">
<Tax Code="19" Percent="10" Amount="0.50">
<TaxDescription>
<Text>GST 10 percent</Text>
</TaxDescription>
</Tax>
</Taxes>
</Total>
<RateDescription>
<Text>Extra person charge EUR 2.50 per day for cot</Text>
</RateDescription>
</Price>
<ServiceDetails>
<TimeSpan Start="2025-03-12" End="2025-03-14"/>
</ServiceDetails>
</Service>
<!-- Additional Service elements -->
</Services>
Services
Element
0..1
Contains service details provided to guests.
Service
Element
1..n
Represents a non-room product provided to guests.
@ServiceInventoryCode
String
1
Identifier code for the service. Refer to Service and Extra Charge. Channels/OTA's will use this list as a guide to code the extras/services or can use their own codes as well. Please request the property or the channel for the full list of extras/services and the codes configured in each channel.
@ID
String
0..1
Reference ID for the extra/service provided by the source booking channel.
@ServiceRPH
Integer
0..1
Links the Service
to a RoomStay
or RatePlan
. ServiceRPH
absence indicates a HotelReservation-level charge.
@Inclusive
Boolean
1
Must be set to TRUE
, as SiteConnect reports totals as inclusive of charges and extras.
@Quantity
Integer
1
Number of units included in the charge. This value does not affect the total amount.
@ID_Context
String
0..1
Always CHANNEL
@Type
Integer
1
Always 18
Price
Element
1
Container for pricing details of the service.
Base
Element
0..1
Base amount per unit charged for the service.
@CurrencyCode
String
0..1
Use ISO 4217
currency codes.
@AmountAfterTax
Decimal
0..1
At least one of AmountAfterTax
or AmountBeforeTax
must be set.
@AmountBeforeTax
Decimal
0..1
At least one of AmountAfterTax
or AmountBeforeTax
must be set.
Taxes
Element
0..1
Contains details of the taxes applied.
@Amount
Decimal
0..1
Total taxes amount.
Tax
Element
1
Contains specific tax information.
@Percentage
Decimal
0..1
Percentage rate of the applied tax.
@Amount
Decimal
0..1
Tax amount applied.
TaxDescription
Element
0..1
Container for a detailed description of the tax.
Text
Element
1
Text description of the tax.
Total
Element
1
Container for the total amount of the service.
@CurrencyCode
0..1
Use ISO 4217
currency codes.
@AmountAfterTax
Decimal
0..1
At least one of AmountAfterTax
or AmountBeforeTax
must be set.
@AmountBeforeTax
Decimal
0..1
At least one of AmountAfterTax
or AmountBeforeTax
must be set.
Taxes
Element
0..1
Contains details of the taxes applied.
@Amount
Decimal
0..1
Total taxes amount.
Tax
Element
1
Contains specific tax information.
@Percentage
Decimal
0..1
Percentage rate of the applied tax.
@Amount
Decimal
0..1
Tax amount applied.
TaxDescription
Element
0..1
Container for a detailed description of the tax.
Text
Element
1
Text description of the tax.
RateDescription
Element
0..1
Container for a description of the rate applied to the service.
Text
Element
1
A text description of the service/extra.
ServiceDetails
Element
0..1
Container for additional service details.
TimeSpan
Element
0..1
Contains the time span for which the service is provided.
@Start
Date
0..1
Start date of service.
@End
Date
0..1
Last date of service.
ResGuests
<ResGuests>
<ResGuest ResGuestRPH="1" ArrivalTime="10:30:00" Age="8" PrimaryIndicator="true">
<Profiles>
<ProfileInfo>
<UniqueID Type="16" ID="12345" ID_Context="CHANNEL"/>
<Profile ProfileType="1">
<Customer>
<PersonName>
<NamePrefix>Mr</NamePrefix>
<GivenName>James</GivenName>
<MiddleName>Herbert</MiddleName>
<Surname>Bond</Surname>
</PersonName>
<Telephone PhoneNumber="555-1234"/>
<Telephone PhoneNumber="555-4321" PhoneUseType="4"/>
<Telephone PhoneNumber="0411444000" PhoneTechType="5"/>
<Telephone PhoneNumber="213451515" PhoneTechType="3"/>
<Email>[email protected]</Email>
<Address>
<AddressLine>Claretta House</AddressLine>
<AddressLine>Tower Bridge Close</AddressLine>
<CityName>London</CityName>
<PostalCode>EC1 2PG</PostalCode>
<StateProv>Middlesex</StateProv>
<CountryName>United Kingdom</CountryName>
</Address>
<CustLoyalty MembershipID="1234567890" ProgramID="FrequentFlyer" ExpiryDate="2017-03-31"/>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
<Comments>
<Comment Name="ArrivalDetails">
<Text>Arriving by coach</Text>
</Comment>
<Comment Name="DepartureDetails">
<Text>Departure flight QF123</Text>
</Comment>
</Comments>
</ResGuest>
<!-- Additional ResGuest elements -->
</ResGuests>
ResGuests
Element
1
Contains the guests for the reservation.
ResGuest
Element
1..n
Contains the specific guest details.
@PrimaryIndicator
Boolean
0..1
Indicates the primary guest on a reservation:
1
- primary guest
0
- secondary guests
@Age
Integer
0..1
The age of the guest
@ArrivalTime
Time
0..1
Arrival time of the guest.
Profiles
Element
1
Contains the guest profile information.
ProfileInfo
Element
1
Contains the profile information for the guest.
UniqueID
Element
0..n
Contains profile ids provided by the source channel.
@Type
Integer
1
Always 16
@ID
1
The reference identifier for the profile as provided by the source channel.
@ID_Context
String
1
CHANNEL
- To specify that this is a channel reference id/
Profile
Element
1
Contains detailed customer profile information.
@ProfileType
Integer
1
Must be set to 1
(Customer).
Customer
Element
1
Contains detailed guest information.
PersonName
Element
1
Contains the name information for the guest.
@NamePrefix
String
0..1
Title of the guest: Mr. Mrs. Ms. Miss Dr.
@GivenName
String
1
First name of the guest.
@MiddleName
String
0..1
Middle name of the guest.
@Surname
String
1
Last name of the guest.
Telephone
Element
0..4
Contains telephone information related to the guest.
@PhoneNumber
String
1
Contains the actual number (maximum 32 characters).
@PhoneUseType
Integer
0..1
The type of phone use for example daytime, nighttime, work. If this field is blank this is the primary phone, otherwise PhoneUseType="4" denotes a secondary or nighttime phone
@PhoneTechType
Integer
0..1
The type of phone technology. If not provided it should be assumed as a landline:
5
- Mobile
3
- Fax
Email
Element
0..1
Contact email address.
Address
Element
0..1
Address information of the guest.
@AddressLine
String
0..n
Address lines for the guest.
@CityName
String
0..1
City of residence.
@PostalCode
String
0..1
Postal code.
@StateProv
String
0..1
State or province name.
@CountryName
String
0..1
Contains country information (maximum 64 characters). This is a free-text field, so a variety of formats may be received—for example: Australia, AUS, AU, etc.
CustLoyalty
Element
0..1
Contains loyalty information for the customer.
@ProgramID
String
0..1
The code or name of the membership program ('Hertz', 'AAdvantage', etc.).
@MembershipID
String
0..1
Account identification number for this particular member in this particular program.
@ExpiryDate
Date
0..1
Expiry date for this particular membership record in this particular program.
Document
Element
0..1
Detailed document information for the guest.
@BirthCountry
String
0..1
Birth country of the document holder. Use ISO 3166
A-2 country codes.
@BirthDate
Date
0..1
Indicates the date of birth as indicated in the document. Use ISO 8601
date format.
@BirthPlace
String
0..1
Specifies the birth place of the document holder (e.g., city, state, county, province).
@DocHolderNationality
String
0..1
Country of nationality of the document holder. Use ISO 3166
A-2 country codes.
@DocID
String
1
Unique number assigned by authorities to the document.
@DocIssueAuthority
String
0..1
Indicates the group or association that granted the document.
@DocIssueCountry
String
0..1
Country where the document was issued. Use ISO 3166
A-2 country codes.
@DocIssueLocation
String
0..1
Indicates the location where the document was issued.
@DocIssueStateProv
String
0..1
State or Province where the document was issued.
@EffectiveDate
Date
0..1
Indicates the starting date.
@ExpireDate
Date
0..1
Indicates the ending date.
@Gender
String
0..1
Identifies the gender:
Female
Male
Unknown
DocumentHolderName
Element
0..1
The name of the document holder in unformatted text (Mr. Sam Jones). If no DocumentHolderName
is included, the guest name fields will be assumed as the holder name.
Comments
Element
0..1
Container for extra information about the guest.
Comment
Element
0..2
Holds the actual comment.
@Name
String
0..1
Identifier for the comment. Current supported names are:
ArrivalDetails
: Details about the guest's mode of arrival.
DepartureDetails
: Details about the guest's mode of departure.
Text
Element
1
The content of the comment.
PCI sensitive data is prohibited.
ResGlobalInfo
<ResGlobalInfo>
<HotelReservationIDs>
<HotelReservationID ResID_Type="14" ResID_Value="1234567890"/> <!-- Reservation ID -->
<HotelReservationID ResID_Type="26" ResID_Value="987654321"/> <!-- Itinerary ID -->
<HotelReservationID ResID_Type="34" ResID_Value="74a63a92-d988-46b8-8476-3319285af8ac"/> <!-- Payment Context ID -->
</HotelReservationIDs>
<!-- ... other elements and attributes have been omitted for brevity ... -->
</ResGlobalInfo>
ResGlobalInfo
Element
1
Contains global information about the reservation.
HotelReservationIDs
Element
0..1
Contains the HotelReservationID
.
HotelReservationID
Element
0..3
Reference number/string or PNR as supplied by the booking channel.
If this reservation is linked under an itinerary, the itinerary ID will be supplied as a second HotelReservationID
.
@ResID_Type
String
1
Will be one of the following values:
14
- OTA code for 'Travel Agent PNR'.
26
- OTA code for 'Associated itinerary reservation'.
34
- OTA code for “Master Reference”.
@ResID_Value
String
1
For @ResID_Type 14
this is the actual reference number/string supplied by the booking channel (maximum 64 characters).
For @ResID_Type 26
will be the itinerary identifier for one or more bookings in an itinerary as provided by the source booking channel.
For @ResID_Type 34
this is the reference number/string used as identifier for payment transaction. Refer to Payment Transaction Record.
ResID_Value
could potentially contain special characters such as /
.
ResComments
<Comments>
<Comment>
<Text>See the reservation comments here</Text>
</Comment>
<!-- Additional Comment elements -->
</Comments>
Comments
Element
0..1
Contains comment for the reservation.
Comment
Element
1..n
Holds the actual comment.
Text
String
1
Content of the comment.
PCI sensitive data is prohibited.
ReservationTotal
<Total CurrencyCode="EUR" AmountBeforeTax="558.00" AmountAfterTax="620.00">
<Taxes Amount="62.00">
<Tax Code="35" Amount="62.00" Percent="10" CurrencyCode="EUR"/>
</Taxes>
</Total>
Total
Element
1
Total amount for the reservation. This includes all RoomStays
and any additional fees or charges that apply.
@CurrencyCode
String
1
Use ISO 4217
currency codes.
@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.
Taxes
Element
0..1
Contains details of the taxes applied.
@Amount
Decimal
0..1
Total tax amount.
Tax
Element
1
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.
@Percent
0..1
Tax percentage applied.
@CurrencyCode
String
0..1
Use ISO 4217
currency codes.
Memberships
<Memberships>
<Membership ProgramCode="AAdvantage" AccountID="AA14567890"/>
</Memberships>
Memberships
Element
0..1
A list of Memberships. Memberships provides a list of reward programs. This data is taken from ResGuest / CustLoyalty
.
Membership
Element
0..n
ProgramCode
String
0..1
The code or name of the membership program ('Hertz', 'AAdvantage', etc.). Equivalent to ProgramID
.
AccountID
String
0..1
The account identification number for this particular member in this particular program. Equivalent to MembershipID
.
Fees
<Fees>
<Fee TaxInclusive="true" Type="Inclusive" Code="27" Amount="5.00">
<Taxes Amount="0.45"/>
<Description Name="Commission">
<Text>Commission - $5 flat fee</Text>
</Description>
</Fee>
</Fees>
Fees
Element
0..1
Container for added fees/commission.
Fee
Element
1..n
The actual fees/commission.
@TaxInclusive
String
1
Content of the comment.
PCI sensitive data is prohibited.
@Type
Integer
1
Always Inclusive
@Amount
Decimal
0..1
Commission amount.
Taxes
Element
0..1
Taxes amount.
@Amount
Decimal
0..1
Actual tax amount.
Description
Element
0..1
Container of the comission Text
.
@Name
String
0..1
Commission
against the total of the reservation.
Text
Element
0..1
A description of the fee.
Guarantee
If the PMS is not PCI compliant, it will not receive credit card information directly. However, you can choose to work with a proxy service provider for credit card tokenization.
<Guarantee>
<GuaranteesAccepted>
<GuaranteeAccepted>
<PaymentCard CardCode="VI" CardType="1" CardNumber="4444444444444444" ExpireDate="1114">
<CardHolderName>John Smith</CardHolderName>
</PaymentCard>
</GuaranteeAccepted>
</GuaranteesAccepted>
<Comments>
<Comment Name="PaymentReferenceId">
<Text>123124151616</Text>
</Comment>
</Comments>
<GuaranteeDescription>
<Text>Payment accepted up front</Text>
</GuaranteeDescription>
</Guarantee>
Guarantee
Element
0..1
Guarantee provided with the reservation. Used if no deposit is paid for the reservation.
GuaranteesAccepted
Element
1
Contains the details of accepted guarantees.
GuaranteeAccepted
Element
1
Specific details of the accepted guarantee.
PaymentCard
Element
1
Details of the payment card used for the guarantee.
@CardType
String
0..1
Must be set to 1
(Credit Card) or 2
(Debit Card).
@CardNumber
String
0..1
Actual credit card number.
@ExpireDate
String
0..1
Expiry date of the credit card (format MMyy
).
@MaskedCardNumber
String
0..1
May be used to send a concealed or partial credit card number (e.g. "xxxxxxxxxxxx4444" or "4444").
CardHolderName
Element
0..1
Name of the cardholder.
ThreeDomainSecurity
Element
0..1
Contains 3DS
(Three Domain Security) transaction details.
Results
Element
1
Transaction results.
IMPORTANT NOTE: SCA / 3DS
details will only be provided if received from an SCA / 3DS
compatible booking agent.
@ThreeDSVersion
String
1
3DS
version used for authentication.
@XID
String
0..1
Transaction identifier resulting from authentication processing.
When ThreeDSVersion
= 1.x.x the transaction identifier MUST be provided in the @XID
attribute.
@DSTransactionID
String
0..1
Unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction.
When ThreeDSVersion
= 2.x.x the transaction identifier MUST be provided in the @DSTransactionID
attribute.
@CAVV
String
0..1
Cardholder Authentication Verification Value (CAVV); Authentication Verification Value (AVV); Universal Cardholder Authentication Field (UCAF)
Comments
Element
0..1
The actual information related to the payment.
Comment
Element
1..3
Holds the actual comment.
@Name
String
1
Current supported names:
PaymentGatewayName
: The name of the payment gateway
PaymentGatewayAuthCode
: The authorization code of the payment gateway
PaymentReferenceId
: If a reference was provided for any payment
Text
Element
1
Information related to the payment.
PCI sensitive data is prohibited.
GuaranteeDescription
Element
0..1
Information about the form of guarantee.
Text
Element
1
Information related to the guarantee.
PCI sensitive data is prohibited.
DepositPayments
<DepositPayments>
<GuaranteePayment>
<AmountPercent Amount="30.00" CurrencyCode="USD" Percent="20.00"/>
<Description>
<Text>20% Deposit</Text>
</Description>
</GuaranteePayment>
</DepositPayments>
DepositPayments
Element
0..1
Deposit provided with the reservation.
GuaranteePayment
Element
1
Contains details of the payment guarantee for the reservation.
AmountPercent
Element
1
Represents the percentage of the total charge allocated for the deposit, rounded to two decimal places.
If Total/AmountAfterTax
is provided, the percentage will be based on that value. Otherwise, if only Total/AmountBeforeTax
is provided, the percentage will be calculated based on that value.
@Amount
Decimal
0..1
A monetary amount taken for the deposit.
@CurrencyCode
String
0..1
Use ISO 4217
currency codes.
@Percent
Integer
0..1
The percentage used to calculate the amount.
@TaxInclusive
0..1
Indicates if tax is included in @Amount
Description
Element
0..1
Contained of the deposit description Text
.
Text
Element
1
Text description.
Customer / Company / TravelAgent
<Profiles>
<ProfileInfo>
<UniqueID Type="16" ID="12345" ID_Context="CHANNEL"/>
<Profile ProfileType="1">
<Customer>
<Document DocID="P123456" DocType="18" Gender="unknown" BirthDate="1920-02-29" BirthCountry="US" BirthPlace="Sydney" DocHolderNationality="AU" DocIssueAuthority="ImmigionNNNNNNNN" DocIssueCountry="AU" DocIssueLocation="Sydney" DocIssueStateProvince="QLD" EffectiveDate="2020-01-01" ExpireDate="2025-01-01">
<DocumentHolderName>James Herbert</DocumentHolderName>
</Document>
<PersonName>
<NamePrefix>Mr</NamePrefix>
<GivenName>James</GivenName>
<MiddleName>Herbert</MiddleName>
<Surname>Bond</Surname>
</PersonName>
<Telephone PhoneNumber="555-1234"/>
<Telephone PhoneNumber="555-4321" PhoneUseType="4"/>
<Telephone PhoneNumber="0411444000" PhoneTechType="5"/>
<Telephone PhoneNumber="213451515" PhoneTechType="3"/>
<Email>[email protected]</Email>
<Address>
<AddressLine>Claretta House</AddressLine>
<AddressLine>Tower Bridge Close</AddressLine>
<CityName>London</CityName>
<PostalCode>EC1 2PG</PostalCode>
<StateProv>Middlesex</StateProv>
<CountryName>United Kingdom</CountryName>
<CompanyName>MI6</CompanyName>
</Address>
<CustLoyalty MembershipID="1234567890" ProgramID="FrequentFlyer" ExpiryDate="2017-03-31"/>
</Customer>
</Profile>
</ProfileInfo>
<!-- Additional ProfileInfo elements -->
</Profiles>
Profiles
Element
1
Contains the profile information.
ProfileInfo
Element
1..3
Contains the profiles.
UniqueID
Element
0..n
Contains profile ids provided by the source channel. Available for ProfileType 3
(Corporate) and ProfileType 4
(Travel Agent)
@Type
Integer
1
Always 16
@ID
1
The reference identifier for the profile as provided by the source channel
@ID_Context
String
1
CHANNEL
To specify that this is a channel reference id
IATA
To specify that this is an IATA identifier for a travel agent
Profile
Element
1
Contains detailed customer profile information.
@ProfileType
Integer
1
Defines the type of profile:
1
- Customer (mandatory)
2
- GDS (optional)
3
- Corporate (optional)
4
- Travel Agent (optional)
5
- Wholesaler (optional)
21
- Arranger (optional)
Customer
Element
1
Contains detailed guest information.
PersonName
Element
1
Contains the name information for the guest.
NamePrefix
Element
0..1
Title of the guest.
GivenName
Element
1
First name of the guest.
MiddleName
Element
0..1
Middle name of the guest.
Surname
Element
1
Last name of the guest.
Telephone
Element
0..4
Contains telephone information related to the guest.
@PhoneNumber
String
1
Contains the actual number (maximum 32 characters).
@PhoneUseType
Integer
0..1
The type of phone use for example daytime, nighttime, work. If this field is blank this is the primary phone, otherwise PhoneUseType="4" denotes a secondary or nighttime phone.
@PhoneTechType
Integer
0..1
The type of phone technology. If not provided it should be assumed as a landline
5
- Mobile
3
- Fax
Email
Element
0..1
Contact email address.
Address
Element
0..1
Address information of the guest.
AddressLine
Element
0..n
Address lines for the guest.
CityName
Element
0..1
City of residence.
PostalCode
Element
0..1
Postal code.
StateProv
Element
0..1
State or province name.
CountryName
Element
0..1
Contains country information (maximum 64 characters). This is a free-text field, so a variety of formats may be received—for example: Australia, AUS, AU, etc.
CompanyName
Element
1
Name of the company. Used for ProfileType 3
(Corporate) and ProfileType 4
(Travel Agent) only. While can be received in ProfileType 1
, it is not standard practice.
CustLoyalty
Element
0..1
Contains loyalty information for the customer.
@ProgramID
String
0..1
Defined membership program name or ID applicable to the program.
@MembershipID
String
0..1
Account identification number for this particular member in this particular program.
@ExpiryDate
Date
0..1
Expiry date for this particular membership record in this particular program.
Document
Element
0..1
Detailed document information for the guest.
@BirthCountry
String
0..1
Birth country of the document holder. Use ISO 3166
A-2 country codes.
@BirthDate
Date
0..1
Indicates the date of birth as indicated in the document. Use ISO 8601
date format.
@BirthPlace
String
0..1
Specifies the birth place of the document holder (e.g., city, state, county, province).
@DocHolderNationality
String
0..1
Country of nationality of the document holder. Use ISO 3166
A-2 country codes.
@DocID
String
1
Unique number assigned by authorities to the document.
@DocIssueAuthority
String
0..1
Indicates the group or association that granted the document.
@DocIssueCountry
String
0..1
Country where the document was issued. Use ISO 3166
A-2 country codes.
@DocIssueLocation
String
0..1
Indicates the location where the document was issued.
@DocIssueStateProv
String
0..1
State or Province where the document was issued.
@EffectiveDate
Date
0..1
Indicates the starting date.
@ExpireDate
Date
0..1
Indicates the ending date.
@Gender
String
0..1
Identifies the gender:
Female
Male
Unknown
DocumentHolderName
Element
0..1
The name of the document holder in unformatted text (Mr. Sam Jones). If no DocumentHolderName
is included, the guest name fields will be assumed as the holder name.
BasicPropertyInfo
<BasicPropertyInfo HotelCode="HOTELCODE" HotelName="The Hotel Name"/>
BasicPropertyInfo
Element
0..1
Contains basic identification details for the hotel associated with the reservation.
BasicPropertyInfo
will always be sent as either part of the RoomStay or ResGlobalInfo, depending on your setup in SiteMinder. We recommend receiving the BasicPropertyInfo
as part of the ResGlobalInfo
due to how Booking.com cancellation messages are sent.
@HotelCode
String
1
Identifier for the hotel.
@HotelName
String
0..1
Name of the hotel.
3. Confirmation Request Structure
Using OTA_NotifReportRQ
the PMS sends a confirmation message to SiteMinder for the delivery of reservations, modifications, or cancellations. If not confirmed, the information will be resent in response to the OTA_ReadRQ
message. Confirmation of delivery does not guarantee that the reservation was successfully created in the PMS. The OTA_NotifReportRQ
message can be used to confirm any erroneous deliveries.
The structure of the OTA_NotifReportRQ
does not permit a mix of successfully processed and erroneous reservations in the same message. Successfully processed reservations must be confirmed in separate OTA_NotifReportRQ
messages from those that could not be processed.
SiteMinder will automatically mark a reservation as 'Error' (fail) under the following conditions:
20 Delivery Attempts: The reservation has been requested (
OTA_ReadRQ
) at least 20 times without receiving a validOTA_NotifReportRQ
.14-Day Timeout: No delivery attempts have been made for 14 days.
1-Hour Timeout: At least one delivery attempt has been made, and it has been 1 hour since the first attempt.
Important: This mechanism is a fail-safe feature; we expect to receive either a 'Success' or 'Error' OTA_NotifReportRQ
. It should not be relied upon for handling reservations that cannot be processed.
The presence of the
<Success/>
element indicates that the reservation was created in the PMS.The UniqueID Type 16 element informs SiteMinder which reservation message is being confirmed.
The
HotelReservationID
holds the ID of the newly created reservation in the PMS.
<SOAP-ENV:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<wsse:Security soap:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<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">PASSWORD</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<OTA_NotifReportRQ
xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2024-07-06T15:27:50+00:00" EchoToken="ed8835ff-6198-4f38-b589-3058397f677">
<Success/>
<NotifDetails>
<HotelNotifReport>
<HotelReservations>
<HotelReservation CreateDateTime="2025-08-20T09:28:47+02:00" ResStatus="Book">
<UniqueID Type="16" ID="qlmumfgwx85nlkgmtb"/>
<ResGlobalInfo>
<HotelReservationIDs>
<HotelReservationID ResID_Type="14" ResID_Value="ABC-1234567890"/>
</HotelReservationIDs>
</ResGlobalInfo>
</HotelReservation>
</HotelReservations>
</HotelNotifReport>
</NotifDetails>
</OTA_NotifReportRQ>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
The presence of the
<Success/>
element indicates that the reservations were created in the PMS.The UniqueID Type 16 element informs SiteMinder which reservation message is being confirmed.
The
HotelReservationID
holds the ID of the newly created reservation in the PMS.
It is not necessary for all reservations retrieved in a single ReadRQ to be confirmed in one OTA_NotifReportRQ
message. If it’s more convenient for the PMS to send one OTA_NotifReportRQ
for each reservation, that approach is perfectly acceptable.
<SOAP-ENV:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<wsse:Security soap:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<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">PASSWORD</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<OTA_NotifReportRQ
xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2024-07-06T15:27:50+00:00" EchoToken="ed8835ff-6198-4f38-b589-3058397f677">
<Success/>
<NotifDetails>
<HotelNotifReport>
<HotelReservations>
<HotelReservation CreateDateTime="2025-11-30T14:37:11-03:00" ResStatus="Book">
<UniqueID Type="16" ID="qlmumfgwx85nlkgmtb"/>
<ResGlobalInfo>
<HotelReservationIDs>
<HotelReservationID ResID_Type="14" ResID_Value="ABC-1234567890"/>
</HotelReservationIDs>
</ResGlobalInfo>
</HotelReservation>
<HotelReservation CreateDateTime="2025-11-30T14:37:17-03:00" ResStatus="Book">
<UniqueID Type="16" ID="2frbvhw0e6ho89mkkq"/>
<ResGlobalInfo>
<HotelReservationIDs>
<HotelReservationID ResID_Type="14" ResID_Value="CBA-0987654321"/>
</HotelReservationIDs>
</ResGlobalInfo>
</HotelReservation>
</HotelReservations>
</HotelNotifReport>
</NotifDetails>
</OTA_NotifReportRQ>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
OTA_NotifReportRQ
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. Preferred format: UUID 8-4-4-4-12
.
@TimeStamp
DateTime
1
Time when the request was generated. TimeStamp must use ISO 8601
format.
@Version
Decimal
1
Specifies the API version. Must be set to 1.0
.
Success
Element
0..1
Either Success
or Error
element present.
Errors
Element
0..1
Contains a list of errors if the reservation, modification or cancellation failed to process
Error
Element
1..n
Should be at least one node if there is an Errors node.
NotifDetails / HotelNotifReport
Element
1
HotelReservations / HotelReservation
Element
1..n
One for each reservation being confirmed.
@CreateDateTime
dateTime
0..1
The time the reservation was created in the PMS.
Mandatory if ResStatus
is Book
.
@LastModifyDateTime
dateTime
0..1
The time the reservation was updated in the PMS.
Mandatory if ResStatus
is Modify
or Cancel
.
@ResStatus
String
0..1
Specifies the booking status:
Book
Modify
Cancel
UniqueID
Element
1
The identifier of the reservation message as known to SiteMinder.
@Type
Integer
1
Always 16
@ID
String
1
UniqueID of Type 16 from the OTA_ResRetrieveRS
ResGlobalInfo
Element
0..1
Mandatory if the reservation is part of a successful delivery batch.
HotelReservationIDs / HotelReservationID
Element
1
PMS reservation identifier.
@ResID_Type
Integer
1
Always 14
@ResID_Value
String
1
The identifier of the reservation created by the PMS. This is the reservation ID in the PMS.
4. Receipt Response Structure
The OTA_NotifReportRS
message is sent to the PMS as a response to the OTA_NotifReportRQ
message, confirming that SiteMinder successfully processed the request.
<SOAP-ENV:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<OTA_NotifReportRS
xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2024-07-06T15:27:57+00:00" EchoToken="ed8835ff-6198-4f38-b589-3058397f677">
<Success/>
</OTA_NotifReportRS>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Last updated
Was this helpful?