Add-ons and services

Booking provides some services that the customer can book beside the hotel reservations. such as breakfast, parking , wine .... etc.

These services are of two types

  • Room-reservation level services ( also called Add-ons ) such as breakfast
  • Hotel-reservation level services ( also called Instay services ) such as wine service.

Currently we are at a transient state. Where you only get room-reservation level services ( add-ons ). In order to get the new services ( the hotel-reservation level services ) please turn on the feature res_new_services_format. But take care. The feature also changes the way you get the addons for OTA. So please before turning on the feature, make sure that you handle both Addons and Instay services properly.

Note : you can set the mealplans service/addon through content-API [specify add-ons][tsk-specify-add-ons].

Why Services matter

If a guest has purchased service, he expects the property to know about this by the time he checks in. This means your software must be able to extract this information from B.XML or OTA XML reservation messages and pass it along. This page explains how to do that.

Feature res_new_services_format turned Off

When you have the feature is off, you only get the add-ons in the following formats.

Add-ons in B.XML

When parsing responses from /xml/reservations, look for add-on information in the add-ons element:

<reservations>
  <reservation>
    <room>
      <addons>
        <addon>
          <name>Breakfast</name>
          <nights>1</nights>
          <persons>2</persons>
          <price_mode>4</price_mode>
          <price_per_unit>6</price_per_unit>
          <totalprice>12</totalprice>
          <type>1</type>
        </addon>
      </addons>
    </room>
  </reservation>
</reservations>

See also the list of possible values for type.

Add-ons in OTA XML

When parsing responses from /ota/OTA_HotelResNotif or /ota/OTA_HotelResModifyNotif, look for add-ons under Services:

OTA_HotelResNotifRQ ... >
  <HotelReservations>
    <HotelReservation>
      <RoomStays>...</RoomStays>
        <Services>
            <Service
                    ServiceRPH="1"
                    ServiceInventoryCode="1"
                    ServicePricingType="4"
                    >
                <ServiceDetails>
                    <GuestCounts>
                        <GuestCount Count="3" />
                    </GuestCounts>
                    <TimeSpan Duration="6" />
                    <Fees>
                        <Fee Amount="54" />
                    </Fees>
                </ServiceDetails>
            </Service>
        </Services>
      <ResGuests>...</ResGuests>
      <TPA_Extensions>...</TPA_Extensions>
      <ResGlobalInfo>...</ResGlobalInfo>
    </HotelReservation>
    <HotelReservation>...</HotelReservation>
    <HotelReservation>...</HotelReservation>
    <HotelReservation>...</HotelReservation>
  </HotelReservations>
</OTA_HotelResNotifRQ>

See @ServiceInventoryCodeForAddons for a list of add-on types

Feature res_new_services_format turned On

When you turn on the fearure. You will get Both add-ons and instayservices.

Important: This feature res_new_services_format is in Beta

This product is open for Beta Testing; if you wish to start using this product, please sign up via this form . Be one of the first adopters, and get dedicated support via a Slack channel and 25 points in the Programme

B.XML

When parsing responses from /xml/reservations. You can get both addons and instay services.

Addons will be at the add-ons tag. Just the same way as when the feature is off

    <reservations>
      <reservation>
        <room>
          <addons>
            <addon>
              <name>Breakfast</name>
              <nights>1</nights>
              <persons>2</persons>
              <price_mode>4</price_mode>
              <price_per_unit>6</price_per_unit>
              <totalprice>12</totalprice>
              <type>1</type>
            </addon>
          </addons>
        </room>
      </reservation>
    </reservations>

Instay services information can be found under the tag services_reservations. bxml_new_services

    <reservations>
      <reservation>
       <services_reservations>
            <service_reservation>
                <extranet_url>https://admin.booking.com/hotel/hoteladmin/extranet_ng/manage/booking.html?service_action=details&amp;hotel_id=355138&amp;service_req=8697&amp;res_id=1906125412</extranet_url>
                <guest_answers>
                    <question name="What time do you prefer?">20:30</question>
                </guest_answers>
                <payment_policies>
                    <payment_policy>Payment policy was not defined</payment_policy>
                </payment_policies>
                <prices>
                    <price>
                        <number_of_units>3</number_of_units>
                        <price_per_unit currency_code="EUR"
                            rate_description=""
                            unit="per_person">35</price_per_unit>
                        <total currency_code="EUR">105</total>
                    </price>
                </prices>
                <reservation_status>Reserved</reservation_status>
                <reservation_time time="2017-04-09 09:04:51" />
                <service_identification_info auto_approve_enabled="False"
                                     id="2183"
                                     service_category_code="InStayServices"
                                     service_type_id="31"
                                     title="Attraction">
                    <attribute key="attraction_description">A visit to the Tablao Flamenco Los Gallos to see a typical Andalusian show.</attribute>
                    <attribute key="attraction_name">Flamenco show</attribute>
                </service_identification_info>
                <service_reservation_id>8697</service_reservation_id>
            </service_reservation>
            <service_reservation>
                <extranet_url>https://admin.booking.com/hotel/hoteladmin/extranet_ng/manage/booking.html?service_action=details&amp;hotel_id=355138&amp;service_req=8698&amp;res_id=1906125412</extranet_url>
                <guest_answers>
                    <question name="Which tour are you interested in?">Tour por el centro histórico a las 10:00</question>
                    <question name="preferred_date">2019-04-13</question>
                    <question name="Which language do you speak?">Español</question>
                </guest_answers>
                <payment_policies>
                    <payment_policy>Payment policy was not defined</payment_policy>
                </payment_policies>
                <prices>
                    <price>
                        <number_of_units>3</number_of_units>
                        <price_per_unit currency_code="EUR"
                            rate_description=""
                            unit="per_person">0</price_per_unit>
                        <total currency_code="EUR">0</total>
                    </price>
                </prices>
                <reservation_status>Reserved</reservation_status>
                <reservation_time time="2017-04-09 09:06:34" />
                <service_identification_info auto_approve_enabled="False"
                                     id="2162"
                                     service_category_code="InStayServices"
                                     service_type_id="31"
                                     title="Attraction">
                    <attribute key="attraction_description">The following two-hour tours are available in English and Spanish:
Historic centre tour, Mysteries of Santa Cruz tour and Legends of Triana tour</attribute>
                    <attribute key="attraction_name">Free walking tour around the city</attribute>
                </service_identification_info>
                <service_reservation_id>8698</service_reservation_id>
            </service_reservation>
            <service_reservation> .... </service_reservation>
        </services_reservations>
    <reservation>
<reservations>

OTA XML

For OTA, Both addons and instay services will be under the Service tag. The detailed description of each tag can be found at OTA Services

Instay service Examples

Example 1 : Parking Service

            <Services>
                <Service 
                        ID="1720"
                        instance="6928"
                        ReservationStatusType="Reserved"
                        Inclusive="0"
                        URL="https://admin.booking.com/hotel/hoteladmin/extranet_ng/manage/booking.html?service_action=details&amp;hotel_id=235434&amp;service_req=6928&amp;res_id=1238638578"
                        ServiceInventoryCode="42"
                        ServiceCategoryCode ="InStayServices"
                        ServicePricingType="0"
                        >
                    <Price NumberOfUnits="2">
                        <Total CurrencyCode="EUR" AmountAfterTax="52" />
                        <Base CurrencyCode="EUR" Type="per_night" AmountAfterTax="26"/>
                    </Price>
                    <TPA_Extensions>
                        <ServiceExtraIdentificationInfo
                           Title="Parking"
                           ServiceTypeName="parking"
                           AutoApproveEnabled="False"
                         >
                            <Attribute key="private_parking">1</Attribute>
                            <Attribute key="where_located">5_minutes_walk</Attribute>
                        </ServiceExtraIdentificationInfo>
                        <ReservationTime time="2019-02-20 00:02:06"></ReservationTime>
                    </TPA_Extensions>
                    <ServiceDetails>
                        <Comments>
                            <Comment Name="Is there any further information that you need?">
                                <Text>no</Text>
                            </Comment>
                        </Comments>
                        <CancelPenalties CancelPolicyIndicator="False">
                         </CancelPenalties>
                        <DepositPayments>
                            <GuaranteePayment>
                                <Description>
                                    <Text>Payment policy was not defined</Text>
                                </Description>
                            </GuaranteePayment>
                        </DepositPayments>
                    </ServiceDetails>
                </Service>
            </Services>

Example 2 : Wine Service

            <Services>
                <Service
                        ID="2808"
                        instance="7545"
                        ReservationStatusType="Reserved"
                        Inclusive="0"
                        URL="https://admin.booking.com/hotel/hoteladmin/extranet_ng/manage/booking.html?service_action=details&amp;hotel_id=555926&amp;service_req=7545&amp;res_id=1773108520"
                        ServiceInventoryCode="6"
                        ServiceCategoryCode ="InStayServices"
                        ServicePricingType="0"
                        >
                    <Price NumberOfUnits="1">
                        <Total CurrencyCode="EUR" AmountAfterTax="25" />
                        <Base CurrencyCode="EUR" Type="per_bottle" AmountAfterTax="25"/>
                    </Price>
                    <TPA_Extensions>
                        <ServiceExtraIdentificationInfo
                           Title="Champagne"
                           ServiceTypeName="champagne"
                           AutoApproveEnabled="True"
                         >
                            <Attribute key="champagne_specifics_more">This service includes a bottle of cava (Catalan champagne), strawberries with chocolate, and a sensual kit.</Attribute>
                            <Attribute key="moderation">1</Attribute>
                        </ServiceExtraIdentificationInfo>
                        <ReservationTime time="2019-03-07 03:35:47"></ReservationTime>
                    </TPA_Extensions>
                    <ServiceDetails>
                        <Comments></Comments>
                        <CancelPenalties CancelPolicyIndicator="False">
                         </CancelPenalties>
                        <DepositPayments>
                            <GuaranteePayment>
                                <Description>
                                    <Text>Payment policy was not defined</Text>
                                </Description>
                            </GuaranteePayment>
                        </DepositPayments>
                    </ServiceDetails>
                </Service>
                <Service
                        ID="2808"
                        instance="7546"
                        ReservationStatusType="Reserved"
                        Inclusive="0"
                        URL="https://admin.booking.com/hotel/hoteladmin/extranet_ng/manage/booking.html?service_action=details&amp;hotel_id=555926&amp;service_req=7546&amp;res_id=1773108520"
                        ServiceInventoryCode="6"
                        ServiceCategoryCode ="InStayServices"
                        ServicePricingType="0"
                        >
                    <Price NumberOfUnits="1">
                        <Total CurrencyCode="EUR" AmountAfterTax="25" />
                        <Base CurrencyCode="EUR" Type="per_bottle" AmountAfterTax="25"/>
                    </Price>
                    <TPA_Extensions>
                        <ServiceExtraIdentificationInfo
                           Title="Champagne"
                           ServiceTypeName="champagne"
                           AutoApproveEnabled="True"
                         >
                            <Attribute key="champagne_specifics_more">This service includes a bottle of cava (Catalan champagne), strawberries with chocolate, and a sensual kit.</Attribute>
                            <Attribute key="moderation">1</Attribute>
                        </ServiceExtraIdentificationInfo>
                        <ReservationTime time="2019-03-07 03:35:51"></ReservationTime>
                    </TPA_Extensions>
                    <ServiceDetails>
                        <Comments></Comments>
                        <CancelPenalties CancelPolicyIndicator="False">
                         </CancelPenalties>
                        <DepositPayments>
                            <GuaranteePayment>
                                <Description>
                                    <Text>Payment policy was not defined</Text>
                                </Description>
                            </GuaranteePayment>
                        </DepositPayments>
                    </ServiceDetails>
                </Service>
            </Services>

Add-ons Example

Breakfast addon

            <Services>
                <Service
                        ServiceRPH="1"
                        ServiceInventoryCode="1"
                        ServicePricingType="4"
                         ServiceCategoryCode ="Addons" 
                        >
                    <Price NumberOfUnits="18">
                        <Total CurrencyCode="EUR" AmountAfterTax="54" />
                        <Base CurrencyCode="EUR" Type="per person / per night" AmountAfterTax="3"/>
                        <RateDescription>
                            <Text>per person / per night</Text>
                        </RateDescription>
                    </Price>
                    <ServiceDetails>
                        <Comments>
                            <Comment Name="Guest count">
                                <Text>3</Text>
                            </Comment>
                            <Comment Name="Night count">
                                <Text>6</Text>
                            </Comment>
                        </Comments>
                        <CancelPenalties CancelPolicyIndicator="False"></CancelPenalties>
                        <GuaranteePayment>
                            <Description>
                                <Text>Same payment method of the room reservation 24864713 </Text>
                            </Description>
                        </GuaranteePayment>
                    </ServiceDetails>
                    <TPA_Extensions>
                        <ServiceExtraIdentificationInfo Title="Colazione" ServiceTypeName="Breakfast" >
                            </ServiceExtraIdentificationInfo>
                    </TPA_Extensions>
                </Service>
            </Services>

See also

How to specify meal plans with the Content API.
How to get the new services in OTA .
How to get the new services in B.XML.