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: NDC Modify, Cancel, and Exchange Guide
The Reprice API confirms pricing on a selected offer from a preceding Reshop API response and adds that offer to the workbench during an exchange of a held booking or ticketed itinerary for a new itinerary. It must be followed by a Resell request to commit the workbench and complete the exchange. If additional payment is required when exchanging a ticketed itinerary, you may need to send Add Form of Payment and Add Payment before committing the workbench.
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 for. |
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 exceptions:
-
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 on the booking or ticket. 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 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."
},
]
}
}
}