OfferPrice
IATA_OfferPriceRQ prices offers selected from AirShopping and returns the quoted result as a new offer. It is the XML counterpart of the JSON price offer.
POST /ndc/{version}/OfferPrice with version one of v21.3, v24.4, or v25.4.
OfferPrice is the new-sale pricing path only. Offers returned by OrderReshop must be priced with OrderQuote instead — OfferPrice rejects them with ERR-3004.
Request
SelectedOfferList accepts one or more SelectedOffer entries — one per journey, each with OfferRefID, OwnerCode MX, and the selected OfferItemRefID values. Selected offers must reference distinct journeys and share one currency.
DataLists.PaxList is optional: when absent, the party is derived from the selected items' PaxRefIDs and the per-PTC OfferItemID suffixes. Requests whose item IDs carry no PTC suffix must include a PaxList.
<?xml version="1.0" encoding="UTF-8"?>
<IATA_OfferPriceRQ xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersMessage">
<DistributionChain>
<DistributionChainLink xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<Ordinal>1</Ordinal>
<OrgRole>Seller</OrgRole>
<ParticipatingOrg>
<OrgID>BZ</OrgID>
</ParticipatingOrg>
</DistributionChainLink>
<DistributionChainLink xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<Ordinal>2</Ordinal>
<OrgRole>Carrier</OrgRole>
<ParticipatingOrg>
<OrgID>MX</OrgID>
</ParticipatingOrg>
</DistributionChainLink>
</DistributionChain>
<Request>
<DataLists xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<PaxList>
<Pax>
<PaxID>ADT-1</PaxID>
<PTC>ADT</PTC>
</Pax>
</PaxList>
</DataLists>
<PricedOffer xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<SelectedOfferList>
<SelectedOffer>
<OfferRefID>OF-25a8bea9-89f5-41ea-98be-25340131a18b</OfferRefID>
<OwnerCode>MX</OwnerCode>
<SelectedOfferItem>
<OfferItemRefID>OFI-25a8bea9-89f5-41ea-98be-25340131a18b-0</OfferItemRefID>
<PaxRefID>ADT-1</PaxRefID>
</SelectedOfferItem>
</SelectedOffer>
</SelectedOfferList>
</PricedOffer>
</Request>
</IATA_OfferPriceRQ>
Response
The priced result is returned — and cached — under a freshly minted OfferID; that new ID is what OrderCreate consumes. Pricing does not extend the original offer's validity.
PricedOffer carries the quoted TotalPrice and per-item Price values from the live quote. Monetary amounts always carry CurCode.
<?xml version="1.0" encoding="UTF-8"?>
<IATA_OfferPriceRS xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersMessage">
<Response>
<DataLists xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<PaxList>
<Pax>
<PaxID>ADT-1</PaxID>
<PTC>ADT</PTC>
</Pax>
</PaxList>
<!-- OriginDestList, PaxJourneyList, PaxSegmentList, DatedOperatingLegList,
PriceClassList, ServiceDefinitionList as in IATA_AirShoppingRS -->
</DataLists>
<PricedOffer xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<OfferID>OF-8c1e2f04-9d21-4b7a-b3c2-77c101f1a001</OfferID>
<OfferItem>
<FareDetail>
<FareComponent>
<PaxSegmentRefID>SEG-outbound</PaxSegmentRefID>
</FareComponent>
<PaxRefID>ADT-1</PaxRefID>
</FareDetail>
<OfferItemID>OFI-8c1e2f04-9d21-4b7a-b3c2-77c101f1a001-0</OfferItemID>
<Price>
<BaseAmount CurCode="USD">91.5</BaseAmount>
<TaxSummary>
<TotalTaxAmount CurCode="USD">7.5</TotalTaxAmount>
</TaxSummary>
<TotalAmount CurCode="USD">99</TotalAmount>
</Price>
</OfferItem>
<TotalPrice>
<BaseAmount CurCode="USD">91.5</BaseAmount>
<TaxSummary>
<TotalTaxAmount CurCode="USD">7.5</TotalTaxAmount>
</TaxSummary>
<TotalAmount CurCode="USD">99</TotalAmount>
</TotalPrice>
</PricedOffer>
</Response>
</IATA_OfferPriceRS>
OfferPrice errors
| Code | HTTP status | Cause |
|---|---|---|
ERR-1000 | 400 | Malformed XML. |
ERR-1002 | 404 | Unsupported version segment in the path. |
ERR-1003 | 400 | Missing required element. |
ERR-1004 | 400 | Invalid field value, duplicate journeys, or mixed currencies. |
ERR-3000 | 404 | Referenced offer could not be found. |
ERR-3001 | 404 | Referenced offer has expired. |
ERR-3002 | 400 | One or more offer items not found on the offer. |
ERR-3004 | 400 | Offer came from OrderReshop and must be priced with OrderQuote. |
ERR-8000 | 401 | Missing or invalid API key or bearer token. |
ERR-8001 | 403 | API key not authorized for this request. |
ERR-8002 | 503 | Authentication store unavailable. |
ERR-9001 | 500 | Unexpected upstream response. |
ERR-9002 | 503 | Offer cache unavailable. |