Modifying Hotel Bookings
An existing Universal Record data can be modified to add, delete, or update booked hotel segment data or cancel hotel segments.
Request
UniversalRecordModifyReq/UniversalModifyCmd in the UniversalRecordModifyService is used to modify Universal Record data for traveler information, general UR information, and segment-related data.
Adding, deleting, or updating existing hotel segment data is performed through the following child elements:
-
HotelAdd, which adds a new hotel segment (PNR) to an existing Universal Record.
-
HotelUpdate, which updates an existing hotel segment in a Universal Record.
-
HotelDelete, which deletes hotel segment data.
If multiple modifications are made to a Universal Record, an instance of UniversalModifyCmd must be associated with each change request.
Adding Hotel Segments
The HotelAdd child of UniversalModifyCmd is used to add a hotel segment to an existing Universal Record.
The required ReservationLocatorCode attribute identifies the PNR to which the travel segment is added. This ReservationLocatorCode is assigned by the provider and is distinct from the identifier for the UniversalRecord that is issued by Universal API.
Note: Form of payment information for guaranteed Hotel segments is stored locally by Universal API, rather than by the host, and changes are also captured in the UR history.
Only one of each of the following is allowed per Hotel segment:
- CorporateDiscountID
- HotelSpecialRemark
If more than one of either exists for a segment, HotelAdd cannot be invoked, and a message is returned.
Updating Hotel Segments
The HotelUpdate child of UniversalModifyCmd is used to modify an existing hotel segment in a Universal Record.
As with HotelAdd, the ReservationLocatorCode attribute is required to identify the PNR to which the travel segment is added. This ReservationLocatorCode is assigned by the provider and is distinct from the identifier for the UniversalRecord that is issued by Universal API.
Note: Form of payment information for guaranteed Hotel segments is stored locally by Universal API, rather than by the host, and changes are also captured in the UR history.
Only one of each of the following is allowed per Hotel segment:
- CorporateDiscountID. If no corporate discount exists for the hotel segment, a warning message is returned and update is not possible.
- HotelSpecialRemark. If no special request exists for the hotel segment, a warning message is returned and update is not possible.
Optional information that can be modified includes:
GuestInformation, NumberOfChildren and/or ExtraChild can be used to modify Hotel Bookings that include extra children added to a room reservation, for which an additional fee may or may not be charged. ExtraChild functionality is available for Worldspan only.
Most functionality for NumberOfChildren and ExtraChild is the same for modify as for the initial booking, except ExtraChild data is supported In Universal Record Modify request, while it is supported only in the response for Hotel Booking.
Known Defect: Currently NumberOfChildren can only be modified for values of "1" to "5", instead of allowing the value to be reduced to "0".
Deleting Hotel Segment Data
The HotelDelete child of UniversalModifyCmd is used to delete existing data from a hotel segment.
Note: HotelDelete is not currently used to cancel a hotel booking from an existing Universal Record. HotelCancelReq is used to cancel booked hotel segments. Alternately, UniversalRecordCancelReq is used to cancel the entire Universal Record, including the hotel booking.
The following data is required to delete a hotel segment or segment data:
-
The required ReservationLocatorCode attribute identifies the PNR with the associated hotel segments.
-
The required Element attribute indicates the type of data to be deleted. Because the Element attribute is shared by several segment types, not all enumerations are used by hotel segments.
-
A Key from the PNR to uniquely identify the specific item to be deleted based on the unique key assigned to that item.
Note: A validation message is returned when a request attempts to delete information, such as HotelSpecialRequest or CorporateDiscountID, that does not exist.
Exceptions
-
Universal API does not have a discrete equivalent to an end transact (PNRBFEnd). When a created, modified or canceled booking is submitted, Universal API internally processes the end transact as part of the request. There is also no equivalent functionality to PNRBFIgnore.
- HotelCommission is not supported.
- GuestInformation/ExtraChild is not supported.
-
Some vendors return informational messages or validation messages as advisory text which does not follow a specific format and differs across vendors. In Universal API, this text is returned as a warning message in the response.
-
Most hotels booked through Worldspan require a Guarantee or Deposit to book the hotel, and in most cases, the Guarantee cannot be deleted.
-
Worldspan uses HotelAdd/Guarantee to update guarantee information. Old details are overwritten by new Guarantee details.
-
Worldspan uses HotelAdd/LoyaltyCard to update loyalty card information. Old details are overwritten by new Loyalty Card details. If no loyalty card exists and an update request is made, an error is returned.
-
The LoyaltyCard/SupplierType cannot be changed.