index

OTA_HotelRes

Instructions

general information

This function is based on the industry standards set by the OpenTravel alliance. Not all elements in the standard are supported.

Commit a booking by posting a OTA_HotelResRQ message to this endpoint, confirmation will be returned as an OTA_HotelResRS message. The XML must validate to schema version OTA2015A.

The post must be authorized using HTTP basic authorization. The username is the propid of the property and the password is set in the channel manager settings for this channel.

The HotelCode is the propid and the RoomTypeCode is the roomid.

A sample OTA_HotelResRQ using PHP and curl with the supported OTA_HotelResRQ attributes follows.


<?php


$username = "3101"; //propid
$password = "mysecretpassword"; //set in OTA channel manager settings
$url = "https://api.beds24.com/ota/OTA_HotelRes";
$echotoken = time();


$xml = '<OTA_HotelResRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="'.$echotoken.'" ResStatus="Commit" Version="1.0">
<HotelReservations>
<HotelReservation>
<RoomStays>
<RoomStay>
<RoomTypes>
<RoomType RoomTypeCode="123454" NumberOfUnits="1" />
</RoomTypes>
<RoomRates>
<RoomRate BookingCode="abc">
<Rates>
<Rate>
<Total AmountBeforeTax="220.00" AmountAfterTax="220.00" CurrencyCode="GBP" />
</Rate>
</Rates>
</RoomRate>
</RoomRates>
<GuestCounts>
<GuestCount AgeQualifyingCode="10" Count="2" />
<GuestCount AgeQualifyingCode="8" Count="1" />
</GuestCounts>
<TimeSpan Start="2016-04-22" End="2016-04-26" />
<Guarantee>
<GuaranteesAccepted>
<GuaranteeAccepted>
<PaymentCard CardCode="VI" ExpireDate="0518">
<CardHolderName>test test</CardHolderName>
<CardNumber><PlainText>012345678012345678</PlainText></CardNumber>
<SeriesCode><PlainText>012</PlainText></SeriesCode>
</PaymentCard>
</GuaranteeAccepted>
</GuaranteesAccepted>
</Guarantee>
<ResGuestRPHs>1</ResGuestRPHs>
<SpecialRequests>
<SpecialRequest>
<Text Language="en">ddhdfh</Text>
</SpecialRequest>
</SpecialRequests>
</RoomStay>
</RoomStays>
<ResGuests>
<ResGuest ResGuestRPH="1" ArrivalTime="15:00:00">
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<GivenName>test</GivenName>
<Surname>test2</Surname>
</PersonName>
<Telephone PhoneNumber="01616849586" />
<Email>test@beds24.com</Email>
<Address>
<AddressLine>Grate Rooms Ltd</AddressLine>
<AddressLine>22 Cheetham Road</AddressLine>
<CityName>Manchester</CityName>
<PostalCode>M4 4EW</PostalCode>
<CountryName Code="GB">UK</CountryName>
</Address>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
</ResGuests>
<ResGlobalInfo>
<HotelReservationIDs>
<HotelReservationID ResID_Type="5" ResID_Value="318379" />
</HotelReservationIDs>
<BasicPropertyInfo HotelCode="3103" />
</ResGlobalInfo>
</HotelReservation>
</HotelReservations>
</OTA_HotelResRQ>';


$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/xml'));
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$return = curl_exec($ch);
curl_close($ch);

header ("Content-Type: text/xml; charset=utf-8");
echo $return;

?>