Skip to main content

CreatePassengerNameRecordRQ

Create Passenger Name Record - REST

Create Passenger Name Record - SOAP

The Create Passenger Name Record API allows client applications to combine the PassengerDetailsRQ and EnhancedAirBookRQ API requests in a single call.

Create a full reservation (Passenger Name Record) with the following features:

  • Add agency/customer details
  • Book a flight, hotel, or car reservation
  • Price a flight, hotel, or car reservation
  • Add any special requests (remarks, SSRs, or seats)
  • Change target cities (PCCs) before the operation is performed

Workflow

Create Passenger Name Record

Create Passenger Name Record performs the following steps to complete a reservation:

  1. Adds Profile, Passenger, and Agency details – 1st call to PassengerDetailsRQ
  2. Performs air booking and pricing – EnhancedAirBookRQ
  3. Performs hotel booking - UpdateReservationRQ
  4. Adds miscelleaneous segment information, special service details (SSRs, Remarks, etc), and finalizes the transaction – 2nd call to PassengerDetailsRQ

haltOnAirPriceError

This flag defaults to false. The haltOnAirPriceError attribute controls whether the processing of the orchestrated API is stopped if a pricing error is encountered.

Automated Handling of Hosted vs. Non-Hosted Indicators for SSRs/OSIs

Due Sabre's spec system, it's necessary to append information if SSR/OSI information should be passed to a hosted or non-hosted carrier.

This is controlled within CreatePassengerNameRecordRQ by the following attributes:

Include
  • /CreatePassengerNameRecordRQ/SpecialReqDetails/SpecialService/SpecialServiceInfo/AdvancePassenger/VendorPrefs/Airline/@Hosted

  • /CreatePassengerNameRecordRQ/SpecialReqDetails/SpecialService/SpecialServiceInfo/SecureFlight/VendorPrefs/Airline/@Hosted

  • /CreatePassengerNameRecordRQ/SpecialReqDetails/SpecialService/SpecialServiceInfo/Service/VendorPrefs/Airline/@Hosted

Do Not Include

As of version 2.0.0, Create Passenger Name Record handles the flags mentioned above automatically. It's not necessary to include the below elements/attributes within the payload:

  • /CreatePassengerNameRecordRQ/SpecialReqDetails/SpecialServiceRQ/SpecialServiceInfo/AdvancePassenger/VendorPrefs

  • /CreatePassengerNameRecordRQ/SpecialReqDetails/SpecialServiceRQ/SpecialServiceInfo/SecureFlight/VendorPrefs

  • /CreatePassengerNameRecordRQ/SpecialReqDetails/SpecialServiceRQ/SpecialServiceInfo/Service/VendorPrefs/Airline/@Hosted

Post-Booking Validation of Airline Record Locators and/or HK Status for Flight Segments

As of version 2.1.0, the API validates airline record locators returned after end transaction and/or checking if the HK status for the flight segment(s) was modified by a carrier after the end transaction step:

/CreatePassengerNameRecordRQ/PostProcessing/PostBookingHKValidation

This element requires the waitinterval and numAttempts attributes to be set, which control the number of times the API will attempt to redisplay the reservation after a PNR locator has been generated.

During each redisplay, the API will check if the existing HK status for all flight segments has changed. Once all redisplay attempts have been completed and at least one flight segment modified its HK status, the API will return a warning stating:

Flight segment status changed for .../TravelItineraryRead/TravelItinerary/ItineraryInfo/ReservationItems/Item[n]/FlightSegment/@FlightNumber="1234" to "UC".

/CreatePassengerNameRecordRQ/PostProcessing/WaitForAirlineRecLoc

This element requires the waitinterval and numAttempts attributes to be set, which control the number of times the API will attempt to redisplay the reservation after a PNR locator has been generated.

During each redisplay, the API will check if the airline record locator was added by a carrier. Once all redisplay attempts have been completed and at least one flight segment does not contain a full airline record locator, the API will return a warning stating:

Missing airline record locators for .../TravelItineraryRead/TravelItinerary/ItineraryInfo/ReservationItems/Item/FlightSegment/@FlightNumber="1234".

Booking GDS or Aggregator Hotel Content

As of version 2.2.0, the API has the ability to create reservations for GDS and aggregator hotel chains. This solution integrates multiple sources of content, including:

  • Sabre Global Distribution System (GDS)

And non-GDS sources:

  • Redistributors
  • Agency-sourced hotel content and aggregators

Hotel bookings are initiated with …/CreatePassengerNameRecordRQ/HotelBook. You may combine air and hotel booking within a single transaction; the /CreatePassengerNameRecordRQ/@haltOnHotelBookError attribute controls whether the transaction should be terminated upon encountering a hotel booking error.

Prior to booking, it is mandatory to obtain a booking key by means of calling the Hotel Price Check API:

Hotel Price Check - SOAP

HotelPrice Check - REST

The Create Passenger Name API will automatically decode the booking key, obtain the hotel rate, and determine its source (GDS or Aggregator). Finally, the API will check the value of the attribute @bookGDSviaCSL.

  • If the attribute is set to false, the GDS rate will be booked as legacy content.

  • If the attribute is set to true, the GDS rate will be booked as a Content Service for Lodging segment.

To successfully create a Passenger Name Record with a hotel segment, it's mandatory to provide the agency address and traveler names with:

.../TravelItineraryAddInfo/AgencyInfo/Address

.../TravelItineraryAddInfo/CustomerInfo/PersonName

Required Elements
Element or Attribute Description
.../TravelItineraryAddInfo/AgencyInfo/Address Required to finalize PNR creation.
.../TravelItineraryAddInfo/CustomerInfo/PersonName Required to finalize PNR creation. Does not have to be the hotel guest name.
…/HotelBook/BookingInfo/BookingKey Booking key obtained from Hotel Price Check REST/SOAP API.
…/HotelBook/Rooms Used to pass details for the booked rooms.
…/HotelBook/Rooms/Room/Guests Used to pass individual guest details. At least one guest must be a lead guest and an adult. This is indicated by setting …/HotelBook/Rooms/Room/Guests/Guest/@Type="10" and …/HotelBook/Rooms/Room/Guests/Guest/@LeadGuest="true"
…/HotelBook/PaymentInformation Mandatory element used to pass payment information for hotel booking. Choose one form of payment and provide its details.

Booking Hotel Rooms With Virtual Cards

Starting with version 2.4.0, Create Passenger Name Record provides the capability to book CSL content by means of a Virtual Card booking method.

To successfully book a room using a Virtual Card, first pass the payment details at:

/CreatePassengerNameRecordRQ/HotelBook/PaymentInformation/FormOfPayment/VirtualCard

The required values are listed below :

Element/attribute Description
/PaymentInformation/@Type The payment method. This value should be set to GUARANTEE.
CustomerAccountCode The Virtual Card number.
Agency/@Email Agency contact's e-mail address.
/HotelInfo/@Fax Hotel fax number.
/HotelInfo/@HotelName Hotel name. Pass the value from: HotelPriceCheckRS/PriceCheckInfo/HotelInfo/@HotelName
/RoomDescription/@Name Room name. Pass the value from: HotelPriceCheckRS/PriceCheckInfo/HotelRateInfo/Rooms/Room/RoomDescription/@Name
/RoomDescription/Text Room text description. Pass the value from: HotelPriceCheckRS/PriceCheckInfo/HotelRateInfo/Rooms/Room/RoomDescription/Text
/RateInfo/@AmountAfterTax Booking total amount. Pass the value from: HotelPriceCheckRS/PriceCheckInfo/HotelRateInfo/RateInfos/RateInfo/@AmountAfterTax
/RateInfo/@CurrencyCode Currency code. Pass the value from: HotelPriceCheckRS/PriceCheckInfo/HotelRateInfo/RateInfos/RateInfo/@CurrencyCode
/SpecialInstructions/SpecialInstruction Use this to inform the hotel of any extra charges that will be covered by the Virtual Card. If the card is used to cover the room only, pass the Room Only value.

Booking Vehicles

As of version 2.3.0, the CreatePassengerNameRecord API allows reserving rental vehicles. You may create reservations for vehicles only or combine air, hotel, and car content within a single API call.

Prior to booking, vehicle availability may be retreived via the GetVehAvailRQ API:

Car Shopping - Get Vehicle Availability SOAP API

Car shopping -Get Vehicle Availability REST API

When you reserve a vehicle, you can specify:

  • Extended location code
  • Arrival flight information
  • Different return location
  • Name number
  • Customer address
  • Billing number, a billing reference
  • A collection site ID, name, phone number, customer collection address
  • A delivery site ID, name, phone number, customer delivery address The booking agent, booking source
  • A rate code, corporate ID, frequent flyer number
  • A drop off charge, an ID number, promotion code, rate override, tour code, credit card guarantee, and other parameters

Booking a Single Vehicle

The request should contain:

  • Pick up date and time: …/VehicleBook/VehRentalCore/@PickUpDate and @PickUpTime
  • Return date and time: …/VehicleBook/VehRentalCore/@ReturnDate and @ReturnTime
  • Number of vehicles to be booked: …/VehicleBook/VehRentalCore/@Quantity
  • Vehicle pick up location (such as airport code): …/VehicleBook/VehRentalCore/PickUpLocation/@LocationCode
  • Vehicle vendor code: …/VehicleBook/VendorPrefs/VendorPref/@Code
  • Vehicle type: …/VehicleBook/VehPrefs/VehPref/VehType

Note: Refer to the vehicle type code matrix at Car Shopping - Get Vehicle Availability SOAP API for a list of values.

  • Payment information: …/VehicleBook/RentalPaymentPrefs/GuaranteePrepaid/@Type="GUARANTEE" …/VehicleBook/RentalPaymentPrefs/GuaranteePrepaid/@Type="DEPOSIT"
  • You may also book special equipment (such as booster seats, GPS, etc.) by means of passing: …/VehicleBook/CarExtrasPrefs/CarExtrasPref[n]/@Type

Note: Refer to the vehicle car extra code matrix at Car Shopping - Get Vehicle Availability SOAP API for a list of values.

haltOnVehicleBookError Flag

This flag defaults to false. The haltOnVehicleBookError attribute controls whether the processing of the orchestrated service is stopped if a vehicle booking error is encountered.