Universal Records and PNRs

Universal API creates and obtains reservation data from multiple providers and suppliers. When a booking is made in Universal API, a Passenger Name Record (PNR), also known as a Booking File, and a Universal Record (UR) are created.

Passenger Name Records (PNR)

Also known as Booking Files, a PNR is a unique identifier from a specific provider that serves as the record for a specific trip. PNRs contain a record locator for the PNR, travel provider information, and segment-specific traveler information, as well as selected or reserved itinerary information.

In Universal API, PNRs have some distinct requirements that are not necessarily found in equivalent provider and supplier booking files. For Universal API, each PNR can contain any combination of the following types of travel segments:

More than one hotel or vehicle segment cannot be booked in a single Universal API request. If more than one hotel or vehicle segment is needed, the customer can choose to:

Universal Records (UR)

Universal API services provide access to data from multiple data sources (providers). Universal API generates a booking file record called the Universal Record Locator (UR) (UniversalRecordLocatorCode).

The UR identifies a traveler's entire booking file, including general traveler information and travel provider information, as well as any PNR data from air, car, hotel, rail, or other travel segments available through Universal API. This booking record is specific to the Universal API, and can include PNRs from one or more providers that supplied the data for the bookings.

Individual travel segments may also contain additional record locators from providers and confirmation numbers from suppliers (air, vehicle, and hotel vendors). See Content Providers and Definitions for information about the types of booking records and data sources used in Universal API.

Example of a Universal Record with Multiple PNRs

A Universal Record can contain data as simple as one PNR with one travel segment to multiple PNRs that contain data for both travel segments and non-segment information.

The following example shows how a Universal Record and associated PNRs are managed in Universal API. This examples shows one possible end-to-end flow for creating and adding data to a trip; in most cases, there are multiple ways to add or modify Universal Record or PNR data.

Transaction 1

The client applications books a round-trip flight between Montreal and Vancouver. The outbound flight is booked on a Carrier A through the Galileo GDS. The inbound flight is booked on Carrier B through ACH. The air booking is made through the AirCreateReservationReq call, which processes an aggregated 1G/ACH request.

In the response, the Universal Record 123456 is returned. This UR is automatically generated and includes data from two PNRs that were generated by the respective host systems:

Transaction 2

After searching for and selecting a hotel, the client then adds a request for a hotel booking through Galileo using UniversalRecordModifyReq/UniversalModifyCmd/HotelAdd. By specifying Universal Record 123456 and Galileo PNR ABCDEF in the request, the hotel reservation is added to the existing Galileo PNR in Universal Record 123456.

The response returns the Universal Record with PNR ABCDEF modified to include the hotel booking. 

Transaction 3

After searching for and selecting a rental car, the client then adds a request for a vehicle booking through Galileo using VehicleCreateReservationReq. By design, this transaction creates a new PNR; VehicleCreateReservationReq cannot be used to modify an existing PNR.

By specifying the Universal Record 123456 in the request, the vehicle reservation is added to the existing Universal Record as a second Galileo PNR GHIJKL.

Note: The vehicle booking could alternately be added to the initial Galileo PNR ABCDEF using UniversalRecordModifyReq/UniversalModifyCmd/VehicleAdd.

The response returns the Universal Record with the new Galileo PNR GHIJKL added.

Transaction 4

PNRs can also be used to store passive data that was booked by a provider or supplier that is not supported by Universal API. In the following example, an SDK segment is used to add data for a local flight booking in Vancouver with Air Supplier D.

Because this carrier is not supported through a Universal API provider:

Note: If a PNR was created outside of Universal API by a provider that is supported by Universal API, that PNR can be imported into Universal API.

The response returns the Universal Record with the new SDK PNR MNOPQR added.

Transaction 5

Passive segments can also be used to include manually entered auxiliary data that is not directly related to a travel segment. For example, a PNR can be created to store data that is required for back-office use by the travel provider.

In this example, PassiveCreateReservationReq is used to create a passive segment that contains accounting remarks, invoice information, or other data that can be sent to a travel provider's third-party database or application.

The response returns the Universal Record with the new Passive PNR STUVWX added.