GET /getHotel?hotelCode=1234&lang=EN HTTP/1.1
Authorization: Basic dGVzdGhvdGVsOnRlc3RwYXNzd29yZA==
Accept: application/xml, text/xml
Host: yourdomain.com
<?xml version="1.0" encoding="utf-8"?>
<message>
<rooms hotelId="1234" hotelName="My test hotel"
priceModel="PerDay" currency="EUR">
<room code="CLA" name="Classic Room">
<rate code="BAR" name="Flexible Rate"
regime="Bed Only" updateType="PRI" />
<rate code="NR" name="Prepayment Rate"
regime="Bed Only" updateType="InvRest" />
</room>
<room code="SUP" name="Superior Room">
<rate code="BAR" name="Flexible Rate"
regime="Bed Only" updateType="PRI" />
<rate code="BB" name="Breakfast included"
regime="Bed and breakfast" updateType="PRI" />
</room>
<room code="SUI" name="Suite">
<rate code="BB" name="Breakfast included"
regime="Bed and breakfast" updateType="PRI" />
</room>
</rooms>
</message>
<?xml version="1.0" encoding="utf-8"?>
<message>
<rooms hotelId="1234" hotelName="My test hotel"
priceModel="PerPerson" currency="EUR">
<room code="CLA" name="Classic Room"
minOccupancy="1" maxOccupancy="1">
<rate code="BAR" name="Flexible Rate"
regime="Bed Only" updateType="PRI" />
<rate code="NR" name="Prepayment Rate"
regime="Bed Only" updateType="InvRest" />
</room>
<room code="SUP" name="Superior Room"
minOccupancy="1" maxOccupancy="2">
<rate code="BAR" name="Flexible Rate"
regime="Bed Only" updateType="PRI" />
<rate code="NR" name="Prepayment Rate"
regime="Bed Only" updateType="Inv" />
</room>
<room code="SUI" name="Suite"
minOccupancy="1" maxOccupancy="4">
<rate code="BAR" name="Flexible Rate"
regime="Bed Only" updateType="NoUpdate" />
<rate code="BB" name="Breakfast included"
regime="Bed and breakfast" updateType="PRI" />
</room>
</rooms>
</message>
<?xml version="1.0" encoding="utf-8"?>
<message>
<rooms hotelId="1234" hotelName="My test hotel"
priceModel="PerOccupancy" currency="EUR">
<room code="SUP" name="Superior Room"
minOccupancy="1" maxOccupancy="2">
<occupancies>
<occupancy adultCount="1" childCount="0" />
<occupancy adultCount="1" childCount="1" />
<occupancy adultCount="2" childCount="0" />
</occupancies>
<rate code="BAR" name="Flexible Rate" regime="Bed Only" />
<rate code="NR" name="Prepayment Rate" regime="Bed Only" />
</room>
<room code="SUI" name="Suite"
minOccupancy="1" maxOccupancy="4">
<occupancies>
<occupancy adultCount="1" childCount="0" />
<occupancy adultCount="1" childCount="1" />
<occupancy adultCount="2" childCount="2" />
<occupancy adultCount="4" childCount="0" />
</occupancies>
<rate code="BAR" name="Flexible Rate" regime="Bed Only" />
<rate code="BB" name="Breakfast included"
regime="Bed and breakfast" />
</room>
</rooms>
</message>
<?xml version="1.0" encoding="utf-8"?>
<message>
<failure type="3" message="BadAuthentication">
<comment><![CDATA[Credentials are invalid for this Hotel (1234)]]></comment>
</failure>
</message>
Hotel setup
Get hotel
D-EDGE reads a hotel’s configuration from your system
GET /getHotel?hotelCode=1234&lang=EN HTTP/1.1
Authorization: Basic dGVzdGhvdGVsOnRlc3RwYXNzd29yZA==
Accept: application/xml, text/xml
Host: yourdomain.com
<?xml version="1.0" encoding="utf-8"?>
<message>
<rooms hotelId="1234" hotelName="My test hotel"
priceModel="PerDay" currency="EUR">
<room code="CLA" name="Classic Room">
<rate code="BAR" name="Flexible Rate"
regime="Bed Only" updateType="PRI" />
<rate code="NR" name="Prepayment Rate"
regime="Bed Only" updateType="InvRest" />
</room>
<room code="SUP" name="Superior Room">
<rate code="BAR" name="Flexible Rate"
regime="Bed Only" updateType="PRI" />
<rate code="BB" name="Breakfast included"
regime="Bed and breakfast" updateType="PRI" />
</room>
<room code="SUI" name="Suite">
<rate code="BB" name="Breakfast included"
regime="Bed and breakfast" updateType="PRI" />
</room>
</rooms>
</message>
<?xml version="1.0" encoding="utf-8"?>
<message>
<rooms hotelId="1234" hotelName="My test hotel"
priceModel="PerPerson" currency="EUR">
<room code="CLA" name="Classic Room"
minOccupancy="1" maxOccupancy="1">
<rate code="BAR" name="Flexible Rate"
regime="Bed Only" updateType="PRI" />
<rate code="NR" name="Prepayment Rate"
regime="Bed Only" updateType="InvRest" />
</room>
<room code="SUP" name="Superior Room"
minOccupancy="1" maxOccupancy="2">
<rate code="BAR" name="Flexible Rate"
regime="Bed Only" updateType="PRI" />
<rate code="NR" name="Prepayment Rate"
regime="Bed Only" updateType="Inv" />
</room>
<room code="SUI" name="Suite"
minOccupancy="1" maxOccupancy="4">
<rate code="BAR" name="Flexible Rate"
regime="Bed Only" updateType="NoUpdate" />
<rate code="BB" name="Breakfast included"
regime="Bed and breakfast" updateType="PRI" />
</room>
</rooms>
</message>
<?xml version="1.0" encoding="utf-8"?>
<message>
<rooms hotelId="1234" hotelName="My test hotel"
priceModel="PerOccupancy" currency="EUR">
<room code="SUP" name="Superior Room"
minOccupancy="1" maxOccupancy="2">
<occupancies>
<occupancy adultCount="1" childCount="0" />
<occupancy adultCount="1" childCount="1" />
<occupancy adultCount="2" childCount="0" />
</occupancies>
<rate code="BAR" name="Flexible Rate" regime="Bed Only" />
<rate code="NR" name="Prepayment Rate" regime="Bed Only" />
</room>
<room code="SUI" name="Suite"
minOccupancy="1" maxOccupancy="4">
<occupancies>
<occupancy adultCount="1" childCount="0" />
<occupancy adultCount="1" childCount="1" />
<occupancy adultCount="2" childCount="2" />
<occupancy adultCount="4" childCount="0" />
</occupancies>
<rate code="BAR" name="Flexible Rate" regime="Bed Only" />
<rate code="BB" name="Breakfast included"
regime="Bed and breakfast" />
</room>
</rooms>
</message>
<?xml version="1.0" encoding="utf-8"?>
<message>
<failure type="3" message="BadAuthentication">
<comment><![CDATA[Credentials are invalid for this Hotel (1234)]]></comment>
</failure>
</message>
D-EDGE sends an HTTP
GET request to the URL you provide, authenticated with Basic Auth. The hosting model is described in the introduction.priceModel attribute decides the shape of every future planning update. On the technical side, connecting a new hotel takes nothing more than your credentials and the hotel code; the steps are in Connect a new hotel.
D-EDGE calls this interface when a hotel is connected, and again on request when its configuration changes. The retrieval is never triggered automatically: when you add, rename, or remove a room or rate, the hotel must ask D-EDGE to redo the mapping.
The request we send
string
required
The hotel identifier or code on your platform. Maximum 50 characters.
string
Requested language for room and rate names, as a 2-letter ISO code such as
EN, FR, ES, or DE. When absent, English is expected, and English names are the only requirement.GET /getHotel?hotelCode=1234&lang=EN HTTP/1.1
Authorization: Basic dGVzdGhvdGVsOnRlc3RwYXNzd29yZA==
Accept: application/xml, text/xml
Host: yourdomain.com
The response we expect
Return200 OK with Content-Type: application/xml and the structure below. On an error, return the failure envelope instead, still with 200 OK.
element
required
The root element.
Hide child elements
Hide child elements
element
required
The list of room types.
Hide attributes and children
Hide attributes and children
attribute · string
required
The hotel identifier or code, echoing the requested
hotelCode. Maximum 50 characters.attribute · string
The hotel name.
attribute · enum
How D-EDGE must send prices for this hotel:
PerDay (default when absent), PerPerson, or PerOccupancy. See Price models.attribute · string
The currency your platform expects for the hotel, as a 3-letter ISO code. Return it in every response, so that prices reach you in a currency you know in advance. Declare the currency the hotel prices in on D-EDGE. A hotel can price rates in several currencies there, D-EDGE recommends one per hotel, and only the rates in the currency you declare are connected. Should a price still reach you in another currency, refuse the update with
IncorrectPriceCurrency. See Currency below.element · 1..n
required
A room type.
Show attributes and children
Show attributes and children
attribute · string
required
The room type identifier or code on your platform. Maximum 50 characters.
attribute · string
required
The room type name.
attribute · integer
The room type minimum occupancy, at least 1. Required when
priceModel is PerPerson or PerOccupancy.attribute · integer
The room type maximum occupancy, at least 1, excluding extra beds. Required when
priceModel is PerPerson or PerOccupancy. The hotel must set a price for an occupancy this large in D-EDGE, otherwise D-EDGE holds the updates until the room configuration is aligned: see How D-EDGE picks each price.element · 0..1
The detailed occupancy combinations of the room type. Required when
priceModel is PerOccupancy, with at least one occupancy.element · 1..n
required
A rate on your platform. If your system has no rate notion, or handles a single price line per room, declare exactly one
rate with a default code of your choice.Show attributes
Show attributes
attribute · string
required
The rate identifier or code on your platform. Maximum 50 characters.
attribute · string
required
The rate name.
attribute · string
A free description of the meal regime, such as
Bed Only or Bed and breakfast.attribute · enum
What this room and rate combination can receive.
PRI (default when absent): prices, restrictions, and inventory. InvRest: inventory and restrictions only. Inv: inventory only, at room or room and rate level. NoUpdate: nothing. See Update types below.<?xml version="1.0" encoding="utf-8"?>
<message>
<rooms hotelId="1234" hotelName="My test hotel"
priceModel="PerDay" currency="EUR">
<room code="CLA" name="Classic Room">
<rate code="BAR" name="Flexible Rate"
regime="Bed Only" updateType="PRI" />
<rate code="NR" name="Prepayment Rate"
regime="Bed Only" updateType="InvRest" />
</room>
<room code="SUP" name="Superior Room">
<rate code="BAR" name="Flexible Rate"
regime="Bed Only" updateType="PRI" />
<rate code="BB" name="Breakfast included"
regime="Bed and breakfast" updateType="PRI" />
</room>
<room code="SUI" name="Suite">
<rate code="BB" name="Breakfast included"
regime="Bed and breakfast" updateType="PRI" />
</room>
</rooms>
</message>
<?xml version="1.0" encoding="utf-8"?>
<message>
<rooms hotelId="1234" hotelName="My test hotel"
priceModel="PerPerson" currency="EUR">
<room code="CLA" name="Classic Room"
minOccupancy="1" maxOccupancy="1">
<rate code="BAR" name="Flexible Rate"
regime="Bed Only" updateType="PRI" />
<rate code="NR" name="Prepayment Rate"
regime="Bed Only" updateType="InvRest" />
</room>
<room code="SUP" name="Superior Room"
minOccupancy="1" maxOccupancy="2">
<rate code="BAR" name="Flexible Rate"
regime="Bed Only" updateType="PRI" />
<rate code="NR" name="Prepayment Rate"
regime="Bed Only" updateType="Inv" />
</room>
<room code="SUI" name="Suite"
minOccupancy="1" maxOccupancy="4">
<rate code="BAR" name="Flexible Rate"
regime="Bed Only" updateType="NoUpdate" />
<rate code="BB" name="Breakfast included"
regime="Bed and breakfast" updateType="PRI" />
</room>
</rooms>
</message>
<?xml version="1.0" encoding="utf-8"?>
<message>
<rooms hotelId="1234" hotelName="My test hotel"
priceModel="PerOccupancy" currency="EUR">
<room code="SUP" name="Superior Room"
minOccupancy="1" maxOccupancy="2">
<occupancies>
<occupancy adultCount="1" childCount="0" />
<occupancy adultCount="1" childCount="1" />
<occupancy adultCount="2" childCount="0" />
</occupancies>
<rate code="BAR" name="Flexible Rate" regime="Bed Only" />
<rate code="NR" name="Prepayment Rate" regime="Bed Only" />
</room>
<room code="SUI" name="Suite"
minOccupancy="1" maxOccupancy="4">
<occupancies>
<occupancy adultCount="1" childCount="0" />
<occupancy adultCount="1" childCount="1" />
<occupancy adultCount="2" childCount="2" />
<occupancy adultCount="4" childCount="0" />
</occupancies>
<rate code="BAR" name="Flexible Rate" regime="Bed Only" />
<rate code="BB" name="Breakfast included"
regime="Bed and breakfast" />
</room>
</rooms>
</message>
<?xml version="1.0" encoding="utf-8"?>
<message>
<failure type="3" message="BadAuthentication">
<comment><![CDATA[Credentials are invalid for this Hotel (1234)]]></comment>
</failure>
</message>
Price models
ThepriceModel you return here is the most consequential attribute of the response: D-EDGE keeps it for the life of the connection and shapes every planning update from it. Decide it before you build the response, from how your platform stores prices, and keep the room attributes consistent with it: minOccupancy and maxOccupancy with PerPerson, plus the occupancies list with PerOccupancy. Changing it later means asking the hotel to have the mapping redone. The three models are compared on the Price models page.
Currency
Return thecurrency attribute in every response. It tells D-EDGE which currency your platform expects for the hotel, so every planning update reaches you in a currency you know in advance and can check. Without it, D-EDGE sends prices in the currency configured for the hotel on its side, and nothing tells you which one: a difference with your platform’s currency shows up only when the prices are wrong on your side. Declare the currency the hotel prices in on D-EDGE, one per hotel, and refuse any price reaching you in another currency with IncorrectPriceCurrency.
Update types
Declare anupdateType other than PRI when a room and rate combination must not receive full updates. Tell the hotels you connect about the restriction, so their teams know why some updates do not reach your platform. Before using NoUpdate, discuss it with your D-EDGE Connectivity Project Manager: a combination with no inventory synchronisation at all is an overbooking risk.Was this page helpful?