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.1, v25.4, or v26.2.
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
Section titled “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
Section titled “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
Section titled “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-3003 | 400 | Invalid or partial selection, or a metro round trip’s return leg uses different airports than the outbound. |
ERR-3004 | 400 | Offer came from OrderReshop and must be priced with OrderQuote. |
ERR-3008 | 409 | The seller’s contracted fare for the selected journey has not completed pricing verification. |
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. |