The Hooroo API will post a reservation notification message to notify to Channel Managers of reservations made on the Hooroo booking channel. The Hooroo API will expect a message response as a synchronous operation.
While the reservation request structure (and the OTA spec) allows for multiple room types and rate plans, a reservation will only contain a single room type and offer. Where a customer has booked multiple rooms, the RoomType.NumberOfUnits will reflect the quantity of rooms booked, however this will always be for a quantity of a single room type and offer.
The Rates in this message are net rates, Hooroo's commission has already been removed.
The Hooroo API expects that Channel Managers will provide an HTTP endpoint that can receive the notification request as an XML payload.
Field | Required | Notes |
---|---|---|
ResStatus | Y | Always "Book" |
CreateDateTime | Y | Time stamp of the creation. |
RoomStayReservation | Y | Alway true. |
CreatorID | Y | Identifies Hooroo as the creator of the message |
ID | Y | Unique booking reservation identifier create by the Hooroo Extranet |
RoomTypeCode | Y | The room type code as identified by the Hooroo Extranet |
NumberOfUnits | Y | The number of rooms booked for the reservation. |
RoomDescription | N | The room type description as identified by the Hooroo Extranet |
RatePlanCode | Y | Code identifying the offer for which the reservation was made |
RatePlanDescription | Y | Description of the offer |
RoomRate EffectiveDate | Y | Start date (i.e. check-in date) of the reservation |
RoomRate ExpireDate | Y | End date (i.e. check-out date) of the reservation |
Base AmountAfterTax | Y | Then base rate amount including taxes for a rate applied to the reservation. This will be repeated for each rate applied to the reservation |
AdditionalGuestAmount | N | The rate charged for additional guests. Separate elements will be included for each age code, for instance adult or child |
Timespan | Y | The checkin and check out dates for the entire length of the booking duration |
Total AmountAfterTax | Y | The total reservation amount including taxes |
GuestCount | Y | The number of guests appearing in the reservation. A separate element is included for Adult, Child or Infant |
ResGuest | Y | Personal details of the guest making the reservation. |
SupplierRemittance | N | Details of the Virtual Credit Card created to pay the supplier for the reservation. |
Reservation requests will be posted to the channel manager's configured endpoint URL, for instance:
POST https://api.hotelchannelmanager.com.au/hooroo
Body:
Channel Managers should return a response to a reservation notification message as follows. Hooroo will store the UniqueID and HotelReservationID values provided for correlation purposes, however the values they contain can be defined by the sender. As some properties will be able to provide a PmsConfirmNumber, the ResGlobalInfo element is optional.
Reservations successfully received and confirmed:
HTTP Status Code: 200 OK
Body:
Reservations successfully received with warnings:
HTTP Status Code: 200 OK
Body:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelResNotifRS TimeStamp="2011-06-16T00:19:28+08:00" xmlns="http://www.opentravel.org/OTA/2003/05">
<Warnings>
<Warning Type="1">Error [OTA_HotelResNotifRS::makeBooking(): Could not find mapping for RatePlanCode: "1234" with incoming booking "13353455".]</Warning>
</Warnings>
</OTA_HotelResNotifRS>
HTTP status code 400 Bad Request (client error)
HTTP status code 500 Internal Server Error (server error)
Body:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelResNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2011-06-26T15:47:42+08:00">
<Errors>
<Error Type="12" ShortText="Error text."/>
</Errors>
</OTA_HotelResNotifRS>