Reprice API Reference
POST |
reprice/reservationworkbench/{workbenchID}/offers/buildfromcatalogofferings 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


When modifying a held booking A confirmed reservation with the carrier. A held booking is a reservation that has not yet been ticketed. The terms booking and reservation are interchangeable. or exchanging a ticket for NDC, the Reprice API confirms pricing on a selected offer
In the JSON Search APIs, an offer is a product available at a specific price under a set of terms and conditions. An offer includes the flight or connecting flights for one leg of the itinerary, plus a service level that includes the cabin class and any fare codes that may apply. At booking, the selected offer from the Search response - including the flight/s, service level, price, terms and conditions, and brand if applicable - is converted into a single Offer object that is subsequently returned for that booking. from a preceding Reshop response and adds that offer to the workbench. It is part of the NDC modify/exchange workflow: Create a post-commit workbench, Reshop to shop for the new itinerary
The entire trip on a booking, including all flights on all legs. Also called a journey., Reprice as detailed here, and Resell to commit
API call that ends a workbench session, finalizing all changes and requests in that session. Depending on the workbench transactions, the commit workbench request may create a reservation, issue a ticket or EMD, exchange tickets, or modify a reservation. the changes.
When exchanging a ticket, if the new itinerary is greater than or equal to the previous itinerary, you may need to send Add Form of Payment and Add Payment after Reprice and before Resell.

Request
Also see Authorization and Common Headers.
Query Parameters
None.
Request Body

Object |
Description |
Required/Optional |
---|---|---|
OfferQueryBuildFromCatalogOfferings |
Top level object. |
Required |
BuildFromCatalogOfferingsRequest |
Top level object. |
Required |
CatalogOfferingIdentifier |
Top level object. |
Required |
Identifier |
Identifier details for the offer to reprice. |
Required |
|
Send the value returned in CatalogOffering/Identifier/authority in the Reshop response for the offer to exchange |
Required |
|
Send the value returned in CatalogOffering/Identifier/value in the Reshop response for the offer to exchange for. |
Required |
Response
The Reprice response uses the same format as the AirPrice Reference Payload API response, with the following differences:
-
OfferID is returned with @type value of OfferModify instead of Offer.
-
As in the Reshop response, the Price object does not return the price of the new offer but instead for 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

{
"OfferQueryBuildFromCatalogOfferings": {
"BuildFromCatalogOfferingsRequest": {
"@type": "BuildFromCatalogOfferingsRequestAir",
"CatalogOfferingIdentifier": {
"Identifier": {
"authority": "QF",
"value": "WDc3NkM5MUJFLTIyOUMtNDM3Qi05N0M3MS0xfFg3NzZDOTFCRS0yMjlDLTQzN0ItOTdDN3wyMDIxLTExLTE5VDE2OjMwOjUxfEFEVDpYNzc2QzkxQkUtMjI5Qy00MzdCLTk3QzcxLTEtMXxRRnxERUFM"
}
}
}
}
}
Example Response
The response returns details for the modified itinerary, a total price difference, and a breakdown of the fare difference by PTC Passenger Type Code, used to categorize travelers. The most common PTCs are adult (ADT), child (CNN), and infant (INF). You can request a maximum of 9 passengers in one Search request. for the selected offer.

{
"OfferListResponse": {
"OfferID": [
{
"@type": "OfferModify",
"id": "1",
"Identifier": {
"authority": "QF",
"value": "WDc3NkM5MUJFLTIyOUMtNDM3Qi05N0M3MS0xfFg3NzZDOTFCRS0yMjlDLTQzN0ItOTdDN3wyMDIxLTExLTE5VDE2OjMwOjUxfEFEVDpYNzc2QzkxQkUtMjI5Qy00MzdCLTk3QzcxLTEtMXxRRnxERUFMfE9OUkNEOlFGfE9GUlJFU1BJRDp7InJlc3BvbnNlSUQiOiJSOTI0N0FFNkEtOUY0RS00NEMyLUFCQkYiLCJvZmZlcklEIjoiUjkyNDdBRTZBLTlGNEUtNDRDMi1BQkJGLTEiLCJsaXN0T2ZmZXJJdGVtUGF4SUQiOlt7Im9mZmVySXRlbUlEIjoiUjkyNDdBRTZBLTlGNEUtNDRDMi1BQkJGLTEtMSIsInBhc3NlbmdlcklEIjpbIlQxIl19XSwib3JkZXJJdGVtSURQYXhNYXAiOnsiUEQ5QkQyNkJCLTUzQ0MtNDlENy04RDM1bmxqNXJxNXFrdWp6ei0xLTEiOnsiVDEiOiJ0cmF2XzEifX19"
},
"Product": [
{
"@type": "ProductAir",
"id": "product_1",
"FlightSegment": [
{
"sequence": 1,
"Flight": {
"@type": "Flight",
"distance": 438,
"carrier": "QF",
"number": "409",
"id": "S1",
"Departure": {
"@type": "DepartureDetail",
"location": "SYD",
"date": "2021-12-19",
"time": "07:00:00"
},
"Arrival": {
"@type": "ArrivalDetail",
"location": "MEL",
"date": "2021-12-19",
"time": "08:35:00"
}
}
}
],
"PassengerFlight": [
{
"passengerQuantity": 1,
"passengerTypeCode": "ADT",
"FlightProduct": [
{
"segmentSequence": [
1
],
"classOfService": "E",
"cabin": "Economy",
"fareBasisCode": "ESQW1"
}
]
}
]
}
],
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"value": "AUD"
},
"Base": 84.08,
"TotalTaxes": 24.92,
"TotalPrice": 109,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"CurrencyCode": {
"value": "AUD"
},
"Base": 84.08,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 24.92,
"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": 8.41
},
{
"taxCode": "UO",
"description": "GOODS AND SERVICES TAX GST",
"value": 1.5
}
]
},
"Total": 109
}
}
]
},
"TermsAndConditionsFull": [
{
"@type": "TermsAndConditionsFullAir",
"TextBlock": [
{
"@type": "TextBlockDetail",
"description": "Bag Rule",
"title": "Bag Rule",
"TextFormatted": [
{
"value": "Baggage Disclosure - Not subject to US DOT and CTA Reservation or Disclosure"
}
]
},
{
"@type": "TextBlockDetail",
"description": "Ticketing",
"title": "Ticketing",
"TextFormatted": [
{
"value": "NON-REF/NON-END"
},
{
"value": "SPECIAL FARE CONDITIONS"
}
]
}
],
"BaggageAllowance": [
{
"@type": "BaggageAllowanceDetail",
"passengerTypeCodes": [
"ADT"
],
"baggageType": "CarryOn",
"ProductRef": [
"product_1"
],
"BaggageItem": [
{
"quantity": 2
}
]
},
{
"@type": "BaggageAllowanceDetail",
"passengerTypeCodes": [
"ADT"
],
"baggageType": "FirstCheckedBag",
"ProductRef": [
"product_1"
],
"BaggageItem": [
{
"quantity": 1
}
]
}
],
"FareRuleInfo": [
{
"@type": "FareRuleInfo",
"flightsRefs": [
"S1"
],
"ruleNumber": "70J|NO8EJWN~MpB8PD~MpN8RWC~MqB9KDJ~MDB8DQPU0~MBV9/321~MNA9/1584~MBB87016~MRO8OSAJ~MPM864/.~MDM82X~MPN88786~MP08DPR~MNP9/~MNW8@BS~MQ@948~MCR9/0/43~MRL80580~MAA877~MDC8N@~M?L872/6~MAT8@SC~MQR91/0~MDS82.1~MQP96*sjovYy89RiGg*flxKey"
}
],
"OrganizationInformation": {},
"PaymentTimeLimit": "2021-11-20T23:59:00Z"
}
]
}
],
"Result": {
"Warning": [
{
"@type": "Warning",
"Message": "QF : OB Fees of 0.40 for CARD FEE FD2 may be applied for traveler 1."
},
{
"@type": "Warning",
"Message": "QF : OB Fees of 0.40 for CARD FEE FD5 may be applied for traveler 1."
},
]
}
}
}