Commit Workbench API Reference
POST |
book/reservation/reservations/{workbenchID} For {workbenchID} send the workbench identifier returned in ReservationResponse/Identifer/value in the workbench create response. Base path: Pre-production https://api.pp.travelport.com/11/air/ Production https://api.travelport.com/11/air/ |
Related Content: Booking Guide, Booking Workflow, Ticketing Guide, Ticketing Workflow
The Commit Workbench request ends a workbench session and commits all changes and requests in that session. Depending on the requests sent in the workbench session, the workbench commit might create a reservation, issue a ticket or EMD, modify reservation data, or exchange a ticket. Note that some workbench commit options are supported only in specific flows, such as the initial booking flow, a ticketing commit, or an exchange commit, as specified below for that option.
In the initial booking workflow, if any pricing modifier sent in the Add Offer full payload or reference payload request does not have any fares associated with it, the commit will fail and return the error message No Fare Found. Pricing happens at the commit, not the Add Offer step.
NDC carrier British Airways (BA) does not guarantee the price of a held booking. When ticketing a held booking, if the price has changed, the JSON APIs return the error message "ERROR AT ISSUANCE TIME: TST EXPIRED - OVERRIDE OR DELETE AND REPRICE Code = \"376\". In this case, you must use the Reprice and Resell APIs (see the NDC Modify, Exchange and Cancel Guide) and send payment to complete ticketing.
Carrier Code Delay at Booking
In some instances, the carrier requires additional time to return the carrier locator code, which can be an issue for agencies that require this code at the time of booking. So, if the carrier locator code is not immediately available, AirReservation makes one attempt to retrieve the reservation from the carrier. If the carrier locator code cannot be retrieved, AirReservation returns the warning: Carrier locator code not returned by carrier/provider. Please try to retrieve later and agencies must retrieve the reservation later. This can happen in any booking scenario upon commit but is most common when the booking contains an ancillary such as a wheelchair.
Request
Also see Authorization and Common Headers.
Query Parameters
Parameter | Description | Required/Optional |
---|---|---|
autoDeleteDate |
You can use the autoDeleteDate parameter as follows to create, update, or delete retention segments, and to create a shell booking in certain cases of booking failures. Create, Update, Delete Retention SegmentsBy default, reservation details are stored for one month after all travel on the itinerary is completed. This means you can continue to retrieve the reservation for one month after travel, at which time the reservation is purged and no longer available. You can extend this time by setting a purge date that is up to 331 days from the date the reservation was created: At the end of the initial booking workbench session, commit and send autoDeleteDate with a date in YYYY-MM-DD format, as in ?autoDeleteDate=2024-08-12. Adding a purge date creates a retention segment on the host reservation. The autoDeleteDate value is returned in the Reservation Retrieve, Workbench Commit, and Create Post-Commit Workbench responses. To update or delete the autoDeleteDate on an existing booking, at the end of a post-commit workbench session, send autoDeleteDate with one of the following:
Create Reservation Shell (Shell Booking)Sending autoDeleteDate with any value at the end of the initial booking workflow causes AirReservation to create a reservation shell if the booking fails either because the offer cannot be added or the fare cannot be quoted. This reservation shell contains traveler details and allows the booking to be completed later. See Booking Guide for Failed/Shell Bookings. |
Optional |
Sending the optional Issuance query parameter with a value of BACKOFFICE sends a message to update any back office accounting systems with ticket information at the time of ticketing. You can send the message before the ticket is issued by sending a commit without payment, or commit with payment and the Issuance parameter to issue the ticket and send the message. The response includes an interface control number. |
Optional |
|
payLaterInd |
For use only in Exchange Ticketing.
|
Optional, only for use in exchanges |
DocumentValue |
For use only in Exchange Ticketing.
|
Optional, only for use in exchanges |
Request Body
No message payload is required for a workbench commit.
The following optional payloads below are supported for optional actions at commit:
Accept Involuntary Schedule Change
The indicator scheduleChangeAcceptedInd allows you to update the reservation with schedule changes when an airline has modified a flight schedule (called an involuntary schedule change). To check whether a flight schedule has been modified, send a standard Reservation Retrieve request:
-
For GDS, a value in OfferStatus/StatusAir/code of either TK or UN indicates the flight has schedule change information.
-
For NDC, the response returns NDC CONTENT HAS CHANGED in ReservationComment when a schedule change has occurred.
To accept the schedule change, send the workbench commit request payload per below, with scheduleChangeAcceptedInd set to true. You do not need to create a workbench session first.
Object |
Description |
Required/Optional |
---|---|---|
ReservationQueryCommitReservation |
Top-level object. |
Required |
scheduleChangeAcceptedInd |
Indicator to indicate acceptance of a flight schedule change. Send with a value of true. |
Required |
Specify a Queue
Optionally, you can send a message payload to specify a queue for this reservation: Each Travelport PCC has a set of numbered queues. Some of these queues have predetermined functions and others can be customized for internal use. The queue system allows you to sign into and out of queues, place booking files on a queue, and perform various maintenance functions on the booking files currently on queue.
Object |
Description |
Required/Optional |
---|---|---|
ReservationQueryCommitReservation |
Top-level object. |
Required |
Notification |
Top-level object. |
Required |
QueueNumber |
Queue details per below. |
Required |
|
Queue category. |
Optional |
|
Send only if overriding the default PCC. |
Optional |
|
Send the queue number. |
Required |
Date |
Send date in YYYY-MM-DD format. |
Optional |
Update or Delete Ticketing Time Limit Date
Send the following payload to add or delete the ticketing time limit for a booking. This is the last day to ticket the booking before the offer expires.
Object |
Description |
Required/Optional |
---|---|---|
ReservationQueryCommitReservation |
Top-level object. |
Required |
Notification |
Top-level object. |
Required |
Date |
Send one of the following in YYYY-MM-DD format:
|
Required |
Add ReceivedFrom
Send the following payload to send a ReceivedFrom object. This allows online travel agencies (OTAs) and agents using the Deem platform to send a receive field at reservation creation or update.
Object |
Description |
Required/Optional |
---|---|---|
ReservationQueryCommitReservation |
Top-level object. |
Required |
ReceivedFrom |
String. Value to note received from. |
Required |
Response
The booking workbench commit response is similar but not identical to the Reservation Retrieve response, returning data added during the booking workflow. See the Reservation Retrieve API Reference for full details.
After the workbench commit, if the flight time or fare has changed since the offer was added, a notification message per the examples below is returned:
- Price increase example: "The Total Price has been increased from 17272.68 USD to 18272.0 USD"
- Price decrease example: "The Total Price has been decreased from 665.7 USD to 620.8 USD"
- Flight time change example: "The Departure Date and/or Time has changed from 2023-01-19/16:35:00 to 2023-01-23/18:35:00 for KL 1243 from AMS to CDG"
Object |
Description |
---|---|
ReservationResponse |
Top level object for response. Includes Reservation object. For a booking workbench commit, ReservationResponse is the same as returned in a Reservation Retrieve. Booking confirmation details are returned in an instance of Receipt. The reservation Locator code is returned in Receipt/Confirmation/Source/value. See Reservation Retrieve API Reference for a listing of all objects in ReservationResponse.
|
AvailabilitySourceCode |
AirReservation 22.11.18 and later. GDS only; not supported for NDC.
Returned in Product/FlightSegment/Flight in the book commit response but not the Reservation Retrieve response. Can be used to assist in troubleshooting. Possible values and definitions are:
|
Example Request
No message payload required for workbench commit. The following optional payloads are supported.
To accept a schedule change on a reservation, send the workbench commit request payload per below, with scheduleChangeAcceptedInd set to true. You do not need to create a workbench session first. (To check whether a flight schedule has been modified, send a standard Reservation Retrieve request: In the response, a value in OfferStatus/StatusAir/code of either TK or UN indicates the flight has schedule change information. )
{
"ReservationQueryCommitReservation": {
"@type": "ReservationQueryCommitReservation",
"scheduleChangeAcceptedInd": true
}
}
Send the following optional payload to add the reservation to an agency queue.
{
"ReservationQueryCommitReservation": {
"@type": "ReservationQueryCommitReservation",
"Notification": [
{
"@type": "Notification",
"QueueNumber": [
{
"category": "DM",
"overridePCC": "39RA",
"value": 5
}
],
"Date": "2023-10-16"
}
]
}
}
Send the following optional payload to send a ReceivedFrom object. This allows online travel agencies (OTAs) and agents using the Deem platform to send a receive field at reservation creation or update. This object is not returned in the reservation retrieve.
{
"ReservationQueryCommitReservation": {
"ReceivedFrom": "BHarper"
}
}
Example Response
The following examples show workbench commit responses for both GDS and NDC at the end of the initial booking workflows.
{
ReservationResponse": {
"@type": "ReservationResponse",
"Reservation": {
"@type": "Reservation",
"Offer": [
{
"@type": "Offer",
"id": "offer_1",
"Identifier": {
"authority": "Travelport",
"value": "0449d1a8-bcfe-4f9a-bc91-3f8cf26f703b"
},
"Price": {
"@type": "PriceDetail",
"Base": 510.7,
"CurrencyCode": {
"value": "USD"
},
"id": "PriceDetail_1",
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"Amount": {
"@type": "Amount",
"Base": 510.7,
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Taxes": {
"@type": "TaxesDetail",
"Tax": [
{
"currencyCode": "USD",
"taxCode": "AY",
"value": 5.6
},
{
"currencyCode": "USD",
"taxCode": "US",
"value": 38.3
},
{
"currencyCode": "USD",
"taxCode": "XF",
"value": 4.5
},
{
"currencyCode": "USD",
"taxCode": "ZP",
"value": 9.6
}
],
"TotalTaxes": 58
},
"Total": 568.7
},
"quantity": 1,
"requestedPassengerType": "ADT"
}
],
"TotalFees": 0,
"TotalPrice": 568.7,
"TotalTaxes": 58
},
"Product": [
{
"@type": "ProductAir",
"FlightSegment": [
{
"@type": "FlightSegment",
"Flight": {
"@type": "FlightDetail",
"Arrival": {
"@type": "Arrival",
"date": "2023-12-06",
"location": "ONT",
"time": "22:24:00"
},
"AvailabilitySourceCode": "Q",
"carrier": "UA",
"Departure": {
"@type": "Departure",
"date": "2023-12-06",
"location": "DEN",
"time": "17:35:00"
},
"duration": "PT4H10M",
"equipment": "789",
"id": "Flight_01",
"IntermediateStop": [
{
"arrivalDate": "2023-12-06",
"arrivalTerminal": "2",
"arrivalTime": "19:21:00",
"departureDate": "2023-12-06",
"departurelTime": "21:00:00",
"departureTerminal": "3",
"duration": "PT1H39M",
"equipment": "319",
"value": "SFO"
}
],
"number": "1485"
},
"id": "FlightSegment_01",
"sequence": 1
}
],
"id": "product_1",
"PassengerFlight": [
{
"@type": "PassengerFlight",
"FlightProduct": [
{
"@type": "FlightProduct",
"cabin": "First",
"classOfService": "D",
"segmentSequence": [
1
]
}
],
"passengerQuantity": 1,
"passengerTypeCode": "ADT"
}
]
}
],
"TermsAndConditionsFull": [
{
"@type": "TermsAndConditionsFullAir",
"Identifier": {
"authority": "Travelport",
"value": "9515891c-18e4-4c3b-97ac-ad4d1a32e048"
}
},
{
"@type": "TermsAndConditionsFullAir",
"ExpiryDate": "2023-11-07T23:59:00Z",
"PaymentTimeLimit": "2023-11-07T23:59:00Z"
}
]
}
],
"PrimaryContact": [
{
"@type": "PrimaryContact",
"Email": {
"value": "TESTEMAIL@TEST.COM"
},
"id": "primaryContact_1",
"TravelerIdentifier": {
"Identifier": {
"authority": "Travelport",
"value": "f42e52ba-c010-4ea1-a38a-d64a101266f7"
}
}
},
{
"@type": "PrimaryContact",
"id": "primaryContact_2",
"Telephone": {
"@type": "Telephone",
"phoneNumber": "581478",
"role": "Mobile"
},
"TravelerIdentifier": {
"Identifier": {
"authority": "Travelport",
"value": "f42e52ba-c010-4ea1-a38a-d64a101266f7"
}
}
}
],
"Receipt": [
{
"@type": "ReceiptConfirmation",
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"source": "1G",
"value": "631QSZ"
},
"OfferStatus": {
"@type": "OfferStatusAir",
"StatusAir": [
{
"code": "HK",
"flightRefs": [
"Flight_01"
],
"value": "Confirmed"
}
]
}
},
"Identifier": {
"authority": "Travelport",
"value": "72a2e038-982f-4c2c-a012-9f377715d7a8"
}
},
{
"@type": "ReceiptConfirmation",
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"source": "UA",
"value": "N1EP2S"
}
},
"Identifier": {
"authority": "Travelport",
"value": "52b3581f-cd96-4ad4-9cf4-0208b3016f07"
}
}
],
"ReservationDisplaySequence": {
"@type": "ReservationDisplaySequence",
"DisplaySequence": [
{
"@type": "DisplaySequence",
"displaySequence": 1,
"OfferRef": "offer_1",
"ProductRef": "product_1",
"Sequence": 1
}
]
},
"Traveler": [
{
"@type": "Traveler",
"birthDate": "1986-11-11",
"Email": [
{
"value": "TravelerOne@gmail.com"
}
],
"gender": "Male",
"id": "travelerRefId_1",
"Identifier": {
"authority": "Travelport",
"value": "f42e52ba-c010-4ea1-a38a-d64a101266f7"
},
"passengerTypeCode": "ADT",
"PersonName": {
"@type": "PersonName",
"Given": "TESTFIRST",
"Surname": "TESTLAST"
},
"Telephone": [
{
"@type": "TelephoneDetail",
"cityCode": "ORD",
"countryAccessCode": "1",
"id": "telephone_1",
"phoneNumber": "212456121",
"role": "Home"
}
],
"TravelDocument": [
{
"@type": "TravelDocumentDetail",
"birthDate": "1986-11-11",
"docNumber": "A123123",
"docType": "Passport",
"expireDate": "2033-11-06",
"Gender": "Male",
"issueCountry": "US",
"PersonName": {
"@type": "PersonName",
"Given": "TESTFIRST",
"Surname": "TESTLAST"
}
}
]
}
]
}
}
}
{
"ReservationResponse": {
"@type": "ReservationResponse",
"Reservation": {
"@type": "Reservation",
"Identifier": {
"authority": "Travelport",
"value": "f4b1eae4-5d3a-478c-860c-9d2aa19abe50"
},
"Offer": [
{
"@type": "Offer",
"id": "offer_1",
"Identifier": {
"authority": "AA",
"value": "34eedbd0-c9cf-45e1-954f-e3154c4883ad"
},
"Product": [
{
"@type": "ProductAir",
"totalDuration": "PT7H10M",
"id": "product_1",
"Identifier": {
"authority": "AA",
"value": "7c2bc01c-734c-4546-b5c6-61acb62e0d18"
},
"FlightSegment": [
{
"@type": "FlightSegment",
"sequence": 1,
"connectionDuration": "PT4H2M",
"Flight": {
"@type": "Flight",
"duration": "PT1H23M",
"carrier": "AA",
"number": "939",
"equipment": "32Q",
"id": "seg_1",
"Identifier": {
"authority": "AA",
"value": "030062c6-be75-475d-81a2-5db59e5df868"
},
"Departure": {
"@type": "DepartureDetail",
"terminal": "0",
"location": "LAX",
"date": "2023-02-24",
"time": "16:20:00"
},
"Arrival": {
"@type": "ArrivalDetail",
"terminal": "4",
"location": "PHX",
"date": "2023-02-24",
"time": "18:43:00"
}
}
},
{
"@type": "FlightSegment",
"sequence": 2,
"Flight": {
"@type": "Flight",
"duration": "PT1H45M",
"carrier": "AA",
"number": "593",
"equipment": "738",
"id": "seg_2",
"Identifier": {
"authority": "AA",
"value": "c890a2d2-3d9f-466a-aa06-226108d17a8d"
},
"Departure": {
"@type": "DepartureDetail",
"terminal": "4",
"location": "PHX",
"date": "2023-02-24",
"time": "22:45:00"
},
"Arrival": {
"@type": "ArrivalDetail",
"location": "DEN",
"date": "2023-02-25",
"time": "00:30:00"
}
}
}
],
"PassengerFlight": [
{
"@type": "PassengerFlight",
"passengerQuantity": 1,
"passengerTypeCode": "ADT",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1
],
"classOfService": "G",
"cabin": "Economy",
"fareBasisCode": "GUAIZRK3",
"fareType": "AirlinePrivateFare",
"Brand": {
"@type": "Brand",
"name": "Main Select"
}
},
{
"@type": "FlightProduct",
"segmentSequence": [
2
],
"classOfService": "G",
"cabin": "Economy",
"fareBasisCode": "GUAIZRK3",
"fareType": "AirlinePrivateFare",
"Brand": {
"@type": "Brand",
"name": "Main Select"
}
}
]
}
]
}
],
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 410,
"TotalTaxes": 65.5,
"TotalPrice": 475.5,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 410,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 65.5,
"Tax": [
{
"taxCode": "US",
"description": "U.S.A Transportation Tax",
"value": 30.7
},
{
"taxCode": "ZP",
"description": "United States Flight Segment Tax Domestic",
"value": 13.8
},
{
"taxCode": "AY",
"description": "United States Passenger Civil Aviation Security Service Fee",
"value": 8
},
{
"taxCode": "XF",
"description": "US Passenger Facility Charge",
"value": 13
}
]
},
"Total": 475.5
}
}
]
},
"TermsAndConditionsFull": [
{
"@type": "TermsAndConditionsFullAir",
"ExpiryDate": "2023-01-26T23:59:00Z",
"BaggageAllowance": [
{
"@type": "BaggageAllowanceDetail",
"passengerTypeCodes": [
"ADT"
],
"baggageType": "FirstCheckedBag",
"ProductRef": [
"product_1"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 0
}
],
"Text": [
"CHECKED ALLOWANCE"
]
},
{
"@type": "BaggageAllowanceDetail",
"passengerTypeCodes": [
"ADT"
],
"baggageType": "FirstCheckedBag",
"ProductRef": [
"product_1"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 0
}
],
"Text": [
"CHECKED ALLOWANCE"
]
},
{
"@type": "BaggageAllowanceDetail",
"passengerTypeCodes": [
"ADT"
],
"baggageType": "CarryOn",
"ProductRef": [
"product_1"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 2
}
],
"Text": [
"CARRY ON ALLOWANCE"
]
},
{
"@type": "BaggageAllowanceDetail",
"passengerTypeCodes": [
"ADT"
],
"baggageType": "CarryOn",
"ProductRef": [
"product_1"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 2
}
],
"Text": [
"CARRY ON ALLOWANCE"
]
}
],
"FareRuleInfo": [
{
"@type": "FareRuleInfo",
"flightsRefs": [
"seg_2"
]
},
{
"@type": "FareRuleInfo",
"flightsRefs": [
"seg_1"
]
}
],
"PaymentTimeLimit": "2023-01-26T23:59:00Z"
}
]
}
],
"Traveler": [
{
"@type": "Traveler",
"birthDate": "1986-11-11",
"gender": "Male",
"passengerTypeCode": "ADT",
"id": "trav_1",
"TravelerRef": "trav_1",
"Identifier": {
"authority": "Travelport",
"value": "QURUfFQx"
},
"PersonName": {
"@type": "PersonName",
"Given": "TESTFIRST",
"Surname": "TESTLAST"
},
"Telephone": [
{
"@type": "Telephone",
"countryAccessCode": "1",
"phoneNumber": "212456121",
"id": "4",
"cityCode": "ORD",
"role": "Home"
}
],
"Email": [
{
"id": "email_1",
"validInd": true,
"value": "TRAVELERONE@GMAIL.COM"
}
],
"TravelDocument": [
{
"@type": "TravelDocumentDetail",
"docNumber": "A123123",
"docType": "Passport",
"expireDate": "2033-01-24",
"issueCountry": "US",
"birthDate": "1986-11-11",
"Gender": "Male",
"PersonName": {
"@type": "PersonName",
"Given": "TestFirst",
"Surname": "TestLast"
}
}
]
}
],
"Receipt": [
{
"@type": "ReceiptConfirmation",
"id": "receipt_1",
"Identifier": {
"authority": "AA",
"value": "fe6d1272-c9cf-4858-88ff-f00ebde2fadc"
},
"OfferRef": [
"offer_1"
],
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"source": "AA",
"sourceContext": "OrderId",
"value": "AA001HD1YYTA7"
}
}
},
{
"@type": "ReceiptConfirmation",
"id": "receipt_2",
"Identifier": {
"authority": "AA",
"value": "50ade55b-09e9-4e06-bd8d-af7039cca702"
},
"OfferRef": [
"offer_1"
],
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"source": "AA",
"sourceContext": "VendorLocator",
"value": "NRAHSL"
}
}
},
{
"@type": "ReceiptConfirmation",
"Identifier": {
"authority": "Travelport",
"value": "6ec7bf8f-961c-44fc-8670-87d98aa0d789"
},
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"source": "1G",
"value": "3HPDLQ"
}
}
}
],
"ReservationDisplaySequence": {
"@type": "ReservationDisplaySequence",
"DisplaySequence": [
{
"@type": "DisplaySequence",
"displaySequence": 1,
"OfferRef": "offer_1",
"ProductRef": "product_1",
"Sequence": 1
}
]
},
"ReservationComment": [
{
"@type": "ReservationComment",
"id": "reservationComment_1",
"Comment": [
{
"id": "comment_1",
"name": "SWITT1G/XB7/02345243/SYD/1G/T/AU/AUD/001TEST",
"language": "EN",
"value": "SWITT1G/XB7/02345243/SYD/1G/T/AU/AUD/001TEST"
}
]
}
]
},
"Result": {
"@type": "Result",
"Warning": [
{
"@type": "Warning",
"Message": "AA : Departure Time changed for AA939 2023-02-24 LAXPHX"
},
{
"@type": "Warning",
"Message": "AA : Arrival Time changed for AA939 2023-02-24 LAXPHX"
},
{
"@type": "Warning",
"Message": "AA : Departure Time changed for AA593 2023-02-24 PHXDEN"
},
{
"@type": "Warning",
"Message": "AA : Arrival Time changed for AA593 2023-02-24 PHXDEN"
},
{
"@type": "Warning",
"Message": "The Departure Date and/or Time has changed from 2023-02-24/16:27:00 to 2023-02-24/16:20:00 for AA 939 from LAX to PHX"
},
{
"@type": "Warning",
"Message": "The Departure Date and/or Time has changed from 2023-02-24/19:40:00 to 2023-02-24/22:45:00 for AA 593 from PHX to DEN"
}
]
}
}
}