SiteMinder APIs
Help CentrePartner ContactsTest Extranet LoginBecome a SiteMinder Partner
  • Hub
  • Quickstart
  • Integration Process
  • CHANNELS
    • Introduction
      • SiteConnect
        • Getting Started
        • Developer Guide
          • Integration Requirements
          • Message Structure
          • Error Handling
        • API Reference
          • Rooms and Rates
          • Availability and Restrictions
          • Rates
          • Reservations
            • Reservation XML Sample
        • Testing and Certification
        • Changelog
        • FAQ
      • Channels Plus
        • Getting Started
        • Developer Guide
          • Partner Portal
          • Deals
          • Invoicing: Gross vs. Net
        • API Reference
          • Properties
          • Property
          • Lock Reservation
          • Confirm Reservation
          • Modify Reservation
          • Cancel Reservation
        • Testing and Certification
        • Swagger
        • Changelog
        • FAQ
  • PMS / RMS
    • Introduction
      • pmsXchange
        • Getting Started
        • Developer Guide
          • Integration Requirements
          • Message Structure
          • Error Handling
        • API Reference
          • Rooms and Rates
          • Availability and Restrictions
          • Rates
          • Reservations
            • Reservations PULL
            • Reservations Import
            • Reservations Upload
              • Reservation Types
            • Payment Transaction Record
            • Credit Card Tokenization
            • Reservations XML Samples
              • Reservations PULL Samples
              • Reservations Upload Samples
        • Testing and Certification
        • Changelog
        • FAQ
  • APPS
    • Introduction
      • SiteMinder Exchange
        • Getting Started
        • Developer Guide
          • Integration Requirements
          • Message Structure
          • Error Handling
        • API Reference
          • Availability and Rates
            • Publishers
            • Hotels
            • RoomTypes
            • RatePlans
            • Availability
            • Rates
            • Models
            • Response Samples
              • Publishers Sample
              • Hotels Sample
              • RoomTypes Samples
              • RatePlans Samples
              • Availability Samples
              • Rates Sample
            • ARI 1-Way Guidelines
          • Reservations
            • Maximum Content Sample
            • Minimum Content Sample
        • Testing and Certification
        • Activation & Deactivation Process for Hotels
          • Activation Process for Hotels
          • Activation Form Parameterisation
          • Deactivation Process for Hotels
        • Changelog
          • Reservations API Changelog
          • ARI API Changelog
        • FAQ
  • Additional Resources
    • Reference Tables
      • Booking Agent Codes
      • Document Type Code (DOC)
      • Error Codes (ERR)
      • Error Warning Types (EWT)
      • Fee Tax Type (FTT)
      • Handling HTTP 500
      • Meal Plan Type (MPT)
      • OpenTravel Codes List
      • Payment Card Provider Codes
      • Service and Extra Charge
      • Strong Customer Authentication Codes
      • Test Credit Cards
    • Glossary
    • FAQ
Powered by GitBook
On this page
  • OTA_ReadRQ
  • OTA_ResRetrieveRS
  • HotelReservation
  • Source
  • RoomStays
  • RoomTypes
  • RatePlans
  • RoomRates
  • GuestCounts
  • TimeSpan
  • RoomStay Total
  • BasicPropertyInfo
  • ServiceRPHs
  • ResGuestRPHs
  • Comments
  • Services
  • ResGuests
  • ResGlobalInfo
  • ResComments
  • ReservationTotal
  • Fees
  • Guarantee
  • DepositPayments
  • Customer / Company / TravelAgent
  • OTA_NotifReportRQ
  • OTA_NotifReportRS

Was this helpful?

  1. PMS / RMS
  2. Introduction
  3. pmsXchange
  4. API Reference
  5. Reservations

Reservations PULL

Message Exchange Workflow

  • OTA_ReadRQ - request sent by PMS to pull undelivered reservations, modifications and cancellations.

  • OTA_ResRetrieveRS - response sent by SiteMinder with a list of reservations, modifications and cancellations.

  • OTA_NotifReportRQ - request sent by PMS to confirm after processing the reservations.

  • OTA_NotifReportRS - response sent by SiteMinder to acknowledge receipt.

OTA_ReadRQ

The PMS should pull reservations every 2 to 5 minutes. This means that reservations, modifications, and cancellations should not be requested more frequently than every 2 minutes (e.g., not every 1 minute) and should not be requested less frequently than every 5 minutes (e.g., not every 10 minutes).

This message will return all undelivered reservations, modifications and cancellations for the hotel with HotelCode ABC

<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-08-01T09:30:47+08:00" EchoToken="echo-abc123">
  <POS>
    <Source>
      <RequestorID Type="22" ID="PMS1"/>
    </Source>
  </POS>
  <ReadRequests>
    <HotelReadRequest HotelCode="ABC">
      <SelectionCriteria SelectionType="Undelivered"/>
    </HotelReadRequest>
  </ReadRequests>
</OTA_ReadRQ>

This message will return all undelivered reservations, modifications and cancellations for all hotels for the PMS with code PMS1. This message is only available for centrally located PMS (uses centralised credentials to access all properties via pmsXchange).

<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-08-01T09:30:47+08:00" EchoToken="echo-abc123">
  <POS>
    <Source>
      <RequestorID Type="22" ID="PMS1"/>
    </Source>
  </POS>
  <ReadRequests>
    <HotelReadRequest>
      <SelectionCriteria SelectionType="Undelivered"/>
    </HotelReadRequest>
  </ReadRequests>
</OTA_ReadRQ>

This message will return all undelivered new reservation (ResStatus="Book") for the hotel with HotelCode ABC

<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-08-01T09:30:47+08:00" EchoToken="echo-abc123">
  <POS>
    <Source>
      <RequestorID Type="22" ID="PMS1"/>
    </Source>
  </POS>
  <ReadRequests>
    <HotelReadRequest HotelCode="ABC">
      <SelectionCriteria SelectionType="Undelivered" ResStatus="Book"/>
    </HotelReadRequest>
  </ReadRequests>
</OTA_ReadRQ>

This message will return all undelivered modifications (ResStatus="Modify") for the hotel with HotelCode ABC

<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-08-01T09:30:47+08:00" EchoToken="echo-abc123">
  <POS>
    <Source>
      <RequestorID Type="22" ID="PMS1"/>
    </Source>
  </POS>
  <ReadRequests>
    <HotelReadRequest HotelCode="ABC">
      <SelectionCriteria SelectionType="Undelivered" ResStatus="Modify"/>
    </HotelReadRequest>
  </ReadRequests>
</OTA_ReadRQ>

This message will return all undelivered cancellations (ResStatus="Cancel") for the hotel with HotelCode ABC

<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-08-01T09:30:47+08:00" EchoToken="echo-abc123">
  <POS>
    <Source>
      <RequestorID Type="22" ID="PMS1"/>
    </Source>
  </POS>
  <ReadRequests>
    <HotelReadRequest HotelCode="ABC">
      <SelectionCriteria SelectionType="Undelivered" ResStatus="Cancel"/>
    </HotelReadRequest>
  </ReadRequests>
</OTA_ReadRQ>
Element / @Attribute
Type
M
Description

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.

@TimeStamp

DateTime

1

Time when the request was generated.

@Version

Decimal

1

Specifies the API version. Must be set to 1.0.

POS / Source / RequestorID

Element

1

PMS Code assigned by SiteMinder and remains the same throughout the messages

@Type

Integer

1

Fixed at 22 (ESRP)

@ID

String

1

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:

Commit

Modify

Cancel

OTA_ResRetrieveRS

The message consists of a list of HotelReservation elements. The content may vary since SiteMinder delivers reservations from multiple upstream sources (Booking Channels), many of which have significantly different reservation formats and data structures.

In general, the following applies to HotelReservations:

  • A HotelReservation represents a single reservation made with an upstream system.

  • A HotelReservation can include one or more RoomStays, one for each booked room type.

  • A RoomStay signifies a stay in a specific room type over a continuous timespan; non-continuous stays (split stays) will result in multiple RoomStays.

  • A HotelReservation may have zero, one, or multiple ResGuests associated with either the RoomStay they occupy or the reservation itself.

The <Success/> element indicates a successful response. In this example, two new reservations are returned. The SiteMinder reservation identifiers are WTF-12345 and HTL-67890, with the corresponding message IDs being isuokfr1pyc2ntest7 and pbp6s5j08test9n0zi.

<OTA_ResRetrieveRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-08-01T09:32:47+08:00" EchoToken="echo-abc123">
  <Success/>
  <ReservationsList>
    <HotelReservation CreateDateTime="2022-12-09T08:51:45+00:00" ResStatus="Book">
      <UniqueID Type="14" ID="WTF-12345"/>
      <UniqueID Type="16" ID="isuokfr1pyc2ntest7" ID_Context="MESSAGE_UNIQUE_ID"/>
      <!-- HOTEL RESERVATION DETAILS OMITTED -->
    </HotelReservation>
    <HotelReservation CreateDateTime="2022-12-09T08:51:45+00:00" ResStatus="Book">
      <UniqueID Type="14" ID="HTL-67890"/>
      <UniqueID Type="16" ID="pbp6s5j08test9n0zi" ID_Context="MESSAGE_UNIQUE_ID"/>
      <!-- HOTEL RESERVATION DETAILS OMITTED -->
    </HotelReservation>
  </ReservationsList>
</OTA_ResRetrieveRS>

The presence of the <Success/> element indicates successful processing; however, the absence of the ReservationsList element signifies that no undelivered reservations were available.

<OTA_ResRetrieveRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-08-01T09:31:00+08:00" EchoToken="echo-abc123">
  <Success/>
</OTA_ResRetreiveRS>

The presence of the <Errors/> element indicates an error in business logic occurred.

<OTA_ResRetrieveRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-08-01T09:31:00+08:00" EchoToken="echo-abc123">
  <Errors>
    <Error Type="3" Code="392">Invalid Hotel Code</Error>
  </Errors>
</OTA_ResRetreiveRS>

HotelReservation

<OTA_ResRetrieveRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-12-09T08:55:47+00:00" EchoToken="echo-abc123">
    <Success/>
    <ReservationsList>
        <HotelReservation CreateDateTime="2025-12-09T08:51:45.000+0000" ResStatus="Book">
            <POS>
                <Source>
                <!-- ... other elements and attributes have been omitted for brevity ... -->
                </Source>
            </POS>
            <UniqueID Type="14" ID="EXP-2025"/>
            <UniqueID Type="16" ID="hltest89ti7rbntest" ID_Context="MESSAGE_UNIQUE_ID"/>
Element / @Attribute
Type
M
Description

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.

@LastModifyDateTime

DateTime

0..1

Date and time when the reservation was last modified. Must be set when ResStatus is Modify or 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 should 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="EXP">Expedia</CompanyName>
        </BookingChannel>
    </Source>
    <!-- Additional Source element -->
</POS>
<POS>
    <Source>
        <RequestorID Type="22" ID="SITEMINDER"/>
        <BookingChannel Primary="true" Type="7">
            <CompanyName Code="EXP">Expedia</CompanyName>
        </BookingChannel>
    </Source>
    <Source>
        <BookingChannel Primary="false" Type="7">
            <CompanyName Code="EXPA">Expedia Affilate Account</CompanyName>
        </BookingChannel>
    </Source>
</POS>
Element / @Attribute
Type
M
Description

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

Value is 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.

@Code

String

0..1

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>
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.

@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>
Element / @Attribute
Type
M
Description

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

1

Description of the room.

@Text

String

1

Name of the room.

AdditionalDetails

Element

0..n

Additional room information provided by the source channel.

AdditionalDetail

Element

0..n

@Type

Integer

1

43: Meal plan information 15: Promotion information

@Code

String

0..1

Reference code provided by the source channel

DetailDescription

Element

0..1

@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>
Element / @Attribute
Type
M
Description

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

@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

Description of the rate plan.

@Text

String

0..1

AdditionalDetails

Element

0..n

Additional rate plan information provided by the source channel.

AdditionalDetail

Element

0..n

@Type

Integer

1

43: Meal plan information 15: Promotion information

@Code

String

0..1

Reference code provided by the source channel

DetailDescription

Element

0..1

@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>
   <RoomRate RoomTypeCode="TPL" RatePlanCode="BAR" NumberOfUnits="1">
      <Rates>
         <Rate UnitMultiplier="2" RateTimeUnit="Day" EffectiveDate="2025-10-05" ExpireDate="2025-10-07">
	    <Base AmountBeforeTax="153.00" AmountAfterTax="170.00" CurrencyCode="EUR"/>
	    <Total AmountBeforeTax="153.00" AmountAfterTax="170.00" CurrencyCode="EUR"/>
	 </Rate>
      </Rates>
   </RoomRate>
</RoomRates>
<TimeSpan Start="2025-10-05" End="2025-10-07"/>
<Total AmountBeforeTax="306.00" AmountAfterTax="340.00" CurrencyCode="EUR">

This example shows daily rates when the same rate applies to both dates (2025-10-05 and 2025-10-06) and there are additional charges.

<RoomRates>
   <RoomRate RoomTypeCode="TPL" RatePlanCode="BAR" NumberOfUnits="1">
      <Rates>
         <Rate UnitMultiplier="2" RateTimeUnit="Day" EffectiveDate="2025-10-05" ExpireDate="2025-10-07">
	    <Base AmountBeforeTax="153.00" AmountAfterTax="170.00" CurrencyCode="EUR"/>
	    <Total AmountBeforeTax="170.00" AmountAfterTax="188.00" CurrencyCode="EUR"/>
	 </Rate>
      </Rates>
   </RoomRate>
</RoomRates>
<TimeSpan Start="2025-10-05" End="2025-10-07"/>
<Total AmountBeforeTax="340.00" AmountAfterTax="376.00" CurrencyCode="EUR">
<RoomRates>
   <RoomRate RoomTypeCode="TPL" RatePlanCode="BAR" NumberOfUnits="1">
      <Rates>
         <Rate UnitMultiplier="1" RateTimeUnit="Day" EffectiveDate="2025-10-05" ExpireDate="2025-10-06">
	    <Base AmountBeforeTax="153.00" AmountAfterTax="170.00" CurrencyCode="EUR"/>
	    <!-- ... other elements and attributes have been omitted for brevity ... -->
	 </Rate>
	 <Rate UnitMultiplier="1" RateTimeUnit="Day" EffectiveDate="2025-10-06" ExpireDate="2025-10-07">
            <Base AmountBeforeTax="180.00" AmountAfterTax="200.00" CurrencyCode="EUR"/>
	    <!-- ... other elements and attributes have been omitted for brevity ... -->
	 </Rate>
	 <Rate UnitMultiplier="1" RateTimeUnit="Day" EffectiveDate="2025-10-07" ExpireDate="2025-10-08">
            <Base AmountBeforeTax="225.00" AmountAfterTax="250.00" CurrencyCode="EUR"/>
	    <!-- ... other elements and attributes have been omitted for brevity ... -->
	 </Rate>
      </Rates>
   </RoomRate>
</RoomRates>
<TimeSpan Start="2025-10-05" End="2025-10-08"/>  
<Total AmountBeforeTax="558.00" AmountAfterTax="620.00" CurrencyCode="EUR">
Element / @Attribute
Type
M
Description

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

0..1

The unit tax amount

Tax

Element

0..n

Contains specific tax information.

@Code

String

1

@Amount

Decimal

0..1

Tax amount applied.

@Percentage

0..1

Tax percentage

TaxDescription

0..1

Text description of the tax

@Text

String

1

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

@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>
Element / @Attribute
Type
M
Description

GuestCounts

Element

1

Total guest counts for adult, child, and infant. Adult count must always be sent.

GuestCount

Element

0..3

@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"/>
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.

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>
Element / @Attribute
Type
M
Description

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

@Amount

Decimal

0..1

Amount of the tax/fee transferred.

@Percentage

0..1

Tax percentage

TaxDescription

Element

0..1

Text description of the tax

@Text

String

1

BasicPropertyInfo

<BasicPropertyInfo HotelCode="HOTELCODE" HotelName="The Hotel Name"/>

Element / @Attribute
Type
M
Description

BasicPropertyInfo

Element

0..1

@HotelCode

String

1

Identifier for the hotel.

@HotelName

String

0..1

Name of the hotel.

ServiceRPHs

<ServiceRPHs>
	<ServiceRPH RPH="1"/>
	<!-- Additional ServiceRPH elements -->
</ServiceRPHs>
Element / @Attribute
Type
M
Description

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>
Element / @Attribute
Type
M
Description

ResGuestRPHs

Element

0..1

Container for the ResGuestRPH elements.

ResGuestRPH

Element

1..n

Container for the RPH attribute.

@RPH

Integer

1

Comments

<Comments>
	<Comment>
		<Text>See the room stay comments here</Text>
	</Comment>
</Comments>
Element / @Attribute
Type
M
Description

Comments

Element

0..1

Contains comment for the RoomStay.

Comment

Element

1

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>
Element / @Attribute
Type
M
Description

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

@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.

@Code

1

@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.

@Code

1

@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>james.bond@mi5.co.uk</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>
        </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>
Element / @Attribute
Type
M
Description

ResGuests

Element

1

Contains the guests for the reservation.

ResGuest

Element

1..n

Contains the specific guest details.

@ResGuestRPH

Integer

0..1

@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

Country name (maximum 64 characters).

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.

@DocType

String

1

@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..1

@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

Guest extra information

ResGlobalInfo

<ResGlobalInfo>
	<HotelReservationIDs>
		<HotelReservationID ResID_Type="14" ResID_Value="123456789"/> <!-- Reservation ID -->
		<HotelReservationID ResID_Type="26" ResID_Value="987654321"/> <!-- Itinerary ID -->
		<HotelReservationID ResID_Type="34" ResID_Value="74a63a92-d988334"/> <!-- Payment Context ID -->
	</HotelReservationIDs>
	<!-- ... other elements and attributes have been omitted for brevity ... -->
</ResGlobalInfo>
Element / @Attribute
Type
M
Description

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.

ResID_Value could potentially contain special characters such as '/'.

ResComments

<Comments>
	<Comment>
		<Text>See the reservation comments here</Text>
	</Comment>
	<!-- Additional Comment elements -->
</Comments>
Element / @Attribute
Type
M
Description

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>
Element / @Attribute
Type
M
Description

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

@Amount

Decimal

0..1

Tax amount applied.

@Percent

0..1

Tax percentage applied.

@CurrencyCode

String

0..1

Use ISO 4217 currency codes.

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>
Element / @Attribute
Type
M
Description

Fees

Element

0..1

Container for added fees/commission

Fee

Element

1..n

@TaxInclusive

String

1

Content of the comment.

PCI sensitive data is prohibited.

@Type

Integer

1

Always 'Inclusive'

@Code

Integer

1

@Amount

Decimal

0..1

Commission amount

Taxes

Element

0..1

Taxes amount

@Amount

Decimal

0..1

Description

Element

0..1

@Name

String

0..1

Commission: Commission against the total of the reservation.

Text

Element

0..1

A description of the fee

Guarantee

<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>
    <GuaranteesAccepted>
        <GuaranteeAccepted>
            <PaymentCard CardType="1" CardCode="MC" CardNumber="4321432143214321" ExpireDate="1234">
                <CardHolderName>John Smith</CardHolderName>
                <ThreeDomainSecurity>
                    <Results ThreeDSVersion="1.0.2" XID="z9UKb06xLziZMOXBEmWSVA1kwG0=" CAVV="MTIzNDU2Nzg5MDEyMzQ1Njc4OTA=" ECI="05" />
                </ThreeDomainSecurity>
            </PaymentCard>
        </GuaranteeAccepted>
    </GuaranteesAccepted>
</Guarantee>
<Guarantee>
    <GuaranteesAccepted>
        <GuaranteeAccepted/>
    </GuaranteesAccepted>
    <Comments>
        <Comment Name="PaymentGatewayName">
            <Text>Paypal</Text>
        </Comment>
        <Comment Name="PaymentGatewayAuthCode">
            <Text>123143253467</Text>
        </Comment>
        <Comment Name="PaymentReferenceId">
            <Text>123124151616</Text>
        </Comment>
    </Comments>
    <GuaranteeDescription>
        <Text>Payment accepted up front</Text>
    </GuaranteeDescription>
</Guarantee>
Element / @Attribute
Type
M
Description

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).

@CardCode

String

1

@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)

@ECI

String

1

@PAResStatus

String

0..1

@SignatureVerification

String

0..1

@Enrolled

String

0..1

Comments

Element

0..1

The actual information related to the payment.

Comment

Element

0..1

Text

Element

1

GuaranteeDescription

Element

0..1

Information about the form of guarantee.

Text

Element

1

DepositPayments

<DepositPayments>
    <GuaranteePayment>
        <AmountPercent Amount="30.00" CurrencyCode="USD" Percent="20.00"/>
        <Description>
            <Text>20% Deposit</Text>
        </Description>
    </GuaranteePayment>
</DepositPayments>			
<Guarantee>
    <GuaranteesAccepted>
        <GuaranteeAccepted>
            <PaymentCard CardCode="VI" CardType="1" CardNumber="4444444444444444" ExpireDate="1114">
                <CardHolderName>Bruce Wayne</CardHolderName>
            </PaymentCard>
        </GuaranteeAccepted>
    </GuaranteesAccepted>
</Guarantee>
<DepositPayments>
    <GuaranteePayment>
        <AmountPercent Amount="30.00" CurrencyCode="USD" Percent="20.00"/>
        <Description>
            <Text>20% Deposit</Text>
        </Description>
    </GuaranteePayment>
</DepositPayments>
Element / @Attribute
Type
M
Description

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

A text description of the deposit

Text

Element

1

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>james.bond@mi5.co.uk</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>
    <ProfileInfo>
        <Profile ProfileType="1">
            <!-- ... other elements and attributes have been omitted for brevity ... -->
        </Profile>
    </ProfileInfo>
    <!-- Additional ProfileInfo element -->                    
    <ProfileInfo>
        <UniqueID Type="16" ID="4444" ID_Context="IATA"/>
        <Profile ProfileType="3">
            <Customer>
                <PersonName>
                    <NamePrefix>Joe</NamePrefix>
                    <Surname>Smith</Surname>
                </PersonName>
                <Telephone PhoneNumber="555-1234"/>
                <Address>
                <CompanyName>American Express</CompanyName>
                </Address>
        </Customer>
    </Profile>
</ProfileInfo>
</Profiles>
<Profiles>
    <ProfileInfo>
        <Profile ProfileType="1">
            <!-- ... other elements and attributes have been omitted for brevity ... -->
        </Profile>
    </ProfileInfo>
    <!-- Additional ProfileInfo element -->                    
    <ProfileInfo>
        <UniqueID Type="16" ID="STA" ID_Context="CHANNEL"/>
        <UniqueID Type="16" ID="12312414" ID_Context="IATA"/>
        <Profile ProfileType="4">
            <Customer>
                <PersonName>
                    <NamePrefix>Mis</NamePrefix>
                    <Surname>Moneypenny</Surname>
                </PersonName>
                <Telephone PhoneNumber="555-1234"/>
                <Address>
                <CompanyName>STA Travel</CompanyName>
                </Address>
        </Customer>
    </Profile>
</ProfileInfo>
</Profiles>
Element / @Attribute
Type
M
Description

Profiles

Element

1

Contains the profile information.

ProfileInfo

Element

1

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

Country name (maximum 64 characters).

CompanyName

Element

1

Name of the company. Used for ProfileType 3 (Corporate) and ProfileType 4 (Travel Agent) only.

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.

@DocType

String

1

@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.

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 valid OTA_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

Reservation

<OTA_NotifReportRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-08-20T09:29:47+02:00" EchoToken="echo-abc123">
  <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="PMS-111333"/>
            </HotelReservationIDs>
          </ResGlobalInfo>
        </HotelReservation>
      </HotelReservations>
    </HotelNotifReport>
  </NotifDetails>
</OTA_NotifReportRQ>

Modification

<OTA_NotifReportRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-08-20T09:45:47+02:00" EchoToken="echo-abc123">
  <Success/>
  <NotifDetails>
    <HotelNotifReport>
      <HotelReservations>
        <HotelReservation LastModifyDateTime="2025-08-20T09:44:47+02:00" ResStatus="Modify">
          <UniqueID Type="16" ID="bxlumfgwx85nlkgmtc"/>
          <ResGlobalInfo>
            <HotelReservationIDs>
              <HotelReservationID ResID_Type="14" ResID_Value="PMS-111333"/>
            </HotelReservationIDs>
          </ResGlobalInfo>
        </HotelReservation>
      </HotelReservations>
    </HotelNotifReport>
  </NotifDetails>
</OTA_NotifReportRQ>

Cancellation

<OTA_NotifReportRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-08-20T09:45:47+02:00" EchoToken="echo-abc123">
  <Success/>
  <NotifDetails>
    <HotelNotifReport>
      <HotelReservations>
        <HotelReservation LastModifyDateTime="2025-08-20T09:44:47+02:00" ResStatus="Cancel">
          <UniqueID Type="16" ID="mxiumfgwx85nlktest"/>
          <ResGlobalInfo>
            <HotelReservationIDs>
              <HotelReservationID ResID_Type="14" ResID_Value="PMS-111333"/>
            </HotelReservationIDs>
          </ResGlobalInfo>
        </HotelReservation>
      </HotelReservations>
    </HotelNotifReport>
  </NotifDetails>
</OTA_NotifReportRQ>
  • The presence of the <Success/> element indicates that the reservations were created in the PMS

  • The UniqueID Type 16 element informs pmsXchange which reservation messages are being confirmed

  • The HotelReservationID holds the ID of the newly created reservations 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.

<OTA_NotifReportRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-11-30T14:40:04-3:00" EchoToken="abc-123">
    <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="PMSResID01"/>
                        </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="PMSResID02"/>
                        </HotelReservationIDs>
                    </ResGlobalInfo>
                </HotelReservation>
                <HotelReservation CreateDateTime="2025-11-30T14:37:23-03:00" ResStatus="Book">
                    <UniqueID Type="16" ID="nnlek0hyw6ffbfubej"/>
                    <ResGlobalInfo>
                        <HotelReservationIDs>
                            <HotelReservationID ResID_Type="14" ResID_Value="PMSResID03"/>
                        </HotelReservationIDs>
                    </ResGlobalInfo>
                </HotelReservation>
            </HotelReservations>
        </HotelNotifReport>
    </NotifDetails>
</OTA_NotifReportRQ>
  • The presence of the <Error/> element indicates that the reservation was not created in the PMS

  • The UniqueID Type 16 element informs pmsXchange which reservation is being confirmed

  • No HotelReservationID is present if the PMS was unable to save the reservation

<OTA_NotifReportRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-08-20T09:30:47+02:00" EchoToken="echo-abc123">
  <Errors>
    <Error Type="3" Code="402">Invalid room type</Error>
  </Errors>
  <NotifDetails>
    <HotelNotifReport>
      <HotelReservations>
        <HotelReservation CreateDateTime="2025-08-20T09:28:00+02:00" ResStatus="Book">
          <UniqueID Type="16" ID="txlugfiwx85nlkgmtb"/>
        </HotelReservation>
      </HotelReservations>
    </HotelNotifReport>
  </NotifDetails>
</OTA_NotifReportRQ>
Element / @Attribute
Type
M
Description

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.

@TimeStamp

DateTime

1

Time when the request was generated.

@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

@Type

Integer

1

Mandatory if Error present. Any type from the OTA code table for 'Error Warning Type (EWT)' can be used. In particular, the following types are used.

@Code

Integer

0..1

Any code from the OTA code table for 'Error Codes (ERR)' can be used.

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:

Commit

Modify

Cancel

UniqueID

Element

1

The identifier of the reservation message as known to SiteMinder.

@Type

Integer

1

Value of '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

Value of '14'

@ResID_Value

String

1

The identifier of the reservation created by the PMS. This is the reservation ID in the PMS.

OTA_NotifReportRS

This message is sent to the PMS as a response to the OTA_NotifReportRQ message, confirming that SiteMinder successfully processed the request.

<OTA_NotifReportRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-08-20T09:30:47+02:00" EchoToken="echo-abc123">
  <Success/>
</OTA_NotifReportRS>
<OTA_NotifReportRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-08-20T09:30:47+02:00" EchoToken="echo-abc123">
  <Errors>
    <Error Type="3" Code="385">Could not find Notifications to confirm with notification id='3123456'</Error>
  </Errors>
</OTA_NotifReportRS>

Last updated 20 days ago

Was this helpful?

Code of the booking channel. See the for reference.

Please refer to the Common usages are

Please refer to the Common usages are

Indicates the specific tax or fee that is being transferred. Refer to .

Indicates the specific tax or fee that is being transferred. Refer to .

Indicates the specific tax or fee that is being transferred. Refer to .

Contains basic identification details for the hotel associated with the reservation. BasicPropertyInfo will always be sent as either part of the or , 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.

Links the RoomStay to ResGuest. Find the links in .

Identifier code for the service. Refer to . 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.

Indicates the specific tax or fee that is being transferred. Refer to .

Indicates the specific tax or fee that is being transferred. Refer to .

Links the ResGuest to RoomStay. Find the links in .

Indicates the type of document. Refer to .

Indicates the specific tax or fee that is being transferred. Refer to .

See code table

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 .

2-character code of the credit card issuer. Refer to .

Refer to .

Refer to .

Refer to .

Refer to .

Indicates the type of document. Refer to .

credit card tokenization
Testing and Certification
Error Handling
Glossary
Booking Agent Codes Table
OTA Additional Detail Type (ADT) Code Table
OTA Additional Detail Type (ADT) Code Table
Fee Tax Type (FTT)
Fee Tax Type (FTT)
Fee Tax Type (FTT)
Service and Extra Charge
Fee Tax Type (FTT)
Fee Tax Type (FTT)
Document Type Code (DOC)
Fee Tax Type (FTT)
OTA Fee Tax Type (FTT)
Payment Card Provider Codes
Electronic Commerce Indicator
Transactions Status Result Identifier
Transaction Signature Status
Status of Authentication
Document Type Code (DOC)
RoomStay
ResGlobalInfo
ResGuests
ResGuestRPHs