Resell API Reference
POST |
modify/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: Exchange, Refund, and Void Guide
The Resell API is the last step in modifying a held booking or exchanging a ticket for NDC. It commits the changes in the workbench and may issue tickets. It is part of the NDC modify/exchange workflow: Create a post-commit workbench, Reshop to shop for the new itinerary, Reprice to confirm pricing, and Resell as detailed here to commit the changes.
When exchanging a ticket, at Resell, if a partial refund is due, new tickets are issued and the refund is credited to the original form of payment. If a payment is due or the amount is an even exchange:
-
To issue the new tickets at commit, you must send Add Form of Payment and Add Payment before Resell to send payment and issue tickets. For an even exchange, send Add Payment with a zero amount.
-
To hold the booking, do not add any payment information in this workbench.
Request
Also see Authorization and Common Headers.
Query Parameters
None.
Request Body
No message payload.
Response
The Resell response uses the same format as the Commit Workbench response.
-
OfferID is returned with @type value of OfferModify instead of Offer.
-
As in the Reshop request, the amounts in the Price object are not the amounts for the new offer but rather the new offer compared with the existing offer. In Price/TotalPrice:
- a positive number indicates the additional amount due for the new offer
- a zero amount indicates an even exchange
- a negative number indicates the offer costs less than the original itinerary and a partial refund is due
Example Request
No message body.
Example Response
You can use the Reshop/Reprice/Resell workflow to modify the air itinerary on a held booking, or to exchange a ticketed itinerary. The example below is the response for updating the itinerary on a held booking. When exchanging a ticketed itinerary, the response is similar except that the new ticket numbers are also returned.

{
"ReservationResponse": {
"@type": "ReservationResponse",
"Reservation": {
"@type": "Reservation",
"Identifier": {
"authority": "Travelport",
"value": "b4525579-c49c-4b6f-b45e-9ca985907ea0"
},
"Offer": [
{
"@type": "Offer",
"id": "offer_1",
"Identifier": {
"authority": "QF",
"value": "151ab4a8-3f68-4852-9c90-696796363365"
},
"Product": [
{
"@type": "ProductAir",
"totalDuration": "PT1H35M",
"id": "product_1",
"Identifier": {
"authority": "QF",
"value": "08557436-e4a6-4f99-8a2a-ec4c0bb01786"
},
"FlightSegment": [
{
"@type": "FlightSegment",
"sequence": 1,
"Flight": {
"@type": "Flight",
"duration": "PT1H35M",
"carrier": "QF",
"number": "409",
"equipment": "73H",
"id": "seg_1",
"Identifier": {
"authority": "QF",
"value": "e8fd1713-230c-402b-9af0-393b6e9f202a"
},
"Departure": {
"@type": "DepartureDetail",
"terminal": "3",
"location": "SYD",
"date": "2022-06-10",
"time": "07:00:00"
},
"Arrival": {
"@type": "ArrivalDetail",
"terminal": "1",
"location": "MEL",
"date": "2022-06-10",
"time": "08:35:00"
}
}
}
],
"PassengerFlight": [
{
"@type": "PassengerFlight",
"passengerQuantity": 1,
"passengerTypeCode": "ADT",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1
],
"classOfService": "Q",
"cabin": "Economy",
"fareBasisCode": "QDQW",
"fareType": "PublicFare",
"Brand": {
"@type": "Brand",
"name": "RED eDeal"
}
}
]
}
]
}
],
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"value": "AUD"
},
"Base": 169.63,
"TotalTaxes": 40.62,
"TotalPrice": 210.25,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"value": "AUD"
},
"Base": 169.63,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 40.62,
"Tax": [
{
"taxCode": "QR",
"description": "PASSENGER SERVICE CHARGE DOMESTIC DEPARTURE",
"value": 9.42
},
{
"taxCode": "QR",
"description": "PASSENGER SERVICE CHARGE DOMESTIC ARRIVAL",
"value": 5.59
},
{
"taxCode": "UO",
"description": "GOODS AND SERVICES TAX GST",
"value": 16.96
},
{
"taxCode": "UO",
"description": "GOODS AND SERVICES TAX GST",
"value": 2.15
},
{
"taxCode": "WG",
"description": "SAFETY AND SECURITY CHARGE DEPARTURE",
"value": 6.5
}
]
},
"Total": 210.25
}
}
]
},
"TermsAndConditionsFull": [
{
"@type": "TermsAndConditionsFullAir",
"ExpiryDate": "2022-05-11T23:59:00Z",
"TextBlock": [
{
"@type": "TextBlock",
"TextFormatted": [
{
"value": "Baggage Disclosure - Not subject to US DOT and CTA Reservation or Disclosure"
}
]
},
{
"@type": "TextBlockDetail",
"description": "FARE RULES",
"title": "Ticketing",
"TextFormatted": [
{
"value": "NON-REF/NON-END"
},
{
"value": "SPECIAL FARE CONDITIONS"
}
]
}
],
"BaggageAllowance": [
{
"@type": "BaggageAllowanceDetail",
"passengerTypeCodes": [
"ADT"
],
"baggageType": "FirstCheckedBag",
"ProductRef": [
"product_1"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 1,
"Measurement": [
{
"measurementType": "OverallDimension",
"unit": "Centimeters",
"value": 158
},
{
"measurementType": "OverallDimension",
"unit": "Inches",
"value": 62
}
]
}
],
"Text": [
"CHECKED ALLOWANCE"
]
},
{
"@type": "BaggageAllowanceDetail",
"passengerTypeCodes": [
"ADT"
],
"baggageType": "CarryOn",
"ProductRef": [
"product_1"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 2
}
],
"Text": [
"CARRYON HAND BAGGAGE ALLOWANCE"
]
}
],
"FareRuleInfo": [
{
"@type": "FareRuleInfo",
"flightsRefs": [
"seg_1"
]
}
],
"PaymentTimeLimit": "2022-05-11T23: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",
"phoneNumber": "1212456121",
"id": "telephone_1"
}
],
"Email": [
{
"id": "email_1",
"emailType": "Operational",
"validInd": true,
"value": "TRAVELERONE@GMAIL.COM"
}
],
"TravelDocument": [
{
"@type": "TravelDocumentDetail",
"docNumber": "A123123",
"docType": "Passport",
"expireDate": "2022-10-20",
"issueCountry": "US",
"birthDate": "1986-11-11",
"Gender": "Male",
"PersonName": {
"@type": "PersonName",
"Given": "TESTFIRST",
"Surname": "TESTLAST"
}
}
]
}
],
"Receipt": [
{
"@type": "ReceiptConfirmation",
"id": "receipt_1",
"Identifier": {
"authority": "QF",
"value": "430d83b6-9567-457f-a109-a7bd07967139"
},
"OfferRef": [
"offer_1"
],
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"source": "QF",
"sourceContext": "OrderId",
"value": "QF081H8EM8TA7"
},
"OfferStatus": {
"@type": "OfferStatusAir",
"StatusAir": [
{
"value": "Pending"
}
]
}
}
},
{
"@type": "ReceiptConfirmation",
"id": "receipt_2",
"Identifier": {
"authority": "QF",
"value": "14b3e032-a794-4579-8786-2b5ca4c46dc7"
},
"OfferRef": [
"offer_1"
],
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"source": "QF",
"sourceContext": "VendorLocator",
"value": "5JLMQL"
},
"OfferStatus": {
"@type": "OfferStatusAir",
"StatusAir": [
{
"value": "Pending"
}
]
}
}
},
{
"@type": "ReceiptConfirmation",
"id": "receipt_3",
"Identifier": {
"authority": "Travelport",
"value": "a034a9b0-688f-4588-b231-a89e9b299254"
},
"OfferRef": [
"offer_1"
],
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"source": "1G",
"value": "1BD2YS"
},
"OfferStatus": {
"@type": "OfferStatusAir",
"StatusAir": [
{
"value": "Pending"
}
]
}
}
}
]
}
}
}