Booking Vehicle PNR Element
SharedBookingReqRsp.xsd
Session > Booking Start > Booking Vehicle PNR Element
Introduced with Universal API 26.3, the BookingVehiclePnrElementReq is added to SharedBooking.wsdl in Schema v55. It supports vehicle modification while a session is active. U
Notes:
-
Galileo (1G) only. A request sent for an unsupported provider returns an error.
-
Schema v55 and greater. Reservations created with earlier schema versions can still be modified using the v55 transaction. For example, a reservation created in v52 can be modified using the v55 workflow. Only the session based modify transaction itself is restricted to v55.
Supported UpdateVehiclePnrElements
The request schema defines three element operations: AddVehiclePnrElement, UpdateVehiclePnrElement, and DeleteVehiclePnrElement. However, in SharedBooking v55.0, only the update operation is enabled.
Note: If AddVehiclePnrElement or DeleteVehiclePnrElement is sent, the request returns a hard error indicating that add and delete are not supported.
The update operation supports the vehicle modification elements already available through URModifyVehicle / VehicleUpdate, plus, for schema v55.0, the vehicle rate code. You can now update the vehicle rate code by supplying VehicleRate / RateCode. This is supported in BookingVehiclePnrElementReq but is not available in the existing URModifyVehicle transaction.
With this transaction the user can modify the following:
-
Guarantee
-
PaymentInformation
-
DeliveryAddress
-
CollectionAddress
-
BookingSource
-
ThirdPartyInformation
-
AssociatedRemark
Samples
See the samples associated with Booking Vehicle PNR Element.
- For example, see Sample: Update Driver's License.
- Additional samples can be reviewed for appropriate content.
- Download Java and Python .zip samples here.
Sample Request/Response
The following example stages a return date change on a Galileo (1G) reservation and receives a price change warning. Session credentials, identifiers, and traveler data shown here are illustrative.
Request: Update the vehicle return date
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ses="http://www.travelport.com/soa/common/security/SessionContext_v1"
xmlns:shar="http://www.travelport.com/schema/sharedBooking_v55_0"
xmlns:veh="http://www.travelport.com/schema/vehicle_v55_0"
xmlns:com="http://www.travelport.com/schema/common_v55_0">
<soapenv:Header>
<SessionContext:SessionContext
xmlns:SessionContext="http://www.travelport.com/soa/common/security/SessionContext_v1">
<SessionContext:SessProp nm="1G:ProviderCode" val="1G"/>
<SessionContext:SessProp nm="UAPI:URLocatorCode" val="35H2IJ"/>
<SessionContext:SessProp nm="UAPI:SessionKey"
val="a981d49b-8c83-4ced-be43-2a03d063f632"/>
<!-- Additional session properties as returned by StartBookingReq -->
</SessionContext:SessionContext>
</soapenv:Header>
<soapenv:Body>
<shar:BookingVehiclePnrElementReq
TraceId="37879f43-ba3a-4f53-9496-7b8032567086"
TargetBranch="TP_1G_SOA"
AuthorizedBy="uapitesting"
SessionKey="a981d49b-8c83-4ced-be43-2a03d063f632">
<com:BillingPointOfSaleInfo OriginApplication="uAPI"/>
<shar:UpdateVehiclePnrElement
BookingTravelerRef="2A5ezQhlRHeH8y/fwYDPhA=="
ReservationLocatorCode="01NB3W34">
<veh:VehicleReturnDateLocation
ReturnDateTime="2026-06-13T12:00:00.000+09:00"/>
</shar:UpdateVehiclePnrElement>
</shar:BookingVehiclePnrElementReq>
</soapenv:Body>
</soapenv:Envelope>
Response: Price change detected
The response carries the 3982 warning, the updated reservation under VehicleReservation (estimated total JPY59510.00), and the original pricing under VehicleRateChangedInfo (estimated total JPY45210.00). Some traveler and remark detail has been omitted for brevity.
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<sharedBooking:BookingVehiclePnrElementRsp
TraceId="37879f43-ba3a-4f53-9496-7b8032567086"
SessionKey="a981d49b-8c83-4ced-be43-2a03d063f632"
xmlns:sharedBooking="http://www.travelport.com/schema/sharedBooking_v55_0"
xmlns:common_v55_0="http://www.travelport.com/schema/common_v55_0"
xmlns:vehicle="http://www.travelport.com/schema/vehicle_v55_0"
xmlns:universal="http://www.travelport.com/schema/universal_v55_0">
<!-- 1. Price-change warning -->
<common_v55_0:ResponseMessage Code="3982" Type="Warning"
ProviderCode="1G">Price information has changed.</common_v55_0:ResponseMessage>
<!-- 2. Updated reservation (NEW pricing) under UniversalRecord -->
<universal:UniversalRecord LocatorCode="35H2IJ" Version="1" Status="Sessioned">
<vehicle:VehicleReservation SupplierCode="ZE" LocatorCode="01NB3W34" Status="HK">
<vehicle:VehicleDateLocation
PickupDateTime="2026-06-10T10:00:00.000+09:00" PickupLocation="HND"
ReturnDateTime="2026-06-13T12:00:00.000+09:00" ReturnLocation="HND"/>
<vehicle:Vehicle VendorCode="ZE" VehicleClass="Compact"
Category="Car" AcrissVehicleCode="CCAR">
<vehicle:VehicleRate RatePeriod="Daily" RateCode="INBD"
RequiredCharges="JPY11410.00" RateGuaranteed="true">
<vehicle:SupplierRate RateForPeriod="JPY13600.00"
EstimatedTotalAmount="JPY59510.00"/>
</vehicle:VehicleRate>
</vehicle:Vehicle>
</vehicle:VehicleReservation>
</universal:UniversalRecord>
<!-- 3. Original pricing preserved (ORIGINAL pricing) -->
<sharedBooking:VehicleRateChangedInfo ReasonCode="PriceChange">
<vehicle:Vehicle VendorCode="ZE" VehicleClass="Compact"
Category="Car" AcrissVehicleCode="CCAR">
<vehicle:VehicleRate RatePeriod="Daily" RateCode="INBD"
RequiredCharges="JPY8610.00" RateGuaranteed="true">
<vehicle:SupplierRate RateForPeriod="JPY13600.00"
EstimatedTotalAmount="JPY45210.00"/>
</vehicle:VehicleRate>
</vehicle:Vehicle>
</sharedBooking:VehicleRateChangedInfo>
</sharedBooking:BookingVehiclePnrElementRsp>
</SOAP:Body>
</SOAP:Envelope>
In the above sample: Extending the return date moved the estimated total from JPY45210.00 (original) to JPY59510.00 (modified). At this point you would surface the JPY14300.00 increase to the traveler, then send BookingEndReq with the SessionActivity element “End” or rollback “Ignore” to decline.
Schema
See the Booking Vehicle PNR Elemenent transactions:
Request
When performing a Booking Vehicle PNR Element request in a sessioned state, the element and attribute structures are similar to the request in a standard Vehicle Modify request, except that a session must have been established (Booking Start), and a session key must be sent in the header and body of the request.
Minimum Required Request Data
The session key must be includ ed in the header and the body of the request. Additionally, at least one of the nodes mentioned in the introduction must be included, along with the instruction, e.g., modify.
When adding or updating vehicle-related elements, only one category can be updated per request. For example, you can add multiple associated remarks in a single request, but you cannot add an associated remark and an SSR in a single request.
Supported in a single request (examples)
-
A driver license update
-
A loyalty program update
-
A vehicle rate code update
Not supported together in one request (examples)
-
Vehicle rate code and payment information
-
Loyalty and driver license
EXCEPTION: Fields that belong to the same logical structure may be submitted together. For example, PaymentInformation may include BillingNumber, BillingReferenceNumber, and VoucherType in a single request.
Optional Request Data
Optional data can be added to further refine the request. Most of the data is optional, as only one node can be sent per request.
Response
The Booking Vehicle PNR Element Response returns a universal record structure with all details for the current state of the session.
Price Transparency
A core enhancement of the v55.0 release is price transparency during modification. When you stage a change, Universal API compares the original reservation total with the modified reservation total returned by the provider system.
The comparison evaluates the estimated total amount only, taken from either VehicleRate / SupplierRate @EstimatedTotalAmount or VehicleRate / ApproximateRate @EstimatedTotalAmount, depending on the supplier response. It does not currently evaluate individual tax changes, rate breakdown changes, or rate code substitutions.
If the price does not change
-
A standard successful response is returned.
If the price changes
-
A warning is returned: Code="3982", Type="Warning", text “Price information has changed.”
-
The original pricing is preserved separately in the VehicleRateChangedInfo element, with ReasonCode="PriceChange"
-
The updated pricing appears in the reservation under VehicleReservation inside the Universal Record.
Compare the EstimatedTotalAmount in VehicleRateChangedInfo (original) against the value under VehicleReservation (modified) to present the price impact to the traveler, then decide whether to End or Ignore.
Commit vs Ignore
| Action | Transaction | Result |
| Commit | BookingEndReq/SessionActivity = “End” | Changes are saved to the PNR. The updated reservation is returned and the session is terminated. |
| Ignore | BookingEndReq/SessionActivity = “Ignore” | All session modifications are discarded. The original reservation is retained, the session is closed, and no modifications persist. |
An Ignore response does not return refreshed reservation content. To see the current (unchanged) reservation state, perform a UniversalRecordRetrieveReq after the Ignore.
Session timeout
Existing Session Booking timeout rules apply. If a session is inactive for 15 minutes, it closes automatically and the session key becomes invalid.
Subsequent requests against an expired session return errors such as a message indicating an invalid session key or that the session has expired.
Errors
Errors introduced by this capability
|
Condition |
Behavior |
| Add or delete attempted | Hard error indicating session booking does not support add and delete. |
| Unsupported provider | Error indicating the provider is not supported for BookingVehiclePnrElementReq. |
| Expired or invalid session | Error indicating an invalid session key or an expired session. |
Existing provider errors
Existing provider-level vehicle modification errors are unchanged and continue to surface through the current error handling, including price unavailable, supplier validation failures, and date validation issues.
Exceptions
The exceptions for Booking Vehicle PNR Elements are the same as can be found in Vehicle Modify.
See also the links specified in the Introduction.