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.
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.
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.
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
Staging (development): https://testapi.newbook.cloud/ota
Please contact Newbook Support if you are unsure about which endpoint to use.
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 the case of an error Newbook and the 3rd Party Application will respond with XML structured as show in the example.
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 |
Error@Type | 1 | The Error Type |
Error@Code | 1 | OTA ERR Error Codes. |
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.
Or:
Node | Count | Description |
---|---|---|
EchoData | 1 | String data that is expected to be echoed back in the response message. |
Node | Count | Description |
---|---|---|
Success | 1 | Element exists only when request was successful |
EchoData | 1 | The original request EchoData content |
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.
The Services returned in this response will be automatically applied by Newbook to any incoming Booking in the Room Type. You should not specify these Services if you Push Bookings to Newbook, as they will double up.
Node | Count | Description |
---|---|---|
@HotelCode | 1 | This must match the InstanceToken that is provided with Authentication. |
Node | Count | Description |
---|---|---|
Success | 1 | Element exists only when request was successful |
HotelDescriptiveContents@HotelCode | 1 | This will match the InstanceToken provided |
HotelDescriptiveContent@CurrencyCode | 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 |
Address@UseType | 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 |
OwnershipManagementInfo / URLs | 1 | Contains a URL for the Newbook Online Booking Engine of 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 |
GuestRoom@Code | 1 | Contains the InvTypeCode for Room Availability |
GuestRoom@Quantity | 1 | The maximum possible number of Rooms available (for this Room Type) |
GuestRoom@MaxOccupancy | 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. |
GuestRoom@MinOccupancy | 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. |
GuestRoom@MaxAdultOccupancy | 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. |
GuestRoom@MaxChildOccupancy | 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. |
GuestRoom@RoomTypeName | 1 | The name of this Room Type |
GuestRoom@Sort | 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 GuestRoom@Quantity if the instance has elected to reserve a number of Rooms for offline use. |
GuestRoom / RoomData | 0-1 | When Site-level Availability is enabled, will contain elements describing each individual Room |
RoomData / Room | 1+ | Contains the additional data for an individual Room |
Room@ID | 1 | The ID of a Room |
Room@Name | 1 | The Name of a Room |
Room / Description | 1 | The full description of a Room |
Room / Size | 0-1 | Contains the essential data for the size of a Room |
Size@Width | 1 | The width of the Room |
Size@Length | 1 | The legnth of the Room |
Size@Height | 1 | The height of the Room |
Size@Unit | 1 | The unit of the size |
Room / MultimediaDescriptions / MultimediaDescription / ImageItems | 0-1 | This element contains the image elements for this Room Type |
GuestRoom / TypeRoom | 0+ | Gives bedding details about the Room |
TypeRoom@BedTypeCode | 1 | Contains the Bed Type Code |
TypeRoom@StandardNumBeds | 1 | Contains the number of Beds applicable to the Bed Type Code |
GuestRoom / Features | 0 - 1 | This element contains the Feature elements for this Room Type |
Features / Feature | 1+ | Details about a given Room Type Feature |
Feature@Quantity | 1+ | How many of this Feature are available for the given Room Type |
Feature / DescriptiveText | 1+ | The Name of the Feature |
GuestRoom / MultimediaDescriptions / MultimediaDescription / ImageItems | 0-1 | This element contains the image elements for this Room Type |
ImageItem@LastModifyDateTime | 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 |
GuestRoom / Services | 0-1 | If a room has Inventory Items (Services) that are enabled for this booking channel, it will contain those elements related to this room |
Services / Service | 1+ | Contains elements for the Service information |
Service@Quantity | 1 | The quantity of Services to bill the guest |
Service / Price | 1 | The price of each of the Services to bill the guest |
Price / Total | 1 | Contains Total element |
Total@AmountBeforeTax | 0-1 | The total amount before tax of the Service |
Total@AmountAfterTax | 0-1 |
The total amount after tax of the Service. If the property has Exclusive Taxes, they will be included in this value. |
Total@CurrencyCode | 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 |
ServiceDescription@Name | 1 | The name of the Service |
GuestRoom / Taxes | 0-1 | When a room is not tax-free, it will contain tax elements related to this room |
Taxes / Tax | 1+ | Additional data for each tax |
Tax@Percent | 0-1 | If the tax amount type is percentage, it contains the percentage value |
Tax@Amount | 0-1 | If the tax amount type is a fixed value, it contains the value |
Tax@Type | 1 | The tax contribution, either inclusive or exclusive |
Tax@ChargeUnit | 1 | The Charge Unit Type Code |
Tax@ChargeGroup | 1 | What the tax applies to (Charge Group) |
Tax / TaxDescription | 1 | Descriptive Information about the tax |
TaxDescription / Text | 1 | The name of the tax rate |
The Mapping Information Request / Response Messages are used for 3rd Party Applications to pull the current RoomTypes and RatePlans from Newbook.
The message assumes a pull model, with the 3rd Party Application requesting mapping details from Newbook.
The response from Newbook will include all active RoomTypes and their RatePlanCodes.
Node | Count | Description |
---|---|---|
N/A |
Node | Count | Description |
---|---|---|
GetMappingRS / RoomTypes | 1 | Container for RoomType elements |
RoomTypes / RoomType | 0+ | Each distinct Room Type |
RoomType@InvTypeCode | 1 | Room Code (for mapping/interchange purposes) of the Room Type |
RoomType@Name | 1 | Name of the Room Type |
RoomType / RatePlans | 1 | Container for RatePlan elements |
RatePlans / RatePlan | 0+ | Each distinct Rate Type |
RatePlan@RatePlanCode | 1 | Rate Plan Code (for mapping/interchange purposes) of the Rate Plan |
RatePlan@Name | 1 | Name of the Rate Plan |
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.
Node | Count | Description |
---|---|---|
StayDateRange@Start | 1 | The Arrival date of the Booking, must be in the format YYYY-MMDD |
StayDateRange@End | 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 |
RatePlanCandidate@RatePlanCode | 1 | The Rate Code of the desired RatePlan |
AvailRequestSegment / RoomStayCandidates | 1 | Contains the RoomStayCandidate elements |
RoomStayCandidates / RoomStayCandidate | 1+ | Contains the RoomTypeCode and GuestCounts information |
RoomStayCandidate@RoomTypeCode | 1 | |
RoomStayCandidate / GuestCounts | 1 | Contains the GuestCount elements |
GuestCounts / GuestCount | 1+ | Contains the Number of Guests specified per AgeQualifyingCode |
GuestCount@AgeQualifyingCode | 1 | Specifies the guest type for this GuestCount - uses OTA Spec for identifiers, will be one of three values:
|
GuestCount@Count | 1 | The Number of Guests for the specified AgeQualifyingCode |
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 |
Warning@RPH | 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 |
RoomStay@WarningRPH | 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 |
Rate@Start | 1 | The start of the date range for the current rate element, in the format YYYY-MM-DD |
Rate@End | 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 |
Base@AmountBeforeTax | 0-1 |
This attribute will only be present if the property has Exclusive Taxes setup. The price for the current rate element, before Exclusive taxes. |
Base@AmountAfterTax | 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 provided separately If the property has Exclusive Taxes, they will be included in this value. |
Base@CurrencyCode | 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 |
TimeSpan@Start | 1 | The Arrival Date for the particular RoomStay |
TimeSpan@End | 1 | The Departure Date for the particular RoomStay |
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 their ID numbers, or Arrival/Departure dates, or Guest Details. There is also an optional timeframe limit to further narrow results.
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.
You may provide a Booking ID (Newbook-sourced, or your platform-sourced) for a specific lookup:
<HotelReservationIDs>
<HotelReservationID ResID_Type="14" ResID_Source="Newbook" ResID_Value="865" />
</HotelReservationIDs>
Alternatively you may provide a details for a Guest - all of the below examples are independently optional:
<PersonName>
<GivenName>John</GivenName>
<Surname>Doe</Surname>
</PersonName>
<Telephone PhoneNumber="0756554600"/>
<Telephone PhoneNumber="0412345678" PhoneTechType="5" />
<Email>john.doe@example.com</Email>
Please be aware that multiple bookings may be returned if the Guest details match more than one Booking.
If you need, you may also provide a ReservationTimeSpan to narrow the results:
<ReservationTimeSpan Start="2015-03-14" End="2015-03-15" />
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 / HotelReservationIDs | 0-1 | Container for one or multiple HotelReservationID elements for a specific lookup |
HotelReservationIDs / HotelReservationID | 1+ | Perform a specific lookup using the attributes delivered |
HotelReservationID@ResID_Type | 1 | Always 14 for Reservation Type Code |
HotelReservationID@ResID_Source | 1 |
Either "Newbook" to indicate you want to search with the Newbook Booking ID, or Your 3rd Party Integration name to indicate you want to search with your ID number, which should be saved onto the Booking inside Newbook |
HotelReservationID@ResID_Value | 1 | The ID number to search for matching Bookings |
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 |
ReservationTimeSpan@Start | 0-1 | Specify the Arrival Date of the Booking |
ReservationTimeSpan@End | 0-1 | Specify the Departure Date of the Booking |
Verification / Telephone | 0+ | Contact number/s for Guest |
Telephone@PhoneNumber | 1 | Contains the Telephone Number |
Telephone@PhoneTechType | 0-1 | The type of phone technology, if not provided it should be assumed as a land-line.
|
Verification / Email | 0-1 | Contact email address for Guest |
Node | Count | Description |
---|---|---|
HotelReservation@CreateDateTime | 1 | Indicates the time the reservation was created in Newbook. |
HotelReservation / UniqueID | 1 | The Reservation reference for the Remote System |
UniqueID@Type | 1 | Value is always '14' |
UniqueID@ID | 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. |
RoomStay@RoomStayStatus | 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 |
RoomRate@RoomTypeCode | 1 | The Room Code of the Selected Room |
RoomRate@RatePlanCode | 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 |
Rate@Start | 1 | The starting date of the rate in the form YYYY-MM-DD |
Rate@End | 1 | The ending date of the rate in the form YYYY-MM-DD |
Rate / Base | 1 | Specifies the per-night rate for the room |
Base@CurrencyCode | 1 | CurrencyCode uses ISO 4217 codes to indicate the currency of the rate that is being booked |
Base@AmountBeforeTax | 0-1 |
This attribute will only be present if the property has Exclusive Taxes setup. The nightly amount before Exclusive taxes. |
Base@AmountAfterTax | 1 |
The nightly amount after tax, please implement a separate Rate element each time this amount changes If the property has Exclusive Taxes, they will be included in this value |
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 |
GuestCount@AgeQualifyingCode | 1 | Specifies the guest type for this GuestCount - uses OTA Spec for identifiers, will be one of three values
|
GuestCount@Count | 1 | Number of Guests for the specified type (see above) |
RoomStay / TimeSpan | 1 | Contains the timespan which this RoomStay covers |
TimeSpan@Start | 1 | Check in date in the format YYYY-MM-DD |
TimeSpan@End | 1 | Check out date in the format YYYY-MM-DD |
RoomStay / Discount | 0-1 | The discount granted to the booking, if any |
Discount@AmountAfterTax | 1 | The dollar amount of the discount |
Discount@DiscountCode | 1 | The identifying code of the discount. Will most often be empty |
Discount@Type | 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, minus any Travel Agent commission. |
Total@AmountBeforeTax | 0-1 |
This attribute will only be present if the property has Exclusive Taxes setup. The total amount before Exclusive taxes. |
Total@AmountAfterTax | 1 |
The total amount after tax If the property has Exclusive Taxes, they will be included in this value. |
Total@CurrencyCode | 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 |
ResGuestRPH@RPH | 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 |
ServiceRPH@RPH | 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 |
Service@Quantity | 1 | The quantity of Services to bill the guest |
Service@ServiceRPH | 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 |
Total@AmountAfterTax | 1 | The total amount after tax of the Service |
Total@CurrencyCode | 1 | CurrencyCode uses ISO 4217 codes to indicate the currency of the Service used |
Service / ServiceDetails | 1 | Information about the Service |
ServiceDetails@StayCostContribution | 1 |
Increase: the cost of this Service increases the Reservation total. Exclude: same as above - the cost of this Service increases the Reservation total, but is reported separately inside Newbook PMS software. Include: the cost of this Service is included in the Reservation total, and is only shown here separately for guest/integrator understanding. |
ServiceDetails / ServiceDescription | 1 | Descriptive Information about the Service |
ServiceDescription@Name | 1 | The name of the Service |
Reservation / ResGuests | 1 | Contains the ResGuest elements |
ResGuests / ResGuest | 1+ | Contains elements for the Guest information |
ResGuest@ResGuestRPH | 1 | This value links the ResGuest to RoomStay(s) where possible. You can find the links in RoomStay/ResGuestRPHs |
ResGuestRPH@PrimaryIndicator | 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 |
Profile@ProfileType | 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 | Firstname of the Guest |
PersonName / Surname | 1 | Surname/Family Name of the Guest |
Customer / Telephone | 0+ | Contact number/s for Guest |
Telephone@PhoneNumber | 1 | Contains the Telephone Number |
Telephone@PhoneTechType | 0-1 | The type of phone technology, if not provided it should be assumed as a land-line
|
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 |
CustLoyalty@MembershipID | 1 | Contains the Loyal Program Member ID |
CustLoyalty@ProgramID | 1 | Contains the name of the Loyalty Program |
CustLoyalty@ExpiryDate | 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 |
PaymentCard@CardNumber | 1 | Credit Card Number |
PaymentCard@ExpireDate | 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 Deposit |
DepositPayments / GuaranteePayment | 1+ | Contains payment information |
GuaranteePayment / Description | 1 | Payment Description |
GuaranteePayment / AmountPercent | 1 | Contains Payment Amount and Currency |
AmountPercent@Amount | 1 | Contains the dollar amount in the format 1234.56 |
AmountPercent@CurrencyCode | 1 | CurrencyCode uses ISO 4217 codes to indicate the currency of the payment. |
ResGlobalInfo / HotelReservationIDs | 1 | Contains the HotelReservationID element |
HotelreservationIDs / HotelReservationID | 1 | Contains reservation reference details for the remote system |
HotelReservationID@ResID_Type | 1 | Either 14 – Reservation Type Code or 18 – Other Type Code |
HotelReservationID@ResID_Value | 1 | Reference number provided by the Booking Agent |
HotelReservationID@ResID_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 |
Total@AmountBeforeTax | 0-1 |
This attribute will only be present if the property has Exclusive Taxes setup. The total amount before Exclusive taxes. |
Total@AmountAfterTax | 1 |
The total amount after tax If the property has Exclusive Taxes, they will be included in this value. |
Total@CurrencyCode | 1 | CurrencyCode uses ISO 4217 codes to indicate the currency of the rate that is being booked |
The ARI Settings request / response is used for 3rd Party Applications to enable Availability and Rate Information pushes from Newbook.
The 3rd Party Application must be registered with our platform to use this option.
Node | Count | Description |
---|---|---|
ARISettingsRQ / PushEnabled | 1 | Boolean whether to enable Availability and Rate Information pushes from Newbook. Enabling this on our live environment will immediately queue a full (365 day) Availability and Rate Information push. |
PushTest / TimeSpan | 0 - 1 | The Newbook testing environment does not push data to 3rd Party Applications. However you can force this behaviour from the test environment using this element. Define the Start and End date you want to receive, and a ARI push will be immediately queued even from the testing environment. |
TimeSpan@Start | 1 | The Start Date for the test Availability and Rate Information push |
TimeSpan@End | 1 | The End Date for the test Availability and Rate Information push |
Node | Count | Description |
---|---|---|
Success | 1 | Element only exists when request was successful |
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 from Newbook is a confirmation of the requested action occurring within Newbook.
Node | Count | Description |
---|---|---|
HotelReservation@CreateDateTime | 1 | Indicates the time the reservation was created in the Remote System |
HotelReservation@ResStatus | 1 | Will always be one of the following:
|
HotelReservation / UniqueID | 1 | The Reservation reference for the Remote System |
UniqueID@Type | 1 | Value is always '14' |
UniqueID@ID | 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 |
RoomStay@RoomStayStatus | 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 |
RoomStay@IndexNumber | 1 | The unique identifier of this particular RoomType / RoomRate combination |
RoomStay@RoomID | 0-1 | The unique identifier of the selected Room. Can only be provided if Site-level availability has been enabled. Please contact Newbook Support if you would like to explore this option. |
RoomStay / TimeSpan | 1 | Contains the timespan which this RoomStay covers |
TimeSpan@Start | 1 | Check in date in the format YYYY-MM-DD |
TimeSpan@End | 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 |
RoomRate@RoomTypeCode | 1 | The Room Code of the Selected Room |
RoomRate@RatePlanCode | 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 |
Rate@Start | 1 | The starting date of the rate in the form YYYY-MM-DD |
Rate@End | 1 | The ending date of the rate in the form YYYY-MM-DD |
Rate / Base | 1 | Specifies the per-night rate for the room |
Base@CurrencyCode | 1 | CurrencyCode uses ISO 4217 codes to indicate the currency of the rate that is being booked |
Base@AmountAfterTax | 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. |
Discount@AmountAfterTax | 1 | The amount to grant as the discount for the booking |
Discount@DiscountCode | 0-1 | The code to record on the booking when the discount is applied (optional) |
Discount@Inclusive | 0-1 | True or false. Optional; default false. Whether or not the Discount@AmountAfterTax has already been deducted from each Rate/Base@AmountAfterTax. 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 CustLoyalty@ProgramID 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 Discount@AmountAfterTax. 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 |
Total@AmountAfterTax | 1 | The total amount after tax |
Total@CurrencyCode | 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 |
GuestCount@AgeQualifyingCode | 1 | Specifies the guest type for this GuestCount - uses OTA Spec for identifiers, will be one of three values:
|
GuestCount@Count | 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 |
ResGuestRPH@RPH | 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 |
ServiceRPH@RPH | 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 |
Service@Quantity | 1 | The quantity of Services to bill the guest |
Service@ServiceRPH | 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 |
Total@AmountAfterTax | 1 | The total amount after tax of the Service |
Total@CurrencyCode | 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 |
ServiceDescription@Name | 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 |
ResGuest@ResGuestRPH | 1 | This value links the ResGuest to RoomStay(s) where possible. You can find the links in RoomStay/ResGuestRPHs |
ResGuestRPH@PrimaryIndicator | 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 |
Profile@ProfileType | 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 | Firstname of the Guest |
PersonName / Surname | 1 | Surname/Family Name of the Guest |
Customer / Telephone | 0+ | Contact number/s for Guest |
Telephone@PhoneNumber | 1 | Contains the Telephone Number |
Telephone@PhoneTechType | 0-1 | The type of phone technology, if not provided it should be assumed as a land-line
|
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 |
CustLoyalty@MembershipID | 1 | Contains the Loyal Program Member ID |
CustLoyalty@ProgramID | 1 | Contains the name of the Loyalty Program. Has an affect on Discounts - please see Discount/DiscountReason |
CustLoyalty@ExpiryDate | 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 |
PaymentCard@CardNumber | 1 | Credit Card Number |
PaymentCard@ExpireDate | 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 Deposit |
DepositPayments / GuaranteePayment | 1+ | Contains payment information |
GuaranteePayment / Description | 1 | Payment Description |
GuaranteePayment / AmountPercent | 1 | Contains Payment Amount and Currency |
AmountPercent@Amount | 1 | Contains the dollar amount in the format 1234.56 |
AmountPercent@CurrencyCode | 1 | CurrencyCode uses ISO 4217 codes to indicate the currency of the @Amount |
ResGlobalInfo / HotelReservationIDs | 1 | Contains the HotelReservationID element |
HotelreservationIDs / HotelReservationID | 1 | Contains reservation reference details for the remote system |
HotelReservationID@ResID_Type | 1 | Always "14" - The OTA code for "Reservation" |
HotelReservationID@ResID_Value | 1 | Reference number provided 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 |
Total@AmountAfterTax | 1 | The total amount after tax |
Total@CurrencyCode | 1 | CurrencyCode uses ISO 4217 codes to indicate the currency of the rate that is being booked |
Node | Count | Description |
---|---|---|
HotelReservation@ResStatus | 1 | For reservations this status is always 'Book' |
UniqueID@Type | 1 | Value is '14' |
UniqueID@ID | 1 | Identifier of the reservation according to the Remote System |
HotelReservationIDs@ResID_Type | 1 | Value is '14' |
HotelReservationIDs@ResID_Value | 1 | Reference number provided by Newbook |
Newbook will only generate this request when the 3rd Party Application is registered with our platform, and has submitted an ARI Settings Request. Please contact Newbook Support if you would like to explore this option.
Used as Reference:
The Availability Push OTA Messages are used for Newbook to provide availability information to a 3rd Party. The message assumes a push model.
Availability data can be delivered at a Category level (industry & Newbook default) or per Site (Room) in each Category.
The primary use case of Site-level Availability is for 3rd Party Applications to offer Sites which fit equipment (a vehicle) of a fixed size. This information can be queried from Newbook using the Instance Information request.
When Site-level Availability is enabled, each StatusApplicationControl element will gain an extra attribute for RoomID:
<StatusApplicationControl Start="2017-09-11" End="2017-09-12" InvTypeCode="studiovilla" RoomID="1" />
The parent AvailStatusMessage@BookingLimit will only ever be 1 or 0 indicating if the specific Site is available or occupied (unavailable).
Please contact Newbook Support if you need Site-level Availability delivered to your 3rd Party Application.
Node | Count | Description |
---|---|---|
AvailStatusMessages@HotelCode | 1 | The Instance Code as defined by Newbook |
AvailStatusMessage@BookingLimit | 1 | Number of Rooms available |
StatusApplicationControl@Start | 1 | The start of the date range for the current availability element, in the format YYYY-MM-DD |
StatusApplicationControl@End | 1 | The end of the date range for the current availability element, in the format YYYY-MM-DD |
StatusApplicationControl@InvTypeCode | 1 | The Room Code for the current availability element |
StatusApplicationControl@RatePlanCode | 1 | The Rate Code for the current availability element |
StatusApplicationControl@RoomID | 1 |
Only delivered when you have contacted Newbook support to activate Site-level Availability (this is optional) The RoomID identifies the specific Site (room) in the property database, which allows 3rd Party Applications to sell specific Sites. This is the same RoomID as returned in the Instance Information request. |
RestrictionStatus@Status | 1 | Controls the Stop Sell for the current availability element, can be either "Open" or "Close" |
LengthOfStay@MinMaxMessageType | 1 | "SetMinLOS" for minimum length of stay, or "SetMaxLOS" for maximum length of stay |
LengthOfStay@Time | 1 | The minimum nights required to stay for the current availability element (days) |
Node | Count | Description |
---|---|---|
Success | 1 | Element only exists when request was successful |
Newbook will only generate this request when the 3rd Party Application is registered with our platform, and has submitted an ARI Settings Request. Please contact Newbook Support if you would like to explore this option.
Used as Reference:
The Rate Plan Push OTA Messages are used for Newbook to provide Rate information to a 3rd Party. The message assumes a push model.
The response from the 3rd Party will verify whether the Rates were updated successfully.
If any problems are encountered including missing elements/attributes, or invalid room codes or rate codes, the 3rd Party should reject the whole message in its entirety.
Node | Count | Description |
---|---|---|
RateAmountMessages@HotelCode | 1 | The Instance Code as defined by Newbook |
StatusApplicationControl@InvTypeCode | 1 | The Room Code for the current rate element |
StatusApplicationControl@RatePlanCode | 1 | The Rate Code for the current rate element |
DestinationSystemCode | 1 | The Room Code for the current rate element |
Rate@Start | 1 | The start of the date range for the current rate element, in the format YYYY-MM-DD |
Rate@End | 1 | The end of the date range for the current rate element, in the format YYYY-MM-DD |
Rate@InvCode | 1 | The Room Code for the current rate element |
BaseByGuestAmt@AmountAfterTax | 1 | The total amount after tax |
BaseByGuestAmt@CurrencyCode | 1 | CurrencyCode uses ISO 4217 codes to indicate the currency of the rate that is being booked |
AdditionalGuestAmount@AgeQualifyingCode | 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 |
AdditionalGuestAmount@Amount | 1 | The amount per additional guest after tax |
Node | Count | Description |
---|---|---|
Success | 1 | Element exists only when request was successful |
Legend: | |
---|---|
1 | Only one element/attribute must be provided |
0 - 1 | Only one element/attribute can be optionally provided |
0+ | Zero or more elements can be provided |
1+ | One Element must be provided, multiple elements are supported |
@ | Denotes an Attribute |
Value | Description |
---|---|
3 | Business Rule |
10 | Required field missing |
12 | Processing Exception |
13 | Application Error |
Value | Description |
---|---|
4 | Additions per stay |
21 | Per person per night |
24 | Per item |
Value | Description |
---|---|
all | Applies to both stay cost items and other items |
stay | Applies to stay cost items |
others | Applies to other items |
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 |
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 |
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 |
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 |
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) |
Would you like to integrate with Newbook? You can access the Newbook REST and OTA APIs by registering for a developers account with us. Just a few simple steps and you will be on your way to developing with us!
Have you already registered for a developers account with Newbook? Click login below to use our login form.