Hotel Channel Manager Application Programming Interface (API)

Document Version: 2018-December-07


CONTENTS

    1.0 Introduction


    2.0 SOAP Envelope

        2.1 SOAP Envelope Envelope Header - Authentication


    3.0 Settings Receive


    4.0 Inventory Send

        4.1 Sell Rates Update Message - OTA_HotelRateAmountNotifRQ

            4.1.1 Response Message - OTA_HotelRateAmountNotifRS

        4.2 Allocation Update Message - OTA_HotelInvCountNotifRQ

            4.2.1 Response Message - OTA_HotelInvCountNotifRS

        4.3 Restriction Update Message - OTA_HotelBookingRuleNotifRQ

            4.3.1 Response Message - OTA_HotelBookingRuleNotifRS

        4.4 Send Data To Specific Channels Only


    5.0 Reservation Receive

        5.1 New Reservations - OTA_HotelResNotifRQ

            5.1.1 Response Message - OTA_HotelResNotifRS

        5.2 Modified or Cancelled Reservations - OTA_HotelResModifyNotifRQ

            5.2.1 Response Message - OTA_HotelResModifyNotifRS

        5.3 Reservation Pickup Polling Message

        5.4 Create Test Reservations

        5.5 Reservation Sync / All Reservations


    6.0 Warning & Error Codes


    7.0 Getting Started

        7.1 OpenTravel Alliance Message XSDs


    8.0 Frequently Asked Questions


    9.0 Notes





1.0 Introduction


This interface is designed to be used by a PMS, CRS, or a booking engine (or any other source for a hotel’s rate, availability, and restriction information) to incorporate channel management features by connecting to ChannelRUSH’s distribution services.

This interface allows for you to...

o Retrieve settings for a hotel that include room types, rate plans, and a list of channels setup for the hotel.

o Send rates, availability, and restrictions for a hotel for distribution to a set of channels a hotel is directly setup with.

o Retrieve reservations created by those channels by either a ‘pickup’ method where you poll our system every 5 minutes checking for new reservations, or we can push the reservations to you in real-time if you have a URL for us to connect to.

This interface works as an access point to an already existing, fully functional and completely setup ChannelRUSH account.

This does not mean the end user will ever need to actually login to the ChannelRUSH web application (https://www.channelrush.net) – although they can if you want to distribute that login information to them so they can take advantage of existing ChannelRUSH features and manage their channels in the case of a communication outage.

This interface processes the information in real-time, there is no batch processing only done at certain intervals. This is said in the context that certain data is processed sequentially, which means if a hotel issues 10 updates for a channel (multiple requests for a single hotel and a single channel), updates 2-9 cannot being processing until update 1 is completed. If the user issued 1 update for 10 channels for a single hotel, they could all begin processing at the same time because each channel operates independently of one another.

The interface primarily uses standard OpenTravel Alliance (OTA) messages - http://www.opentravel.org

This interface was developed using the 2007B message set. If you require or are already using a different version, please notify us as we can accommodate many different versions.




2.0 SOAP Envelope


All messages sent to our servers will use a SOAP Envelope (http://schemas.xmlsoap.org/soap/envelope/), using a HTNG v1.1 header, and the messageS stored in the envelope body.

The envelope body node can contain multiple/different messages for the same hotel.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
    <soap:Header>
        <HTNGHeader xmlns="http://htng.org/1.1/Header/">
            <From>
                <systemId>[PROVIDERID]</systemId>
                <Credential>
                    <userName>[PROVIDERUSERNAME]</userName>
                    <password>[PROVIDERPASSWORD]</password>
                </Credential>
            </From>
            <To>
                <systemId>[HOTELID]</systemId>
            </To>
        </HTNGHeader>
    </soap:Header>
    <soap:Body>
        [MESSAGE 1 HERE]
        [MESSAGE 2 HERE]
        [MESSAGE 3 HERE]
    </soap:Body>
</soap:Envelope>




2.1 SOAP Envelope Envelope Header - Authentication


The SOAP Header uses the HTNG Version 1.1 format. The following fields need to be set for the system to successfully authenticate you and process your messages.

HTNGHeader.From.Credential.SystemId
  This is the system ID that identifies your company. This can be provided by you and stored on our side, our provided by us to be stored on your side.

HTNGHeader.From.Credential.Username
  This is the username provided by us for your group login. There are not separate usernames and passwords for each hotel, only one login which allows you to send messages for which you company is mapped for.

HTNGHeader.From.Credential.Password
  This is the password provided by us for your group login.

HTNGHeader.To.SystemId
  This is the ID of the hotel you are sending the messages for. Each envelope can contain multiple/different messages for only one hotel. This can be provided by you and stored on our side, our provided by us to be stored on your side.




3.0 Settings Receive


URL: https://[SERVERNAME]/InventorySend/Settings?providerId=[PROVIDERID]

The settings call brings back basic information regarding the hotel, such as mapped room types, rate plans, and channels.

Example request.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
	<soap:Header>
		<HTNGHeader xmlns="http://htng.org/1.1/Header/">
			<From>
				<systemId>[PROVIDERID]</systemId>
				<Credential>
					<userName>[USERNAME]</userName>
					<password>[PASSWORD]</password>
				</Credential>
			</From>
			<To>
				<systemId>[HOTELID]</systemId>
			</To>
		</HTNGHeader>
	</soap:Header>
	<soap:Body></soap:Body>
</soap:Envelope>

Successful response. This is a custom xml list of the room types, rate plans, and channels setup for the hotel.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <MessageAcknowledgementType xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="0"
    "xmlns="http://www.opentravel.org/OTA/2003/05">
      <Success />
    </MessageAcknowledgementType>
    <Hotel ID="[HOTELID]" Name="Test Hotel">
      <RoomTypes>
        <RoomType ID="7718" Name="Single" />
        <RoomType ID="7719" Name="Double" />
        <RoomType ID="7720" Name="Triple" />
      </RoomTypes>
      <RatePlans>
        <RatePlan ID="190" Name="RACK" />
        <RatePlan ID="191" Name="NRF" />
      </RatePlans>
      <Channels>
        <Channel ID="411" Name="ChannelRUSH - Test OTA" />
      </Channels>
    </Hotel>
  </soap:Body>
</soap:Envelope>

Unsuccessful response.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <MessageAcknowledgementType xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="0" 
    xmlns="http://www.opentravel.org/OTA/2003/05">
      <Errors>
        <Error Code="11">Your company is not setup to deliver information 
        to the hotel you specified at htngHeader.To[0].systemId=[HOTELID]</Error>
      </Errors>
    </MessageAcknowledgementType>
  </soap:Body>
</soap:Envelope>

Hotel
  A custom xml message that contains information about the setup of the hotel.

Hotel.ID
  The mapped ID of the hotel. String.

Hotel.Name
  The name of the hotel. String.

Hotel.RoomTypes
  A collection (0 to n) of RoomType objects.

Hotel.RoomTypes.RoomType.ID
  The mapped ID of the room type. String.

Hotel.RoomType.RoomType.Name
  The name of the room type. String.

Hotel.RatePlans
  A collection (0 to n) of RatePlan objects.

Hotel.RatePlans.RatePlan.ID
  The mapped ID of the rate plan. String.

Hotel.RatePlans.RatePlan.Name
  The name of the rate plan. String.

Hotel.Channels
  A collection (0 to n) of Channel objects.

Hotel.Channels.Channel.ID
  The ID of the channel. Integer.

Hotel.Channels.Channel.Name
  The name of the channel. String.




4.0 Inventory Send


URL: https://[SERVERNAME]/InventorySend/Index?providerId=[PROVIDERID]

This method allows for updating rate, availability, and restrictions using 3 separate messages.

    OTA_HotelRateAmountNotifRQ
        o Sell Rate

    OTA_HotelInvCountNotifRQ
        o Allocation

    OTA_HotelBookingRuleNotifRQ
        o Cut Off Days
        o Minimum Length of Stay
        o Maximum Length of Stay
        o Closed To Arrival
        o Closed To Departure
        o Stop Sell




4.1 Sell Rate Update Request Message - OTA_HotelRateAmountNotifRQ


This is the message request you will send to us to update rates for room types or rate plans (depending on which level you want to support - room type or rate plan level - we support updating on both).

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
    <soap:Header>
        <HTNGHeader xmlns="http://htng.org/1.1/Header/">
            <From>
                <systemId>[PROVIDERID]</systemId>
                <Credential>
                    <userName>[PROVIDERUSERNAME]</userName>
                    <password>[PROVIDERPASSWORD]</password>
                </Credential>
            </From>
            <To>
                <systemId>[HOTELID]</systemId>
            </To>
        </HTNGHeader>
    </soap:Header>
    <soap:Body>
        <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://www.opentravel.org/2007B/OTA_HotelRateAmountNotifRQ.xsd">
            <RateAmountMessages>
                <RateAmountMessage>
                    <StatusApplicationControl InvTypeCode="3429" RatePlanID="BAR" />
                    <Rates>
                        <Rate Start="2014-06-29" End="2014-06-29" 
                        Mon="true" Tue="true" Wed="true" Thur="true" Fri="true" Sat="true" Sun="true">
                            <BaseByGuestAmts>
                                <BaseByGuestAmt AmountAfterTax="44.00" />
                            </BaseByGuestAmts>
                        </Rate>
                        <Rate Start="2014-06-29" End="2014-06-29" 
                        Mon="true" Tue="true" Wed="true" Thur="true" Fri="true" Sat="true" Sun="true">
                            <BaseByGuestAmts>
                                <BaseByGuestAmt AmountAfterTax="44.00" />
                            </BaseByGuestAmts>
                        </Rate>
                    </Rates>
                </RateAmountMessage>
                <RateAmountMessage>
                    <StatusApplicationControl InvTypeCode="3428" RatePlanID="BAR"/>
                    <Rates>
                        <Rate Start="2014-06-29" End="2014-06-29" 
                        Mon="true" Tue="true" Wed="true" Thur="true" Fri="true" Sat="true" Sun="true">
                            <BaseByGuestAmts>
                                <BaseByGuestAmt AmountAfterTax="41.00" />
                            </BaseByGuestAmts>
                        </Rate>
                    </Rates>
                </RateAmountMessage>
                <RateAmountMessage>
                    <StatusApplicationControl InvTypeCode="4070" RatePlanID="BAR"/>
                    <Rates>
                        <Rate Start="2014-06-29" End="2014-06-29" 
                        Mon="true" Tue="true" Wed="true" Thur="true" Fri="true" Sat="true" Sun="true">
                            <BaseByGuestAmts>
                                <BaseByGuestAmt AmountAfterTax="49.00" />
                            </BaseByGuestAmts>
                        </Rate>
                    </Rates>
                </RateAmountMessage>
            </RateAmountMessages>
        </OTA_HotelRateAmountNotifRQ>
    </soap:Body>
</soap:Envelope>

RateAmountMessages
  A collection (1 to n) of RateAmountMessage messages.

RateAmountMessages.RateAmountMessage.StatusApplicationControl.InvTypeCode
  This is the room type code. This can be provided by you and stored on our side, our provided by us to be stored on your side. String.

RateAmountMessages.RateAmountMessage.StatusApplicationControl.RatePlanID
  This is the rate plan code. This can be provided by you and stored on our side, our provided by us to be stored on your side. String. Optional.

RateAmountMessages.RateAmountMessage.Rates
  A collection (1 to n) of Rate messages.

RateAmountMessages.RateAmountMessage.Rates.Rate.Start
  The start date of the date range to be updated. Date.

RateAmountMessages.RateAmountMessage.Rates.Rate.End
  The end date of the date range to be updated. Date. Inclusive.

RateAmountMessages.RateAmountMessage.Rates.Rate.Mon
RateAmountMessages.RateAmountMessage.Rates.Rate.Tue
RateAmountMessages.RateAmountMessage.Rates.Rate.Wed
RateAmountMessages.RateAmountMessage.Rates.Rate.Thur
RateAmountMessages.RateAmountMessage.Rates.Rate.Fri
RateAmountMessages.RateAmountMessage.Rates.Rate.Sat
RateAmountMessages.RateAmountMessage.Rates.Rate.Sun
  These mark which days of the week in the date range to be updated. Boolean.

RateAmountMessages.RateAmountMessage.Rates.Rate.BaseByGuestAmts
  A collection (1 to n) of BaseByGuestAmt messages.

RateAmountMessages.RateAmountMessage.Rates.Rate.BaseByGuestAmts.BaseByGuestAmt.AmountAfterTax
  The sell rate including tax. Decimal. Optional/Conditional - AmountAfterTax or AmountBeforeTax must be listed.

RateAmountMessages.RateAmountMessage.Rates.Rate.BaseByGuestAmts.BaseByGuestAmt.AmountBeforeTax
  The sell rate not including tax. Decimal. Optional/Conditional - AmountAfterTax or AmountBeforeTax must be listed.




4.1.1 Response Message - OTA_HotelRateAmountNotifRS


This is the successful response message to the OTA_HotelRateAmountNotifRQ request.

The first message always returned is MessageAcknowledgementType, pertains to your successful login. If you have any general errors or login errors, they would be in this MessageAcknowledgementType message.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <MessageAcknowledgementType xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
      <Success />
    </MessageAcknowledgementType>
    <OTA_HotelRateAmountNotifRS xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
      <Success />
    </OTA_HotelRateAmountNotifRS>
  </soap:Body>
</soap:Envelope>
This is an response message with warnings and errors to the OTA_HotelRateAmountNotifRQ request.

Again, notice the first message always returned is MessageAcknowledgementType, which lists <Success /> as your login was successful. The warnings or errors per message are contained in each message's Warnings and/or Errors collections.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <MessageAcknowledgementType xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Success />
        </MessageAcknowledgementType>
        <OTA_HotelRateAmountNotifRS xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Warnings>
                <Warning Code="##">Warning Message 1</Warning>
                <Warning Code="##">Warning Message 2</Warning>
                <Warning Code="##">Warning Message 3</Warning>
            </Warnings>
            <Errors>
                <Error Code="##">Error Message 1</Error>
                <Error Code="##">Error Message 2</Error>
                <Error Code="##">Error Message 3</Error>
            </Errors>
        </OTA_HotelRateAmountNotifRS>
    </soap:Body>
</soap:Envelope>




4.2 Allocation Update Request Message - OTA_HotelInvCountNotifRQ


This is the message request you will send to update allocation for room types (only updating allocation at the room type level is supported, not rate plan level, you can mark a rate plan open or closed using stop sell true/false found in the OTA_HotelBookingRuleNotifRQ message).

While unnecessary, this example shows two OTA_HotelInvCountNotifRQ messages in the soap envelope body node and both would be processed. It is unnecessary as the second inventory update could just be added to Inventories collection of the first message. Normally you would see different messages in the soap envelope body node.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
    <soap:Header>
        <HTNGHeader xmlns="http://htng.org/1.1/Header/">
            <From>
                <systemId>[PROVIDERID]</systemId>
                <Credential>
                    <userName>[PROVIDERUSERNAME]</userName>
                    <password>[PROVIDERPASSWORD]</password>
                </Credential>
            </From>
            <To>
                <systemId>[HOTELID]</systemId>
            </To>
        </HTNGHeader>
    </soap:Header>
    <soap:Body>
        <OTA_HotelInvCountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://www.opentravel.org/2007B/OTA_HotelInvCountNotifRQ.xsd">
            <Inventories>
                <Inventory>
                    <StatusApplicationControl Start="2013-06-30" End="2013-06-30" InvTypeCode="3407" 
                    Mon="true" Tue="true" Wed="true" Thur="true" Fri="true" Sat="true" Sun="true" />
                    <InvCounts>
                        <InvCount ActionType="Allocation" Count="12" />
                    </InvCounts>
                </Inventory>
                <Inventory>
                    <StatusApplicationControl Start="2013-06-30" End="2013-06-30" InvTypeCode="3408" 
                    Mon="true" Tue="true" Wed="true" Thur="true" Fri="true" Sat="true" Sun="true" />
                    <InvCounts>
                        <InvCount ActionType="Allocation" Count="21" />
                    </InvCounts>
                </Inventory>
                <Inventory>
                    <StatusApplicationControl Start="2013-07-01" End="2013-07-01" InvTypeCode="3408" 
                    Mon="true" Tue="true" Wed="true" Thur="true" Fri="true" Sat="true" Sun="true" />
                    <InvCounts>
                        <InvCount ActionType="Allocation" Count="32" />
                    </InvCounts>
                </Inventory>                
            </Inventories>
        </OTA_HotelInvCountNotifRQ>
        <OTA_HotelInvCountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://www.opentravel.org/2007B/OTA_HotelInvCountNotifRQ.xsd">
            <Inventories>
                <Inventory>
                    <StatusApplicationControl Start="2013-08-30" End="2013-08-30" InvTypeCode="3407" 
                    Mon="true" Tue="true" Wed="true" Thur="true" Fri="true" Sat="true" Sun="true" />
                    <InvCounts>
                        <InvCount ActionType="Allocation" Count="12" />
                    </InvCounts>
                </Inventory>
            </Inventories>
        </OTA_HotelInvCountNotifRQ>
    </soap:Body>
</soap:Envelope>
Inventories
  A collection (1 to n) of Inventory messages.

Inventories.Inventory.StatusApplicationControl.InvTypeCode
  This is the room type code. This can be provided by you and stored on our side, our provided by us to be stored on your side. String.

Inventories.Inventory.StatusApplicationControl.Start
  The start date of the date range to be updated. Date.

Inventories.Inventory.StatusApplicationControl.End
  The end date of the date range to be updated. Date. Inclusive.

Inventories.Inventory.StatusApplicationControl.Mon
Inventories.Inventory.StatusApplicationControl.Tue
Inventories.Inventory.StatusApplicationControl.Wed
Inventories.Inventory.StatusApplicationControl.Thur
Inventories.Inventory.StatusApplicationControl.Fri
Inventories.Inventory.StatusApplicationControl.Sat
Inventories.Inventory.StatusApplicationControl.Sun
  These mark which days of the week in the date range to be updated. Boolean.

Inventories.Inventory.InvCounts
A collection (1 to n) of InvCount messages.

Inventories.Inventory.InvCounts.InvCount.ActionType
Only "Allocation" is supported at the moment, which represents the number of rooms available to be sold (not an offset, not plus/minus). String.

Inventories.Inventory.InvCounts.InvCount.Count
The number of rooms available to be sold for the specified room type. Integer.




4.2.1 Response Message - OTA_HotelInvCountNotifRS


This is the successful response message to the OTA_HotelInvCountNotifRQ request.

The first message always returned is MessageAcknowledgementType, pertains to your successful login. If you have any general errors or login errors, they would be in this MessageAcknowledgementType message.

Since we sent two messages in the request, there are two separate OTA_HotelInvCountNotifRS messages in the reply.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <MessageAcknowledgementType xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Success />
        </MessageAcknowledgementType>
        <OTA_HotelInvCountNotifRS xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Success />
        </OTA_HotelInvCountNotifRS>
        <OTA_HotelInvCountNotifRS xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Success />
        </OTA_HotelInvCountNotifRS>
    </soap:Body>
</soap:Envelope>
This is an response message with a success message for the first request, and only only errors to the second OTA_HotelInvCountNotifRQ request.

Again, notice the first message always returned is MessageAcknowledgementType, which lists <Success /> as your login was successful. The warnings or errors per message are contained in each message's Warnings and/or Errors collections.

Since we sent two messages in the request, there are two separate OTA_HotelInvCountNotifRS messages in the reply.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <MessageAcknowledgementType xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Success />
        </MessageAcknowledgementType>
        <OTA_HotelInvCountNotifRS xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Success />
        </OTA_HotelInvCountNotifRS>
        <OTA_HotelInvCountNotifRS xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Errors>
                <Error Code="##">Error Message 1</Error>
                <Error Code="##">Error Message 2</Error>
                <Error Code="##">Error Message 3</Error>
            </Errors>
        </OTA_HotelInvCountNotifRS>
    </soap:Body>
</soap:Envelope>




4.3 Restrictions Update Request Message - OTA_HotelBookingRuleNotifRQ


This is the message request you will send to update cut off days, min length of stay, max length of stay, closed to arrival, closed to departure, and/or stop sell.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
    <soap:Header>
        <HTNGHeader xmlns="http://htng.org/1.1/Header/">
            <From>
                <systemId>[PROVIDERID]</systemId>
                <Credential>
                    <userName>[PROVIDERUSERNAME]</userName>
                    <password>[PROVIDERPASSWORD]</password>
                </Credential>
            </From>
            <To>
                <systemId>[HOTELID]</systemId>
            </To>
        </HTNGHeader>
    </soap:Header>
    <soap:Body>
        <OTA_HotelBookingRuleNotifRQ xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.opentravel.org/OTA/2003/05">
            <RuleMessages>
                <RuleMessage>
                    <StatusApplicationControl Start="2014-09-24" End="2014-09-26" 
                    Mon="true" Tue="true" Wed="true" Thur="true" Fri="true" Sat="true" Sun="true"
                    RatePlanID="BAR" InvTypeCode="7170" />
                    <BookingRules>
                        <BookingRule AbsoluteCutoff="2">
                            <LengthsOfStay>
                                <LengthOfStay Time="1" TimeUnit="Day" MinMaxMessageType="MinLOS" />
                                <LengthOfStay Time="10" TimeUnit="Day" MinMaxMessageType="MaxLOS" />
                            </LengthsOfStay>
                            <DOW_Restrictions>
                                <AvailableDaysOfWeek Mon="true" Tue="true" Weds="true" 
                                Thur="true" Fri="true" Sat="true" Sun="true" />
                                <ArrivalDaysOfWeek Mon="true" Tue="true" Weds="true" 
                                Thur="true" Fri="true" Sat="true" Sun="true" />
                                <DepartureDaysOfWeek Mon="true" Tue="true" Weds="true" 
                                Thur="true" Fri="true" Sat="true" Sun="true" />
                            </DOW_Restrictions>
                        </BookingRule>
                    </BookingRules>
                </RuleMessage>
            </RuleMessages>
        </OTA_HotelBookingRuleNotifRQ>
    </soap:Body>
</soap:Envelope>

RuleMessages
  A collection (1 to n) of RuleMessage messages.

RuleMessages.StatusApplicationControl.InvTypeCode
  This is the room type code. This can be provided by you and stored on our side, our provided by us to be stored on your side. String.

RuleMessages.StatusApplicationControl.RatePlanID
  This is the rate plan code. This can be provided by you and stored on our side, our provided by us to be stored on your side. String. Optional.

RuleMessages.StatusApplicationControl.Start
  The start date of the date range to be updated. Date.

RuleMessages.StatusApplicationControl.End
  The end date of the date range to be updated. Date. Inclusive.

RuleMessages.RuleMessage.StatusApplicationControl.Mon
RuleMessages.RuleMessage.StatusApplicationControl.Tue
RuleMessages.RuleMessage.StatusApplicationControl.Wed
RuleMessages.RuleMessage.StatusApplicationControl.Thur
RuleMessages.RuleMessage.StatusApplicationControl.Fri
RuleMessages.RuleMessage.StatusApplicationControl.Sat
RuleMessages.RuleMessage.StatusApplicationControl.Sun
  These mark which days of the week in the date range to be updated. Boolean.

RuleMessages.RuleMessage.BookingRules
  A collection (1 to n) of BookingRule messages.

RuleMessages.RuleMessage.BookingRules.BookingRule.AbsoluteCutoff
  The number of days prior to the arrival date the room is no longer available for sale. Integer. Optional.

RuleMessages.RuleMessage.BookingRules.BookingRule.LengthsOfStay
  A collection (0 to n) of LengthOfStay messages. Optional.

RuleMessages.RuleMessage.BookingRules.BookingRule.LengthsOfStay.LengthOfStay.TimeUnit
  The only time unit currently supported is "Day".

RuleMessages.RuleMessage.BookingRules.BookingRule.LengthsOfStay.LengthOfStay.Time
  The number of days for the minimum or maximum length of stay. Integer.

RuleMessages.RuleMessage.BookingRules.BookingRule.LengthsOfStay.LengthOfStay.MinMaxMessageType
  "MinLOS" = Minimum Length Of Stay, or "MaxLOS" = Maximum Length Of Stay

RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions
  A collection (0 to 3) of either one AvailableDaysOfWeek, ArrivalDaysOfWeek, or DepartureDaysOfWeek messages. Optional.

RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.AvailableDaysOfWeek.Mon
RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.AvailableDaysOfWeek.Tue
RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.AvailableDaysOfWeek.Wed
RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.AvailableDaysOfWeek.Thur
RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.AvailableDaysOfWeek.Fri
RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.AvailableDaysOfWeek.Sat
RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.AvailableDaysOfWeek.Sun
  Controls stop sell. If "true" the day of the week is open, or available for sale. If "false" the day of the week is closed, or not available for sale.

RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.ArrivalDaysOfWeek.Mon
RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.ArrivalDaysOfWeek.Tue
RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.ArrivalDaysOfWeek.Wed
RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.ArrivalDaysOfWeek.Thur
RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.ArrivalDaysOfWeek.Fri
RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.ArrivalDaysOfWeek.Sat
RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.ArrivalDaysOfWeek.Sun
  Controls closed to arrival. If "true" the day of the week is available for the customer to arrive on to begin their stay. If "false" the day of the week is not available for arrival.

RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.DepartureDaysOfWeek.Mon
RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.DepartureDaysOfWeek.Tue
RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.DepartureDaysOfWeek.Wed
RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.DepartureDaysOfWeek.Thur
RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.DepartureDaysOfWeek.Fri
RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.DepartureDaysOfWeek.Sat
RuleMessages.RuleMessage.BookingRules.BookingRule.DOW_Restrictions.DepartureDaysOfWeek.Sun
  Controls closed to departure. If "true" the day of the week is available for the customer to depart on to end their stay. If "false" the day of the week is not available for departure, or for a trip to end on.




4.3.1 Response Message - OTA_HotelBookingRuleNotifRS


This is the successful response message to the OTA_HotelBookingRuleNotifRQ request.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <MessageAcknowledgementType xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Success />
        </MessageAcknowledgementType>
        <OTA_HotelBookingRuleNotifRS xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Success />
        </OTA_HotelBookingRuleNotifRS>
    </soap:Body>
</soap:Envelope>
This is a response that shows successful, but has warning messages with it. A message that has a <Success /> node means some information was processed and is to be considered successful message. The warnings are just that - notifications to you that possibly a certain room type you are sending to is not setup for a certain channel (although all other channels were processed, hence the <Success /> message.)

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <MessageAcknowledgementType xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Success />
        </MessageAcknowledgementType>
        <OTA_HotelBookingRuleNotifRS xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Success />
        <Warnings>
            <Warning Code="19">statusApplicationControlType.RatePlanID=BARRO for channelId=92 is not setup 
            in ChannelRUSH to deliver data to.</Warning>
        </Warnings>
        </OTA_HotelBookingRuleNotifRS>
    </soap:Body>
</soap:Envelope>




4.4 Send Data To Specific Channels Only


Each channel that is setup for the hotel has a standard numeric ID. For example, Orbitz.com setup for Hotel A would have ID 123, Orbitz.com setup for Hotel B would be the same channel ID of 123.

You can attach to the url you are sending messages to "channels=123,456,789" to list the channels specifically you want to update. If the "channels=" parameter is left off, all channels are updated.

URL: https://[SERVERNAME]/InventorySend/Index?providerId=[PROVIDERID]&channels=123,456,789




5.0 Reservation Receive


There are two ways to receive reservations - Reservation Pickup & Confirm or Direct Reservation Delivery.

o Reservation Pickup & Confirm.
You can poll our system every few minutes to check for pending reservations. If there are reservations, you would receive the information and then "confirm" the reservations in a separate confirmation message. Once the reservations are confirmed, the next time you poll or check for reservations those reservations would not appear.

URL: https://[SERVERNAME]/ReservationReceive/Index?providerId=[PROVIDERID]

o Direct Reservation Delivery.
You can provide us a URL hosted on your system where we can post the reservations as they arrive. This method is preferred as there is no continuous polling and reservations are transmitted as soon as they are received.

Regardless of the two options, the reservation information and response is in the same message/xml format.




5.1 Reservations - OTA_HotelResNotifRQ


This is an example OTA_HotelResNotifRQ message that you would either 'pickup' or have sent directly to your system's URL.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <OTA_HotelResNotifRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
      <HotelReservations>
        <HotelReservation>
          <RoomStays>
            <RoomStay IndexNumber="0">
              <RoomTypes>
                <RoomType RoomTypeCode="RT1">
                  <RoomDescription Name="Room Type 1" />
                  <AdditionalDetails>
                    <AdditionalDetail>
                      <DetailDescription>
                        <Text>Room Type 1 Description</Text>
                      </DetailDescription>
                    </AdditionalDetail>
                  </AdditionalDetails>
                  <Amenities>
                    <Amenity RoomAmenity="Room Type 1 Amenity 1" />
                  </Amenities>
                </RoomType>
              </RoomTypes>
              <RatePlans>
                <RatePlan>
                  <Commission>
                    <CommissionPayableAmount Amount="135.00" />
                  </Commission>
                </RatePlan>
              </RatePlans>
              <RoomRates>
                <RoomRate EffectiveDate="2017-10-23">
                  <Rates>
                    <Rate>
                      <Total RateTypeCode="BAR" AmountBeforeTax="150.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-24">
                  <Rates>
                    <Rate>
                      <Total RateTypeCode="BAR" AmountBeforeTax="150.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-25">
                  <Rates>
                    <Rate>
                      <Total RateTypeCode="BAR" AmountBeforeTax="150.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-26">
                  <Rates>
                    <Rate>
                      <Total RateTypeCode="BAR" AmountBeforeTax="150.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-27">
                  <Rates>
                    <Rate>
                      <Total RateTypeCode="BAR" AmountBeforeTax="150.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-28">
                  <Rates>
                    <Rate>
                      <Total RateTypeCode="BAR" AmountBeforeTax="150.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
              </RoomRates>
              <GuestCounts>
                <GuestCount Count="2" />
              </GuestCounts>
              <Total AmountBeforeTax="900.00" />
              <ResGuestRPHs>
                <ResGuestRPH RPH="0" />
              </ResGuestRPHs>
              <SpecialRequests>
                <SpecialRequest>
                  <Text>Room Type 1 Note 1</Text>
                </SpecialRequest>
                <SpecialRequest>
                  <Text>Room Type 1 Note 2</Text>
                </SpecialRequest>
              </SpecialRequests>
              <ServiceRPHs>
                <ServiceRPH RPH="48013" />
              </ServiceRPHs>
            </RoomStay>
            <RoomStay IndexNumber="1">
              <RoomTypes>
                <RoomType RoomTypeCode="RT2">
                  <RoomDescription Name="Room Type 2" />
                  <AdditionalDetails>
                    <AdditionalDetail>
                      <DetailDescription>
                        <Text>Room Type 2 Description</Text>
                      </DetailDescription>
                    </AdditionalDetail>
                  </AdditionalDetails>
                  <Amenities>
                    <Amenity RoomAmenity="Room Type 2 Amenity 1" />
                    <Amenity RoomAmenity="Room Type 2 Amenity 2" />
                  </Amenities>
                </RoomType>
              </RoomTypes>
              <RatePlans>
                <RatePlan>
                  <Commission>
                    <CommissionPayableAmount Amount="189.00" />
                  </Commission>
                </RatePlan>
              </RatePlans>
              <RoomRates>
                <RoomRate EffectiveDate="2017-10-23">
                  <Rates>
                    <Rate>
                      <Total RateTypeCode="BAR" AmountBeforeTax="210.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-24">
                  <Rates>
                    <Rate>
                      <Total RateTypeCode="BAR" AmountBeforeTax="210.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-25">
                  <Rates>
                    <Rate>
                      <Total RateTypeCode="BAR" AmountBeforeTax="210.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-26">
                  <Rates>
                    <Rate>
                      <Total RateTypeCode="BAR" AmountBeforeTax="210.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-27">
                  <Rates>
                    <Rate>
                      <Total RateTypeCode="BAR" AmountBeforeTax="210.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-28">
                  <Rates>
                    <Rate>
                      <Total RateTypeCode="BAR" AmountBeforeTax="210.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
              </RoomRates>
              <GuestCounts>
                <GuestCount Count="2" />
              </GuestCounts>
              <Total AmountBeforeTax="1260.00" />
              <ResGuestRPHs>
                <ResGuestRPH RPH="1" />
              </ResGuestRPHs>
              <SpecialRequests>
                <SpecialRequest>
                  <Text>Room Type 2 Note 1</Text>
                </SpecialRequest>
              </SpecialRequests>
              <ServiceRPHs>
                <ServiceRPH RPH="48168" />
                <ServiceRPH RPH="48169" />
                <ServiceRPH RPH="48185" />
                <ServiceRPH RPH="48186" />
              </ServiceRPHs>
            </RoomStay>
            <RoomStay IndexNumber="2">
              <RoomTypes>
                <RoomType RoomTypeCode="RT3">
                  <RoomDescription Name="Room Type 3" />
                  <AdditionalDetails>
                    <AdditionalDetail>
                      <DetailDescription>
                        <Text>Room Type 3 Description</Text>
                      </DetailDescription>
                    </AdditionalDetail>
                  </AdditionalDetails>
                  <Amenities>
                    <Amenity RoomAmenity="Room Type 3 Amenity 1" />
                  </Amenities>
                </RoomType>
              </RoomTypes>
              <RatePlans>
                <RatePlan>
                  <Commission>
                    <CommissionPayableAmount Amount="243.00" />
                  </Commission>
                </RatePlan>
              </RatePlans>
              <RoomRates>
                <RoomRate EffectiveDate="2017-10-23">
                  <Rates>
                    <Rate>
                      <Total RateTypeCode="BAR" AmountBeforeTax="270.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-24">
                  <Rates>
                    <Rate>
                      <Total RateTypeCode="BAR" AmountBeforeTax="270.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-25">
                  <Rates>
                    <Rate>
                      <Total RateTypeCode="BAR" AmountBeforeTax="270.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-26">
                  <Rates>
                    <Rate>
                      <Total RateTypeCode="BAR" AmountBeforeTax="270.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-27">
                  <Rates>
                    <Rate>
                      <Total RateTypeCode="BAR" AmountBeforeTax="270.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-28">
                  <Rates>
                    <Rate>
                      <Total RateTypeCode="BAR" AmountBeforeTax="270.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
              </RoomRates>
              <GuestCounts>
                <GuestCount Count="4" />
              </GuestCounts>
              <Total AmountBeforeTax="1620.00" />
              <ResGuestRPHs>
                <ResGuestRPH RPH="2" />
              </ResGuestRPHs>
              <SpecialRequests>
                <SpecialRequest>
                  <Text>Room Type 3 Note 1</Text>
                </SpecialRequest>
                <SpecialRequest>
                  <Text>Room Type 3 Note 2</Text>
                </SpecialRequest>
                <SpecialRequest>
                  <Text>Room Type 3 Note 3</Text>
                </SpecialRequest>
              </SpecialRequests>
              <ServiceRPHs>
                <ServiceRPH RPH="48187" />
                <ServiceRPH RPH="48188" />
                <ServiceRPH RPH="48189" />
                <ServiceRPH RPH="48190" />
              </ServiceRPHs>
            </RoomStay>
          </RoomStays>
          <Services>
            <Service ServiceRPH="48013">
              <ServiceDetails>
                <GuestCounts>
                  <GuestCount Count="1" />
                </GuestCounts>
                <Comments>
                  <Comment>
                    <Text>Arrival Happy Hour</Text>
                  </Comment>
                </Comments>
                <Fees>
                  <Fee TaxInclusive="false" Amount="14.00" />
                </Fees>
              </ServiceDetails>
            </Service>
            <Service ServiceRPH="48168">
              <ServiceDetails>
                <GuestCounts>
                  <GuestCount Count="1" />
                </GuestCounts>
                <Comments>
                  <Comment>
                    <Text>Room Type 2 Addon #1</Text>
                  </Comment>
                </Comments>
                <Fees>
                  <Fee TaxInclusive="false" Amount="14.00" />
                </Fees>
              </ServiceDetails>
            </Service>
            <Service ServiceRPH="48169">
              <ServiceDetails>
                <GuestCounts>
                  <GuestCount Count="1" />
                </GuestCounts>
                <Comments>
                  <Comment>
                    <Text>Room Type 2 Addon #2</Text>
                  </Comment>
                </Comments>
                <Fees>
                  <Fee TaxInclusive="false" Amount="14.00" />
                </Fees>
              </ServiceDetails>
            </Service>
            <Service ServiceRPH="48185">
              <ServiceDetails>
                <GuestCounts>
                  <GuestCount Count="1" />
                </GuestCounts>
                <Comments>
                  <Comment>
                    <Text>Room Type 2 Addon #1</Text>
                  </Comment>
                </Comments>
                <Fees>
                  <Fee TaxInclusive="false" Amount="14.00" />
                </Fees>
              </ServiceDetails>
            </Service>
            <Service ServiceRPH="48186">
              <ServiceDetails>
                <GuestCounts>
                  <GuestCount Count="1" />
                </GuestCounts>
                <Comments>
                  <Comment>
                    <Text>Room Type 2 Addon #2</Text>
                  </Comment>
                </Comments>
                <Fees>
                  <Fee TaxInclusive="false" Amount="14.00" />
                </Fees>
              </ServiceDetails>
            </Service>
            <Service ServiceRPH="48187">
              <ServiceDetails>
                <GuestCounts>
                  <GuestCount Count="1" />
                </GuestCounts>
                <Comments>
                  <Comment>
                    <Text>Room Type 3 Addon #1</Text>
                  </Comment>
                </Comments>
                <Fees>
                  <Fee TaxInclusive="false" Amount="14.00" />
                </Fees>
              </ServiceDetails>
            </Service>
            <Service ServiceRPH="48188">
              <ServiceDetails>
                <GuestCounts>
                  <GuestCount Count="1" />
                </GuestCounts>
                <Comments>
                  <Comment>
                    <Text>Room Type 3 Addon #2</Text>
                  </Comment>
                </Comments>
                <Fees>
                  <Fee TaxInclusive="false" Amount="14.00" />
                </Fees>
              </ServiceDetails>
            </Service>
            <Service ServiceRPH="48189">
              <ServiceDetails>
                <GuestCounts>
                  <GuestCount Count="1" />
                </GuestCounts>
                <Comments>
                  <Comment>
                    <Text>Room Type 3 Addon #3</Text>
                  </Comment>
                </Comments>
                <Fees>
                  <Fee TaxInclusive="false" Amount="14.00" />
                </Fees>
              </ServiceDetails>
            </Service>
            <Service ServiceRPH="48190">
              <ServiceDetails>
                <GuestCounts>
                  <GuestCount Count="1" />
                </GuestCounts>
                <Comments>
                  <Comment>
                    <Text>Room Type 3 Addon #4</Text>
                  </Comment>
                </Comments>
                <Fees>
                  <Fee TaxInclusive="false" Amount="14.00" />
                </Fees>
              </ServiceDetails>
            </Service>
          </Services>
          <ResGuests>
            <ResGuest ResGuestRPH="0">
              <Profiles>
                <ProfileInfo>
                  <Profile>
                    <Customer>
                      <PersonName>
                        <GivenName>Karys</GivenName>
                        <Surname>Brown</Surname>
                      </PersonName>
                      <Telephone PhoneNumber="079 5588 6392" />
                      <Email>KarysBrown@gustr.com</Email>
                      <Address>
                        <AddressLine>Address Line 1</AddressLine>
                        <AddressLine>Address Line 2</AddressLine>
                        <AddressLine>Address Line 3</AddressLine>
                        <AddressLine>Address Line 4</AddressLine>
                        <CityName>NETHERTON</CityName>
                        <PostalCode>NE65 9EB</PostalCode>
                        <StateProv>GB</StateProv>
                      </Address>
                    </Customer>
                  </Profile>
                </ProfileInfo>
              </Profiles>
            </ResGuest>
            <ResGuest ResGuestRPH="1">
              <Profiles>
                <ProfileInfo>
                  <Profile>
                    <Customer>
                      <PersonName>
                        <GivenName>Karys</GivenName>
                        <Surname>Brown</Surname>
                      </PersonName>
                      <Telephone PhoneNumber="079 5588 6392" />
                      <Email>KarysBrown@gustr.com</Email>
                      <Address>
                        <AddressLine>Address Line 1</AddressLine>
                        <AddressLine>Address Line 2</AddressLine>
                        <AddressLine>Address Line 3</AddressLine>
                        <AddressLine>Address Line 4</AddressLine>
                        <CityName>NETHERTON</CityName>
                        <PostalCode>NE65 9EB</PostalCode>
                        <StateProv>GB</StateProv>
                      </Address>
                    </Customer>
                  </Profile>
                </ProfileInfo>
              </Profiles>
            </ResGuest>
            <ResGuest ResGuestRPH="2">
              <Profiles>
                <ProfileInfo>
                  <Profile>
                    <Customer>
                      <PersonName>
                        <GivenName>Karys</GivenName>
                        <Surname>Brown</Surname>
                      </PersonName>
                      <Telephone PhoneNumber="079 5588 6392" />
                      <Email>KarysBrown@gustr.com</Email>
                      <Address>
                        <AddressLine>Address Line 1</AddressLine>
                        <AddressLine>Address Line 2</AddressLine>
                        <AddressLine>Address Line 3</AddressLine>
                        <AddressLine>Address Line 4</AddressLine>
                        <CityName>NETHERTON</CityName>
                        <PostalCode>NE65 9EB</PostalCode>
                        <StateProv>GB</StateProv>
                      </Address>
                    </Customer>
                  </Profile>
                </ProfileInfo>
              </Profiles>
            </ResGuest>
          </ResGuests>
          <ResGlobalInfo>
            <Comments>
              <Comment>
                <Text>Reservation Note 1</Text>
                <Text>Guest requests a late checkout on departure day.</Text>
              </Comment>
            </Comments>
            <Guarantee>
              <GuaranteesAccepted>
                <GuaranteeAccepted>
                  <PaymentCard CardCode="UseCreditCardDescrip" CardNumber="5277433010308656" 
                  SeriesCode="348" ExpireDate="1117">
                    <CardHolderName>Karys J Brown</CardHolderName>
                  </PaymentCard>
                </GuaranteeAccepted>
              </GuaranteesAccepted>
            </Guarantee>
            <Total AmountBeforeTax="782.00" CurrencyCode="GBP" />
            <HotelReservationIDs>
              <HotelReservationID ResID_Value="58741236" ResID_Source="PickupConfirmationId" />
              <HotelReservationID ResID_Value="N48PK3O61S" ResID_Source="292@Expedia.com" />
            </HotelReservationIDs>
            <Profiles />
          </ResGlobalInfo>
        </HotelReservation>
      </HotelReservations>
    </OTA_HotelResNotifRQ>
  </soap:Body>
</soap:Envelope>
HotelReservations
A collection (1 to n) of HotelReservation messages.

HotelReservations.HotelReservation.HotelReservation
Has collections of RoomStays, Services, ResGuests, and ResGlobalInfo.

HotelReservations.HotelReservation.RoomStays
A collection (1 to n) of RoomStay messages.

HotelReservations.HotelReservation.RoomStays.RoomStay
Contains information pertaining to that room - a reservation can have multiple rooms or RoomStay messages. Contains a single node Total, and collections RoomTypes, RatePlans, RoomRates, and GuestCounts.

HotelReservations.HotelReservation.RoomStays.RoomStay.IndexNumber
The index of the order of the rooms (i.e. 0, 1, 2, 3). Integer.

HotelReservations.HotelReservation.RoomStays.RoomStay.TimeSpan
The arrival date, departure date, and the duration of this room's stay.

HotelReservations.HotelReservation.RoomStays.RoomStay.TimeSpan.Start
The arrival date of this room's stay. String.

HotelReservations.HotelReservation.RoomStays.RoomStay.TimeSpan.End
The departure date of room's stay. String.

HotelReservations.HotelReservation.RoomStays.RoomStay.TimeSpan.Duration
The duration of room's stay. P1D = 1 night stay, P3D = 3 night stay. String.

HotelReservations.HotelReservation.RoomStays.RoomStay.Total.AmountBeforeTax
The total amount for the room and charges affiliated for this room only. If the amount is before tax, this field is populated. Decimal. Optional/Conditional.

HotelReservations.HotelReservation.RoomStays.RoomStay.Total.AmountAfterTax
The total amount for the room and charges affiliated for this room only. If the amount is tax included, this field is populated. Decimal. Optional/Conditional.

HotelReservations.HotelReservation.RoomStays.RoomStay.RoomTypes
A collection (1 to n) of RoomType messages.

HotelReservations.HotelReservation.RoomStays.RoomStay.RoomTypes.RoomType.RoomTypeCode
The room type identifying code. String.

HotelReservations.HotelReservation.RoomStays.RoomStay.RoomTypes.RoomType.RoomDescription.Name
The name of the room type. String.

HotelReservations.HotelReservation.RoomStays.RoomStay.RoomTypes.RoomType.AdditionalDetails
A collection (1 to 1) of AdditionalDetail messages.

HotelReservations.HotelReservation.RoomStays.RoomStay.RoomTypes.RoomType.AdditionalDetail.DetailDescription.Text
A description of the room type.

HotelReservations.HotelReservation.RoomStays.RoomStay.RoomTypes.RoomType.Amenities
A collection (0 to n) of Amenity messages.

HotelReservations.HotelReservation.RoomStays.RoomStay.RoomTypes.RoomType.Amenities.Amenity.RoomAmenity
Room amenity description.

HotelReservations.HotelReservation.RoomStays.RoomStay.RatePlans
A collection (0 to n) of RatePlan messages.

HotelReservations.HotelReservation.RoomStays.RoomStay.RatePlans.RatePlan.Comission.CommissionPayableAmount.Amount
The commission amount due to the channel for this reservation. Decimal.

HotelReservations.HotelReservation.RoomStays.RoomStay.RoomRates
A collection (1 to n) of RoomRate messages.

HotelReservations.HotelReservation.RoomStays.RoomStay.RoomRates.RoomRate.EffectiveDate
The date during the the stay of this reservation this rate is for.

HotelReservations.HotelReservation.RoomStays.RoomStay.RoomRates.RoomRate.Rates
A collection (1 to 1) of Rate messages.

HotelReservations.HotelReservation.RoomStays.RoomStay.RoomRates.RoomRate.Rates.Rate.Total.RateTypeCode
This is the rate plan code for this rate amount.

HotelReservations.HotelReservation.RoomStays.RoomStay.RoomRates.RoomRate.Rates.Rate.Total.AmountBeforeTax
The rate for this day before tax. If AmountBeforeTax is not set AmountAfterTax is. Decimal. Optional/Conditional.

HotelReservations.HotelReservation.RoomStays.RoomStay.RoomRates.RoomRate.Rates.Rate.Total.AmountAfterTax
The rate for this day including tax. If AmountBeforeTax is not set AmountAfterTax is. Decimal. Optional/Conditional.

HotelReservations.HotelReservation.RoomStays.RoomStay.GuestCounts
A collection (1 to n) of GuestCount messages.

HotelReservations.HotelReservation.RoomStays.RoomStay.GuestCounts.GuestCount.Count
The number of people staying in this room. Integer.

HotelReservations.HotelReservation.RoomStays.RoomStay.ResGuestsRPHs
A collection (1 to 1) of ResGuestRPH messages.

HotelReservations.HotelReservation.RoomStays.RoomStay.ResGuestsRPHs.ResGuestRPHs.ResGuestRPH.RPH
This is the ResGuestRPH value found on HotelReservations.HotelReservation.ResGuests.ResGuest node, which links that guest information to this room type. Integer.

HotelReservations.HotelReservation.RoomStays.RoomStay.SpecialRequests
A collection (0 to n) of SpecialRequest messages.

HotelReservations.HotelReservation.RoomStays.RoomStay.SpecialRequests.SpecialRequest.Text
The description of a special request by the guest.

HotelReservations.HotelReservation.RoomStays.RoomStay.ServiceRPHs
A collection (0 to n) of ServiceRPH messages.

HotelReservations.HotelReservation.RoomStays.RoomStay.ServiceRPHs.ServiceRPH.RPH
This is the ServiceRPH value found on HotelReservations.HotelReservation.Services.Service node. It links which extra services the guest has ordered for this room.

HotelReservations.HotelReservation.Services
A collection (0 to n) of Service messages.

HotelReservations.HotelReservation.Services.ServiceDetails.GuestCounts
A collection (1 to 1) of GuestCount messages.

HotelReservations.HotelReservation.Services.ServiceDetails.GuestCounts.GuestCount.Count
The number of guests signed up for this service.

HotelReservations.HotelReservation.Services.ServiceDetails.Comments
A collection (0 to n) of Comment messages.

HotelReservations.HotelReservation.Services.ServiceDetails.Comments.Comment.Text
The description of the service the guest bought.

HotelReservations.HotelReservation.Services.ServiceDetails.Fees
A collection (1 to 1) of Fee messages.

HotelReservations.HotelReservation.Services.ServiceDetails.Fees.Fee.TaxInclusive
True if the tax is included in the price. Boolean.

HotelReservations.HotelReservation.Services.ServiceDetails.Fees.Fee.Amount
The price of the service the guest ordered. Decimal.

HotelReservations.HotelReservation.ResGuests
A collection (0 to n) of ResGuest messages.

HotelReservations.HotelReservation.ResGuests.ResGuest.ResGuestRPH
The ID for this ResGuest message. Integer.

HotelReservations.HotelReservation.ResGuests.ResGuest.Profiles
A collection (1 to 1) of ProfileInfo messages.

HotelReservations.HotelReservation.ResGuests.ResGuest.Profiles.ProfileInfo.Profile.Customer.PersonName.GivenName
Guest's first name.

HotelReservations.HotelReservation.ResGuests.ResGuest.Profiles.ProfileInfo.Profile.Customer.PersonName.Surname
Guest's last name.

HotelReservations.HotelReservation.ResGuests.ResGuest.Profiles.ProfileInfo.Profile.Customer.Telephone.PhoneNumber
The phone number for the guest.

HotelReservations.HotelReservation.ResGuests.ResGuest.Profiles.ProfileInfo.Profile.Customer.Email
The email for the guest.

HotelReservations.HotelReservation.ResGuests.ResGuest.Profiles.ProfileInfo.Profile.Customer.Address.AddressLine
Up to 4 lines of text for the address for the guest.

HotelReservations.HotelReservation.ResGuests.ResGuest.Profiles.ProfileInfo.Profile.Customer.Address.CityName
The name of the city in the guest's address.

HotelReservations.HotelReservation.ResGuests.ResGuest.Profiles.ProfileInfo.Profile.Customer.Address.PostalCode
The postal code of the guest's address.

HotelReservations.HotelReservation.ResGuests.ResGuest.Profiles.ProfileInfo.Profile.Customer.Address.StateProv
The state or province of the guest's address.

HotelReservations.HotelReservation.ResGlobalInfo.Comments
A collection (0, 1) of Comment messages.

HotelReservations.HotelReservation.ResGlobalInfo.Comments.Comment
A collection (0 to n) of Text messages

HotelReservations.HotelReservation.ResGlobalInfo.Comments.Comment.Text
Comments from the guest or comments regarding the reservation from the channel.

HotelReservations.HotelReservation.ResGlobalInfo.Guarantee.GuaranteesAccepted
A collection (1 to 1) of GuaranteeAccepted messages

HotelReservations.HotelReservation.ResGlobalInfo.Guarantee.GuaranteeAccepted.PaymentCard
Credit card information.

HotelReservations.HotelReservation.ResGlobalInfo.Guarantee.GuaranteeAccepted.PaymentCard.CardCode
The type of credit card - Master Card = MC, Visa = VI, Amex = AX, Discover = DS, DinersClub = DC, JCB International = "JCB" Misc = "Description Listed. String."

HotelReservations.HotelReservation.ResGlobalInfo.Guarantee.GuaranteeAccepted.PaymentCard.CardNumber
The credit card number.

HotelReservations.HotelReservation.ResGlobalInfo.Guarantee.GuaranteeAccepted.PaymentCard.SeriesCode
The credit card series code.

HotelReservations.HotelReservation.ResGlobalInfo.Guarantee.GuaranteeAccepted.PaymentCard.ExpireDate
The credit card expiration date.

HotelReservations.HotelReservation.ResGlobalInfo.Guarantee.GuaranteeAccepted.PaymentCard.CardHolderName
The name of the card holder.

HotelReservations.HotelReservation.ResGlobalInfo.Total.AmountBeforeTax
The total price of the reservation not including tax. If this reservation is a cancellation, the AmountBeforeTax will equal 0. Decimal.

HotelReservations.HotelReservation.ResGlobalInfo.Total.AmountAfterTax
The total price of the reservation including tax. If this reservation is a cancellation, the AmountAfterTax will equal 0. Decimal.

HotelReservations.HotelReservation.ResGlobalInfo.Total.CurrencyCode
The three letter currency of the reservation. All price amounts listed on the reservation are in this currency. String.

HotelReservations.HotelReservation.ResGlobalInfo.HotelReservationIDs
A collection (2 to 2) of HotelReservationID messages.

HotelReservations.HotelReservation.ResGlobalInfo.HotelReservationIDs.HotelReservationID.ResID_Source
The source of the ID.

"PickupConfirmationId" is your confirmation number once you confirm the reservation has been received

Otherwise it is a combined string with an "@" separator, the first ID is the numeric ID for the channel in our system, the second is a string that is the name of the channel.

HotelReservations.HotelReservation.ResGlobalInfo.Profiles
A collection (1 to 1) of ProfileInfo messages.

HotelReservations.HotelReservation.ResGlobalInfo.Profiles.ProfileInfo.Profile.Customer.PersonName.GivenName
The first name of the person who booked the reservation, not necessarily the same person as the card holder, or the guests in each room.

HotelReservations.HotelReservation.ResGlobalInfo.Profiles.ProfileInfo.Profile.Customer.PersonName.Surname
The last name of the person who booked the reservation, not necessarily the same person as the card holder, or the guests in each room.

HotelReservations.HotelReservation.ResGlobalInfo.Profiles.ProfileInfo.Profile.Customer.PersonName.Email
The email address of the person who booked the reservation, not necessarily the same person as the card holder, or the guests in each room.

HotelReservations.HotelReservation.ResGuests.ResGuest.Profiles.ProfileInfo.Profile.Customer.Address.AddressLine
Up to 4 lines of text for the address.

HotelReservations.HotelReservation.ResGuests.ResGuest.Profiles.ProfileInfo.Profile.Customer.Address.CityName
The name of the city for the address.

HotelReservations.HotelReservation.ResGuests.ResGuest.Profiles.ProfileInfo.Profile.Customer.Address.PostalCode
The postal code of the address.

HotelReservations.HotelReservation.ResGuests.ResGuest.Profiles.ProfileInfo.Profile.Customer.Address.StateProv
The state or province of the address.




5.1.1 Response Message - OTA_HotelResNotifRS


Once you have received and stored the reservations, the following message would be sent in reply to confirm your processing.

The body contains a <Success /> message, and both the OTA_HotelResNotifRS and the OTA_HotelResModifyNotifRS messages, even if one message or the other does not contain any IDs to confirm.

OTA_HotelResNotifRS is for confirming new reservations, while OTA_HotelResModifyNotifRS is for confirming modifications or cancellations.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
    <soap:Header>
        <HTNGHeader xmlns="http://htng.org/1.1/Header/">
            <From>
                <systemId>[PROVIDERID]</systemId>
                <Credential>
                    <userName>[PROVIDERUSERNAME]</userName>
                    <password>[PROVIDERPASSWORD]</password>
                </Credential>
            </From>
            <To>
                <systemId>[HOTELID]</systemId>
            </To>
        </HTNGHeader>
    </soap:Header>
    <soap:Body>
        <OTA_HotelResNotifRS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Success />
            <HotelReservations>
                <HotelReservation>
                    <ResGlobalInfo>
                        <HotelReservationIDs>
                            <HotelReservationID ResID_Value="66132" />
                            <HotelReservationID ResID_Value="66133" />
                            <HotelReservationID ResID_Value="66134" />
                            <HotelReservationID ResID_Value="66135" />
                            <HotelReservationID ResID_Value="66136" />
                            <HotelReservationID ResID_Value="66137" />
                            <HotelReservationID ResID_Value="66138" />
                            <HotelReservationID ResID_Value="66139" />
                        </HotelReservationIDs>
                    </ResGlobalInfo>
                </HotelReservation>
            </HotelReservations>
        </OTA_HotelResNotifRS>
        <OTA_HotelResModifyNotifRS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Success />
            <HotelResModifies>
                <HotelResModify>
                    <ResGlobalInfo>
                        <HotelReservationIDs />
                    </ResGlobalInfo>
                </HotelResModify>
            </HotelResModifies>
        </OTA_HotelResModifyNotifRS>
    </soap:Body>
</soap:Envelope>

If you wish to include a reservation ID from your system that identifies and links it to this reservation, you can set that value in the ResID_Source field.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
    <soap:Header>
        <HTNGHeader xmlns="http://htng.org/1.1/Header/">
            <From>
                <systemId>[PROVIDERID]</systemId>
                <Credential>
                    <userName>[PROVIDERUSERNAME]</userName>
                    <password>[PROVIDERPASSWORD]</password>
                </Credential>
            </From>
            <To>
                <systemId>[HOTELID]</systemId>
            </To>
        </HTNGHeader>
    </soap:Header>
    <soap:Body>
        <OTA_HotelResNotifRS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Success />
            <HotelReservations>
                <HotelReservation>
                    <ResGlobalInfo>
                        <HotelReservationIDs>
                            <HotelReservationID ResID_Value="66132" ResID_Source="YourPmsId123" />
                            <HotelReservationID ResID_Value="66133" ResID_Source="YourPmsId124" />
                            <HotelReservationID ResID_Value="66134" ResID_Source="YourPmsId125" />
                            <HotelReservationID ResID_Value="66135" ResID_Source="YourPmsId126" />
                            <HotelReservationID ResID_Value="66136" ResID_Source="YourPmsId127" />
                            <HotelReservationID ResID_Value="66137" ResID_Source="YourPmsId128" />
                            <HotelReservationID ResID_Value="66138" ResID_Source="YourPmsId129" />
                            <HotelReservationID ResID_Value="66139" ResID_Source="YourPmsId130" />
                        </HotelReservationIDs>
                    </ResGlobalInfo>
                </HotelReservation>
            </HotelReservations>
        </OTA_HotelResNotifRS>
        <OTA_HotelResModifyNotifRS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Success />
            <HotelResModifies>
                <HotelResModify>
                    <ResGlobalInfo>
                        <HotelReservationIDs />
                    </ResGlobalInfo>
                </HotelResModify>
            </HotelResModifies>
        </OTA_HotelResModifyNotifRS>
    </soap:Body>
</soap:Envelope>




5.2 Modified or Cancelled Reservations - OTA_HotelResModifyNotifRQ


This is an example OTA_HotelResModifyNotifRQ message used for modified or cancelled reservations. It is mostly identical to the OTA_HotelResNotifRQ message, with the document element and early collections being named differently.

    OTA_HotelResModifyNotifRQ.HotelResModifies.HotelResModify

instead of

    OTA_HotelResNotifRQ.HotelReservations.HotelReservation.

Reservations that are cancelled will have a ResGlobalInfo.Total.AmountBeforeTax = 0 (or ResGlobalInfo.Total.AmountAfterTax = 0).

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <OTA_HotelResModifyNotifRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
      <HotelResModifies>
        <HotelResModify>
          <RoomStays>
            <RoomStay IndexNumber="0">
              <RoomTypes>
                <RoomType RoomTypeCode="RT1">
                  <RoomDescription Name="Room Type 1" />
                  <AdditionalDetails>
                    <AdditionalDetail>
                      <DetailDescription>
                        <Text>Room Type 1 Description</Text>
                      </DetailDescription>
                    </AdditionalDetail>
                  </AdditionalDetails>
                  <Amenities>
                    <Amenity RoomAmenity="Room Type 1 Amenity 1" />
                  </Amenities>
                </RoomType>
              </RoomTypes>
              <RatePlans>
                <RatePlan>
                  <Commission>
                    <CommissionPayableAmount Amount="135.00" />
                  </Commission>
                </RatePlan>
              </RatePlans>
              <RoomRates>
                <RoomRate EffectiveDate="2017-10-23">
                  <Rates>
                    <Rate>
                      <Total RatePlanCode="BAR" AmountBeforeTax="150.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-24">
                  <Rates>
                    <Rate>
                      <Total RatePlanCode="BAR" AmountBeforeTax="150.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-25">
                  <Rates>
                    <Rate>
                      <Total RatePlanCode="BAR" AmountBeforeTax="150.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-26">
                  <Rates>
                    <Rate>
                      <Total RatePlanCode="BAR" AmountBeforeTax="150.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-27">
                  <Rates>
                    <Rate>
                      <Total RatePlanCode="BAR" AmountBeforeTax="150.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-28">
                  <Rates>
                    <Rate>
                      <Total RatePlanCode="BAR" AmountBeforeTax="150.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
              </RoomRates>
              <GuestCounts>
                <GuestCount Count="2" />
              </GuestCounts>
              <Total AmountBeforeTax="900.00" />
              <ResGuestRPHs>
                <ResGuestRPH RPH="0" />
              </ResGuestRPHs>
              <SpecialRequests>
                <SpecialRequest>
                  <Text>Room Type 1 Note 1</Text>
                </SpecialRequest>
                <SpecialRequest>
                  <Text>Room Type 1 Note 2</Text>
                </SpecialRequest>
              </SpecialRequests>
              <ServiceRPHs>
                <ServiceRPH RPH="48013" />
              </ServiceRPHs>
            </RoomStay>
            <RoomStay IndexNumber="1">
              <RoomTypes>
                <RoomType RoomTypeCode="RT2">
                  <RoomDescription Name="Room Type 2" />
                  <AdditionalDetails>
                    <AdditionalDetail>
                      <DetailDescription>
                        <Text>Room Type 2 Description</Text>
                      </DetailDescription>
                    </AdditionalDetail>
                  </AdditionalDetails>
                  <Amenities>
                    <Amenity RoomAmenity="Room Type 2 Amenity 1" />
                    <Amenity RoomAmenity="Room Type 2 Amenity 2" />
                  </Amenities>
                </RoomType>
              </RoomTypes>
              <RatePlans>
                <RatePlan>
                  <Commission>
                    <CommissionPayableAmount Amount="189.00" />
                  </Commission>
                </RatePlan>
              </RatePlans>
              <RoomRates>
                <RoomRate EffectiveDate="2017-10-23">
                  <Rates>
                    <Rate>
                      <Total RatePlanCode="BAR" AmountBeforeTax="210.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-24">
                  <Rates>
                    <Rate>
                      <Total RatePlanCode="BAR" AmountBeforeTax="210.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-25">
                  <Rates>
                    <Rate>
                      <Total RatePlanCode="BAR" AmountBeforeTax="210.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-26">
                  <Rates>
                    <Rate>
                      <Total RatePlanCode="BAR" AmountBeforeTax="210.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-27">
                  <Rates>
                    <Rate>
                      <Total RatePlanCode="BAR" AmountBeforeTax="210.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-28">
                  <Rates>
                    <Rate>
                      <Total RatePlanCode="BAR" AmountBeforeTax="210.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
              </RoomRates>
              <GuestCounts>
                <GuestCount Count="2" />
              </GuestCounts>
              <Total AmountBeforeTax="1260.00" />
              <ResGuestRPHs>
                <ResGuestRPH RPH="1" />
              </ResGuestRPHs>
              <SpecialRequests>
                <SpecialRequest>
                  <Text>Room Type 2 Note 1</Text>
                </SpecialRequest>
              </SpecialRequests>
              <ServiceRPHs>
                <ServiceRPH RPH="48168" />
                <ServiceRPH RPH="48169" />
                <ServiceRPH RPH="48185" />
                <ServiceRPH RPH="48186" />
              </ServiceRPHs>
            </RoomStay>
            <RoomStay IndexNumber="2">
              <RoomTypes>
                <RoomType RoomTypeCode="RT3">
                  <RoomDescription Name="Room Type 3" />
                  <AdditionalDetails>
                    <AdditionalDetail>
                      <DetailDescription>
                        <Text>Room Type 3 Description</Text>
                      </DetailDescription>
                    </AdditionalDetail>
                  </AdditionalDetails>
                  <Amenities>
                    <Amenity RoomAmenity="Room Type 3 Amenity 1" />
                  </Amenities>
                </RoomType>
              </RoomTypes>
              <RatePlans>
                <RatePlan>
                  <Commission>
                    <CommissionPayableAmount Amount="243.00" />
                  </Commission>
                </RatePlan>
              </RatePlans>
              <RoomRates>
                <RoomRate EffectiveDate="2017-10-23">
                  <Rates>
                    <Rate>
                      <Total RatePlanCode="BAR" AmountBeforeTax="270.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-24">
                  <Rates>
                    <Rate>
                      <Total RatePlanCode="BAR" AmountBeforeTax="270.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-25">
                  <Rates>
                    <Rate>
                      <Total RatePlanCode="BAR" AmountBeforeTax="270.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-26">
                  <Rates>
                    <Rate>
                      <Total RatePlanCode="BAR" AmountBeforeTax="270.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-27">
                  <Rates>
                    <Rate>
                      <Total RatePlanCode="BAR" AmountBeforeTax="270.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
                <RoomRate EffectiveDate="2017-10-28">
                  <Rates>
                    <Rate>
                      <Total RatePlanCode="BAR" AmountBeforeTax="270.00" />
                    </Rate>
                  </Rates>
                </RoomRate>
              </RoomRates>
              <GuestCounts>
                <GuestCount Count="4" />
              </GuestCounts>
              <Total AmountBeforeTax="1620.00" />
              <ResGuestRPHs>
                <ResGuestRPH RPH="2" />
              </ResGuestRPHs>
              <SpecialRequests>
                <SpecialRequest>
                  <Text>Room Type 3 Note 1</Text>
                </SpecialRequest>
                <SpecialRequest>
                  <Text>Room Type 3 Note 2</Text>
                </SpecialRequest>
                <SpecialRequest>
                  <Text>Room Type 3 Note 3</Text>
                </SpecialRequest>
              </SpecialRequests>
              <ServiceRPHs>
                <ServiceRPH RPH="48187" />
                <ServiceRPH RPH="48188" />
                <ServiceRPH RPH="48189" />
                <ServiceRPH RPH="48190" />
              </ServiceRPHs>
            </RoomStay>
          </RoomStays>
          <Services>
            <Service ServiceRPH="48013">
              <ServiceDetails>
                <GuestCounts>
                  <GuestCount Count="1" />
                </GuestCounts>
                <Comments>
                  <Comment>
                    <Text>Arrival Happy Hour</Text>
                  </Comment>
                </Comments>
                <Fees>
                  <Fee TaxInclusive="false" Amount="14.00" />
                </Fees>
              </ServiceDetails>
            </Service>
            <Service ServiceRPH="48168">
              <ServiceDetails>
                <GuestCounts>
                  <GuestCount Count="1" />
                </GuestCounts>
                <Comments>
                  <Comment>
                    <Text>Room Type 2 Addon #1</Text>
                  </Comment>
                </Comments>
                <Fees>
                  <Fee TaxInclusive="false" Amount="14.00" />
                </Fees>
              </ServiceDetails>
            </Service>
            <Service ServiceRPH="48169">
              <ServiceDetails>
                <GuestCounts>
                  <GuestCount Count="1" />
                </GuestCounts>
                <Comments>
                  <Comment>
                    <Text>Room Type 2 Addon #2</Text>
                  </Comment>
                </Comments>
                <Fees>
                  <Fee TaxInclusive="false" Amount="14.00" />
                </Fees>
              </ServiceDetails>
            </Service>
            <Service ServiceRPH="48185">
              <ServiceDetails>
                <GuestCounts>
                  <GuestCount Count="1" />
                </GuestCounts>
                <Comments>
                  <Comment>
                    <Text>Room Type 2 Addon #1</Text>
                  </Comment>
                </Comments>
                <Fees>
                  <Fee TaxInclusive="false" Amount="14.00" />
                </Fees>
              </ServiceDetails>
            </Service>
            <Service ServiceRPH="48186">
              <ServiceDetails>
                <GuestCounts>
                  <GuestCount Count="1" />
                </GuestCounts>
                <Comments>
                  <Comment>
                    <Text>Room Type 2 Addon #2</Text>
                  </Comment>
                </Comments>
                <Fees>
                  <Fee TaxInclusive="false" Amount="14.00" />
                </Fees>
              </ServiceDetails>
            </Service>
            <Service ServiceRPH="48187">
              <ServiceDetails>
                <GuestCounts>
                  <GuestCount Count="1" />
                </GuestCounts>
                <Comments>
                  <Comment>
                    <Text>Room Type 3 Addon #1</Text>
                  </Comment>
                </Comments>
                <Fees>
                  <Fee TaxInclusive="false" Amount="14.00" />
                </Fees>
              </ServiceDetails>
            </Service>
            <Service ServiceRPH="48188">
              <ServiceDetails>
                <GuestCounts>
                  <GuestCount Count="1" />
                </GuestCounts>
                <Comments>
                  <Comment>
                    <Text>Room Type 3 Addon #2</Text>
                  </Comment>
                </Comments>
                <Fees>
                  <Fee TaxInclusive="false" Amount="14.00" />
                </Fees>
              </ServiceDetails>
            </Service>
            <Service ServiceRPH="48189">
              <ServiceDetails>
                <GuestCounts>
                  <GuestCount Count="1" />
                </GuestCounts>
                <Comments>
                  <Comment>
                    <Text>Room Type 3 Addon #3</Text>
                  </Comment>
                </Comments>
                <Fees>
                  <Fee TaxInclusive="false" Amount="14.00" />
                </Fees>
              </ServiceDetails>
            </Service>
            <Service ServiceRPH="48190">
              <ServiceDetails>
                <GuestCounts>
                  <GuestCount Count="1" />
                </GuestCounts>
                <Comments>
                  <Comment>
                    <Text>Room Type 3 Addon #4</Text>
                  </Comment>
                </Comments>
                <Fees>
                  <Fee TaxInclusive="false" Amount="14.00" />
                </Fees>
              </ServiceDetails>
            </Service>
          </Services>
          <ResGuests>
            <ResGuest ResGuestRPH="0">
              <Profiles>
                <ProfileInfo>
                  <Profile>
                    <Customer>
                      <PersonName>
                        <GivenName>Karys</GivenName>
                        <Surname>Brown</Surname>
                      </PersonName>
                      <Telephone PhoneNumber="079 5588 6392" />
                      <Email>KarysBrown@gustr.com</Email>
                      <Address>
                        <AddressLine>Address Line 1</AddressLine>
                        <AddressLine>Address Line 2</AddressLine>
                        <AddressLine>Address Line 3</AddressLine>
                        <AddressLine>Address Line 4</AddressLine>
                        <CityName>NETHERTON</CityName>
                        <PostalCode>NE65 9EB</PostalCode>
                        <StateProv>GB</StateProv>
                      </Address>
                    </Customer>
                  </Profile>
                </ProfileInfo>
              </Profiles>
            </ResGuest>
            <ResGuest ResGuestRPH="1">
              <Profiles>
                <ProfileInfo>
                  <Profile>
                    <Customer>
                      <PersonName>
                        <GivenName>Karys</GivenName>
                        <Surname>Brown</Surname>
                      </PersonName>
                      <Telephone PhoneNumber="079 5588 6392" />
                      <Email>KarysBrown@gustr.com</Email>
                      <Address>
                        <AddressLine>Address Line 1</AddressLine>
                        <AddressLine>Address Line 2</AddressLine>
                        <AddressLine>Address Line 3</AddressLine>
                        <AddressLine>Address Line 4</AddressLine>
                        <CityName>NETHERTON</CityName>
                        <PostalCode>NE65 9EB</PostalCode>
                        <StateProv>GB</StateProv>
                      </Address>
                    </Customer>
                  </Profile>
                </ProfileInfo>
              </Profiles>
            </ResGuest>
            <ResGuest ResGuestRPH="2">
              <Profiles>
                <ProfileInfo>
                  <Profile>
                    <Customer>
                      <PersonName>
                        <GivenName>Karys</GivenName>
                        <Surname>Brown</Surname>
                      </PersonName>
                      <Telephone PhoneNumber="079 5588 6392" />
                      <Email>KarysBrown@gustr.com</Email>
                      <Address>
                        <AddressLine>Address Line 1</AddressLine>
                        <AddressLine>Address Line 2</AddressLine>
                        <AddressLine>Address Line 3</AddressLine>
                        <AddressLine>Address Line 4</AddressLine>
                        <CityName>NETHERTON</CityName>
                        <PostalCode>NE65 9EB</PostalCode>
                        <StateProv>GB</StateProv>
                      </Address>
                    </Customer>
                  </Profile>
                </ProfileInfo>
              </Profiles>
            </ResGuest>
          </ResGuests>
          <ResGlobalInfo>
            <Comments>
              <Comment>
                <Text>Reservation Note 1</Text>
                <Text>Guest requests a late checkout on departure day.</Text>
              </Comment>
            </Comments>
            <Guarantee>
              <GuaranteesAccepted>
                <GuaranteeAccepted>
                  <PaymentCard CardCode="UseCreditCardDescrip" CardNumber="5277433010308656" 
                  SeriesCode="348" ExpireDate="1117">
                    <CardHolderName>Karys J Brown</CardHolderName>
                  </PaymentCard>
                </GuaranteeAccepted>
              </GuaranteesAccepted>
            </Guarantee>
            <Total AmountBeforeTax="782.00" CurrencyCode="GBP" />
            <HotelReservationIDs>
              <HotelReservationID ResID_Value="874521" ResID_Source="PickupConfirmationId" />
              <HotelReservationID ResID_Value="N48PK3O61S" ResID_Source="292@Expedia.com" />
            </HotelReservationIDs>
            <Profiles />
          </ResGlobalInfo>
        </HotelReservation>
      </HotelReservations>
    </OTA_HotelResModifyNotifRQ>
  </soap:Body>
</soap:Envelope>




5.2.1 Response Message - OTA_HotelResModifyNotifRS


Once you have received and stored the reservation modifications or cancellations, the following message would be sent in reply to confirm your processing.

The body contains a <Success /> message, and both the OTA_HotelResNotifRS and the OTA_HotelResModifyNotifRS messages, even if one message or the other does not contain any IDs to confirm.

OTA_HotelResNotifRS is for confirming new reservations, while OTA_HotelResModifyNotifRS is for confirming modifications or cancellations.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
    <soap:Header>
        <HTNGHeader xmlns="http://htng.org/1.1/Header/">
            <From>
                <systemId>[PROVIDERID]</systemId>
                <Credential>
                    <userName>[PROVIDERUSERNAME]</userName>
                    <password>[PROVIDERPASSWORD]</password>
                </Credential>
            </From>
            <To>
                <systemId>[HOTELID]</systemId>
            </To>
        </HTNGHeader>
    </soap:Header>
    <soap:Body>
        <OTA_HotelResNotifRS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Success />
            <HotelReservations>
                <HotelReservation>
                    <ResGlobalInfo>
                        <HotelReservationIDs />
                    </ResGlobalInfo>
                </HotelReservation>
            </HotelReservations>
        </OTA_HotelResNotifRS>
        <OTA_HotelResModifyNotifRS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Success />
            <HotelResModifies>
                <HotelResModify>
                    <ResGlobalInfo>
                        <HotelReservationIDs>
                            <HotelReservationID ResID_Value="66132" />
                            <HotelReservationID ResID_Value="66133" />
                            <HotelReservationID ResID_Value="66134" />
                            <HotelReservationID ResID_Value="66135" />
                            <HotelReservationID ResID_Value="66136" />
                            <HotelReservationID ResID_Value="66137" />
                            <HotelReservationID ResID_Value="66138" />
                            <HotelReservationID ResID_Value="66139" />
                        </HotelReservationIDs>
                    </ResGlobalInfo>
                </HotelResModify>
            </HotelResModifies>
        </OTA_HotelResModifyNotifRS>
    </soap:Body>
</soap:Envelope>




5.3 Reservation Pickup Polling Message


URL: https://[SERVERNAME]/ReservationReceive/Index?providerId=[PROVIDERID]

To check for reservations pending for pickup, you would send the following message.

The message is just the envelope with the credentials and and empty body.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
    <soap:Header>
        <HTNGHeader xmlns="http://htng.org/1.1/Header/">
            <From>
                <systemId>[PROVIDERID]</systemId>
                <Credential>
                    <userName>[PROVIDERUSERNAME]</userName>
                    <password>[PROVIDERPASSWORD]</password>
                </Credential>
            </From>
            <To>
                <systemId>[HOTELID]</systemId>
            </To>
        </HTNGHeader>
    </soap:Header>
    <soap:Body />
</soap:Envelope>
In response you would get the reservation messages found in section 5.1, and your separate confirmation call would include the response messages found in 5.3, but with your login information in the soap header as shown below.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
    <soap:Header>
        <HTNGHeader xmlns="http://htng.org/1.1/Header/">
            <From>
                <systemId>[PROVIDERID]</systemId>
                <Credential>
                    <userName>[PROVIDERUSERNAME]</userName>
                    <password>[PROVIDERPASSWORD]</password>
                </Credential>
            </From>
            <To>
                <systemId>[HOTELID]</systemId>
            </To>
        </HTNGHeader>
    </soap:Header>
    <soap:Body>
        <OTA_HotelResNotifRS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Success />
            <HotelReservations>
                <HotelReservation>
                    <ResGlobalInfo>
                        <HotelReservationIDs />
                    </ResGlobalInfo>
                </HotelReservation>
            </HotelReservations>
        </OTA_HotelResNotifRS>
        <OTA_HotelResModifyNotifRS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="0" xmlns="http://www.opentravel.org/OTA/2003/05">
            <Success />
            <HotelResModifies>
                <HotelResModify>
                    <ResGlobalInfo>
                        <HotelReservationIDs>
                            <HotelReservationID ResID_Value="66132" />
                            <HotelReservationID ResID_Value="66133" />
                            <HotelReservationID ResID_Value="66134" />
                            <HotelReservationID ResID_Value="66135" />
                            <HotelReservationID ResID_Value="66136" />
                            <HotelReservationID ResID_Value="66137" />
                            <HotelReservationID ResID_Value="66138" />
                            <HotelReservationID ResID_Value="66139" />
                        </HotelReservationIDs>
                    </ResGlobalInfo>
                </HotelResModify>
            </HotelResModifies>
        </OTA_HotelResModifyNotifRS>
    </soap:Body>
</soap:Envelope>




5.4 Create Test Reservations


URL: https://[SERVERNAME]/ReservationReceive/CreateTestReservations?providerId=[PROVIDERID]

To create test reservations (new reservations, modifications, and cancellations), you would send the following message. Each time the message is sent, the test environment is complete reset (i.e. previous test reservations would not exist).

The message is just the envelope with the credentials and and empty body.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
    <soap:Header>
        <HTNGHeader xmlns="http://htng.org/1.1/Header/">
            <From>
                <systemId>[PROVIDERID]</systemId>
                <Credential>
                    <userName>[PROVIDERUSERNAME]</userName>
                    <password>[PROVIDERPASSWORD]</password>
                </Credential>
            </From>
            <To>
                <systemId>[HOTELID]</systemId>
            </To>
        </HTNGHeader>
    </soap:Header>
    <soap:Body />
</soap:Envelope>




5.5 Reservation Sync / All Reservations


URL: https://[SERVERNAME]/ReservationReceive/All?providerId=[PROVIDERID]

This is so you can pickup ALL reservations in the system for a specific hotel, to syncrhonize and/or view all reservations.

This will return the final (or most recent) version of all reservations with a departure date of today on in the future. So a reservation with an arrival three days ago with a departure two days from now, will be included. A reservatoin with a departure date of yesterday, will not be included. Reservations that have been cancelled will be included and listed as cancelled (versus just having cancelled reservations not be included).

The message is just the envelope with the credentials and and empty body.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
    <soap:Header>
        <HTNGHeader xmlns="http://htng.org/1.1/Header/">
            <From>
                <systemId>[PROVIDERID]</systemId>
                <Credential>
                    <userName>[PROVIDERUSERNAME]</userName>
                    <password>[PROVIDERPASSWORD]</password>
                </Credential>
            </From>
            <To>
                <systemId>[HOTELID]</systemId>
            </To>
        </HTNGHeader>
    </soap:Header>
    <soap:Body />
</soap:Envelope>

6.0 Warning & Error Codes


Any message that returns a <Success /> element is to be assumed the message transmission and processing is successful.

If the message also contains a <Warnings> collection and a <Success /> element, the message is to be assumed the message transmission and processing is successful, although a channel for a room type, or a specific channel might not have been updated due to certain conditions (i.e. it is listed but not setup).

Any message that contains <Errors> is to be assumed the message was not processed. There will never be a partially processed message that has <Errors> in its response message.

Each error or warning has a numeric "Code" attribute, with a text description for its value.

Code: Message -1:  Failure.
-1:  Configuration not setup.
0:  HTNGHeader From not provided - htngHeader.From collection has a length of 0.
1:  Multiple HTNGHeader From provided - only 1 required - htngHeader.From collection has a length greater than 1.
2:  HTNGHeader From Credential not provided - htngHeader.From.Credential collection has a length of 0.
3:  Multiple HTNGHeader From Credential provided - only 1 required - htngHeader.From.Credential collection has a length greater than 1.
4:  SystemId not provided - htngHeader.From[0].systemId is null or empty.
5:  Username not provided - htngHeader.From[0].Credential[0].userName is null or empty.
6:  Interface company password not provided - htngHeader.From[0].Credential[0].password is null or empty.
7:  Hotel id not provided - htngHeader.To[0].systemId is null or empty.
8:  Non-integer found in url for a channel id: {0} 9:  Your company htngHeader.From[0].systemId={0} is not currently setup to interface with ChannelRUSH.
10:  Invalid login htngHeader.From[0].Credential[0].userName and htngHeader.From[0].Credential[0].password combination.
11:  Your company is not setup to deliver information to the hotel you specified at htngHeader.To[0].systemId={0}
12:  This hotel htngHeader.To[0].systemId={0} is not mapped to the following channel id {1} 13:  The soap envelope body node does not contain any messages.
14:  The channelId {0} is not setup in ChannelRUSH to deliver data to any room types.
15:  statusApplicationControlType.InvTypeCode={0} not mapped to deliver data to.
16:  statusApplicationControlType.InvTypeCode={0} for channelId={1} is not setup in ChannelRUSH to deliver data to.
17:  statusApplicationControlType.RatePlanID={0} not mapped to send data to.
18:  statusApplicationControlType.RatePlanID={0} for channelId={1} is not setup in ChannelRUSH to deliver data to.




7.0 Getting Started


Email ChannelRUSH at, and we will get your company created in our system and create a test account so you can begin testing messages and log in to see how they are processing.

The setup account will also include all of the URLs needed to post your messages against.



7.1 OpenTravel Alliance Message XSDs


An "XSD" file, or "XML Schema Definition" is a file that ensures XML adheres to a certain format. These will be helpful for building your XML messages to send and receive from our system. The OpenTravel Alliance messages we use are standard, as in we do not add any extra "magic" to them to make them work.

You can download all of the OpenTravel Alliance XSD files here - http://opentravelmodel.net/pubs/specifications/Specifications.html?spec=2007B.



8.0 Frequently Asked Questions


Where is the WSDL file?
There is no WSDL file. This is a basic passing of messages in a SOAP envelope via an HTTP POST. We have found this to be the most platform agnostic approach. We do recommend you verify your XML messages via the XSD files available, as this will ensure your XML is correctly formatted. It is fine to parse all of our reply messages using XSD files as well, as they will pass as they are standard message sets.

[SERVERNAME]? [PROVIDERID]? The urls do not work when I post them to channelrush.com?
Correct - once you contact us to get your test environment setup, we will provide the server name and provider IDs for the URLs to post the messages to.



9.0 Notes


o All message transmission, either sending or receiving, is done over an encrypted SSL connection.

o It is very important that you condense the amount of data you send into the smallest number of transactions possible, using the smallest number of messages possible. This let’s our systems update the information faster once the data has been delivered.