Languages
A language may be specified for any descriptive texts returned in real-time responses. Supported across NBC, Hotel, Transfer, and Excursion messaging.Example for German
- If
PrimaryLangIDis not specified, default is'EN'. - If
AltLangIDis not specified, default is'EN'. - If description for
PrimaryLangIDexists, it is used; otherwiseAltLangIDis used. - If neither exists, no description is returned.
- Hotel Main Description: CS, DA, DE, EN, ES, FI, FR, HU, IT, NB, NL, NO, PL, PT, SV, RU, TR, IS, CZ, ZH
- Room Descriptions: DE, DA, EN, ES, FI, FR, HU, IT, NL, NO, PL, PT, SV, RU, TR
- Facts: EN
Currencies
YourClientID can be configured to deliver prices in a single currency or in the original currency of the agreement with the provider.
Supported Currencies (ISO 4217):
EUR, USD, AED, BGN, BRL, CAD, CHF, CVE, DKK, DOP, EGP, GBP, HRK, MAD, MXN
Currency Settings
Each RequestorID can have one of two currency settings:
- Selling Currency: Prices are converted to a fixed currency (e.g., EUR).
- Contract Currency = Client Currency: No conversion; partner handles it.
OTA response (
OTA_HotelAvailRS) may contain mixed currencies.InSeries
For synchronous (less than 5 seconds) processing of multiple commits (e.g., hotel + transfer), includeTransactionStatusCode="InSeries" in the root element of every message. This property enables a synchronous processing of the message, so it is necessary to wait until the response before sending a related commit message.
Example
Master and Child References
This functionality improves booking management and packaging services at the booking level. Each booking includes:- One Master Reference (Super PNR)
- Multiple Child References (one per booking item)
- Purpose: Represents the entire booking and packages all items (e.g., hotel, transfer, excursion).
- Impact: Actions on the master reference affect all items (e.g., retrieve, cancel).
Identification
- Purpose: Represents individual booking items (e.g., a room or a transfer).
- Relation: Linked to items using
RPHvalues.
Identification
Request (OTA_HotelResRQ)
Response (OTA_HotelResRS)
Request (OTA_GroundBookRQ)
Response (OTA_GroundBookRS)
Request (OTA_ReadRQ)
Response (OTA_ResRetrieveRS)
- Duplicate child references for the same master reference will result in an error.
- If only a master reference is provided, child references will be auto-generated and returned in the response.
- RPH values must be unique across different message types within the same booking.
- Reference ID Length: Max 20 characters (not 64 as per OTA).
- Allowed Characters:
- Digits:
0–9 - Letters:
A–Z - Symbols:
~,-(non-HTTP/XML restricted)
- Digits:
Non-Refundable Rooms
Rooms with 100% cancellation penalty from the moment of booking. Identification:- Room code includes promo code
N - Description includes “Non-Refundable”
- DRV code includes
AT04-NRF
Example
Semi-non-refundable rooms may include grace periods and use
OffsetDropTime="AfterBooking".Vendor Messages
Important room-specific information in responses. This information shall be processed and/or shown to the end customer. These messages include concepts like non-refundable rooms, offer tags, incidents and erratas, complimentary extras, etc. Each type of message is identified using the InfoType property, an OTA INF (Information Type) code. InfoType Codes:- 2: Policy
- 3 and 5: Promotional tags, see subsection Offer Tags and Extras
- 12: Facilities
Examples
Example
Offer Tags and Extras
Returned in search and booking responses for promotional purposes as Vendor Messages.- InfoType 3: Offers
- InfoType 5: Extras
Example
The offer and extra codes that contain the attribute CodeContext=”DRV” use GlobalTypes from the Deutscher Reiseverband.
Message Compression
Mandatory for communication with webservices.- Based on HTTP gzip compression.
- Enable via HTTP header:
Accept-Encoding: gzip
Provider Identification
Provider info is included in all messages underTPA_extensions. This extra information can be used for mapping purposes and future multi provider products.
Example
Transaction Control
In order to identify all messages related to a specific transaction, all messages in the same transaction should use the sameEchoToken.
Example
Packaging
The interface supports two main package models:- Pre-Packaged
- Dynamic Package
Pre-Packaged Model
In this model, two or more services are offered together. Services are grouped in two ways: 1. Combination of Products- Example: Hotel + Rent-a-Car
- These combinations form a new room with a unique inventory code.
- Hotel codes include a 2-character extension:
AR= Accommodation + Rent-a-CarAG= Accommodation + Golf
- Car packages are notified as an additional inventory code at room level.
- Car codes follow the ACRISS standard and are listed in Appendix H.
- Car codes per hotel can be retrieved from the services section of the
OTA_HotelDescriptiveInfomessage using theSUMMARYtemplate. - Prices and availability for room + car packages are available:
- In notification messages (Notification Model)
- In search results (Transactional Model)
- Schlagersterne Festival in Mallorca
- Island Hopping in Greece
- Fly & Drive in the Algarve
- Blue Cruises in Turkey
- Nile Cruises in Egypt
- Offered as a different room code containing a compulsory extra (e.g., spa treatments).
- Commonly used for hotel-provided offers.
- Disadvantages:
- Poor visibility of room descriptions in the German market.
- Dependency on room descriptions in search results in other markets.
Packages with optional services (e.g., ski pass, ski lessons, ski equipment rental) are often included as a RatePlan, allowing dynamic pricing and allotment from the normal hotel contract.
Dynamic Package Model
In this model, any service offered within the interface (hotel, transfer, rent-a-car, excursion) can be booked into a single booking, creating a package.- Uses master and child references to group services.
- Allows services to be added or cancelled individually.
Price Breakdown
AddInstance="PriceBreakdown" to RequestorID to receive detailed pricing.
Example
TPA_Extensions > RateDetails.
Includes:
- Per pax/day breakdown
- Codes like AA, AI, AP, EX, EBO2
Payment Identification
The Payment ID is added to the booking request during the booking commit post-process by includingBillingInstructionCode structures. These structures support various payment scenarios:
Single Payment for All Passengers
A single payment covers the entire booking and all its items.
Example
BillingCode is used, but each entry is specific to one passenger.
Example
Example
- Each passenger (
ResGuestRPH) is linked to specific booking items. - Payments are directly related to the items assigned to each passenger.
- Partners must use master/child reference logic to ensure correct linkage.
- Contact the integrations department before implementing this concept.
Date/Time Formats
In various places we specify deadlines for specific concepts. For example the absolute deadline in cancellation policies or early booking discount prepayment. All these concepts use the local system time of our servers hosted on premises in ZRH and in our ZRH based AWS cloud. All Date/Time fields are in CET.Example

