OTA_HotelResRQ (Hotel Reservation Request) is used to quote or commit a reservation. This message links rooms, guests, and ancillary services via RPH references within a single booking.
OTA_HotelResRQ API call
Skip & Hit the Playground.
Purpose
- Quote or book room stays and associated services under one reservation.
- Link rooms to specific guests and services using
RPH. - Support multi-room bookings (up to 5 rooms).
Structure – Root Element
ResStatusQuotevalidates availability and returns per-room totals, cancellation rules, and offers; no booking is created.Commitperforms the same calculations and commits the reservation; penalties may apply for later changes.
Version: e.g.,2008.1PrimaryLangID: ISO 639 (e.g.,EN)xmlns:http://www.opentravel.org/OTA/2003/05
Structure – Core Elements
POS (Point of Sale)
Identifies the requesting party and contains credentials.Instance = "PriceBreakdown ensures that the response section TPA_Extensions/RateDetails returns per-day RateComponents and per-guest totals; when applicable, EBPrepayment includes due date and amount.
HotelReservation
Container for one booking transaction. Include one or more<RoomStay> entries. Use <Services> (e.g., board codes) and <ResGuests> to provide guest details. Use <ResGlobalInfo> for booking-level references and comments.
RoomStay Element
Each<RoomStay> represents one room in the booking. Link guest and service RPHs here.
RoomTypeCode: send the contracted code (include contract/rateplan if applicable, e.g.,RMSD000000;-SUP1-0P0A0). See RatePlans and MulticontractingTimeSpan: check-in/-out at room level.BasicPropertyInfo: send the contracted hotel code.- Link guests to rooms via
RoomStay/ResGuestRPHs; the first adult is the room responsible. - Link non-room services (board/extras/transfers) using
ServiceRPHsand pax-levelResGuestRPHs. - Up to 5
<RoomStay>items per booking.
Services
Use for board codes and other ancillary services. Reference them from<ServiceRPHs> inside each linked <RoomStay>. Board is sent via ServiceInventoryCode (e.g., RO, BB).
ResGuest
Provide guest details per RPH. Adults, children, and infants are differentiated viaAgeQualifyingCode. For Quote, pax profiles may be omitted; for Commit, include adult titles.
- Adults=10, Children=8, Infants=7.
- Prices may change if switching between age and birthdate across flow; keep consistent.
- Name and surname, mandatory.
- NamePrefix (Mr., Mrs., etc.) is mandatory for all adult pax in a booking.
- Age or true date of birth, mandatory for children and infants. Never both!
- Contact info (Telephone and email), optional.
- AgequalifyingCode, mandatory.
- ResGuestRPH, mandatory.
ResGlobalInfo
Comments OnlyName="Applicant Notice" comments are processed. Up to 10 comments; max 250 characters each.
Item_RPH. This reference must be printed on the voucher and is used to avoid duplicates.
See Master and Child References for more information.
TPA_Extensions
Send optional extras to be added to the quote/booking. Repeat per pax if required, and scope them by date range.Code (contract code), Quantity, Start, End, ResGuestRPH. Applicability and pricing are returned in the response; booked extras will appear with IncludedInRate="true".
Additional Features
Expected Booking Value
You can include an expected booking value in each booking request to help ensure price consistency between search, quote, and notifications. This value is stored in the booking details and can be used to detect discrepancies or contract issues at the time of booking.- If the expected value is lower than the booking value, partners and destinations can investigate and avoid publishing rates that are not bookable.
- If the expected value is higher than the booking value, it helps both parties understand complex contract conditions or mismatches in distribution.
There is no additional functionality beyond storing the expected value for transparency and review.
Complete Examples
Best Practices
- Quote (
ResStatus="Quote") before Commit to re-validate price/availability. - Keep guest details consistent across all services (same order and age/birthdate concept).
- Provide partner references in
HotelReservationIDsto prevent duplicates and facilitate cancellation flows. - Use ISO dates (
YYYY-MM-DD) and link everything withRPH. - When multicontracting applies, send the full room+contract+rateplan code as
RoomTypeCode. - Be aware that timestamps should include timezone information
- Implement proper error handling for the response messages. Error Scenarios.
Playground
OTA_HotelResRQ API call
Try the Booking API playground with Quote first, then Commit.

