Content type
Everything is XML over HTTPS.- What D-EDGE sends: the GET requests (Get hotel, Get bookings) carry
Accept: application/xml, text/xmland no body, so noContent-Type; the POST requests (Planning updates, Confirm bookings) carryContent-Type: application/xml; charset=utf-8. - Accept requests whether they declare
application/xml,text/xml, or no content type: parse the XML body regardless of the header. - Every request carries
Accept-Encoding: gzip, deflate: you may compress your responses, which helps on Get bookings when a window holds many bookings. - On the POST interfaces, the XML is posted as the raw request body, not as a form field.
- Your responses must declare
Content-Type: application/xmland contain XML only. An HTML error page or a plain-text message breaks the exchange.
<message> root of the updates D-EDGE sends also carries two namespace declarations, xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" and xmlns:xsd="http://www.w3.org/2001/XMLSchema". They carry nothing for you: the elements themselves have no namespace. The examples on this portal leave them out; your parser must accept them.
Formats
Date ranges (
from/to attributes) are inclusive on both ends: an update from 2027-03-01 to 2027-03-03 covers three days.
Identifiers are yours
Every hotel, room, and rate identifier in every message is the code your platform declared in Get hotel. D-EDGE stores the mapping and translates internally; your system never sees a D-EDGE identifier, except the D-EDGE booking reference returned by Confirm bookings. Identifiers are limited to 50 characters (20 for booking identifiers). When the configuration changes on your platform (a room or rate is added, renamed, or removed), tell the hotel, and the hotel asks D-EDGE to redo the mapping. D-EDGE does not re-read your configuration automatically.Updates are deltas
Planning updates carry only what changed. Two rules follow:- A message may contain availability only, prices only, restrictions only, or any mix. Treat every price and restriction value as independently optional. Only the identifiers, the date ranges, the
quantityof each availability range, and theisClosedflag of each occupancy are always present. - An absent attribute means “do not touch this value”, never “reset it”. Update exactly what the message contains for the hotel, room, rate, occupancy, and days it names, and nothing else.
updateType your platform declares per room and rate in Get hotel also shapes what D-EDGE sends: a combination declared Inv only ever receives inventory, for example.
Volume and timing
Your endpoints must hold up to real production traffic:- Answer in less than 5 seconds. If applying an update takes longer, accept it, answer, and process asynchronously. The exception is Get bookings: a window can hold many bookings, so D-EDGE waits up to 30 seconds for that response.
- Expect large messages. When a hotel is connected, or its configuration changes, D-EDGE sends an initialisation stream covering the hotel’s full planning: hotels manage a sliding window of up to 2 years, generally split into one message per month, sometimes more.
- Expect updates at any time. Whenever a price, an availability, or a restriction changes in D-EDGE, an update leaves within minutes, 15 at most.
- D-EDGE pulls your bookings every few minutes, every 5 by default, and can query several hotels in parallel.
Your endpoint standards
The checklist your four endpoints must meet:- HTTPS with a valid, trusted certificate, TLS 1.2 or higher.
- XML responses only, always
200 OK, errors inside the message envelope;5xxonly when your service is genuinely down. See Responses. - Basic Auth (GET interfaces) or the
<authentication>element (POST interfaces) validated on every call. See Authentication. - Able to absorb the initialisation volume and answer within 5 seconds (30 seconds for Get bookings).