AnchorIntroduction

This document provides instructions on using our OTA API to work with NewBook.

As with all our documentation, a basic understanding of what NewBook is and how our clients operate will help understand these requests and responses.

Please note that any examples below should not be used on your development servers. These are only examples and do not work.

AnchorRelease Notes

2020.10 (Current Release)

  • Nothing extra to add.

2019.04

2018.11

AnchorWhat is the OTA Specification

The Open Travel Alliance was founded to enable rapid and extensive exchange of data between systems. By detailing specific requests and their responses, many different systems can exchange data in a standardised way.

The OTA Specification covers the many industries, solutions providers, and technology companies. It is a growing standard with a large established base of users.

The exchange of data between 3rd Party Applications (booking websites and other services), Channel Managers (services which facilitate rapid updates of availability and pricing and booking data between many booking websites), and property management systems like NewBook necessitates all agents 'speak the same language'.

The implementation NewBook offers focuses on the requests and responses relevant to the accommodation industry. Through supporting the OTA Specification, we enable our clients to quickly and easily link up with 3rd Party Applications and Channel Managers. To this end, clients of NewBook are open to the exchange of availability, rate and booking data.

AnchorIntegration with 3rd Party Applications

It is a requirement to use HTTPS to communicate with this API, for both testing and real live use. Your XML request must be sent via HTTP POST.

Live Endpoints:

Australia: https://apiau.newbook.cloud/ota

Asia Pacific: https://apiap.newbook.cloud/ota

Europe: https://apieu.newbook.cloud/ota

United States: https://apius.newbook.cloud/ota

Test Endpoint:

Staging (development): https://testapi.newbook.cloud/ota

Please contact NewBook Support if you are unsure about which endpoint to use.

AnchorAuthentication

This API requires that all inbound requests have authentication.

NewBook utilises the Oasis WSSE Authentication method.

All 3rd Party Applications will need to register with NewBook for a username and password.

NewBook will also provide a unique instance_token for each instance connected to the 3rd Party Application.

In all the below examples, for brevity we have only included the SOAP REQUEST XML HERE section as the example, not the entire wrapping message. All actual messages received must include the full wrapper.

Authentication Example

Request Example XML
									
										<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
											<soap:Header>
											<wsse:Security xmlns:wsse="http://tempuri.org/" xmlns:soap="soap" soap:mustUnderstand="1">
												<wsse:UsernameToken>
												<wsse:Username>username</wsse:Username>
												<wsse:Password>password</wsse:Password>
												</wsse:UsernameToken>
											</wsse:Security>
											<soap:InstanceToken>instance_token</soap:InstanceToken>
											</soap:Header>
											<soap:Body>
												SOAP REQUEST XML HERE
											</soap:Body>
										</soap:Envelope>									
								
AnchorHandling Error Responses

In the case of an error NewBook will respond with XML structured as show in the example.

Response Usage Profile

Node Count Description
ResponseName 1 The ResponseName element will mirror the Request Name element.
e.g.
OTA_PingRQ will become OTA_PingRS.
ResponseName / Errors 1 Contains the Error element
Errors / Error 1 Contains the text, type and code of the Error Message
[email protected] 1 The Error Type, please see Appendices
[email protected] 1 The Error Code, please refer to the "Used as Reference" section for each individual message.

Error Response Example

Request Example XML
									
										<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
											<soap:Body>
												<ResponseName>
													<Errors>
														<Error Type="13" Code="0">An Error has Occurred</Error>
													</Errors>
												</ResponseName>
											</soap:Body>
										</soap:Envelope>									
								
AnchorPing Connection Test Request / Ping Response (OTA_PingRQ/RS)

Used as Reference:

http://adriatic.pilotfish-net.com/ota-modelviewer/model/Format.OTA_PingRQ.html

http://adriatic.pilotfish-net.com/ota-modelviewer/model/Format.OTA_PingRS.html

The Ping request/response OTA Messages are used for testing application connectivity, specifically, sending text from a requesting system and determining if the responding system is able to echo back that same text.

The message assumes a push model, with NewBook or the 3rd Party Application pushing the request to the other.

The response from NewBook or the 3rd Party Application verifies application connectivity. Specific text sent with the request is to be echoed back in the response.

Direction of Message

  • NewBook will send OTA_PingRQ
  • The 3rd Party Application will acknowledge by replying with OTA_PingRS

Or:

  • The 3rd Party Application will send OTA_PingRQ
  • NewBook will acknowledge by replying with OTA_PingRS


Request Usage Profile

Node Count Description
EchoData 1 String data that is expected to be echoed back in the response message.

Response Usage Profile

Node Count Description
Success 1 Element exists only when request was successful
EchoData 1 The original request EchoData content

Ping Connection Test Request / Ping Response (OTA_PingRQ/RS) Example

Request Example XML
									
										<OTA_PingRQ xmlns="http://tempuri.org/">
											<EchoData>Hello, World!</EchoData>
										</OTA_PingRQ>									
								
Response Example XML
									
										<OTA_PingRS xmlns="http://tempuri.org/">
											<Success/>
											<EchoData>Hello, World!</EchoData>
										</OTA_PingRS>									
								
AnchorInstance Information Request / Response (OTA_HotelDescriptiveInfoRQ/RS)

Used as Reference:

http://adriatic.pilotfish-net.com/ota-modelviewer/model/Format.OTA_HotelDescriptiveInfoRQ.html

http://adriatic.pilotfish-net.com/ota-modelviewer/model/Format.OTA_HotelDescriptiveInfoRS.html

The Instance Information request/response OTA Messages are used to query basic contact and address information from a instance. A list of Room Types and their basic configuration will also be returned.

Direction of Message

  • The 3rd Party Application will send OTA_HotelDescriptiveInfoRQ
  • NewBook will acknowledge by replying with OTA_HotelDescriptiveInfoRS


Request Usage Profile

Node Count Description
@HotelCode 1 This must match the InstanceToken that is provided with Authentication.

Response Usage Profile

Node Count Description
Success 1 Element exists only when request was successful
[email protected] 1 This will match the InstanceToken provided
[email protected] 1 The Currency in use by the instance
HotelDescriptiveContent / HotelInfo 1 This contains elements relating to the contact information for the instance
HotelInfo / HotelName 1 The name of the instance
HotelInfo / OwnershipManagementInfos / OwnershipManagementInfo 1 Contains the Address, Emails and Phones elements
OwnershipManagementInfo / Address 1-2 Contains the Mailing/Physical Addresses for the instance
[email protected] 1 Identifies whether the address is Mailing/Physical
2 – Mailing
7 - Physical
OwnershipManagementInfo / Emails 1 Contains the Email elements
Emails / Email 1+ Contains an email address that can be used to contact the instance
OwnershipManagementInfo / Phones 1 Contains the Phone elements
Phones / Phone 1+ Contains a phone number that can be used to contact the instance
HotelDescriptiveContent / FacilityInfo 1 Contains the GuestRooms element
FacilityInfo / GuestRooms 1 Contains the GuestRoom elements
GuestRoom 1+ Contains information regarding a particular Room Type
[email protected] 1 Contains the InvTypeCode for Room Availability
[email protected] 1 The maximum possible number of Rooms available (for this Room Type)
[email protected] 0-1 The maximum number of people (Adults+Children, etc) allowed to stay in this Room Type. if this attribute is not present the Room is not restricted.
[email protected] 0-1 The minimum number of people (Adults+Children, etc) required to stay in this Room Type. If this attribute is not present the Room is not restricted.
[email protected] 0-1 The maximum number of Adults allowed to stay in this Room Type. If this attribute is not present the Room is not restricted.
[email protected] 0-1 The maximum number of Children allowed to stay in this Room Type. If this attribute is not present the Room is not restricted.
[email protected] 1 The name of this Room Type
[email protected] 1 The display order of this Room Type
GuestRoom / DescriptiveText 0-1 The HTML description of the Room, please note this has been escaped for compatibility with XML
GuestRoom / RoomNames 1 Contains the RoomNumber elements
RoomNames / RoomName 1+ Contains the alphanumeric name of an individual Room.
Please note this number of these elements may be different to [email protected] if the instance has elected to reserve a number of Rooms for offline use.
GuestRoom / TypeRoom 0+ Gives bedding details about the Room
[email protected] 1 Contains the OTA Bed Type Code - see Appendicies
[email protected] 1 Contains the number of Beds applicable to the Bed Type Code
GuestRoom / MultimediaDescriptions / MultimediaDescription / ImageItems 0-1 This element contains the image elements for this Room Type
[email protected] 1 The time stamp this image was last updated.
ImageItem / Description 1 A short description (alt tag / caption) for the image
ImageItem / ImageFormat / URL 1 The publicly accessible URL for the image, please note this has been escaped for XML compatibility

Instance Information Request / Response (OTA_HotelDescriptiveInfoRQ/RS) Example

Request Example XML
									
										<OTA_HotelDescriptiveInfoRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0">
											<HotelDescriptiveInfos>
												<HotelDescriptiveInfo HotelCode="InstanceToken"/>
											</HotelDescriptiveInfos>
										</OTA_HotelDescriptiveInfoRQ>									
								
Response Example XML
									
										<OTA_HotelDescriptiveInfoRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2015-04-28T09:55:59+10:00">
											<Success/>
											<HotelDescriptiveContents HotelCode="InstanceToken">
												<HotelDescriptiveContent CurrencyCode="AUD">
													<HotelInfo>
														<HotelName>NewBook Test Instance</HotelName>
														<OwnershipManagementInfos>
															<OwnershipManagementInfo>
																<Addresses>
																	<Address UseType="7">
																		<AddressLine>Level 2, 9 Ouyan Street</AddressLine>
																		<CityName>Surfers Paradise</CityName>
																		<PostalCode>4217</PostalCode>
																		<StateProv>Queensland</StateProv>
																		<CountryName>Australia</CountryName>
																	</Address>
																	<Address UseType="2">
																		<AddressLine>Level 2, 9 Ouyan Street</AddressLine>
																		<CityName>Surfers Paradise</CityName>
																		<PostalCode>4217</PostalCode>
																		<StateProv>Queensland</StateProv>
																		<CountryName>Australia</CountryName>
																	</Address>
																</Addresses>
																<Emails>
																	<Email>[email protected]</Email>
																</Emails>
																<Phones>
																	<Phone PhoneNumber="0756554600"/>
																</Phones>
															</OwnershipManagementInfo>
														</OwnershipManagementInfos>
													</HotelInfo>
													<FacilityInfo>
														<GuestRooms>
															<GuestRoom Code="1" Quantity="5" MaxAdultOccupancy="2" MaxOccupancy="4" MinOccupancy="2" RoomTypeName="Standard King Room" Sort="1">
																<RoomNames>
																	<RoomName>01</RoomName>
																	<RoomName>02</RoomName>
																	<RoomName>03</RoomName>
																	<RoomName>04</RoomName>
																	<RoomName>05</RoomName>
																</RoomNames>
																<TypeRoom StandardNumBeds="2" BedTypeCode="9" />
																<MultimediaDescriptions>
																	<MultimediaDescription>
																		<ImageItems>
																			<ImageItem>
																			<Description>Living Room</Description>
																			<ImageFormat>
																				<URL>url_to_image</URL>
																			</ImageFormat>
																			</ImageItem>
																		</ImageItems>
																	</MultimediaDescription>
																</MultimediaDescriptions>
															</GuestRoom>
															<GuestRoom Code="3" Quantity="10" MaxAdultOccupancy="4" RoomTypeName="Standard Queen Room" Sort="2"/>
															<GuestRoom Code="4" Quantity="5" MinOccupancy="1" RoomTypeName="Standard Room" Sort="3"/>
															<GuestRoom Code="2" Quantity="25" MaxAdultOccupancy="2" MaxChildOccupancy="1" RoomTypeName="Superior Suite" Sort="4">
																<DescriptiveText>
																	<p>This is a superior suite it includes air conditioning, etc.</p>
																</DescriptiveText>
															</GuestRoom>
														</GuestRooms>
													</FacilityInfo>
												</HotelDescriptiveContent>
											</HotelDescriptiveContents>
										</OTA_HotelDescriptiveInfoRS>									
								
AnchorAvailability Request / Availability Response (OTA_HotelAvailGetRQ/RS)

Used as Reference:

http://adriatic.pilotfish-net.com/ota-modelviewer/model/Format.OTA_HotelAvailGetRQ.html

http://adriatic.pilotfish-net.com/ota-modelviewer/model/Format.OTA_HotelAvailGetRS.html

The Availability Request / Response OTA Messages are used for retrieving availability from NewBook.

The message assumes a pull model, with the 3rd Party Application initiating the request to NewBook.

The response from NewBook will include the availability for the specified period and Channel Code.

Direction of Message

  • The 3rd Party Application will send OTA_HotelAvailGetRQ
  • NewBook will respond with OTA_HotelAvailGetRS

If there are no Rooms mapped or enabled for delivery through to 3rd Parties for the requested period, an error message is returned.



Request Usage Profile

Node Count Description
[email protected] 1 The start of the date range to get availability, must be in the format YYYY-MM-DD
[email protected] 1 The start of the date range to get availability, must be in the format YYYY-MM-DD

Response Usage Profile

Node Count Description
[email protected] 1 The Instance Code as defined by the Remote System, will be stored in NewBook configuration
[email protected] 1 Number of Rooms available
[email protected] 1 The start of the date range for the current availability element, in the format YYYY-MM-DD
[email protected] 1 The end of the date range for the current availability element, in the format YYYY-MM-DD
[email protected] 1 The Room Code for the current availability element
[email protected] 1 The Rate Code for the current availability element
[email protected] 1 Controls the Stop Sell for the current availability element, can be either "Open" or "Close"
[email protected] 1 "SetMinLOS" for minimum length of stay, or "SetMaxLOS" for maximum length of stay
[email protected] 1 The minimum nights required to stay for the currency availability element (days)

Availability Request / Availability Response (OTA_HotelAvailGetRQ/RS) Example

Request Example XML
									
										<OTA_HotelAvailGetRQ xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2013-06-18T11:05:11+12:00" Version="1.0">
											<HotelAvailRequests>
												<HotelAvailRequest>
													<DateRange Start="2013-06-18" End="2013-07-10"/>
												</HotelAvailRequest>
											</HotelAvailRequests>
										</OTA_HotelAvailGetRQ>									
								
Response Example XML
									
										<OTA_HotelAvailGetRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2013-06-18T13:03:34+12:00" Version="1.0">
											<Success/>
											<AvailStatusMessages HotelCode="INSTANCE_CODE">
												<AvailStatusMessage BookingLimit="0">
													<StatusApplicationControl Start="2013-06-18" End="2013-06-23" InvTypeCode="2BPM" RatePlanCode="2BPM1"/>
													<RestrictionStatus Status="Open"/>
													<LengthsOfStay>
														<LengthOfStay MinMaxMessageType="SetMinLOS" Time="1"/>
													</LengthsOfStay>
												</AvailStatusMessage>
												<AvailStatusMessage BookingLimit="2">
													<StatusApplicationControl Start="2013-06-24" End="2013-07-10" InvTypeCode="2BPM" RatePlanCode="2BPM1"/>
													<RestrictionStatus Status="Open"/>
													<LengthsOfStay>
														<LengthOfStay MinMaxMessageType="SetMinLOS" Time="1"/>
													</LengthsOfStay>
												</AvailStatusMessage>
											</AvailStatusMessages>
										</OTA_HotelAvailGetRS>									
								
AnchorRate Plans Request / Rate Plans Response (OTA_HotelRatePlanRQ/RS)

Used as Reference:

http://adriatic.pilotfish-net.com/ota-modelviewer/model/Format.OTA_HotelRatePlanRQ.html

http://adriatic.pilotfish-net.com/ota-modelviewer/model/Format.OTA_HotelRatePlanRS.html

The Rate Plans Request / Response OTA Messages are used for retrieving Rates from NewBook.

The message assumes a pull model, with the 3rd Party Application initiating the request to NewBook.

The response from NewBook will include the rates for the specified period and Channel Code.

Direction of Message

  • The 3rd Party Application will send OTA_HotelRatePlanRQ
  • NewBook will acknowledge by replying with OTA_HotelRatePlanRS

If there are no Rates mapped or enabled for delivery through to 3rd Parties for the requested period, an error message is returned.



Request Usage Profile

Node Count Description
[email protected] 1 The start of the date range to get availability, must be in the format YYYY-MM-DD
[email protected] 1 The start of the date range to get availability, must be in the format YYYY-MM-DD

Response Usage Profile

Node Count Description
[email protected] 1 The Instance Code as defined by the Remote System, will be stored in NewBook configuration
DestinationSystemCode 1 Booking Agent Code (see appendix)
[email protected] 1 The Rate Code for the current rate plan element
[email protected] 1 The start of the date range for the current rate element, in the format YYYY-MM-DD
[email protected] 1 The end of the date range for the current rate element, in the format YYYY-MM-DD
[email protected] 1 The Room Code for the current availability element
[email protected] 1 The total amount after tax
[email protected] 1 CurrencyCode uses ISO 4217 codes to indicate the currency of the rate that is being booked

Rate Plans Request / Rate Plans Response (OTA_HotelRatePlanRQ/RS) Example

Request Example XML
									
										<OTA_HotelRatePlanRQ xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2013-06-18T11:05:11+12:00" Version="1.0">
											<RatePlans>
												<RatePlan>
													<DateRange Start="2013-06-18" End="2013-07-10"/>
												</RatePlan>
											</RatePlans>
										</OTA_HotelRatePlanRQ>									
								
Response Example XML
									
										<OTA_HotelRatePlanRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2013-06-18T13:03:34+12:00" Version="1.0">
											<Success/>
											<RatePlans HotelCode="INSTANCE_CODE">
												<RatePlan RatePlanCode="BAR">
													<Description Name="Best Available Rate" />
													<DestinationSystemsCode>
														<DestinationSystemCode>NBO</DestinationSystemCode>
													</DestinationSystemsCode>
													<Rates>
													<Rate Start="2013-06-18" End="2013-06-31" InvTypeCode="1BE">
														<RateDescription Name="1 Bedroom" />
														<BaseByGuestAmts>
															<BaseByGuestAmt AmountAfterTax="130.00" CurrencyCode="AUD"/>
														</BaseByGuestAmts>
													</Rate>
													<Rate Start="2013-07-01" End="2013-07-10" InvTypeCode="1BE">
														<RateDescription Name="1 Bedroom" />
														<BaseByGuestAmts>
															<BaseByGuestAmt AmountAfterTax="140.00" CurrencyCode="AUD"/>
														</BaseByGuestAmts>
													</Rate>
													</Rates>
												</RatePlan>
											</RatePlans>
										</OTA_HotelRatePlanRS>									
								
AnchorSingle Booking Availability Request / Response (OTA_HotelAvailRQ/RS)

Used as Reference:

http://adriatic.pilotfish-net.com/ota-modelviewer/model/Format.OTA_HotelAvailRQ.html

http://adriatic.pilotfish-net.com/ota-modelviewer/model/Format.OTA_HotelAvailRS.html

The Single Booking Availability Request / Response OTA Messages are used for retrieving availability and rates for a single bookable date range instead of returning daily Availability/Pricing. This is useful for ensuring that the entire date range is available in a single Room (as multiple RoomStays will be returned if the Booking needs to be split, or when requesting multiple Rate Plans / Rooms).

The message assumes a pull model, with the 3rd Party Application initiating the request to NewBook.

The response from NewBook will include the availability for the specified period and Room Code/s.

Direction of Message

  • The 3rd Party Application will send OTA_HotelAvailRQ
  • NewBook will respond with OTA_HotelAvailRS


Request Usage Profile

Node Count Description
[email protected] 1 The Arrival date of the Booking, must be in the format YYYY-MMDD
[email protected] 1 The Departure date, must be in the format YYYY-MM-DD
AvailRequestSegment / RatePlanCandidates 0-1 Contains the RatePlanCandidate elements
RatePlanCandidates / RatePlanCandidate +1 Contains the RatePlanCode information
[email protected] 1 The Rate Code of the desired RatePlan
AvailRequestSegment / RoomStayCandidates 1 Contains the RoomStayCandidate elements
RoomStayCandidates / RoomStayCandidate 1+ Contains the RoomTypeCode and GuestCounts information
[email protected] 1
RoomStayCandidate / GuestCounts 1 Contains the GuestCount elements
GuestCounts / GuestCount 1+ Contains the Number of Guests specified per AgeQualifyingCode
[email protected] 1 Specifies the guest type for this GuestCount - uses OTA Spec for identifiers, will be one of three values:
  • 10: Adult
  • 8: Child
  • 7: Infant
[email protected] 1 The Number of Guests for the specified AgeQualifyingCode

Response Usage Profile

Node Count Description
Warnings 0-1 Contains Occupancy, MinLOS and MaxLOS warnings for the requested dates (if applicable)
Warnings / Warning 1+ Contains the description of the particular Warning
[email protected] 1 An identifier used to match a particular Warning to a specific RoomStay element
RoomStays 1 Contains the RoomStay elements
RoomStays / RoomStay 0+ Contains information regarding the RoomStay
[email protected] 0-1 If a warning applies to this particular RoomStay the WarningRPH will indicate which warning.
RoomStay / RoomRates 1 Contains the RoomRate elements
RoomRates / RoomRate 1 Contains the RoomRate Description and Rate elements
RoomRate / RoomRateDescription 1 Contains the Name element for this RoomRateDescription
RoomRateDescription / Name 1 Contains the Name for this RoomRate
RoomRate / Rates 1 Contains the Rate elements
Rates / Rate 1+ Contains Rate information for a specific timeframe for the Booking
[email protected] 1 The start of the date range for the current rate element, in the format YYYY-MM-DD
[email protected] 1 The end of the date range for the current rate element, in the format YYYY-MM-DD
Rate / Base 1 Contains the price information for the current rate element
[email protected] 1 The price for the current rate element, is inclusive of Additional Pricing. So when pushing back to NewBook (OTA_HotelResNotifRQ) this does not need to be supplied separately
[email protected] 1 CurrencyCode uses ISO 4217 codes to indicate the currency of the rate that is being booked
RoomStay / TimeSpan 1 Contains the Arrival and Departure date for the roomstay element
[email protected] 1 The Arrival Date for the particular RoomStay
[email protected] 1 The Departure Date for the particular RoomStay

Single Booking Availability Request / Response (OTA_HotelAvailRQ/RS) Example

Request Example XML
									
										<OTA_HotelAvailRQ xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2013-06-18T11:05:11+12:00" Version="1.0">
											<AvailRequestSegments>
												<AvailRequestSegment>
													<StayDateRange Start="2016-01-21" End="2016-01-28"/>
													<RatePlanCandidates>
														<RatePlanCandidate RatePlanCode="BAR"/>
													</RatePlanCandidates>
													<RoomStayCandidates>
													<RoomStayCandidate RoomTypeCode="1BE">
														<GuestCounts>
															<GuestCount AgeQualifyingCode="10" Count="2"/>
															<GuestCount AgeQualifyingCode="8" Count="0"/>
														</GuestCounts>
													</RoomStayCandidate>
													</RoomStayCandidates>
												</AvailRequestSegment>
											</AvailRequestSegments>
										</OTA_HotelAvailRQ>									
								
Response Example XML
									
										<OTA_HotelAvailRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2013-06-18T13:03:34+12:00" Version="1.0">
											<Success/>
											<Warnings RPH="1">
												<Warning>The occupation limit been exceeded (Max Combined: 5)</Warning>
											</Warnings>
											<RoomStays>
												<RoomStay WarningRPH="1">
													<RoomRates>
														<RoomRate RoomTypeCode="1BE" RatePlanCode="BAR">
															<RoomRateDescription>
																<Name>Standard</Name>
															</RoomRateDescription>
															<Rates>
																<Rate Start="2016-01-21" End="2016-01-22">
																	<Base AmountAfterTax="110.00" />
																</Rate>
																<Rate Start="2016-01-22" End="2016-01-24">
																	<Base AmountAfterTax="130.00" />
																</Rate>
																<Rate Start="2016-01-24" End="2016-01-28">
																	<Base AmountAfterTax="110.00" />
																</Rate>
															</Rates>
														</RoomRate>
													</RoomRates>
													<TimeSpan Start="2016-01-21" End="2016-01-28" />
												</RoomStay>
											</RoomStays>
										</OTA_HotelAvailRS>									
								
AnchorBookings Request / Response (OTA_ReadRQ/RS)

Used as Reference:

http://adriatic.pilotfish-net.com/ota-modelviewer/model/Format.OTA_ReadRQ.html

http://adriatic.pilotfish-net.com/ota-modelviewer/model/Format.OTA_HotelResRS.html

The Reservation request/response OTA Message allows 3rd Party Applications to request a list of Bookings based on Contact Details, and or Arrival/Departure dates.

The message assumes a pull model, with the 3rd Party Application initiating the request to NewBook.

The response from NewBook is the full Booking information, based on the search parameters provided.

Direction of Message

  • The 3rd Party Application will send OTA_ReadRQ
  • NewBook will acknowledge by replying with OTA_ReadRS


Request Usage Profile

Node Count Description
ReadRequests / ReadRequest / Verification 1 Contains the elements provided for searching Bookings.
At least one of the child elements must be provided in order to get a valid response
Verification / PersonName 0-1 Contains the GivenName/Surname elements using for Guest searching
Verification / PersonName / GivenName 0-1 First name of the Guest
Verification / PersonName / Surname 0-1 Last name of the Guest
Verification / ReservationTimeSpan 0-1 Contains the Start/End attributes for Booking searching
[email protected] 0-1 Specify the Arrival Date of the Booking
[email protected] 0-1 Specify the Departure Date of the Booking
Verification / Telephone 0+ Contact number/s for Guest
[email protected] 1 Contains the Telephone Number
[email protected] 0-1 The type of phone technology, if not provided it should be assumed as a land-line.
  • 5: Mobile
  • 3: Fax
Verification / Email 0-1 Contact email address for Guest

Response Usage Profile

Node Count Description
[email protected] 1 Indicates the time the reservation was created in NewBook.
HotelReservation / UniqueID 1 The Reservation reference for the Remote System
[email protected] 1 Value is always '14'
[email protected] 1 Identifier of the reservation according to the Remote System
HotelReservation / RoomStays 1 Contains the RoomStay elements
RoomStays / RoomStay 1+ 1 RoomStay element for each RoomType / RoomRate combination booked.
[email protected] 0-1 Booking Status Code (see appendix)
Providing this attribute on a modify request, will get NewBook to update the status of the Booking
RoomStay / RoomRates 1 Contains the RoomRate elements
RoomRates / RoomRate 1+ Contains the RoomType and Rate information
[email protected] 1 The Room Code of the Selected Room
[email protected] 1 The Rate Code of the selected Rate
RoomRate / Rates 1 Contains the Rate elements
Rates / Rate 1+ Rate will contain a timespan for which a rate will apply for a room type.
Multiple instances of Rate will be sent if rate changes apply for the room type over the span of the booking e.g. if Monday-Friday rate is 100, and Sat-Sun rate is 140.
The dates covered in the Rates will cover all the dates in the RoomStay/TimeSpan element
[email protected] 1 The starting date of the rate in the form YYYY-MM-DD
[email protected] 1 The ending date of the rate in the form YYYY-MM-DD
Rate / Base 1 Specifies the per-night rate for the room
[email protected] 1 CurrencyCode uses ISO 4217 codes to indicate the currency of the rate that is being booked
[email protected] 1 The nightly amount after tax, please implement a separate Rate element each time this amount changes
RoomStay / GuestCounts 1 Contains the number of Guests in this Room
GuestCounts / GuestCount 1-3 How many guests will be staying in the room
The count is split over potentially three GuestCount elements under GuestCounts, one for each AgeQualifyingCode (adult, child or infant)
Adult count must always be sent
[email protected] 1 Specifies the guest type for this GuestCount - uses OTA Spec for identifiers, will be one of three values
  • 10: Adult
  • 8: Child
  • 7: Infant
[email protected] 1 Number of Guests for the specified type (see above)
RoomStay / TimeSpan 1 Contains the timespan which this RoomStay covers
[email protected] 1 Check in date in the format YYYY-MM-DD
[email protected] 1 Check out date in the format YYYY-MM-DD
RoomStay / Discount 0-1 The discount granted to the booking, if any
[email protected] 1 The dollar amount of the discount
[email protected] 1 The identifying code of the discount. Will most often be empty
[email protected] 1 Discount Type Code (see appendix)
Discount / DiscountReason 1 The text name (description) of the discount granted to the booking
RoomStay / Total 1 The total cost of the stay will add up to the sum of Rate/Base*Number of Nights
[email protected] 1 The total amount after tax
[email protected] 1 CurrencyCode uses ISO 4217 codes to indicate the currency of the rate that is being booked
RoomStay / ResGuestRPHs 1 Contains ResGuestRPH elements
ResGuestRPH 1+ Used to associated a ResGuest with a RoomStay, can support multiple Guests
ResGu[email protected] 1 Contains the RPH for a particular ResGuest to be linked
RoomStay / ServiceRPHs 1 Contains ServiceRPH elements
ServiceRPH 1+ Used to associated a Service with a RoomStay, can support multiple Services
[email protected] 1 Contains the RPH for a particular Service to be linked
Reservation / Services 0-1 Contains the Service elements
Services / Service 1+ Contains elements for the Service information
[email protected] 1 The quantity of Services to bill the guest
[email protected] 1 This value links the ResGuest to Service(s) where possible. You can find the links in RoomStay/ServiceRPHs
Service / Price 1 The price of each of the Services to bill the guest
Price / Total 1 Contains Total element
[email protected] 1 The total amount after tax of the Service
[email protected] 1 CurrencyCode uses ISO 4217 codes to indicate the currency of the Service used
Service / ServiceDetails 1 Information about the Service
ServiceDetails / ServiceDescription 1 Descriptive Information about the Service
[email protected] 1 The name of the Service
Reservation / ResGuests 1 Contains the ResGuest elements
ResGuests / ResGuest 1+ Contains elements for the Guest information
[email protected] 1 This value links the ResGuest to RoomStay(s) where possible. You can find the links in RoomStay/ResGuestRPHs
[email protected] 1 Boolean whether the ResGuest identified by the RPH is the Primary Guest of the Booking
ResGuest / Profiles 1 Contains ProfileInfo element
Profiles / ProfileInfo 1 Contains Profile Element
ProfileInfo / Profile 1 Contains the guest profile information
[email protected] 1 Always "1" - The OTA code for "Customer"
Profile / Customer 1 Contains the PersonName element
Customer / PersonName 1 Contains the GivenName and Surname elements
PersonName / GivenName 1 The Guest's Firstname
PersonName / Surname 1 The Guest's Surname/Family Name
Customer / Telephone 0+ Contact number/s for Guest
[email protected] 1 Contains the Telephone Number
[email protected] 0-1 The type of phone technology, if not provided it should be assumed as a land-line
  • 5: Mobile
  • 3: Fax
Customer / Email 0-1 Contact email address for Guest
Customer / Address 0-1 Postal address for Guest if available
Address / AddressLine 1 Street Address for Guest
Address / CityName 1 City/Suburb for Guest
Address / PostalCode 1 Post/Zip Code for Guest
Address / StateProv 1 State/Province for Guest
Address / CountryName 1 Country for Guest
Customer / CustLoyalty 0-1 Contains Loyalty Program Details
[email protected] 1 Contains the Loyal Program Member ID
[email protected] 1 Contains the name of the Loyalty Program
[email protected] 0-1 Expiry date of the Loyalty Membership in the format YYYY-MMDD
HotelReservation / ResGlobalInfo 1 Contains general information about the Reservation
ResGlobalInfo / Guarantee 0-1 Provides guarantee information for a Reservation, i.e. credit card details
For advising of actual payments received please use the DepositPayments element.
Guarantee / GuaranteesAccepted 1+ Contains payment or Credit Card element
GuaranteeAccepted 1+ Contains Credit Card element
GuaranteeAccepted / PaymentCard 1 Contrains Credit Card details
[email protected] 1 Credit Card Number
[email protected] 1 Credit Card Expiry in the format MMYY
PaymentCard / CardHolderName 1 Name on the Credit Card
ResGlobalInfo / DepositPayments 0-1 Provides payment information for a Reservation, i.e. money taken from the Guest to pay for the Booking/Deposit
DepositPayments / GuaranteePayment 1+ Contains payment information
GuaranteePayment / Description 1 Payment Description
GuaranteePayment / AmountPercent 1 Contains Payment Amount and Currency
[email protected] 1 Contains the payment dollar amount in the format 1234.56
[email protected] 1 CurrencyCode uses ISO 4217 codes to indicate the currency of the payment.
ResGlobalInfo / HotelReservationIDs 1 Contains the HotelReservationID element
HotelreservationIDs / HotelReservationID 1 Contains resversation reference details for the remote system
[email protected]_Type 1 Either 14 – Reservation Type Code or 18 – Other Type Code
[email protected]_Value 1 Reference number supplied by the Booking Agent
[email protected]_Source 1 What the ResID_Value relates to, examples include:
Your Remote System Name - echos the HotelReservationID provided back to the Remote System.
"NewBook" - specifies that this HotelReservationID was assigned by NewBook.
"Site" - indicates individual Room Name assignment, is only available once a Reservation has checked in.
ResGlobalInfo / Total 1 The total amount for the Reservation. Will add up to the sum of the RoomStay totals PLUS any additional fees sent by the BookingAgent
[email protected] 1 The total amount after tax
[email protected] 1 CurrencyCode uses ISO 4217 codes to indicate the currency of the rate that is being booked

Bookings Request / Response (OTA_ReadRQ/RS) Example

Request Example XML
									
										<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2015-03-13T13:19:24+10:00">
											<ReadRequests>
												<ReadRequest>
													<Verification>
														<PersonName>
															<GivenName>John</GivenName>
															<Surname>Doe</Surname>
														</PersonName>
														<ReservationTimeSpan Start="2015-03-14" End="2015-03-15" />
														<Telephone PhoneNumber="0756554600"/>
														<Telephone PhoneNumber="0412345678" PhoneTechType="5" />
														<Email>[email protected]</Email>
													</Verification>
												</ReadRequest>
											</ReadRequests>
										</OTA_ReadRQ>									
								
Response Example XML
									
										<OTA_ReadRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2015-03-13T13:19:24+10:00">
											<Success/>
											<ReservationsList>
												<HotelReservation CreateDateTime="2012-06-29T10:41:00">
													<UniqueID Type="14" ID="789"/>
													<RoomStays>
														<RoomStay RoomStayStatus="Reserved">
															<RoomRates>
																<RoomRate RoomTypeCode="256" RatePlanCode="281">
																	<Rates>
																		<Rate Start="2014-04-01" End="2014-04-03">
																			<Base AmountAfterTax="100.00" CurrencyCode="AUD"/>
																		</Rate>
																		<Rate Start="2014-04-03" End="2014-04-10">
																			<Base AmountAfterTax="125.00" CurrencyCode="AUD"/>
																		</Rate>
																	</Rates>
																</RoomRate>
															</RoomRates>
															<GuestCounts>
																<GuestCount AgeQualifyingCode="10" Count="1"/>
															</GuestCounts>
															<TimeSpan Start="2012-07-07" End="2012-07-10" />
															<Discount AmountAfterTax="107.50" DiscountCode="" Type="12">
																<DiscountReason>10% Manager Special</DiscountReason>
															</Discount>
															<Total AmountAfterTax="1327.50" CurrencyCode="AUD"/>
															<ResGuestRPHs>
																<ResGuestRPH RPH="1" PrimaryIndicator="1"/>
															</ResGuestRPHs>
															<ServiceRPHs>
																<ServiceRPH RPH="1"/>
																<ServiceRPH RPH="2"/>
															</ServiceRPHs>
															<Comments>
																<Comment>
																	<Text>I will be arriving later in the afternoon. Please call me if reception is going to close. Thank you.</Text>
																</Comment>
																<Comment>
																	<Text>Equipment Name: My Family Caravan, Equipment Width: 2.34 Meters, Equipment Length: 6.60 Meters, Equipment Make: Maui, Equipment Model: 4 Berth Cascade, Equipment Registration: 123456</Text>
																</Comment>
															</Comments>
														</RoomStay>
													</RoomStays>
													<Services>
														<Service Quantity="1" ServiceRPH="1">
															<Price>
																<Total AmountAfterTax="140.00" CurrencyCode="AUD"/>
															</Price>
															<ServiceDetails>
																<ServiceDescription Name="Booking Fee"/>
															</ServiceDetails>
														</Service>
														<Service Quantity="1" ServiceRPH="2">
															<Price>
																<Total AmountAfterTax="220.00" CurrencyCode="AUD"/>
															</Price>
															<ServiceDetails>
																<ServiceDescription Name="Pet Fees"/>
															</ServiceDetails>
														</Service>
													</Services>
													<ResGuests>
														<ResGuest ResGuestRPH="1">
															<Profiles>
																<ProfileInfo>
																	<Profile ProfileType="1">
																	<Customer>
																		<PersonName>
																			<GivenName>John</GivenName>
																			<Surname>Doe</Surname>
																		</PersonName>
																		<Telephone PhoneNumber="0756554600"/>
																		<Telephone PhoneNumber="0412345678" PhoneTechType="5" />
																		<Email>[email protected]</Email>
																		<Address>
																			<AddressLine>Level 2, 9 Ouyan Street</AddressLine>
																			<CityName>Surfers Paradise</CityName>
																			<PostalCode>4217</PostalCode>
																			<StateProv>Queensland</StateProv>
																			<CountryName>Australia</CountryName>
																		</Address>
																		<CustLoyalty MembershipID="1234567890" ProgramID="Program Name" ExpiryDate="2017-03-31"/>
																	</Customer>
																	</Profile>
																</ProfileInfo>
															</Profiles>
														</ResGuest>
													</ResGuests>
													<ResGlobalInfo>
														<DepositPayments>
															<GuaranteePayment>
															<Description>Deposit Payment</Description>
															<AmountPercent Amount="100.00" CurrencyCode="AUD" />
															</GuaranteePayment>
														</DepositPayments>
														<HotelReservationIDs>
															<HotelReservationID ResID_Type="14" ResID_Value="123456" ResID_Source="NewBook" />
															<HotelReservationID ResID_Type="14" ResID_Value="789" ResID_Source="RemoteSystemName" />
															<HotelReservationID ResID_Type="18" ResID_Value="Powered Site 101" ResID_Source="Site" />
														</HotelReservationIDs>
														<Total AmountAfterTax="1327.50" CurrencyCode="AUD"/>
													</ResGlobalInfo>
												</HotelReservation>
											</ReservationsList>
										</OTA_ReadRS>									
								
AnchorBookings Request / Response (OTA_HotelResNotifRQ/RS)

Used as Reference:

http://adriatic.pilotfish-net.com/ota-modelviewer/model/Format.OTA_HotelResNotifRQ.html

http://adriatic.pilotfish-net.com/ota-modelviewer/model/Format.OTA_HotelResNotifRS.html

The Reservation request/response OTA Message allows NewBook to respond to booking data received from 3rd Party Applications. This can be used to Place, Modify or Cancel a Booking within NewBook.

The message assumes a push model, with the 3rd Party Application pushing the request to NewBook.

The response back from NewBook is a confirmation of the requested action occurring within NewBook.

Direction of Message

  • The 3rd Party Application will send OTA_HotelResNotifRQ
  • NewBook will acknowledge by replying with OTA_HotelResNotifRS


Request Usage Profile

Node Count Description
[email protected] 1 Indicates the time the reservation was created in the Remote System
[email protected] 1 Will always be one of the following:
  • "Book" for placing a new Booking
  • "Modify" for modifying an existing Booking
  • "Cancel" for cancelling an existing Booking
HotelReservation / UniqueID 1 The Reservation reference for the Remote System
[email protected] 1 Value is always '14'
[email protected] 1 Identifier of the reservation according to the Remote System
HotelReservation / RoomStays 1 Contains the RoomStay elements
RoomStays / RoomStay 1+ 1 RoomStay element for each RoomType / RoomRate combination booked.
If the same combination is Booked multiple times (e.g. 2 Rooms) you must specify multiple elements and unique IndexNumbers for each
[email protected] 0-1 Booking Status Code (see appendix)
Providing this attribute on a modify request will instruct NewBook to update the status of the Booking as given
[email protected] 1 The unique identifier of this particular RoomType / RoomRate combination
RoomStay / TimeSpan 1 Contains the timespan which this RoomStay covers
[email protected] 1 Check in date in the format YYYY-MM-DD
[email protected] 1 Check out date in the format YYYY-MM-DD
RoomStay / RoomRates 1 Contains the RoomRate elements
RoomRates / RoomRate 1+ Contains the RoomType and Rate information
[email protected] 1 The Room Code of the Selected Room
[email protected] 1 The Rate Code of the selected Rate
RoomRate / Rates 1 Contains the Rate elements
Rates / Rate 1+ Rate will contain a timespan for which a rate will apply for a room type
Multiple instances of Rate will be sent if rate changes apply for the room type over the span of the booking e.g. if Monday-Friday rate is 100, and Sat-Sun rate is 140.
The dates covered in the Rates will cover all the dates in the RoomStay/TimeSpan element
[email protected] 1 The starting date of the rate in the form YYYY-MM-DD
[email protected] 1 The ending date of the rate in the form YYYY-MM-DD
Rate / Base 1 Specifies the per-night rate for the room
[email protected] 1 CurrencyCode uses ISO 4217 codes to indicate the currency of the rate that is being booked
[email protected] 1 The nightly amount after tax, please implement a separate Rate element each time this amount changes
RoomStay / Discount 0-1 Contains discount information for the resulting booking. Discounts are optional.
[email protected] 1 The amount to grant as the discount for the booking
[email protected] 0-1 The code to record on the booking when the discount is applied (optional)
[email protected] 0-1 True or false. Optional; default false. Whether or not the [email protected] has already been deducted from each Rate/[email protected] If true, NewBook will increase each nightly rate as this discount needs to apply without affecting the overall quoted price for the booking.
Discount / DiscountReason 1 If [email protected] is specified, and the loyalty program is set up in the database & defines a discount, that discount will be applied to the booking, respecting the amount given via [email protected]
Otherwise, NewBook will use DiscountReason to find a matching discount set up in the database. If one is not found, the discount cannot apply.
RoomStay / Total 1 The total cost of the stay will add to the sum of Rate/Base*Number of Nights
[email protected] 1 The total amount after tax
[email protected] 1 CurrencyCode uses ISO 4217 codes to indicate the currency of the rate that is being booked
RoomStay / GuestCounts 1 Contains the number of Guests in this Room
GuestCounts / GuestCount 1-3 How many guests will be staying in the room
The count is split over potentially three GuestCount elements under GuestCounts, one for each AgeQualifyingCode (adult, child or infant)
Adult count must always be sent
[email protected] 1 Specifies the guest type for this GuestCount - uses OTA Spec for identifiers, will be one of three values:
  • 10: Adult
  • 8: Child
  • 7: Infant
[email protected] 1 Number of Guests for the specified type (see above)
RoomStay / ResGuestRPHs 1 Contains ResGuestRPH elements
ResGuestRPH 1+ Used to associated a ResGuest with a RoomStay, can support multiple Guests
[email protected] 1 Contains the RPH for a particular ResGuest to be linked
RoomStay / ServiceRPHs 1 Contains ServiceRPH elements
ServiceRPH 1+ Used to associated a Service with a RoomStay, can support multiple Services
[email protected] 1 Contains the RPH for a particular Service to be linked
Reservation / Services 0-1 Contains the Service elements
Services / Service 1+ Contains elements for the Service information
[email protected] 1 The quantity of Services to bill the guest
[email protected] 1 This value links the ResGuest to Service(s) where possible. You can find the links in RoomStay/ServiceRPHs
Service / Price 1 The price of each of the Services to bill the guest
Reservation / Comments 0-1 Contains the Comments elements
Comments / Comment 1+ Contains elements for the Comment information
Comment / Text 1 Comment text
Price / Total 1 Contains Total element
[email protected] 1 The total amount after tax of the Service
[email protected] 1 CurrencyCode uses ISO 4217 codes to indicate the currency of the Service used
Service / ServiceDetails 1 Information about the Service
ServiceDetails / ServiceDescription 1 Descriptive Information about the Service
[email protected] 1 The name of the Service
RoomStay / Comments 0-1 Contains the Comment Elements
Comments / Comment 1+ Comments Guest has made towards this RoomStay
Comment / Text 1 Contains the comment text
Reservation / ResGuests 1 Contains the ResGuest elements
ResGuests / ResGuest 1+ Contains elements for the Guest information
[email protected] 1 This value links the ResGuest to RoomStay(s) where possible. You can find the links in RoomStay/ResGuestRPHs
[email protected] 1 Boolean whether the ResGuest identified by the RPH is the Primary Guest of the Booking
ResGuest / Profiles 1 Contains ProfileInfo element
Profiles / ProfileInfo 1 Contains Profile Element
ProfileInfo / Profile 1 Contains the guest profile information
[email protected] 1 Always "1" - The OTA code for "Customer"
Profile / Customer 1 Contains the PersonName element
Customer / PersonName 1 Contains the GivenName and Surname elements
PersonName / GivenName 1 The Guest's Firstname
PersonName / Surname 1 The Guest's Surname/Family Name
Customer / Telephone 0+ Contact number/s for Guest
[email protected] 1 Contains the Telephone Number
[email protected] 0-1 The type of phone technology, if not provided it should be assumed as a land-line
  • 5: Mobile
  • 3: Fax
Customer / Email 0-1 Contact email address for Guest
Customer / Address 0-1 Postal address for Guest if available
Address / AddressLine 1 Street Address for Guest
Address / CityName 1 City/Suburb for Guest
Address / PostalCode 1 Post/Zip Code for Guest
Address / StateProv 1 State/Province for Guest
Address / CountryName 1 Country for Guest
Customer / CustLoyalty 0-1 Contains Loyalty Program Details
[email protected] 1 Contains the Loyal Program Member ID
[email protected] 1 Contains the name of the Loyalty Program. Has an affect on Discounts - please see Discount/DiscountReason
[email protected] 0-1 Expiry date of the Loyalty Membership in the format YYYY-MMDD
HotelReservation / ResGlobalInfo 1 Contains general information about the Reservation
ResGlobalInfo / Guarantee 0-1 Provides guarantee information for a Reservation, i.e. credit card details
For advising of actual payments received please use the DepositPayments element
Guarantee / GuaranteesAccepted 1+ Contains payment or Credit Card element
GuaranteeAccepted 1+ Contains Credit Card element
GuaranteeAccepted / PaymentCard 1 Contrains Credit Card details
[email protected] 1 Credit Card Number
[email protected] 1 Credit Card Expiry in the format MMYY
PaymentCard / CardHolderName 1 Name on the Credit Card
ResGlobalInfo / DepositPayments 0-1 Provides payment information for a Reservation, i.e. money taken from the Guest to pay for the Booking/Deposit
DepositPayments / GuaranteePayment 1+ Contains payment information
GuaranteePayment / Description 1 Payment Description
GuaranteePayment / AmountPercent 1 Contains Payment Amount and Currency
[email protected] 1 Contains the payment dollar amount in the format 1234.56
[email protected] 1 CurrencyCode uses ISO 4217 codes to indicate the currency of the payment
ResGlobalInfo / HotelReservationIDs 1 Contains the HotelReservationID element
HotelreservationIDs / HotelReservationID 1 Contains resversation reference details for the remote system
[email protected]_Type 1 Always "14" - The OTA code for "Reservation"
[email protected]_Value 1 Reference number supplied by the Booking Agent
ResGlobalInfo / Total 1 The total amount for the Reservation. Will add up to the sum of the RoomStay totals PLUS any additional fees sent by the BookingAgent
[email protected] 1 The total amount after tax
[email protected] 1 CurrencyCode uses ISO 4217 codes to indicate the currency of the rate that is being booked

Response Usage Profile

Node Count Description
[email protected] 1 For reservations this status is always 'Book'
[email protected] 1 Value is '14'
[email protected] 1 Identifier of the reservation according to the Remote System
[email protected]_Type 1 Value is '14'
[email protected]_Value 1 Reference number supplied by NewBook

Bookings Request / Response (OTA_HotelResNotifRQ/RS) Example

Request Example XML
									
										<OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2007-03-29T09:30:58.0Z" Version="1.0">
											<HotelReservations>
												<HotelReservation CreateDateTime="2014-03-20T10:41:00" ResStatus="Book">
													<UniqueID Type="14" ID="789"/>
													<RoomStays>
														<RoomStay RoomStayStatus="Reserved" IndexNumber="1">
															<TimeSpan Start="2014-04-01" End="2014-04-10"/>
															<RoomRates>
																<RoomRate RoomTypeCode="256" RatePlanCode="281">
																	<Rates>
																	<Rate Start="2014-04-01" End="2014-04-03">
																		<Base AmountAfterTax="100.00" CurrencyCode="AUD"/>
																	</Rate>
																	<Rate Start="2014-04-03" End="2014-04-10">
																		<Base AmountAfterTax="125.00" CurrencyCode="AUD"/>
																	</Rate>
																	</Rates>
																</RoomRate>
															</RoomRates>
															<Discount AmountAfterTax="100" DiscountCode="abc123">
																<DiscountReason>VIP Booker</DiscountReason>
															</Discount>
															<Total AmountAfterTax="1189.95" CurrencyCode="AUD"/>
															<GuestCounts>
																<GuestCount AgeQualifyingCode="10" Count="1"/>
															</GuestCounts>
															<ResGuestRPHs>
																<ResGuestRPH RPH="1" PrimaryIndicator="1"/>
															</ResGuestRPHs>
															<ServiceRPHs>
																<ServiceRPH RPH="1"/>
																<ServiceRPH RPH="2"/>
															</ServiceRPHs>
															<Comments>
																<Comment>
																	<Text>non-smoking Room requested</Text>
																</Comment>
															</Comments>
														</RoomStay>
													</RoomStays>
													<Services>
														<Service Quantity="1" ServiceRPH="1">
															<Price>
																<Total AmountAfterTax="99.00" CurrencyCode="AUD"/>
															</Price>
															<ServiceDetails>
																<ServiceDescription Name="Couples Retreat"/>
															</ServiceDetails>
														</Service>
														<Service Quantity="1" ServiceRPH="2">
															<Price>
																<Total AmountAfterTax="15.95" CurrencyCode="AUD"/>
															</Price>
															<ServiceDetails>
																<ServiceDescription Name="Champagne on arrival"/>
															</ServiceDetails>
														</Service>
													</Services>
													<ResGuests>
														<ResGuest ResGuestRPH="1">
															<Profiles>
																<ProfileInfo>
																	<Profile ProfileType="1">
																		<Customer>
																			<PersonName>
																				<GivenName>John</GivenName>
																				<Surname>Doe</Surname>
																			</PersonName>
																			<Telephone PhoneNumber="0756554600"/>
																			<Telephone PhoneNumber="0412345678" PhoneTechType="5"/>
																			<Email>[email protected]</Email>
																			<Address>
																				<AddressLine>Level 2, 9 Ouyan Street</AddressLine>
																				<CityName>Surfers Paradise</CityName>
																				<PostalCode>4217</PostalCode>
																				<StateProv>Queensland</StateProv>
																				<CountryName>Australia</CountryName>
																			</Address>
																			<CustLoyalty MembershipID="1234567890" ProgramID="Program Name" ExpiryDate="2017-03-31"/>
																		</Customer>
																	</Profile>
																</ProfileInfo>
															</Profiles>
														</ResGuest>
													</ResGuests>
													<ResGlobalInfo>
														<Guarantee>
															<GuaranteesAccepted>
																<GuaranteeAccepted>
																	<PaymentCard CardNumber="4111111111111111" ExpireDate="0217">
																		<CardHolderName>John Doe</CardHolderName>
																	</PaymentCard>
																</GuaranteeAccepted>
															</GuaranteesAccepted>
														</Guarantee>
														<DepositPayments>
															<GuaranteePayment>
																<Description>Deposit Payment</Description>
																<AmountPercent Amount="100.00" CurrencyCode="AUD"/>
															</GuaranteePayment>
														</DepositPayments>
														<HotelReservationIDs>
															<HotelReservationID ResID_Type="14" ResID_Value="789"/>
														</HotelReservationIDs>
														<Total AmountAfterTax="1189.95" CurrencyCode="AUD"/>
													</ResGlobalInfo>
												</HotelReservation>
											</HotelReservations>
										</OTA_HotelResNotifRQ>									
								
Response Example XML
									
										<OTA_HotelResNotifRS xmlns="http://www.opentravel.org/OTA/2003/05">
											<Success/>
											<HotelReservations>
												<HotelReservation ResStatus="Book">
													<UniqueID Type="14" ID="789"/>
													<ResGlobalInfo>
														<HotelReservationIDs>
															<HotelReservationID ResID_Type="14" ResID_Value="789" ResID_Source="RemoteSystemName"/>
															<HotelReservationID ResID_Type="14" ResID_Value="123456" ResID_Source="NewBook"/>
														</HotelReservationIDs>
													</ResGlobalInfo>
												</HotelReservation>
											</HotelReservations>
										</OTA_HotelResNotifRS>									
								
AnchorMapping Information Request / Response (GetMappingRQ/RS)

3rd Party Applications need to support this response if they wish to receive Availability and Rates from NewBook in real-time as they change. To achieve this the 3rd Party Application must be registered with our platform. NewBook will only generate this request if those conditions are met. Please contact NewBook Support if you would like to explore this option.

The Mapping Information Request / Response Messages are used for NewBook to pull the current RoomTypes and RatePlans from 3rd Party Applications.

The message assumes a pull model, with NewBook requesting mapping details from the 3rd Party Application.

The response from the 3rd Party Application will include all active RoomTypes and their RatePlanCodes.

Direction of Message

  • NewBook will send GetMappingRQ
  • The 3rd Party Application will acknowledge by replying with GetMappingRS


Request Usage Profile

Node Count Description
N/A

Response Usage Profile

Node Count Description
GetMappingRS / RoomTypes 1 Container for RoomType elements
RoomTypes / RoomType 0+ Each distinct Room Type
[email protected] 1 Room Code (for mapping/interchange purposes) of the Room Type
[email protected] 1 Name of the Room Type
RoomType / RatePlans 1 Container for RatePlan elements
RatePlans / RatePlan 0+ Each distinct Rate Type
[email protected] 1 Rate Plan Code (for mapping/interchange purposes) of the Rate Plan
[email protected] 1 Name of the Rate Plan

Mapping Information Request / Response (GetMappingRQ/RS) Example

Request Example XML
									
										<GetMappingRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2020-11-25T11:30:00+00:00"/>									
								
Response Example XML
									
										<GetMappingRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2020-11-25T11:30:00+00:00">
											<RoomTypes>
												<RoomType InvTypeCode="dlx_cabin" Name="Deluxe Cabin">
													<RatePlans>
														<RatePlan RatePlanCode="dlx_cabin_std" Name="Standard"/>
														<RatePlan RatePlanCode="dlx_cabin_spcl" Name="Special"/>
													</RatePlans>
												</RoomType>
												<RoomType InvTypeCode="lk_vl" Name="Lakeside Villa">
													<RatePlans>
														<RatePlan RatePlanCode="lk_vl_std" Name="Standard"/>
														<RatePlan RatePlanCode="lk_vl_spcl" Name="Special"/>
													</RatePlans>
												</RoomType>
											</RoomTypes>
										</GetMappingRS>									
								
AnchorAvailability Request / Response (OTA_HotelAvailNotifRQ/RS)

NewBook will only generate this request when the 3rd Party Application is registered with our platform, and the client has completed the Mapping Information process. Please contact NewBook Support if you would like to explore this option.

Used as Reference:

The Availability Request / Response OTA Messages are used for supplying availability to NewBook. The message assumes a push model.

Direction of Message

  • The 3rd Party Application will send OTA_HotelNotifRQ
  • NewBook will respond with OTA_HotelAvailNotifRS


Request Usage Profile

Node Count Description
[email protected] 1 The Instance Code as defined by NewBook
[email protected] 1 Number of Rooms available
[email protected] 1 The start of the date range for the current availability element, in the format YYYY-MM-DD
[email protected] 1 The end of the date range for the current availability element, in the format YYYY-MM-DD
[email protected] 1 The Room Code for the current availability element
[email protected] 1 The Rate Code for the current availability element
[email protected] 1 Controls the Stop Sell for the current availability element, can be either "Open" or "Close"
[email protected] 1 "SetMinLOS" for minimum length of stay, or "SetMaxLOS" for maximum length of stay
[email protected] 1 The minimum nights required to stay for the current availability element (days)

Response Usage Profile

Node Count Description
Success 1 Element only exists when request was successful

Availability Request / Response (OTA_HotelAvailNotifRQ/RS) Example

Request Example XML
									
										<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2017-09-11T14:48:58+08:00">
											<AvailStatusMessages HotelCode="1865">
												<AvailStatusMessage BookingLimit="1">
													 <StatusApplicationControl Start="2017-09-11" End="2017-09-12" InvTypeCode="studiovilla" />
												</AvailStatusMessage>
												<AvailStatusMessage BookingLimit="2">
													 <StatusApplicationControl Start="2017-09-13" End="2017-09-19" InvTypeCode="studiovilla" />
												</AvailStatusMessage>
												<AvailStatusMessage BookingLimit="0">
													 <StatusApplicationControl Start="2017-09-20" End="2017-09-22" InvTypeCode="studiovilla" />
												</AvailStatusMessage>
												<AvailStatusMessage BookingLimit="2">
													 <StatusApplicationControl Start="2017-09-23" End="2017-09-24" InvTypeCode="studiovilla" />
												</AvailStatusMessage>
												<AvailStatusMessage BookingLimit="0">
													 <StatusApplicationControl Start="2017-09-25" End="2017-09-26" InvTypeCode="studiovilla" />
												</AvailStatusMessage>
												<AvailStatusMessage BookingLimit="3">
													 <StatusApplicationControl Start="2017-09-11" End="2017-09-19" InvTypeCode="2bedcabin" />
												</AvailStatusMessage>
												<AvailStatusMessage BookingLimit="0">
													 <StatusApplicationControl Start="2017-09-20" End="2017-09-24" InvTypeCode="2bedcabin" />
												</AvailStatusMessage>
												<AvailStatusMessage BookingLimit="2">
													 <StatusApplicationControl Start="2017-09-25" End="2017-09-26" InvTypeCode="2bedcabin" />
												</AvailStatusMessage>
												<AvailStatusMessage>
													 <StatusApplicationControl Start="2017-09-11" End="2017-09-26" InvTypeCode="studiovilla" RatePlanCode="1bed_spcl">
														<DestinationSystemCodes>
															<DestinationSystemCode>NBO</DestinationSystemCode>
														</DestinationSystemCodes>
													 </StatusApplicationControl>
													 <RestrictionStatus Status="Open" />
													 <LengthsOfStay>
														<LengthOfStay MinMaxMessageType="SetMinLOS" Time="1" />
													 </LengthsOfStay>
												</AvailStatusMessage>
												<AvailStatusMessage>
													 <StatusApplicationControl Start="2017-09-11" End="2017-09-26" InvTypeCode="studiovilla" RatePlanCode="1bed_std">
														<DestinationSystemCodes>
															<DestinationSystemCode>NBO</DestinationSystemCode>
														</DestinationSystemCodes>
													 </StatusApplicationControl>
													 <RestrictionStatus Status="Open" />
													 <LengthsOfStay>
														<LengthOfStay MinMaxMessageType="SetMinLOS" Time="1" />
													 </LengthsOfStay>
												</AvailStatusMessage>
												<AvailStatusMessage>
													 <StatusApplicationControl Start="2017-09-11" End="2017-09-26" InvTypeCode="2bedcabin" RatePlanCode="2bed_spcl">
														<DestinationSystemCodes>
															<DestinationSystemCode>NBO</DestinationSystemCode>
														</DestinationSystemCodes>
													 </StatusApplicationControl>
													 <RestrictionStatus Status="Open" />
													 <LengthsOfStay>
														<LengthOfStay MinMaxMessageType="SetMinLOS" Time="1" />
													 </LengthsOfStay>
												</AvailStatusMessage>
												<AvailStatusMessage>
													 <StatusApplicationControl Start="2017-09-11" End="2017-09-26" InvTypeCode="2bedcabin" RatePlanCode="2bed_std">
														<DestinationSystemCodes>
															<DestinationSystemCode>NBO</DestinationSystemCode>
														</DestinationSystemCodes>
													 </StatusApplicationControl>
													 <RestrictionStatus Status="Open" />
													 <LengthsOfStay>
														<LengthOfStay MinMaxMessageType="SetMinLOS" Time="1" />
													 </LengthsOfStay>
												</AvailStatusMessage>
											</AvailStatusMessages>
										</OTA_HotelAvailNotifRQ>									
								
Response Example XML
									
										<OTA_HotelAvailNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2017-09-11T14:56:50+08:00">
											<Success/>
										</OTA_HotelAvailNotifRS>									
								
AnchorRate Plan Request / Response (OTA_HotelRateAmountNotifRQ/RS)

NewBook will only generate this request when the 3rd Party Application is registered with our platform, and the client has completed the Mapping Information process. Please contact NewBook Support if you would like to explore this option.

Used as Reference:

The Rate Plan Request / Response OTA Messages are used for updating Rates within NewBook. The message assumes a push model.

The response from NewBook will verify whether the Rates were updated successfully.

If any problems are encountered including missing elements/attributes, or invalid room codes or rate codes, NewBook will reject the whole message in its entirety.

Direction of Message

  • The 3rd Party Application will send OTA_HotelRatePlanAmountNotifRQ
  • NewBook will acknowledge by replying with OTA_HotelRatePlanAmountNotifRS


Request Usage Profile

Node Count Description
[email protected] 1 The Instance Code as defined by NewBook
[email protected] 1 The Room Code for the current rate element
[email protected] 1 The Rate Code for the current rate element
DestinationSystemCode 1 The Room Code for the current rate element
[email protected] 1 The start of the date range for the current rate element, in the format YYYY-MM-DD
[email protected] 1 The end of the date range for the current rate element, in the format YYYY-MM-DD
[email protected] 1 The Room Code for the current rate element
[email protected] 1 The total amount after tax
[email protected] 1 CurrencyCode uses ISO 4217 codes to indicate the currency of the rate that is being booked
[email protected] 1 Specifies the guest type for this GuestCount - uses OTA Spec for identifiers, will be one of three values: 10: Adult, 8: Child, 7: Infant
[email protected] 1 The amount per additional guest after tax

Response Usage Profile

Node Count Description
Success 1 Element exists only when request was successful

Rate Plan Request / Response (OTA_HotelRateAmountNotifRQ/RS) Example

Request Example XML
									
										<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2017-07-17T14:10:09+08:00">
											<RateAmountMessages HotelCode="1865">
												<RateAmountMessage>
													<StatusApplicationControl InvTypeCode="cabin" RatePlanCode="cabin-std">
														<DestinationSystemCodes>
															<DestinationSystemCode>NBOTA</DestinationSystemCode>
														</DestinationSystemCodes>
													</StatusApplicationControl>
													<Rates>
														<Rate Start="2017-07-17" End="2017-07-17" InvCode="cabin">
															<BaseByGuestAmts>
																<BaseByGuestAmt AmountAfterTax="75" CurrencyCode="AUD"/>
															</BaseByGuestAmts>
															<AdditionalGuestAmounts>
																<AdditionalGuestAmount AgeQualifyingCode="10" Amount="20.00" IncludedAdditionalGuests="1"/>
																<AdditionalGuestAmount AgeQualifyingCode="8" Amount="10.00" IncludedAdditionalGuests="0"/>
																<AdditionalGuestAmount AgeQualifyingCode="7" Amount="5.00" IncludedAdditionalGuests="0"/>
															</AdditionalGuestAmounts>
														</Rate>
														<Rate Start="2017-07-18" End="2017-07-18" InvCode="cabin">
															<BaseByGuestAmts>
																<BaseByGuestAmt AmountAfterTax="170.0000" CurrencyCode="AUD"/>
															</BaseByGuestAmts>
															<AdditionalGuestAmounts>
																<AdditionalGuestAmount AgeQualifyingCode="10" Amount="20.00" IncludedAdditionalGuests="1"/>
																<AdditionalGuestAmount AgeQualifyingCode="8" Amount="10.00" IncludedAdditionalGuests="0"/>
																<AdditionalGuestAmount AgeQualifyingCode="7" Amount="5.00" IncludedAdditionalGuests="0"/>
															</AdditionalGuestAmounts>
														</Rate>
														<Rate Start="2017-07-19" End="2017-07-23" InvCode="cabin">
															<BaseByGuestAmts>
																<BaseByGuestAmt AmountAfterTax="75" CurrencyCode="AUD"/>
															</BaseByGuestAmts>
															<AdditionalGuestAmounts>
																<AdditionalGuestAmount AgeQualifyingCode="10" Amount="20.00" IncludedAdditionalGuests="1"/>
																<AdditionalGuestAmount AgeQualifyingCode="8" Amount="10.00" IncludedAdditionalGuests="0"/>
																<AdditionalGuestAmount AgeQualifyingCode="7" Amount="5.00" IncludedAdditionalGuests="0"/>
															</AdditionalGuestAmounts>
														</Rate>
													</Rates>
												</RateAmountMessage>
											</RateAmountMessages>
										</OTA_HotelRateAmountNotifRQ>									
								
Response Example XML
									
										<OTA_HotelRatePlanRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2017-07-18T06:44:10+08:00">
											<Success/>
										</OTA_HotelRatePlanRS>									
								
AnchorAppendices

Table Legend Description

Legend:
1 Only one element/attribute must be supplied
0 - 1 Only one element/attribute can be optionally supplied
0+ Zero or more elements can be supplied
1+ One Element must be supplied, multiple elements are supported
@ Denotes an Attribute

Error Types (EWT)

Value Description
3 Business Rule
10 Required field missing
12 Processing Exception
13 Application Error

Charge Types (CHG)

Value Description
13 Complimentary
21 Per person per night
26 Per reservation/booking

Unique ID Types (UIT)

Value Description
1 Customer
2 CRO (Customer Reservations Office)
3 Corporation representative
4 Company
5 Travel agency
6 Airline
7 Wholesaler
8 Car rental
9 Group
10 Hotel
11 Tour operator
12 Cruise line
13 Internet broker
14 Reservation
15 Cancellation
16 Reference
17 Meeting planning agency
18 Other
19 Insurance agency
20 Insurance agent
21 Profile
22 ERSP (Electronic reservation service provider)
23 Provisional reservation
24 Travel Agent PNR
25 Associated reservation
26 Associated itinerary reservation
27 Associated shared reservation
28 Alliance
29 Booking agent
30 Ticket
31 Divided reservation
32 Merchant
33 Acquirer
34 Master reference
35 Purged master reference
36 Parent reference
37 Child reference
38 Linked reference
39 Contract
40 Confirmation number
41 Fare quote
42 Reissue/refund quote
43 Ground transportation supplier

Phone Use Types (PUT)

Value Description
1 Emergency Contact
2 Travel Arranger
3 Daytime Contact
4 Evening Contact
5 Contact
6 Toll free number
7 Guest use
8 Pickup contact
9 Electronic document reference

Bed Type Codes

Value Description
1 Double
2 Futon
3 King
4 Murphy bed
5 Queen
6 Sofa bed
7 Tatami mats
8 Twin
9 Single
10 Full
11 Run of the house
12 Dorm bed
13 Water bed

Booking Status Codes

Value Description
Cancelled The Booking has been Cancelled
Checked out The Booking has stayed, and left the instance
In-house The Booking is current "In-House" at the instance
No-show The Booking was due to Arrive but did not show up
Reserved The Booking has been accepted at the instance

Discount Type Codes

Value OTA Description Corresponding NewBook Discount Type/s
7 Per person Fixed Amount per Adult, Fixed Amount per Child, Fixed Amount per Person
19 Per room per night Fixed Amount per Night
26 Per reservation/booking Percentage of Total, Fixed Amount, Number of Nights, Number of Nights (Avg)