Reservation Report
Introduction
The reservation report method allows users to check the status and details of one or more bookings.
Limitations
This method will return a maximum of 1000 records. Depending on a customer's typical booking volume, 1000 bookings may occur over the course of several days or several weeks. Please be mindful of this when inputting date range parameters.
Request
The reservation report request offers several ways to search allowing you to view your bookings how you like.
Endpoint:
/XMLReservationReport.do
Element Group | Name | Type | Req. | Values / Description |
|---|---|---|---|---|
n/a | reservationReportRequest | Group | YES | Root element |
reservationReportRequest | control | Group | YES | Group for login elements |
control | userName | Element | YES | API user name |
control | passWord | Element | YES | API password |
reservationReportRequest | hotelCode | Element | NO | Optional ID field - Bonotel hotel ID, one only. |
reservationReportRequest | bookingNumber | Element | NO | Optional ID field - Bonotel booking ID, one only. |
reservationReportRequest | tourOperatorOrderNumber | Element | NO | Optional ID field – Tour Operator Order Number, one only. |
reservationReportRequest | datesBasedOn | Element | YES | Possible values: RESERVATION, ARRIVAL, DEPARTURE |
reservationReportRequest | startDate | Element | YES | Start date of datesBasedOn (DD-MMM-YYYY) |
reservationReportRequest | endDate | Element | YES | End date of datesBasedOn (DD-MMM-YYYY) |
reservationReportRequest | confirmationType | Element | YES | Possible values: CON, REQ, ALL (confirmed, on-request, all) |
reservationReportRequest | reservationStatus | Element | YES | Possible values: NORMAL, MODIFIED, CANCELLED, ALL |
Date Ranges
The reservation report provides three date range search options. The most common would be ‘reservation.’ You control the type of date search with the datesBasedOn element and the following values:
- RESERVATION – the booking date for the reservation(s)
- ARRIVAL – the check-in date for the reservation(s)
- DEPARTURE – the check-out date for the reservation(s)
Confirmation Type and Reservation Status
The confirmationType and reservationStatus elements can be used together to generate several types of reports.
confirmationType
- CON - confirmed reservations
- REQ - on-request reservations
- ALL - both confirmed and on-request reservations
reservationStatus
- NORMAL - the reservation is live/active
- MODIFIED - the reservation is live/active and has been modified
- CANCELLED - the reservation is not live/active
- ALL - all three status options above: normal, modified, and cancelled
Example configurations:
View all Bookings:
View Confirmed Bookings that are Live:
View all Cancelled Bookings:
View all Confirmed Bookings that are Modified:
Response
Elements that are not used will return closed. For example, if the reservation has not been cancelled, the cancellationFee element will be closed: <cancellationFee/>
Element Group | Name | Type | Values / Description |
|---|---|---|---|
| reservationReportResponse | Group | Root element – no values |
| Status | Attribute | String - Y or N |
reservationReportResponse | reservationList | Group | Additional group element for listing of reservations – no values |
reservationList | reservation | Group | Group element for each reservation – no values |
reservation | bookingNumber | Element | String - Bonotel booking ID – example: 123456789X |
reservation | tourOperatorOrderNumber | Element | String - Tour Operator Order Number |
reservation | hotelCode | Element | Integer - Bonotel hotel ID |
reservation | reservationStatus | Element | String - Possible values: CON, REQ, ALL (confirmed, on-request, all) |
reservation | confirmationType | Element | String - Possible values: NORMAL, MODIFIED, CANCELLED, ALL |
reservation | reservationTimeStamp | Element | Date – this is the timestamp for the reservation – ISO 8601: YYYY-MM-DDTHH:MM:SS-hh:mm – all times are converted to GMT |
reservation | modificationTimeStamp | Element | Date – if modified, this is the timestamp for the modification – ISO 8601: YYYY-MM-DDTHH:MM:SS-hh:mm – all times are converted to GMT |
reservation | checkIn | Element | Date – check-in date for the reservation: DD-MMM-YYYY |
reservation | noOfNights | Element | Integer – the number of nights stay |
reservation | noOfRooms | Element | Integer – the number of rooms in the reservation |
reservation | total | Element | Decimal - Reservation’s total rate in USD: 9999.99 |
reservation | cancellationFee | Element | Decimal - USD value of cancellation fee: 9999.99. If no fee, you will see: 0.00. If not cancelled, element will be closed. |
Code Example
Request
/XMLReservationReport.do
The request below will return all bookings with all confirmation types and all reservation status’ that were booked between 01-Jan-2024 and 02-Jan-2024:
<?xml version="1.0" encoding="utf-8" ?>
<reservationReportRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" timeStamp="20180102T00:00:00">
<control>
<userName>SampleUser</userName>
<passWord>SamplePass</passWord>
</control>
<datesBasedOn>RESERVATION</datesBasedOn>
<startDate>01-Jan-2024</startDate>
<endDate>02-Jan-2024</endDate>
<confirmationType>ALL</confirmationType>
<reservationStatus>ALL</reservationStatus>
</reservationReportRequest>Response
Expected Response
Note that some of the data has been redacted. In an actual response "###" would be replaced with valid values.
<?xml version="1.0" encoding="utf-8" ?>
<reservationReportResponse status="Y">
<reservationList>
<reservation>
<bookingNumber>###</bookingNumber>
<tourOperatorOrderNumber></tourOperatorOrderNumber>
<hotelCode>###</hotelCode>
<reservationStatus>NORMAL</reservationStatus>
<confirmationType>CON</confirmationType>
<reservationTimeStamp>2024-06-21T16:18:11.848+0000</reservationTimeStamp>
<checkIn>13-AUG-2024</checkIn>
<noOfRooms>1</noOfRooms>
<noOfNights>1</noOfNights>
<total>300.00</total>
</reservation>
<reservation>
<bookingNumber>###</bookingNumber>
<tourOperatorOrderNumber></tourOperatorOrderNumber>
<hotelCode>###</hotelCode>
<reservationStatus>CANCEL</reservationStatus>
<confirmationType>CON</confirmationType>
<reservationTimeStamp>2024-06-21T22:53:12.457+0000</reservationTimeStamp>
<checkIn>24-SEP-2024</checkIn>
<noOfRooms>1</noOfRooms>
<noOfNights>2</noOfNights>
<total>500.00</total>
</reservation>
<reservation>
<bookingNumber>###</bookingNumber>
<tourOperatorOrderNumber></tourOperatorOrderNumber>
<hotelCode>###</hotelCode>
<reservationStatus>CANCEL</reservationStatus>
<confirmationType>CON</confirmationType>
<reservationTimeStamp>2024-06-21T21:47:21.898+0000</reservationTimeStamp>
<checkIn>04-NOV-2024</checkIn>
<noOfRooms>1</noOfRooms>
<noOfNights>3</noOfNights>
<total>0.00</total>
</reservation>
</reservationList>
</reservationReportResponse>Error Response
If there is an error with your request and we are not able to return results, we will instead return the following XML where the status element is equal to ‘N’ and we include an error response code.
<?xml version="1.0" encoding="utf-8" ?>
<reservationReportResponse status="N">
<errors>
<code>D7</code>
<description> Reservation not found.</description>
</errors>
</reservationReportResponse>Response Codes
Code | Description |
|---|---|
D1 | Unspecified error. Please contact customer support. |
D2 | User ID not supplied or not valid. |
D3 | No XML input detected. |
D4 | Erroneous or Incomplete Data in Request. |
D5 | Search criteria not provided. |
D6 | Request IP Address not matched for the user. |
D7 | Reservation not found. |