Introduction
This document contains the specifications of ObeConnect. ObeConnect is a webservice that allows partners to manage the inventory of any hotel using the ObeHotel booking engine.
We have developed the most frequently used services. We recommend the integration of all requests for have a dynamic and strong integration. For the purpose of this document, the requests are the follow.
- Product List
- Update inventory
- Reservations List
As can be seen in the diagram above, between the partner and the server there is a flow of data. This process of interaction consists of the Partner making a call (request) to the ObeConnect service. At the precise moment that the server receives the call, it consults the type of XML request to be dealt with. Following on from this, and according to the type of request, ObeConnect obtains the corresponding data from our database and generates a reply (response). This reply is returned in XML to the Partner. Finally, the Partner analyses the XML reply and obtains the data they require.
This type of integration is Push. In order to generate and process XML, the support of a dynamic programming language is necessary.
Acces specifications
The services for the Partner are housed in one of the servers belonging to ObeHotel system. In order to be able to access the XML interface, an identifier is needed (Partner - UserId). The identifier is provided to Partner by our technical department and is exclusive to the designated user and is non-transferable.
There are various ways of making calls (requests) to the server. ObeHotel has opted for the POST method. This request must contain the XML coding directly in a body section.
For the first part of the integration, the requests should be made in the development server. In this server, it is possible to make all kinds of requests. The URL for the XML services via the development server is:
Development Server = https://x.x.x.x/obeconnect/? (this url will be provided by your technical contact)
Once the Partner has completed the integration and all is working correctly, Efimatica S.L will activate the account in the production server. As soon as the account has been activated, all requests made by the Partner will be in a real environment and in real time. The URL for productions services is:
Production Server = https://x.x.x.x/obeconnect/? (this url will be provided by your technical contact)
Note that the connection will be under SSL encryption.
Product list
The product list request was designed for any partner to needs to connect to ObeHotel to read/retrieve the current product configuration (rooms and rates plans defined), as well as the current rates and availability loaded in the system.
Make sure to include type=”text/xml” in your http header.
OTA Product list
Request
<?xml version="1.0" encoding="UTF-8"?>
<OTA_ProductList Language="en">
<Partner UserId="xxx" HotelCode="xxx" HotelPassword="xxx" />
</OTA_ProductList>
Response
<?xml version="1.0" encoding="UTF-8"?>
<OTA_ProductList TimeStamp="2017-03-27 12:10:10" Target="Development">
<Roomtype Code="2" RoomsToSellSource="0" Name="Double/Twin Room With Balcony/Terrace" Adult="2" Children="0" Baby="1">
<Rateplan Code ="STRO" Name="Rate Room Only" NonRefundable="0" AutoPrice="0" FixedRelease="0" FixedMinlos="0" FixedMaxlos="0" />
<Rateplan Code ="STBB" Name="Rate Bed and Breakfast" NonRefundable="0" AutoPrice="0" FixedRelease="0" FixedMinlos="0" FixedMaxlos="0" />
<Rateplan Code ="STHB" Name="Rate Half Board" NonRefundable="0" AutoPrice="0" FixedRelease="0" FixedMinlos="0" FixedMaxlos="0" />
<Rateplan Code ="STFB" Name="Rate Full Board" NonRefundable="0" AutoPrice="0" FixedRelease="0" FixedMinlos="0" FixedMaxlos="0" />
<Rateplan Code ="STAI" Name="Rate All inclusive" NonRefundable="0" AutoPrice="0" FixedRelease="0" FixedMinlos="0" FixedMaxlos="0" />
<Rateplan Code ="SSRO" Name="Short Stay Room Only" NonRefundable="1" AutoPrice="12" FixedRelease="0" FixedMinlos="1" FixedMaxlos="2" />
<Rateplan Code ="SSBB" Name="Short Stay Bed and Breakfast" NonRefundable="1" AutoPrice="12" FixedRelease="0" FixedMinlos="1" FixedMaxlos="2" />
<Rateplan Code ="SSHB" Name="Short Stay Half Board" NonRefundable="1" AutoPrice="12" FixedRelease="0" FixedMinlos="1" FixedMaxlos="2" />
<Rateplan Code ="SSFB" Name="Short Stay Full Board" NonRefundable="1" AutoPrice="12" FixedRelease="0" FixedMinlos="1" FixedMaxlos="2" />
</Roomtype>
<Roomtype Code ="3" RoomsToSellSource="2" Name="Double/Twin Room With Balcony/Terrace (2 adults + 1 child)" Adult="2" Children="1" Baby="1">
<Rateplan Code ="NRRO" Name="Non Refundable Room Only" NonRefundable="1" AutoPrice="-10" FixedRelease="2" FixedMinlos="0" FixedMaxlos="0" />
<Rateplan Code ="NRBB" Name="Non Refundable Bed and Breakfast" NonRefundable="1" AutoPrice="-10" FixedRelease="2" FixedMinlos="0" FixedMaxlos="0" />
<Rateplan Code ="NRHB" Name="Non Refundable Half Board" NonRefundable="1" AutoPrice="-10" FixedRelease="2" FixedMinlos="0" FixedMaxlos="0" />
<Rateplan Code ="NRFB" Name="Non Refundable Full Board" NonRefundable="1" AutoPrice="-10" FixedRelease="2" FixedMinlos="0" FixedMaxlos="0" />
<Rateplan Code ="NRAI" Name="Non Refundable All inclusive" NonRefundable="1" AutoPrice="-10" FixedRelease="2" FixedMinlos="0" FixedMaxlos="0" />
</Roomtype>
<Roomtype Code ="5" RoomsToSellSource="2" Name="Double/Twin Room With Balcony/Terrace (3 adults)" Adult="3" Children="0" Baby="1">
<Rateplan Code ="STRO" Name="Rate Room Only" NonRefundable="0" AutoPrice="0" FixedRelease="0" FixedMinlos="0" FixedMaxlos="0" />
<Rateplan Code ="STBB" Name="Rate Bed and Breakfast" NonRefundable="0" AutoPrice="0" FixedRelease="0" FixedMinlos="0" FixedMaxlos="0" />
<Rateplan Code ="STHB" Name="Rate Half Board" NonRefundable="0" AutoPrice="0" FixedRelease="0" FixedMinlos="0" FixedMaxlos="0" />
<Rateplan Code ="STFB" Name="Rate Full Board" NonRefundable="0" AutoPrice="0" FixedRelease="0" FixedMinlos="0" FixedMaxlos="0" />
<Rateplan Code ="STAI" Name="Rate All inclusive" NonRefundable="0" AutoPrice="0" FixedRelease="0" FixedMinlos="0" FixedMaxlos="0" />
</Roomtype>
</OTA_ProductList>
Request elements
OTA_ProductList: Root element.
@Language: Set the language for the descriptive texts as hotel name, cities, roomtypes, rateplans, … (Optional attribute, default “en” value)
Partner: Required information to grant access to ObeConnect stored in next three attributes.
@UserId: Username for ObeConnect login (case sensitive), provided by Efimatica.
@HotelCode: Hotel identifier defined by ObeConnect and uniquely identifying a property in ObeHotel system.
@HotelPassword: Password for ObeConnect login (case sensitive), provided by Efimatica.
Response elements
OTA_ProductList: Root element.
Roomtype: Room types belonging to that hotel. Only active room types are returned. This element is repeated once per room type that exists per hotel.
@Code: ObeHotel room type identifier.
@RoomsToSellSource: If the room type takes availability from a shared allocations with another room type, this field has its identifier. If the room type has its own allocation/availability the value is 0.
@Name: ObeHotel room type name.
@Adult: Number of adults permitted in this room type.
@Children: Number of children permitted in this room type.
@Baby: Number of babies permitted in this room type.Rateplan: Rate plans relating to the particular hotel. Only active rate plans are returned. This element is repeated once per defined rate plan per hotel.
@Code: ObeHotel rate plan identifier.
@Name: ObeHotel rate plan name.
@NonRefundable: If value is 0, the rate plan has a refundable cancellation policy, alternatively, if value is 1 the rate plan is non-refundable.
@AutoPrice: If the value is 0, the price of this rateplan can be updated using ObeConnect, in cases where the value is diferent to 0, the prices are calculated automaticly by ObeHotel.
@FixedRelease: If the value is 0, the release of this rateplan can be updated using ObeConnect, if value is diferent than 0, the value is the release fixed automaticly by ObeHotel.
@FixedMinlos: If the value is 0, the minimum of nights of this rateplan can be updated using ObeConnect, if value is diferent to 0, the value is the minimum of nights fixed automaticly by ObeHotel.
@FixedMaxlos: If the value is 0, the maximum of nights of this rateplan can be updated using ObeConnect, if value is diferent to 0, the value is the maximum of nights fixed automaticly by ObeHotel.
Inventory
OTA Inventory Update
The update inventory request allows partners to send ObeHotel updates on availability and rates for up to 2 years ahead. Below you will find sample request/response messages for availability and rate update.
Be sure to always include type=”text/xml” in your http header.
Request - Update availability.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_InventoryUpdate>
<Partner UserId="xxx" HotelCode="x" HotelPassword="xxx" />
<Roomtype Code="2">
<Date Value="2020-07-01" RoomsToSell="13"></Date>
<Date Value="2020-07-02" RoomsToSell="22"></Date>
<Date Value="2020-07-06" RoomsToSell="11"></Date>
</Roomtype>
</OTA_InventoryUpdate>
Request - Update prices.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_InventoryUpdate>
<Partner UserId="xxx" HotelCode="x" HotelPassword="xxx" />
<Roomtype Code="2">
<Date Value="2017-09-17">
<Rateplan Code="STRO" Price1="122.30"/>
</Date>
</Roomtype>
</OTA_InventoryUpdate>
Request - Update multiple rateplans.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_InventoryUpdate>
<Partner UserId="xxx" HotelCode="x" HotelPassword="xxx" />
<Roomtype Code="2">
<Date Value="2017-09-17">
<Rateplan Code="STRO" Price1="122.30"/>
<Rateplan Code="STAI" Price1="150.00"/>
</Date>
</Roomtype>
</OTA_InventoryUpdate>
Request - Close sales.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_InventoryUpdate>
<Partner UserId="xxx" HotelCode="x" HotelPassword="xxx" />
<Roomtype Code="2">
<Date Value="2017-09-17">
<Rateplan Code="STRO" ClosedPrice1="1" />
</Date>
</Roomtype>
</OTA_InventoryUpdate>
Request - Update some restrictions.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_InventoryUpdate>
<Partner UserId="xxx" HotelCode="x" HotelPassword="xxx" />
<Roomtype Code="2">
<Date Value="2017-09-17">
<Rateplan Code="STRO" Minlos="3" Cta="1" Ctd="0" />
</Date>
</Roomtype>
</OTA_InventoryUpdate>
Request - Full example
<?xml version="1.0" encoding="UTF-8"?>
<OTA_InventoryUpdate>
<Partner UserId="xxx" HotelCode="x" HotelPassword="xxx" />
<Roomtype Code="4635">
<Date Value="2017-09-17" RoomsToSell="15" >
<Rateplan Code="STRO" Price1="80.00" ClosedPrice1="0" Release="15" Minlos="2" Maxlos="15" Cta="0" Ctd="0" SupplementAdult1="30.00" SupplementTypeAdult1="EUR" SupplementAdult2="35.99" SupplementTypeAdult2="EUR" SupplementChildren1="10.00" SupplementTypeChildren1="EUR" />
<Rateplan Code="STAI" Price1="90.00" ClosedPrice1="0" Release="15" Minlos="2" Maxlos="15" Cta="0" Ctd="0" SupplementAdult1="30.00" SupplementTypeAdult1="EUR" SupplementAdult2="35.99" SupplementTypeAdult2="EUR" SupplementChildren1="10.00" SupplementTypeChildren1="EUR" />
</Date>
<Date Value="2017-09-18" RoomsToSell="10" >
<Rateplan Code="STRO" Price1="85.00" ClosedPrice1="1" />
<Rateplan Code="STAI" Price1="95.00" ClosedPrice1="1" />
</Date>
</Roomtype>
<Roomtype Code="4212">
<Date Value="2017-09-17" RoomsToSell="3" >
<Rateplan Code="STRO" Price1="80.00" DiscountIndividualUse="10" DiscountTypeIndividualUse="percent" />
<Rateplan Code="STAI" Price1="90.00" DiscountIndividualUse="15" DiscountTypeIndividualUse="percent" />
</Date>
</Roomtype>
</OTA_InventoryUpdate>
Response
<?xml version="1.0" encoding="UTF-8"?>
<OTA_InventoryUpdate TimeStamp="2017-03-21 17:11:37" Target="Development">
<Success />
</OTA_InventoryUpdate>
Request elements
OTA_InventoryUpdate: Root element.
Partner: Required information to grant access to ObeConnect stored in next three attributes.
@UserId: Username for ObeConnect login (case sensitive), provided by Efimatica.
@HotelCode: Hotel identifier defined by ObeConnect and uniquely identifying a property in ObeHotel system.
@HotelPassword: Password for ObeConnect login (case sensitive), provided by Efimatica.Roomtype: Room type to be updated by this message. This element can be repeated more than once if hotel wants to update multiple room types for the same set of dates.
@Code: Room type identifier (defined by ObeHotel). Note: mapping of ObeHotel identifiers to hotel codes has to be done by partner.
Date: Specify date on which availability and rate information provided in this message applies. This element can be repeated more than once if partner wants to update non-consecutive dates.
@Value: Date to update (format: yyyy-mm-dd)
@RoomsToSell: Number of additional rooms available for this room type for the day specified by "Value" attribute. Availability always is applied to roomtype level. (Optional attribute)Rateplan: Rate plan to be updated by this message. This element can be repeated mor than once if hotel wants to update multiple room types for the same set of dates. (Optional element)
@Code: Rate plan identifier (defined by ObeHotel). Note: mapping of ObeHotel identifiers to hotel codes must be completed by partner.
@Price1: Value of base price. (Optional attribute)
@ClosedPrice1: If 1, the Price1 is no longer available on ObeHotel for date specified by “Value” attribute. If 0, the Price1 is reopened if previously closed, or stays open if already open. (Optional attribute)
@Release: Specifies the release period required to qualify for this rate plan. Guest must reserve within this release period in order to benefit from the rate. If not specified the release will be set to 0. (Optional attribute)
@Minlos: Specifies minimum length of stay required to qualify for this rate. Guest must stay at least this number of nights to benefit from rate. If not specified the minimum length of stay will be set 0. (Optional attribute)
@Maxlos: Specifies maximum length of stay allowed for this product and day. If not specified the maximum length of stay value will be set to 0. The value 0 disables this restriction. (Optional attribute)
@Cta: Designates the rate plan as unavailable for check-in by customers. A customer’s stay must start on an earlier or later date in order to access this rate plan. (Optional attribute)
@Ctd: Designates the rate plan as unavailable for check-out by customers. A customer’s stay must end on an earlier or later date in order to access this rate plan. (Optional attribute)
@SupplementAdult1: Extra amount/percentage for first additional adult guest. (Optional attribute)
@SupplementTypeAdult1: Designates the supplement for first additional adult guest is a percentage or an euro's. Values ['percent', 'EUR']. Default 'EUR'. (Optional attribute)
@SupplementAdult2: Extra amount/percentage for second additional adult guest. (Optional attribute)
@SupplementTypeAdult2: Designates the supplement for second additional adult guest is a percentage or an euro's. Values ['percent', 'EUR']. Default 'EUR'. (Optional attribute)
@SupplementAdult3: Extra amount/percentage for third additional adult guest. (Optional attribute)
@SupplementTypeAdult3: Designates the supplement for third additional adult guest is a percentage or an euro's. Values ['percent', 'EUR']. Default 'EUR'. (Optional attribute)
@SupplementAdult4: Extra amount/percentage for fourth and subsequent (5,6,...) additional adult guest. (Optional attribute)
@SupplementTypeAdult4: Designates the supplement for fourth and subsequent (5,6,...) additional adult guest is a percentage or an euro's. Values ['percent', 'EUR']. Default 'EUR'. (Optional attribute)
@SupplementChildren1: Extra amount/percentage for first additional children guest. (Optional attribute)
@SupplementTypeChildren1: Designates the supplement for first additional children guest is a percentage or an euro's. Values ['percent', 'EUR']. Default 'EUR'. (Optional attribute)
@SupplementChildren2: Extra amount/percentage for second additional children guest. (Optional attribute)
@SupplementTypeChildren2: Designates the supplement for second additional children guest is a percentage or an euro's. Values ['percent', 'EUR']. Default 'EUR'. (Optional attribute)
@SupplementChildren3: Extra amount/percentage for third additional children guest. (Optional attribute)
@SupplementTypeChildren3: Designates the supplement for third additional children guest is a percentage or an euro's. Values ['percent', 'EUR']. Default 'EUR'. (Optional attribute)
@SupplementChildren4: Extra amount/percentage for fourth and subsequent (5,6,...) additional children guest. (Optional attribute)
@SupplementTypeChildren4: Designates the supplement for fourth and subsequent (5,6,...) additional children guest is a percentage or an euro's. Values ['percent', 'EUR']. Default 'EUR'. (Optional attribute)
@DiscountIndividualUse: Discount (amount/percentage) for use the room as individual use. (Optional attribute)
@DiscountTypeIndividualUse: Designates the discount is a percentage or an euro's. Values ['percent', 'EUR']. Default 'EUR'. (Optional attribute)
Response elements
OTA_InventoryUpdate: Root element.
Success: Element appears if the request to update availability and rates was successful. The node will be empty. If this element is present, Error node does not appear.
OTA Inventory View
The view inventory request allows partners get the inventory data from ObeHotel. Below you will find sample request/response messages for availability and rate update.
Be sure to always include type=”text/xml” in your http header.
Request
<?xml version="1.0" encoding="UTF-8"?>
<OTA_InventoryView>
<Partner UserId="xxx" HotelCode="xxx" HotelPassword="xxx" />
<Date Start="2020-12-01" End="2020-12-02"/>
</OTA_InventoryView>
Response
<?xml version="1.0" encoding="UTF-8"?>
<OTA_InventoryView TimeStamp="2020-11-03 15:37:18" Target="Development">
<Roomtype Code="3986">
<Date Value="2020-12-01" RoomsToSell="2" >
<Rateplan Code="NRAI" Price1="107.00" ClosedPrice1="0" Release="0" Minlos="0" Maxlos="0" Cta="0" Ctd="0" SupplementAdult1="0.00" SupplementTypeAdult1="EUR" SupplementAdult2="0.00" SupplementTypeAdult2="EUR" SupplementAdult3="0.00" SupplementTypeAdult3="EUR" SupplementAdult4="0.00" SupplementTypeAdult4="EUR" SupplementChildren1="0.00" SupplementTypeChildren1="EUR" SupplementChildren2="0.00" SupplementTypeChildren2="EUR" SupplementChildren3="0.00" SupplementTypeChildren3="EUR" SupplementChildren4="0.00" SupplementTypeChildren4="EUR" DiscountIndividualUse="0.00" DiscountTypeIndividualUse="EUR" />
<Rateplan Code="NRRO" Price1="107.00" ClosedPrice1="0" Release="0" Minlos="0" Maxlos="0" Cta="0" Ctd="0" SupplementAdult1="50.00" SupplementTypeAdult1="EUR" SupplementAdult2="55.00" SupplementTypeAdult2="EUR" SupplementAdult3="60.00" SupplementTypeAdult3="EUR" SupplementAdult4="65.00" SupplementTypeAdult4="EUR" SupplementChildren1="30.00" SupplementTypeChildren1="EUR" SupplementChildren2="35.00" SupplementTypeChildren2="EUR" SupplementChildren3="40.00" SupplementTypeChildren3="EUR" SupplementChildren4="45.00" SupplementTypeChildren4="EUR" DiscountIndividualUse="10.00" DiscountTypeIndividualUse="percent" />
</Date>
<Date Value="2020-12-02" RoomsToSell="50" >
<Rateplan Code="NRAI" Price1="107.00" ClosedPrice1="0" Release="0" Minlos="0" Maxlos="0" Cta="0" Ctd="0" SupplementAdult1="0.00" SupplementTypeAdult1="EUR" SupplementAdult2="0.00" SupplementTypeAdult2="EUR" SupplementAdult3="0.00" SupplementTypeAdult3="EUR" SupplementAdult4="0.00" SupplementTypeAdult4="EUR" SupplementChildren1="0.00" SupplementTypeChildren1="EUR" SupplementChildren2="0.00" SupplementTypeChildren2="EUR" SupplementChildren3="0.00" SupplementTypeChildren3="EUR" SupplementChildren4="0.00" SupplementTypeChildren4="EUR" DiscountIndividualUse="0.00" DiscountTypeIndividualUse="EUR" />
<Rateplan Code="NRRO" Price1="107.00" ClosedPrice1="0" Release="0" Minlos="0" Maxlos="0" Cta="0" Ctd="0" SupplementAdult1="0.00" SupplementTypeAdult1="EUR" SupplementAdult2="0.00" SupplementTypeAdult2="EUR" SupplementAdult3="0.00" SupplementTypeAdult3="EUR" SupplementAdult4="0.00" SupplementTypeAdult4="EUR" SupplementChildren1="0.00" SupplementTypeChildren1="EUR" SupplementChildren2="0.00" SupplementTypeChildren2="EUR" SupplementChildren3="0.00" SupplementTypeChildren3="EUR" SupplementChildren4="0.00" SupplementTypeChildren4="EUR" DiscountIndividualUse="0.00" DiscountTypeIndividualUse="EUR" />
<Rateplan Code="STAI" Price1="275.00" ClosedPrice1="0" Release="0" Minlos="1" Maxlos="0" Cta="0" Ctd="0" SupplementAdult1="0.00" SupplementTypeAdult1="EUR" SupplementAdult2="0.00" SupplementTypeAdult2="EUR" SupplementAdult3="0.00" SupplementTypeAdult3="EUR" SupplementAdult4="0.00" SupplementTypeAdult4="EUR" SupplementChildren1="0.00" SupplementTypeChildren1="EUR" SupplementChildren2="0.00" SupplementTypeChildren2="EUR" SupplementChildren3="0.00" SupplementTypeChildren3="EUR" SupplementChildren4="0.00" SupplementTypeChildren4="EUR" DiscountIndividualUse="0.00" DiscountTypeIndividualUse="EUR" />
<Rateplan Code="STRO" Price1="100.00" ClosedPrice1="0" Release="0" Minlos="1" Maxlos="0" Cta="0" Ctd="0" SupplementAdult1="0.00" SupplementTypeAdult1="EUR" SupplementAdult2="0.00" SupplementTypeAdult2="EUR" SupplementAdult3="0.00" SupplementTypeAdult3="EUR" SupplementAdult4="0.00" SupplementTypeAdult4="EUR" SupplementChildren1="0.00" SupplementTypeChildren1="EUR" SupplementChildren2="0.00" SupplementTypeChildren2="EUR" SupplementChildren3="0.00" SupplementTypeChildren3="EUR" SupplementChildren4="0.00" SupplementTypeChildren4="EUR" DiscountIndividualUse="0.00" DiscountTypeIndividualUse="EUR" />
</Date>
</Roomtype>
<Roomtype Code="4091">
<Date Value="2020-12-01" RoomsToSell="50" >
<Rateplan Code="NRAI" Price1="157.00" ClosedPrice1="0" Release="0" Minlos="0" Maxlos="0" Cta="0" Ctd="0" SupplementAdult1="0.00" SupplementTypeAdult1="EUR" SupplementAdult2="0.00" SupplementTypeAdult2="EUR" SupplementAdult3="0.00" SupplementTypeAdult3="EUR" SupplementAdult4="0.00" SupplementTypeAdult4="EUR" SupplementChildren1="0.00" SupplementTypeChildren1="EUR" SupplementChildren2="0.00" SupplementTypeChildren2="EUR" SupplementChildren3="0.00" SupplementTypeChildren3="EUR" SupplementChildren4="0.00" SupplementTypeChildren4="EUR" DiscountIndividualUse="0.00" DiscountTypeIndividualUse="EUR" />
<Rateplan Code="NRRO" Price1="157.00" ClosedPrice1="0" Release="0" Minlos="0" Maxlos="0" Cta="0" Ctd="0" SupplementAdult1="0.00" SupplementTypeAdult1="EUR" SupplementAdult2="0.00" SupplementTypeAdult2="EUR" SupplementAdult3="0.00" SupplementTypeAdult3="EUR" SupplementAdult4="0.00" SupplementTypeAdult4="EUR" SupplementChildren1="0.00" SupplementTypeChildren1="EUR" SupplementChildren2="0.00" SupplementTypeChildren2="EUR" SupplementChildren3="0.00" SupplementTypeChildren3="EUR" SupplementChildren4="0.00" SupplementTypeChildren4="EUR" DiscountIndividualUse="0.00" DiscountTypeIndividualUse="EUR" />
<Rateplan Code="STAI" Price1="153.00" ClosedPrice1="0" Release="0" Minlos="0" Maxlos="0" Cta="0" Ctd="0" SupplementAdult1="0.00" SupplementTypeAdult1="EUR" SupplementAdult2="0.00" SupplementTypeAdult2="EUR" SupplementAdult3="0.00" SupplementTypeAdult3="EUR" SupplementAdult4="0.00" SupplementTypeAdult4="EUR" SupplementChildren1="0.00" SupplementTypeChildren1="EUR" SupplementChildren2="0.00" SupplementTypeChildren2="EUR" SupplementChildren3="0.00" SupplementTypeChildren3="EUR" SupplementChildren4="0.00" SupplementTypeChildren4="EUR" DiscountIndividualUse="0.00" DiscountTypeIndividualUse="EUR" />
</Date>
<Date Value="2020-12-02" RoomsToSell="50" >
<Rateplan Code="NRAI" Price1="107.00" ClosedPrice1="0" Release="0" Minlos="0" Maxlos="0" Cta="0" Ctd="0" SupplementAdult1="0.00" SupplementTypeAdult1="EUR" SupplementAdult2="0.00" SupplementTypeAdult2="EUR" SupplementAdult3="0.00" SupplementTypeAdult3="EUR" SupplementAdult4="0.00" SupplementTypeAdult4="EUR" SupplementChildren1="0.00" SupplementTypeChildren1="EUR" SupplementChildren2="0.00" SupplementTypeChildren2="EUR" SupplementChildren3="0.00" SupplementTypeChildren3="EUR" SupplementChildren4="0.00" SupplementTypeChildren4="EUR" DiscountIndividualUse="0.00" DiscountTypeIndividualUse="EUR" />
<Rateplan Code="NRRO" Price1="199.00" ClosedPrice1="0" Release="0" Minlos="0" Maxlos="0" Cta="0" Ctd="0" SupplementAdult1="0.00" SupplementTypeAdult1="EUR" SupplementAdult2="0.00" SupplementTypeAdult2="EUR" SupplementAdult3="0.00" SupplementTypeAdult3="EUR" SupplementAdult4="0.00" SupplementTypeAdult4="EUR" SupplementChildren1="0.00" SupplementTypeChildren1="EUR" SupplementChildren2="0.00" SupplementTypeChildren2="EUR" SupplementChildren3="0.00" SupplementTypeChildren3="EUR" SupplementChildren4="0.00" SupplementTypeChildren4="EUR" DiscountIndividualUse="0.00" DiscountTypeIndividualUse="EUR" />
<Rateplan Code="STAI" Price1="299.00" ClosedPrice1="0" Release="0" Minlos="1" Maxlos="0" Cta="0" Ctd="0" SupplementAdult1="0.00" SupplementTypeAdult1="EUR" SupplementAdult2="0.00" SupplementTypeAdult2="EUR" SupplementAdult3="0.00" SupplementTypeAdult3="EUR" SupplementAdult4="0.00" SupplementTypeAdult4="EUR" SupplementChildren1="0.00" SupplementTypeChildren1="EUR" SupplementChildren2="0.00" SupplementTypeChildren2="EUR" SupplementChildren3="0.00" SupplementTypeChildren3="EUR" SupplementChildren4="0.00" SupplementTypeChildren4="EUR" DiscountIndividualUse="0.00" DiscountTypeIndividualUse="EUR" />
<Rateplan Code="STRO" Price1="199.00" ClosedPrice1="0" Release="0" Minlos="1" Maxlos="0" Cta="0" Ctd="0" SupplementAdult1="0.00" SupplementTypeAdult1="EUR" SupplementAdult2="0.00" SupplementTypeAdult2="EUR" SupplementAdult3="0.00" SupplementTypeAdult3="EUR" SupplementAdult4="0.00" SupplementTypeAdult4="EUR" SupplementChildren1="0.00" SupplementTypeChildren1="EUR" SupplementChildren2="0.00" SupplementTypeChildren2="EUR" SupplementChildren3="0.00" SupplementTypeChildren3="EUR" SupplementChildren4="0.00" SupplementTypeChildren4="EUR" DiscountIndividualUse="0.00" DiscountTypeIndividualUse="EUR" />
</Date>
</Roomtype>
</OTA_InventoryView>
Request elements
OTA_InventoryView: Root element.
Partner: Required information to grant access to ObeConnect stored in next three attributes.
@UserId: Username for ObeConnect login (case sensitive), provided by Efimatica.
@HotelCode: Hotel identifier defined by ObeConnect and uniquely identifying a property in ObeHotel system.
@HotelPassword: Password for ObeConnect login (case sensitive), provided by Efimatica.Date: Enable partner to retrieve inventory within date range.
@Start: Start date of the interval (format: yyyy-mm-dd)
@End: End date of the interval (format: yyyy-mm-dd)
Response elements
OTA_InventoryView: Root element.
Roomtype: Room type identifier. This element can be repeated more than once if hotel wants to update multiple room types for the same set of dates.
@Code: Room type identifier (defined by ObeHotel). Note: mapping of ObeHotel identifiers to hotel codes has to be done by partner.
Date: Date on which availability and rate information. This element can be repeated more than once if partner wants to update non-consecutive dates.
@Value: Date (format: yyyy-mm-dd)
@RoomsToSell: Number of additional rooms available for this room type for the day specified by "Value" attribute. Availability always is applied to roomtype level.Rateplan: Rate plan identifier. This element can be repeated mor than once if hotel wants to update multiple room types for the same set of dates. (Optional element)
@Code: Rate plan identifier (defined by ObeHotel). Note: mapping of ObeHotel identifiers to hotel codes must be completed by partner.
@Price1: Value of base price.
@ClosedPrice1: If 1, the Price1 is no longer available on ObeHotel for date specified by “Value” attribute. If 0, the Price1 is reopened if previously closed, or stays open if already open.
@Release: Specifies the release period required to qualify for this rate plan. Guest must reserve within this release period in order to benefit from the rate. If not specified the release will be set to 0.
@Minlos: Specifies minimum length of stay required to qualify for this rate. Guest must stay at least this number of nights to benefit from rate. If not specified the minimum length of stay will be set 0.
@Maxlos: Specifies maximum length of stay allowed for this product and day. If not specified the maximum length of stay value will be set to 0. The value 0 disables this restriction.
@Cta: Designates the rate plan as unavailable for check-in by customers. A customer’s stay must start on an earlier or later date in order to access this rate plan.
@Ctd: Designates the rate plan as unavailable for check-out by customers. A customer’s stay must end on an earlier or later date in order to access this rate plan.
@SupplementAdult1: Extra amount/percentage for first additional adult guest. (Optional attribute)
@SupplementTypeAdult1: Designates the supplement for first additional adult guest is a percentage or an euro's. Values ['percent', 'EUR']. Default 'EUR'. (Optional attribute)
@SupplementAdult2: Extra amount/percentage for second additional adult guest. (Optional attribute)
@SupplementTypeAdult2: Designates the supplement for second additional adult guest is a percentage or an euro's. Values ['percent', 'EUR']. Default 'EUR'. (Optional attribute)
@SupplementAdult3: Extra amount/percentage for third additional adult guest. (Optional attribute)
@SupplementTypeAdult3: Designates the supplement for third additional adult guest is a percentage or an euro's. Values ['percent', 'EUR']. Default 'EUR'. (Optional attribute)
@SupplementAdult4: Extra amount/percentage for fourth and subsequent (5,6,...) additional adult guest. (Optional attribute)
@SupplementTypeAdult4: Designates the supplement for fourth and subsequent (5,6,...) additional adult guest is a percentage or an euro's. Values ['percent', 'EUR']. Default 'EUR'. (Optional attribute)
@SupplementChildren1: Extra amount/percentage for first additional children guest. (Optional attribute)
@SupplementTypeChildren1: Designates the supplement for first additional children guest is a percentage or an euro's. Values ['percent', 'EUR']. Default 'EUR'. (Optional attribute)
@SupplementChildren2: Extra amount/percentage for second additional children guest. (Optional attribute)
@SupplementTypeChildren2: Designates the supplement for second additional children guest is a percentage or an euro's. Values ['percent', 'EUR']. Default 'EUR'. (Optional attribute)
@SupplementChildren3: Extra amount/percentage for third additional children guest. (Optional attribute)
@SupplementTypeChildren3: Designates the supplement for third additional children guest is a percentage or an euro's. Values ['percent', 'EUR']. Default 'EUR'. (Optional attribute)
@SupplementChildren4: Extra amount/percentage for fourth and subsequent (5,6,...) additional children guest. (Optional attribute)
@SupplementTypeChildren4: Designates the supplement for fourth and subsequent (5,6,...) additional children guest is a percentage or an euro's. Values ['percent', 'EUR']. Default 'EUR'. (Optional attribute)
@DiscountIndividualUse: Discount (amount/percentage) for use the room as individual use. (Optional attribute)
@DiscountTypeIndividualUse: Designates the discount is a percentage or an euro's. Values ['percent', 'EUR']. Default 'EUR'. (Optional attribute)
Reservations List
The reservations list is a simple interface that allow partners to electronically retrieve bookings made on ObeHotel engine or via agencies connected with ObeHotel Channel Manager. You can retrieve the reservations using three attributes:
- UniqueID: Retrieve reservation using an ObeHotel identifier
- UniqueExternalID: Retrieve reservation using an Agency identifier (ej. Booking.com, Expedia, …)
- Dates range: Retrieve reservations in date range.
Make sure to include type=”text/xml” in your http header.
OTA Reservation list
Request UniqueID
<?xml version="1.0" encoding="UTF-8"?>
<OTA_ReservationsList Language="en">
<Partner UserId="xxx" HotelCode="xxx" HotelPassword="xxx" />
<UniqueId Value="12345"/>
</OTA_ReservationsList>
Request UniqueIDExternal
<?xml version="1.0" encoding="UTF-8"?>
<OTA_ReservationsList Language="en">
<Partner UserId="xxx" HotelCode="xxx" HotelPassword="xxx" />
<UniqueIdExternal Value="12345"/>
</OTA_ReservationsList>
Request Dates Range
<?xml version="1.0" encoding="UTF-8"?>
<OTA_ReservationsList Language="en">
<Partner UserId="xxx" HotelCode="xxx" HotelPassword="xxx" />
<Date Start="2017-01-20" End="2017-01-25" ForceDownload="0"/>
</OTA_ReservationsList>
Response
<?xml version="1.0" encoding="UTF-8"?>
<OTA_ReservationsList TimeStamp="2017-03-27 18:38:53" Target="Development">
<Reservation>
<UniqueId Value="3590183967" />
<UniqueIdExternal Value="15034498" />
<Supplier Name="VIAJES EUROMAR" />
<Client Name="JAVIER" Surname="COBOS" Phone="972 411 600" Email="calypso@medplaya.com" Address="Margarita Ferraris 24" City="Torino" CountryCode="IT"/>
<Roomstay Code="385052">
<Hotel Code="6" Name="MedPlaya Hotel Calypso" Category="3">
<Location Address="Pompeu Fabra, 54-62" PostalCode="43840" City="Salou" Province="Tarragona" Country="Spain" GpsLatitude="41.071644417044" GpsLongitude="1.154460310936" />
<Contact Telephone="+34 977 384 900" Fax="+34 977 383 513" Email="calypso@medplaya.com" />
</Hotel>
<RoomType Code="3" NonRefundable="0" Name="Double/Twin Room With Balcony/Terrace (2 adults + 1 child)" />
<RatePlan Code="STFB" Name="Rate Full Board" />
<Status Code="1" ConfirmBook="2017-02-12 20:06:53" ModifyBook="none" CancelBook="none" />
<Guest AdultsCount="2" ChildsCount="1" BabiesCount="0" />
<StayDate Start="2017-02-19" End="2017-02-22">
<Date Value="2017-02-19" Amount="75.75" AmountBeforeSpecial="75.75" AmountCommission="13.63" />
<Date Value="2017-02-20" Amount="75.75" AmountBeforeSpecial="75.75" AmountCommission="13.63">
<Offer Code="2090" Name="Escapada Relax"/>
</Date>
<Date Value="2017-02-21" Amount="75.75" AmountBeforeSpecial="75.75" AmountCommission="13.63" />
</StayDate>
<RoomRate Amount="227.25" AmountBeforeSpecial="227.25" CurrencyCode="EUR" PercentagePaid="0.00" />
<Comment><![CDATA[We arrive at 15.00]]></Comment>
<CancelPenalty>
<Description><![CDATA[Descriptive policy conditions]]></Description>
<Conditions>
<Penalty Item="1" Percent="50" DaysToCheckin="2" />
<Penalty Item="3" Percent="0" DaysToCheckin="2" />
</Conditions>
</CancelPenalty>
</Roomstay>
<TotalReservation Amount="227.25" CurrencyCode="EUR" PriceType="cm" Commission="18.00" />
</Reservation>
</OTA_ReservationsList>
Request elements
OTA_ReservationsList: Root element.
@Language: Set the language for the descriptive texts (Hotel Name, Cities, Roomtypes, Rateplans, …)
Partner: Required information to grant access to ObeConnect stored in next three attributes.
@UserId: Username for ObeConnect login (case sensitive), provided by Efimatica.
@HotelCode: Hotel identifier defined by ObeConnect and uniquely identifying a property in ObeHotel system.
@HotelPassword: Password for ObeConnect login (case sensitive), provided by Efimatica.UniqueId: Booking identifier, used to retrieve the most recent data for a specific booking. (Optional element)
UniqueIdExternal: Booking agency identifier, used to retrieve most recent data for a specific booking. (Optional element)
Date: Enable partner to retrieve bookings made within date range. The most recent information on bookings created, modified or cancelled between specified dates.
@Start: Start date of the interval (format: yyyy-mm-dd)
@End: End date of the interval (format: yyyy-mm-dd)
@ForceDownload: This attribute allows you to download the reservations once (value equals 0) or always (value equals 1). For default value is 0. (Optional atribute)
@ByCheckin: This attribute allows you retrieve reservations by checkin date. If ByCheckin value equals 1, the attribute ForceDownload is ignored. This request always retrieve the reservations. For default value is 0. (Optional atribute)
Response elements
OTA_ReservationsList: Root element.
Reservation: Each booking occurrence of booking transaction. If more than one booking is returned, they will be sorted by creation date, from the most recent to the oldest.
UniqueId: Booking identifier generated by ObeHotel. Uniquely identifies a booking. Should be used to link modifications and cancellations to initial bookings in hotel system – this ID must be kept in hotel system.
@Value: Identifier string.
UniqueIdExternal: Booking identifier generated by agency. Is used to relate the ObeHotel identifier and agency identifier. (Optional element)
@Value: Identifier string.
Supplier: The name of the agency/system where the booking was made.
@Name: Agency or system name.
Client: Element of the main customer (guest) for this room booking.
@Name: First Name of the main customer (guest) for this room booking.
@Surname: Surname (last name) of the main customer (guest) for this room booking.
@Phone: Container for phone number of main customer (guest) for this booking, when included, otherwise the value is “none”.
@Email: Contains customer email address when included, otherwise the value is “none”.
@Address: Contains customer address when included, otherwise the value is “none”.
@City: Contains customer city when included, otherwise the value is “none”.
@CountryCode: Contains customer country code when included, otherwise the value is “none”.RoomStay: Details on the room stay including rate plan, room type, and period of the stay, daily rate for each day of the stay and the total rate for the room stay including taxes.
@Code: Roomstay identifier generated by ObeHotel. Should be used to link modifications and cancellations to specific roomstay in a booking of the hotel system - must be kept in hotel system.
Hotel: Information about Hotel.
@Code: Hotel identifier defined by ObeHotel and uniquely identifying a property in ObeHotel system.
@Name: Hotel name with language specified in the request.
@Category: Specify the rate used to clasify the hotels according to their quality.Location: Information about location of Hotel
@Address: Address of hotel, with number
@PostalCode: Postal code of the city where the hotel is located.
@City: The name of the city where the hotel is located.
@Province: The name of the province where the hotel is located.
@Country: The name of the country where the hotel is located.
@GpsLatitude: Is a geographic coordinate that specifies the north–south position of a point on the Earth's surface
@GpsLonlongitude: Is a geographic coordinate that specifies the east-west position of a point on the Earth's surfaceContact: Hotel contact details.
@Telephone: The telephone number of support.
@Fax: The Fax number of the hotel.
@Email: The email address to contact with email.Roomtype: Room type of this roomstay in the booking.
@Code: Room type identifier (defined by ObeHotel). Note: mapping of ObeHotel identifiers to hotel codes must be carried out by partner.
@NonRefundable: Indicates if this room type is non-refundable. If the value is 0, the roomstay is refundable, if the value is 1, the roomstay is non-refundable.
@Name: Room type name with language specified in the request.Rateplan: Rate plan of this roomstay in the booking.
@Code: Room rate identifier (defined by ObeHotel). Note: mapping of ObeHotel identifiers to hotel codes must be carried out by partner.
@Name: Rate plan name with language specified in the request.Status: Status of the booking transaction at the time of the retrieval request.
@Code: Possible values are 0 for cancelled roomstay, 1 for confirmed roomstay or 2 for modified roomstay.
@ConfirmBook: The datetime when the roomstay has been confirmed. The datetime will always be in the following format: YYYY-MM-DD hh:mm:ss (The time is UTC/GMT +2)
@ModifyBook: The date time when the roomstay has been cancelled. The datetime will always be in the following format: YYYY-MM-DD hh:mm:ss (The time is UTC/GMT +2)
@CancelBook: The last date time when the roomstay has been modified. The datetime will always be in the following format: YYYY-MM-DD hh:mm:ss (The time is UTC/GMT +2)Guest: Occupancy for the roomstay.
@AdultsCount: Number of adults in the room.
@ChildsCount: Number of children in the room.
@BabiesCount: Number of babies in the room.StayDate: Range of dates of stay for the roomstay.
@Start: A checkin date. The date will always be in the following format: YYYY-MM-DD (The time is UTC/GMT +2).
@End: A checkout date. The date will always be in the following format: YYYY-MM-DD (The time is UTC/GMT +2).Date: This element appears once per day of stay and indicates the rate for each day.
@Value: Date to which the room rate applies. The date will always be in the following format: YYYY-MM-DD (The time is UTC/GMT +2).
@Amount: Base rate for one day of stay, including promotional discounts, taxes if any.
@AmountBeforeSpecial: Base rate for one day of stay, excluding promotional discounts, taxes if any.
@AmountCommission: Commission of this day, it's calculated in base Commission element.Offer: This is a children of Date element. It appears if this day has an offer applied.
@Code: Offer identifier.
@Name: Offer name.Package: This is a children of Date element. It appears if this day has a package.
@Code: Package identifier.
@Name: Package name.Promotion: This is a children of Date element. It appears if this day has a promotion.
@Code: Promotion identifier.
@Name: Promotion value string.RoomRate: This element indicates the total rate of the roomstay.
@Amount: Base rate for all days of stay, including promotional discounts, taxes if any.
@AmountBeforeSpecial: Base rate for all days of stay, excluding promotional discounts, taxes if any.
@CurrencyCode: 3-letter currency code assigned to property on ObeHotel System (per ISO 4217 specification). Now only support EUR currency.
@PercentagePaid: Is the percentage paid using ObeHotel Payment system. Travel agents shouldn’t use this value.Comment: Special request made by the customer.
CancelPenalty: This element contains the cancellation policy with two formats. The partner could be use any.
Description: A description cancel policy with text format. The policy is displayed in the languagein which the customer has made the booking.
Conditions: A parametrized cancelation policy. This element is useful to automatize the calculate process of cancellation taxes for the partner.
Penalty: This element appers once for cancellation condition.
@Item: Number of rule. The maxumim rules allowed is three.
@Percent: Percentage to be paid if the customer cancels the booking after “DaysToCheckin” value.
@DaysToCheckin: Limit of days for cancelation of the booking without applying the rule.TotalReservation: This element contains the rate conditions of all room stays of the booking.
@Amount: Is the total price for the reservation. This is the sum of the price for each room requested.
@CurrencyCode: 3-letter currency code assigned to property on ObeHotel System (per ISO 4217 specification). Currently supports only EUR currency.
@PriceType: Indicates the kind of rate. The value can be “pn” for Net Rates or “cm” for Gross Rates.
@Commission: If the “PriceType” are in pvp rates, this value shows the commission rate agreed between the Agency and the Hotel.
Reservations Notifications
Booking notifications is a simple interface that allows add the PMS booking identifier to a booking.
- UniqueID: Booking identifier
Make sure to include type=”text/xml” in your http header.
OTA Reservations notificacions
Request
<?xml version="1.0" encoding="UTF-8"?>
<OTA_ReservationsNotif Language="en">
<Partner UserId="xxx" HotelCode="xxx" HotelPassword="xxx" />
<UniqueId Value="12136062138"/>
<PmsUniqueId Value="12345"/>
</OTA_ReservationsNotif>
Response
<?xml version="1.0" encoding="UTF-8"?>
<OTA_ReservationsNotif TimeStamp="2020-02-28 12:23:29" Target="Development">
<Success />
</OTA_ReservationsNotif>
Request elements
OTA_ReservationsNotif: Root element.
@Language: Set the language for the descriptive texts as hotel name, cities, roomtypes, rateplans, … (Optional attribute, default “en” value)
Partner: Required information to grant access to ObeConnect stored in next three attributes.
@UserId: Username for ObeConnect login (case sensitive), provided by Efimatica.
@HotelCode: Hotel identifier defined by ObeConnect and uniquely identifying a property in ObeHotel system.
@HotelPassword: Password for ObeConnect login (case sensitive), provided by Efimatica.
@UniqueId: Booking identifier.
@PmsUniqueId: PMS identifier that you want to link to the reservation.
Response elements
OTA_ReservationsNotif: Root element.
Success: Element appears if the request to update availability and rates was successful. The node will be empty. If this element is present, Error node does not appear.
Reservations update payment
The reservations update payment is a simple interface that allow partners to electronically update payment for a reservation using three attributes:
- PmsId: PMS identifier that you want to link to the reservation.
- AmountPaid: The amount paid of the reservation.
- Currency: The currency of the payment.
Make sure to include type=”text/xml” in your http header.
OTA Reservations update payment
Request
<?xml version="1.0" encoding="UTF-8"?>
<OTA_ReservationsUpdatePayment>
<Partner UserId="xxx" HotelCode="xxx" HotelPassword="xxx" />
<Reservation PmsId="123456" AmountPaid="xxx" Currency="xxx" />
</OTA_ReservationsUpdatePayment>
Response
<?xml version="1.0" encoding="UTF-8"?>
<OTA_ReservationsUpdatePayment TimeStamp="2022-11-14 13:16:46" Target="Development">
<Success />
</OTA_ReservationsUpdatePayment>
Request elements
OTA_ReservationsUpdatePayment: Root element.
Partner: Required information to grant access to ObeConnect stored in next three attributes.
@UserId: Username for ObeConnect login (case sensitive), provided by Efimatica.
@HotelCode: Hotel identifier defined by ObeConnect and uniquely identifying a property in ObeHotel system.
@HotelPassword: Password for ObeConnect login (case sensitive), provided by Efimatica.Rservation: Reservation to be updated by the payment.
@PmsId: PMS identifier that you want to link to the reservation.
@AmountPaid: The amount paid of the reservation.
@Currency: The currency of the payment.
Response elements
OTA_ReservationsUpdatePayment: Root element.
Success: Element appears if the request to update availability and rates was successful. The node will be empty. If this element is present, Error node does not appear.
Agency list
Use the agency list request to retrieve a list of all agencies integrated with Obehotel, with name and code.
Make sure to include type=”text/xml” in your http header.
OTA Agency list
Request
<?xml version="1.0" encoding="UTF-8"?>
<OTA_AgencyList Language="en">
<Partner UserId="xxx" HotelCode="xxx" HotelPassword="xxx" />
</OTA_AgencyList>
Response
<?xml version="1.0" encoding="UTF-8"?>
<OTA_AgencyList TimeStamp="2019-03-08 12:10:10" Target="Development">
<Agency Code="37" Name="EXPEDIA" />
<Agency Code="38" Name="BOOKING" />
</OTA_AgencyList>
Request elements
OTA_AgencyList: Root element.
@Language: Set the language for the descriptive texts as hotel name, cities, roomtypes, rateplans, … (Optional attribute, default “en” value)
Partner: Required information to grant access to ObeConnect stored in next three attributes.
@UserId: Username for ObeConnect login (case sensitive), provided by Efimatica.
@HotelCode: Hotel identifier defined by ObeConnect and uniquely identifying a property in ObeHotel system.
@HotelPassword: Password for ObeConnect login (case sensitive), provided by Efimatica.
Response elements
OTA_AgencyList: Root element.
Agency: Agency integrated with Obehotel.
@Code: Agency Code.
@Name: Agency Name.
Country list
Use the country list request to retrieve a list of all countries integrated with Obehotel, with name and code.
Make sure to include type=”text/xml” in your http header.
OTA Country list
Request
<?xml version="1.0" encoding="UTF-8"?>
<OTA_CountryList Language="en">
<Partner UserId="xxx" HotelCode="xxx" HotelPassword="xxx" />
</OTA_CountryList>
Response
<?xml version="1.0" encoding="UTF-8"?>
<OTA_CountryList TimeStamp="2019-03-08 12:10:10" Target="Development">
<Country Code="AF" Name="Afghanistan" />
<Country Code="AL" Name="Albania" />
</OTA_CountryList>
Request elements
OTA_CountryList: Root element.
@Language: Set the language for the descriptive texts as hotel name, cities, roomtypes, rateplans, … (Optional attribute, default “en” value)
Partner: Required information to grant access to ObeConnect stored in next three attributes.
@UserId: Username for ObeConnect login (case sensitive), provided by Efimatica.
@HotelCode: Hotel identifier defined by ObeConnect and uniquely identifying a property in ObeHotel system.
@HotelPassword: Password for ObeConnect login (case sensitive), provided by Efimatica.
Response elements
OTA_CountryList: Root element.
Country: Country integrated with Obehotel.
@Code: Country Code.
@Name: Country Name.
Error messages
Once XML request transaction has successfully been transmitted to ObeConnect system, it can either receive a positive or negative acknowledgment. When errors are returned in responses, the updates contained after wrong value never were processed. We recommend that action is taken to fix the wrong value and to resend the complete XML again.
Several different types of errors may occur, and the negative acknowledgment of a transaction that failed can contain one or more of those error codes. In all errors messages, there are a description of the error. This is an example of error message and his structure.
Error message
Response
<?xml version="1.0" encoding="UTF-8"?>
<Error>[2017-09-17,2,LSAI] This rateplan has fixed release MaxLOS to 21; </Error>
In the case of availability and rates updates, the description of the error contains a brackets [] with day, room type and rate plan of element that is worng.
These are the difents types of errors that the partner could recived
Description |
---|
Error not defined |
The parameter XML for POST doesn't exist |
XML has worng structure |
The access credentials are wrong |
The XML has wrong fields |
XML attribute not found: |
The availability range allowed is |
The closed value should be a 0 or 1 |
This roomtype use the availability of other roomtype (shared availability) |
This roomtype doesn't exist in ObeHotel |
The date is before today |
This hotel doesn't enable this rateplan |
The price range allowed is |
The release range allowed is |
The MinLOS range allowed is |
The MaxLOS range allowed is |
The CTA value should be a 0 or 1 |
The CTD value should be a 0 or 1 |
This rateplan has auto price enabled to |
This rateplan has fixed release enabled to |
This rateplan has fixed release MinLOS to |
This rateplan has fixed release MaxLOS to |
The MinLOS is greater o equal to MaxLOS |
The day format isn't right (YYYY-MM-DD) |
Guide lines
ObeConnect is a plataform that has complex algoritms and process. Is very important that the partner developes the intregration with ObeConnect taking into consideration these points:
A reliable internet connection is required.
Ensure ability to initiate HTTPS connections to ObeConnect servers and provide authentication.
Ensure ability to connect using ObeConnect URL. ObeHotel does not support connection to the ObeConnect webservice directly via IP Address, as this address is subject to change without notice.
Ensure ability to generate XML documents conforming to this API.
Ensure ability to send changes to rates and availability using XML messages
Ensure ability to retrieve bookings (reservations, modifications and cancelations) using XML messages
Ensure ability to handle errors and warning scenarios as per this specification’s recommendations.
All XML messages requests must include type=”text/xml” in his http header.
All XML messages requests must be in UTF-8 codification.
All XML messages requests will sended in body section using POST method.
The authentification details are private and non-transferable.
The partner needs a static IP for access to production. Details of the IP (or multiple IPs) must be passed to Efimatica in order that these can be added to the whitelist.
The partner can manage their rates and availabilty for up to 2 years ahead.
ObeConnect only allows one connection open per property at a time
Processing one message can be a lengthy process, taking up to 5 seconds.
ObeConnect will restrict the max number of updates allowed in one message. Any request containing more than 3000 updates will be rejected by ObeHotel and no update will be applied. One update is a one value to change in ObeHotel system.
ObeConnect doesn’t permit XML messages request over 5MB.
The partner must ensure that it only sends ObeConnect true updates, not information that has already been transmitted to ObeHotel.
Minimum and maximum lengths of stay are "stay-through" method, not arrival. Stay-through based restrictions is minimum and maximum length of a hotel stay which the system calculates by reading all days of the requested stay and applying the most restrictive values from any of those days
The partner must send the right type of rate to ObeConnect. Check with the hotelier if the prices are net rates or gross rates.
The prices sent are always for room type combined with rate plan. ObeConnect doesn’t support update rate for occupancy.
Mapping of ObeHotel identifiers (hotel codes, room type codes, rate plan codes, …) to hotel codes must be actioned by partner.
Release notes
2017-03-23 | Version 1.0.0
- First release of ObeConnect API.
2017-04-23 | Version 1.0.1
The root OTA_ReservationInfoRQ has been changed to OTA_ReservationsList.
In OTA_ReservationsList, the UniqueID element has been changed to UniqueId.
In OTA_ReservationsList, the UniqueIDExternal element has been changed to UniqueIdExternal.
In OTA_ReservationsList, the PrimaryLangID attribute has been changed to Language.
In OTA_ReservationsList, the Reservations element has been deleted.
In OTA_ReservationsList, the Agency authentication element has been changed to Partner authentication.
In OTA_ReservationsList, the Roomstays element has been deleted.
In OTA_ReservationsList, the idDataBase attribute has been changed to Code.
In OTA_ReservationsList, the HotelCategory attribute has been changed to Category.
In OTA_ReservationsList, the GPSLatitude attribute has been changed to GpsLatitude.
In OTA_ReservationsList, the GPSLongitude attribute has been changed to GpsLongitude.
In OTA_ReservationsList, the Country attribute has been added to Location element.
The OTA_UpdateInventory request has been added.
The OTA_ProductList request has been added.
2017-06-15 | Version 1.0.2
- In Date element of OTA_ReservationsList, the ForceDownload attribute has been added. This attribute allows you to download the reservations once or always.
2019-03-13 | Version 1.1.0
- Added OTA_AgencyList request to retrieve all agencies.
2020-02-25 | Version 1.2.0
- Added OTA_CountryList request to retrieve all countries.
2020-03-04 | Version 1.3.0
- Added OTA_ReservationsNotif request for add PMS booking identifier to booking.
2020-03-10 | Version 1.3.1
- Added AmountCommision in OTA_ReservationsList.
- Added Offer, Package, Promotion elements in OTA_ReservationsList.
2020-04-13 | Version 1.3.2
- Added support for supplements updates on OTA_InventoryUpdate.
2020-06-22 | Version 2.0
- Fix bug in modified reservations. The status code was wrong.
- Fix bug in RoomType Closed. Now is better close sales to rateplan level.
2020-11-03 | Version 2.1
- Added InventoryView request for retrieve inventory data.
- Added support for retrieve reservations by checkin value.
2021-03-24 | Version 2.2
- Added support for different prices on first, second, third and fourth adults supplements.
- Added support for different prices on first, second, third and fourth children supplements.
- Change attribute SupIndividual for DiscountIndividualUse.
- Allowed set is percent o 'EUR' for each supplement and discount.
Contact details
Please do not hesitate to contact us for any query or question you may have.
IT Department - Integrations XML.
Tel. +34 972 411 600
web@efimatica.com
Monday to Thursday
9.00 - 14.00 and 15.00 - 18.00
Friday
8.00 to 15:00