Specify property mealplans¶
Mealplans are a special type of reservation add-ons pertaining to breakfast, lunch, and dinner. To specify and sell mealplans, you must:
- Enable selling mealplans through Booking.com;
- Specify prices for your mealplans. Default Hotel Currency Code should be provided with each price. We assume that the meals prices should be according to the hotel default currency. So, we compare the currency received and validate it against the currency we expect ( which is the default hotel currency we already have ) and if it does not match we reject it. In order to avoid any wrong prices/currencies combinations.
Mealplans are specified at property level. They are not associated with specific rates or products.
Before you start¶
Exercise caution while using the Overlay mode
Content API uses an overlay system. Every time you update an existing property, room type, or other object, the body of your request replaces whatever information was stored in our servers at that time. This means existing information may be deleted if you don't include it in your request.
To update an object without deleting information, make sure your request contains both the fields you want to update and those you want to keep the same. Copy/paste sample requests from this page at your own risk.
You need:
Request¶
HTTP request¶
POST https://supply-xml.booking.com/hotels/ota/OTA_HotelDescriptiveContentNotif
Request body¶
The request below does these things:
- Specifies prices (property's default currency) for breakfast, lunch and dinner (Service elements; see also HAC table). Also CurrencyCode should be added, which is the default Hotel Currency Code.
- Enables selling mealplans through Booking.com (SellMealsThroughBooking element).
<OTA_HotelDescriptiveContentNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" PrimaryLangID="en-us" EchoToken="GUID" xsi:schemaLocation="http://www.opentravel.org/2014B/OTA_HotelDescriptiveContentNotifRQ.xsd" id="OTA2014B" Version="8.0" Target="Production">
<HotelDescriptiveContents>
<HotelDescriptiveContent LanguageCode="en" HotelDescriptiveContentNotifType="Overlay" HotelCode="{{PropertyID}}">
<HotelInfo>
<Services>
<Service Code="6000" Price="10" CurrencyCode="EUR"/> <!-- lunch -->
<Service Code="6001" Price="16" CurrencyCode="EUR"/> <!-- dinner -->
<Service Code="173" Price="10" CurrencyCode="EUR">...</Service> <!-- breakfast -->
...
</Services>
<RelativePositions>...</RelativePositions>
</HotelInfo>
<FacilityInfo>...</FacilityInfo>
<TPA_Extensions>
<SellMealsThroughBooking Enabled="1"/>
</TPA_Extensions>
</HotelDescriptiveContent>
</HotelDescriptiveContents>
</OTA_HotelDescriptiveContentNotifRQ>
Enabling mealplans requires prices
To enable selling mealplans through Booking.com
(<SellMealsThroughBooking Enabled="1"/>
), you must first specify
prices for one or more mealplans. You can do this in the same request.
If you try to enable the feature without having specified any prices,
you'll receive an error.
Response¶
Success¶
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelDescriptiveContentNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelDescriptiveContentNotifRS.xsd" TimeStamp="2018-11-26T15:13:31+00:00"
Target="Production" Version="3.000">
<Success />
</OTA_HotelDescriptiveContentNotifRS>
<!-- RUID: [UmFuZG9tetc] -->
Error¶
This error is returned if you try to enable the selling of mealplans without specifying prices:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelDescriptiveContentNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelDescriptiveContentNotifRS.xsd" TimeStamp="2018-11-26T15:13:05+00:00" Target="Test" Version="3.000">
<Errors>
<Error Type="10" Code="321" Status="NotProcessed" ShortText="Price must be provided with any of the meals if SellMealsThroughBooking is enabled"></Error>
</Errors>
</OTA_HotelDescriptiveContentNotifRS>
<!-- RUID: [UmFuZG9etc] -->
Another error can happen, if you don't provide currency with the price
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelDescriptiveContentNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelDescriptiveContentNotifRS.xsd" TimeStamp="2019-01-03T11:19:58+00:00" Target="Test" Version="3.000">
<Errors>
<Error Type="10" Code="321" Status="NotProcessed" ShortText="Meal price must be provided with default hotel currency"></Error>
</Errors>
</OTA_HotelDescriptiveContentNotifRS>
<!-- RUID: [UmFuZG9tSVYkc2RlIyh9YSRf0dQZf4F7NWua2W8v14CNMe9NyN4ZeZQyxhpMGgJgsPVEAiGC23820yESgAJbrgSP5u3hzco9XqT8OGn3nVk=] -->
Error also can happen, in case the provided currency does not match the default hotel currency stored at Booking
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelDescriptiveContentNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelDescriptiveContentNotifRS.xsd" TimeStamp="2019-01-03T14:27:36+00:00" Target="Test" Version="3.000">
<Errors>
<Error Type="1" Code="61" Status="NotProcessed" ShortText="Invalid currency code. Mealplan currency code is not equal to hotel's default currency code"></Error>
</Errors>
</OTA_HotelDescriptiveContentNotifRS>
<!-- RUID: [UmFuZG9tSVYkc2RlIyh9YcBzutKT+ZnQQ4ZVv7R86re4xL2Lu+6Jns8n1A6i8b5RxDDvewb8nx1DjyMs/FtPDvK9/z+EFmYrhEa6Kq8wkBI=] -->