<?xml version="1.0" encoding="UTF-8" ?>


<!-- id	Required	string	A unique identifier for each Transaction message. -->
<!-- partner	Optional	string 	The partner account that the Transaction message is for -->
<!-- timestamp	Required	DateTime  The moment in time that the Transaction message was sent. -->

<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42" partner="pkey">

<!-- At least one of <PropertyDataSet> or <Result> is required. -->



<!-- At least one of <PackageData> or <RoomData> is required. -->
<PropertyDataSet>

    
    <!-- (Required) ID that matches the Hotel List Feed -->
    <Property>334</Property>

    <!-- (Optional) Defines metadata about a room -->
    <RoomData>

        <!-- (Optional) The maximum number of guests that a room can physically accommodate. For a room, capacity is greater than or equal to occupancy. -->
        <Capacity>4</Capacity>

        <!-- (Required) string The unique ID for the room. -->
        <RoomID>060773</RoomID>

        <!-- (Required) string The name of the category of room. This value should match what appears on the hotel's landing page -->
        <Name>
            <Text text="Single Bed Room" language="en"/>
            <Text text="Chambre single" language="fr"/>
        </Name>

        <!-- (Optional) Object A detailed description of the room. -->
        <Description>
            <Text text="Non-smoking" language="en"/>
            <Text text="Pas de fumiers" language="fr"/>
        </Description>

        <!-- (Optional) integer The maximum number of guests that a room is intended for. For example, a large suite might be able to physically accommodate 6 guests (capacity = 6), but is intended for up to 4 guests only. -->
        <Occupancy>6</Occupancy>

        <!-- (Optional) Object A URL and optional caption for a photo of the given room or Room Bundle. You can specify more than one <PhotoURL> for a room or Room Bundle. Each photo URL must be in its own <PhotoURL>. -->
        <PhotoURL>
            <Caption>
                <Text text="Living area" language="en"/>
                <Text text="Le chambre" language="fr"/>
            </Caption>
            <URL>http://www.foo.com/static/bar/image1234.jpg</URL>
        </PhotoURL>

         <!-- (Optional) Object Settings which can restrict or modify the occupancy requirements of a room.-->
        <OccupancySettings>
            <MinOccupancy>2</MinOccupancy>
            <MinAge>16</MinAge>
        </OccupancySettings>

    </RoomData>



    <!-- (Optional) Defines package metadata to be paired with rooms (Room Bundles) -->
    <PackageData>

        <!-- (Required) string The unique ID for the package. -->
        <PackageID>refundbreakfast</PackageID>
        
         <!-- (Required) string The name of the package.. -->
        <Name>
            <Text text="Refundable Room with Breakfast" language="en"/>
            <Text text="Chambre remboursable avec le petit déjeuner" language="fr"/>
        </Name>

        <!-- (Optional) Object A detailed description of the package. -->
        <Description>
            <Text text="Continental Breakfast" language="en"/>
            <Text text="Petit déjeuner continental" language="fr"/>
        </Description>

        <!-- (Optional) enum When and where the user pays for a booking.. -->
        <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency>


        <!-- (Optional) Object When and where the user pays for a booking.. -->
        <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/>


        <!-- (Optional) boolean A detailed description of the package. -->
        <BreakfastIncluded>1|0</BreakfastIncluded>


        <!-- (Optional) Time Earliest possible check-in time. Time must be less than 24:00 in the local time of the hotel. -->
        <CheckinTime>24:00</CheckinTime>


        <!-- (Optional) Time Latest possible check-out time in the local time of the hotel. -->
        <CheckoutTime>24:00</CheckoutTime>

        <!-- (Optional) boolean If a package includes internet access at no charge -->
        <InternetIncluded>1|0</InternetIncluded>

        <ParkingIncluded>boolean_value</ParkingIncluded>

        <!-- (Optional) Object Contains information about meals in this package. -->
        <Meals>
            <Breakfast included="1" in_room="1" in_private_space="1"/>
            <Dinner included="1" buffet="1"/>
        </Meals>


         <!-- (Optional) integer The maximum number of guests that a Room Bundle is intended for. For example, a large suite might be able to physically accommodate 6 guests, but is intended for up to 4 guests only. -->
        <Occupancy>5</Occupancy>


        <!-- (Optional) Object Contains Rate includes elite status benefits for duration of stay. Includes the following parameters:
                        ProgramName: Name of the elite status program
                        ProgramLevel: Level of the program, e.g., "Gold."
                        NightlyValue (optional): Nightly value of the benefits. -->
        <MembershipBenefitsIncluded>
            <ProgramName>
                <Text language="en" text="Special Rewards"/>
            </ProgramName>
            <ProgramLevel>
                <Text language="en" text="Platinum"/>
            </ProgramLevel>
        </MembershipBenefitsIncluded>

        <!-- (Optional) Object Contains Rate includes free car rental for duration of stay. -->
        <OnPropertyCredit>
            <Amount currency="USD">123.45</Amount>
        </OnPropertyCredit>

        <!-- (Optional) Object    (Same as <PhotoURL> in <RoomData>, but for the package (e.g. meal photos).) -->
        <PhotoURL>
            <Caption>
                <Text text="Living area" language="en"/>
                <Text text="Le chambre" language="fr"/>
            </Caption>
            <URL>http://www.foo.com/static/bar/image1234.jpg</URL>
        </PhotoURL>

    </PackageData>
</PropertyDataSet>


<!-- Unavailable example -->
<Result>

    <!-- Required -->
    <Property>4455</Property>
    <!-- Required -->
    <Checkin>2018-06-10</Checkin>
    <!-- Required -->
    <Nights>9</Nights>

    <Unavailable>
      <NotFetched/>
    </Unavailable>
</Result>


<Result>

    <!-- Required -->
    <Property>1234</Property>
    <!-- Required -->
    <Checkin>2018-06-10</Checkin>
    <!-- Required -->
    <Nights>2</Nights>

    <!-- (Optional) float The price of the room for the stay.  -->
    <Baserate currency="USD">275.00</Baserate>

    <!-- (Optional) float The taxes that are calculated for the final price of a room. -->
    <Tax currency="USD">27.50</Tax>

    <!-- (Optional) float Fees other than the base rate and taxes that influence the final price of a room. -->
    <OtherFees currency="USD">0</OtherFees>

    <!-- (Optional) enum When and where the user pays for a booking.. -->
    <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency>

    <!-- (Optional) integer The maximum number of guests that a Room Bundle is intended for. For example, a large suite might be able to physically accommodate 6 guests, but is intended for up to 4 guests only. -->
    <Occupancy>5</Occupancy>

    <!-- (Optional) Object The unique ID of the package to map it to predefined package data.  -->
    <PackageID>packageId</PackageID>


    <!-- (Optional) Object Enables listing a rate as being fully refundable or providing a free cancellation. -->
    <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/>


    <!-- (Optional) string The unique ID of the room to map it to predefined room data.  -->
    <RoomID>rootId</RoomID>

    <!-- Optional string Defines a custom field that you can use to pass additional data associated with a hotel. You can pass up to five custom values with the following element names:
        <Custom1>
        <Custom2>
        <Custom3>
        <Custom4>
        <Custom5> -->
    <Custom1>custom_value</Custom1>


    <!-- (Optional) Rate A container for one or more <Rate> blocks. Each <Rate> in <Rates> defines a different price for the room/itinerary combination.  -->
    <Rates>
        <Rate>
            <!-- (Optional) float The price of the room for the stay.  -->
            <Baserate currency="USD">3196.1</Baserate>

            <!-- (Optional) float The taxes that are calculated for the final price of a room. -->
            <Tax currency="USD">559.49</Tax>

            <!-- (Optional) float Fees other than the base rate and taxes that influence the final price of a room. -->
            <OtherFees currency="USD">543.34</OtherFees>

            <!-- (Optional) integer The maximum number of guests that a Room Bundle is intended for. -->
            <Occupancy>1</Occupancy>
        </Rate>
        <Rate>
            <Baserate currency="USD">3196.1</Baserate>
            <Tax currency="USD">559.49</Tax>
            <OtherFees currency="USD">543.34</OtherFees>
            <Occupancy>3</Occupancy>
        </Rate>
        <Rate>
            <Baserate currency="USD">3196.1</Baserate>
            <Tax currency="USD">559.49</Tax>
            <OtherFees currency="USD">543.34</OtherFees>
            <Occupancy>4</Occupancy>
        </Rate>
    </Rates>


    <RoomBundle>
        <!-- (Required) string The unique ID of the room to map it to predefined room data.  -->
        <RoomID>5</RoomID>

        <!-- (Recommended) Object The unique ID of the package to map it to predefined package data.  -->
        <PackageID>STD</PackageID>

        <!-- (Required) float The price of the room for the stay.  -->
        <Baserate currency="USD">275.00</Baserate>

        <!-- (Required) float The taxes that are calculated for the final price of a room. -->
        <Tax currency="USD">27.50</Tax>

        <!-- (Optional) float Fees other than the base rate and taxes that influence the final price of a room. -->
        <OtherFees currency="USD">0</OtherFees>

         <!-- (Optional) boolean If a package includes internet access at no charge -->
        <InternetIncluded>1</InternetIncluded>

        <!-- (Optional) enum When and where the user pays for a booking.. -->
        <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency>

        <!-- Optional string Defines a custom field that you can use to pass additional data associated with a hotel. You can pass up to five custom values with the following element names:
        <Custom1>
        <Custom2>
        <Custom3>
        <Custom4>
        <Custom5> -->
        <Custom1>ratebasic</Custom1>
        <Custom2>ratebasic</Custom2>


        <!-- (Optional) integer The maximum number of guests that a Room Bundle is intended for. For example, a large suite might be able to physically accommodate 6 guests, but is intended for up to 4 guests only. -->
        <Occupancy>4</Occupancy>

        <!-- (mandatory) Object for Occupancy Details-->
        <OccupancyDetails>
            <NumAdults>2</NumAdults>
            <Children>
                <Child age="17"/>
                <Child age="17"/>
            </Children>
        </OccupancyDetails>


        <Rates>
            <Rate rate_rule_id="mobile">
            <Baserate currency="USD">258.33</Baserate>
            <Tax currency="USD">25.83</Tax>
            <OtherFees currency="USD">1.00</OtherFees>
            <ChargeCurrency>hotel</ChargeCurrency>
            <Custom1>ratecode321</Custom1>
            </Rate>
            <Rate rate_rule_id="us_or_gb">
            <Baserate currency="USD">268.33</Baserate>
            <Tax currency="USD">26.83</Tax>
            <OtherFees currency="USD">1.00</OtherFees>
            <Custom1>ratecode432</Custom1>
            </Rate>
        </Rates>
    </RoomBundle>
  </Result>

</Transaction>