IATA_OfferPriceRQ/RS

Introduction

The IATA_OfferPriceRQ/RS message pair is used for the final pricing step before creating the Order. In this request, all selected Offers from the previous shopping step are combined and assigned to the correct passengers.

The IATA_OfferPriceRS contains the final price of the selected Offer items, if the Order would be created at this moment. It also contains the final OfferIDs, that can be used in the IATA_OrderCreateRQ. The response also contains informations about baggage allowances and fare rules (if provided by the airline).

General Usage

The IATA_OfferPriceRQ contains all selected Offers from the previous shopping step. This includes flight Offers, as well as seat- and service Offers.

It is also necessary to include all passengers in this request, although complete passenger data (e.g. full names, date of birth etc.) is not yet required.

If seats and/or services are included, it is also mandatory to set the correct references to the regarding flight segments. As it is required by the IATA-XSD, the flight segments have to be added to the request as well but currently the API only evaluates the SegmentID. So it is possible to set dummy data to the segments, but for consistency it is recommended to set the correct segment data.

The IATA_OfferPriceRS returns full pricing information. That includes fares, taxes, service prices and possible additional fees.

Please note: Although the pricing step is not strictly required in the booking flow, it is highly recommended to execute this step to avoid price differences, e.g. when combining specific services. Also Offers returned in the pricing step are usually cached for a longer time to improve customer experience. For more information about caching, please have a look at the chapter Caching.

Sample

Below sample solely contains a simple IATA_OfferPriceRQ only containing a flight. For detailed samples, please refer to NDC XML Samples.

IATA_OfferPriceRQ

Show/Hide Request

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<IATA_OfferPriceRQ
   xmlns="http://www.iata.org/IATA/2015/00/2019.2/IATA_OfferPriceRQ">
   <Party>
      <Sender>
         <EnabledSystem>
            <SystemID>12345</SystemID>
         </EnabledSystem>
      </Sender>
   </Party>
   <Request>
      <DataLists>
         <PaxList>
            <Pax>
               <PaxID>PX1</PaxID>
               <PTC>ADT</PTC>
            </Pax>
         </PaxList>
      </DataLists>
      <PricedOffer>
         <SelectedOffer>
            <OfferRefID>OFc587c64f-77ef-11ea-abfe-3d099045155b</OfferRefID>
            <OwnerCode>NA</OwnerCode>
            <SelectedOfferItem>
               <OfferItemRefID>OFIc587c64f-77ef-11ea-abfe-3d099045155b1</OfferItemRefID>
               <PaxRefID>PX1</PaxRefID>
            </SelectedOfferItem>
            <ShoppingResponseRefID>NA</ShoppingResponseRefID>
         </SelectedOffer>
      </PricedOffer>
   </Request>
</IATA_OfferPriceRQ>

IATA_OfferPriceRQ (including detailed pax data)

Show/Hide Request

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<IATA_OfferPriceRQ
   xmlns="http://www.iata.org/IATA/2015/00/2019.2/IATA_OfferPriceRQ">
   <Party>
      <Sender>
         <EnabledSystem>
            <SystemID>12345</SystemID>
         </EnabledSystem>
      </Sender>
   </Party>
   <Request>
      <DataLists>
         <PaxList>
            <Pax>
               <Individual>
                  <Birthdate>1970-01-01</Birthdate>
                  <GenderCode>M</GenderCode>
                  <GivenName>TEST</GivenName>
                  <IndividualID>IN1</IndividualID>
                  <Surname>TESTER</Surname>
                  <TitleName>MR</TitleName>
               </Individual>
               <PaxID>PX1</PaxID>
               <PTC>ADT</PTC>
            </Pax>
         </PaxList>
      </DataLists>
      <PricedOffer>
         <SelectedOffer>
            <OfferRefID>OFc587c64f-77ef-11ea-abfe-3d099045155b</OfferRefID>
            <OwnerCode>NA</OwnerCode>
            <SelectedOfferItem>
               <OfferItemRefID>OFIc587c64f-77ef-11ea-abfe-3d099045155b1</OfferItemRefID>
               <PaxRefID>PX1</PaxRefID>
            </SelectedOfferItem>
            <ShoppingResponseRefID>NA</ShoppingResponseRefID>
         </SelectedOffer>
      </PricedOffer>
   </Request>
</IATA_OfferPriceRQ>

IATA_OfferPriceRS

Show/Hide Response

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<IATA_OfferPriceRS
   xmlns="http://www.iata.org/IATA/2015/00/2019.2/IATA_OfferPriceRS">
   <Response>
      <DataLists>
         <BaggageAllowanceList>
            <BaggageAllowance>
               <BaggageAllowanceID>BA1</BaggageAllowanceID>
               <PieceAllowance>
                  <ApplicablePartyText>Adult</ApplicablePartyText>
                  <Desc>8kg carry on baggage included</Desc>
                  <PieceDimensionAllowance>
                     <BaggageDimensionCategory>LENGTH</BaggageDimensionCategory>
                     <MaxMeasure UnitCode="MILLIMETER">55</MaxMeasure>
                  </PieceDimensionAllowance>
                  <PieceDimensionAllowance>
                     <BaggageDimensionCategory>HEIGHT</BaggageDimensionCategory>
                     <MaxMeasure UnitCode="MILLIMETER">20</MaxMeasure>
                  </PieceDimensionAllowance>
                  <PieceDimensionAllowance>
                     <BaggageDimensionCategory>WIDTH</BaggageDimensionCategory>
                     <MaxMeasure UnitCode="MILLIMETER">40</MaxMeasure>
                  </PieceDimensionAllowance>
                  <TotalQty>1</TotalQty>
               </PieceAllowance>
               <TypeCode>CarryOn</TypeCode>
               <WeightAllowance>
                  <ApplicablePartyText>Adult</ApplicablePartyText>
                  <MaximumWeightMeasure UnitCode="KG">8</MaximumWeightMeasure>
               </WeightAllowance>
            </BaggageAllowance>
            <BaggageAllowance>
               <BaggageAllowanceID>BA2</BaggageAllowanceID>
               <TypeCode>Checked</TypeCode>
               <WeightAllowance>
                  <ApplicablePartyText>Adult</ApplicablePartyText>
                  <DescText>20kg checked baggage included</DescText>
                  <MaximumWeightMeasure UnitCode="KG">20</MaximumWeightMeasure>
               </WeightAllowance>
            </BaggageAllowance>
         </BaggageAllowanceList>
         <DisclosureList>
            <Disclosure>
               <Desc>
                  <DescText>Online Check-In is free of charge</DescText>
               </Desc>
               <DisclosureID>online_check-in</DisclosureID>
            </Disclosure>
            <Disclosure>
               <Desc>
                  <DescText>Airport Check-In and Check-In kiosks are free of charge.</DescText>
               </Desc>
               <DisclosureID>airport_check-in</DisclosureID>
            </Disclosure>
            <Disclosure>
               <Desc>
                  <DescText>Until 29 days before scheduled departure an optional booking is possible to be hold for 3 workdays. From 28 days before scheduled departure an optional booking is possible to be hold for 1 day. From 4 days before scheduled departure an option booking is not possible anymore.</DescText>
               </Desc>
               <DisclosureID>option_bookings</DisclosureID>
            </Disclosure>
            <Disclosure>
               <Desc>
                  <DescText>Meals and beverages are not included.</DescText>
               </Desc>
               <DisclosureID>meals_and_beverages</DisclosureID>
            </Disclosure>
            <Disclosure>
               <Desc>
                  <DescText>Fees are applicable for seat reservation until 24 h before scheduled departure. </DescText>
               </Desc>
               <DisclosureID>seat_reservation</DisclosureID>
            </Disclosure>
            <Disclosure>
               <Desc>
                  <DescText>You'll receive 125 Miles per flight leg.</DescText>
               </Desc>
               <DisclosureID>miles_and_more</DisclosureID>
            </Disclosure>
            <Disclosure>
               <Desc>
                  <DescText>Priority baggage, security check and boarding is not included. </DescText>
               </Desc>
               <DisclosureID>priority_package</DisclosureID>
            </Disclosure>
            <Disclosure>
               <Desc>
                  <DescText>Ejournals and magazines are not included.</DescText>
               </Desc>
               <DisclosureID>ejournals_magazines</DisclosureID>
            </Disclosure>
            <Disclosure>
               <Desc>
                  <DescText>No additional services included. </DescText>
               </Desc>
               <DisclosureID>additional_services</DisclosureID>
            </Disclosure>
         </DisclosureList>
         <OriginDestList>
            <OriginDest>
               <DestCode>TFS</DestCode>
               <OriginCode>FRA</OriginCode>
               <OriginDestID>OD1</OriginDestID>
               <PaxJourneyRefID>FL1</PaxJourneyRefID>
            </OriginDest>
         </OriginDestList>
         <PaxJourneyList>
            <PaxJourney>
               <Duration>P0Y0M0DT4H45M0.000S</Duration>
               <PaxJourneyID>FL1</PaxJourneyID>
               <PaxSegmentRefID>SEG1</PaxSegmentRefID>
            </PaxJourney>
         </PaxJourneyList>
         <PaxList>
            <Pax>
               <Individual>
                  <GenderCode>M</GenderCode>
                  <GivenName>PAXA</GivenName>
                  <IndividualID>IN1</IndividualID>
                  <Surname>PAXEA</Surname>
               </Individual>
               <PaxID>PX1</PaxID>
               <PTC>ADT</PTC>
            </Pax>
         </PaxList>
         <PaxSegmentList>
            <PaxSegment>
               <Arrival>
                  <AircraftScheduledDateTime>2020-05-13T16:05:00</AircraftScheduledDateTime>
                  <IATA_LocationCode>TFS</IATA_LocationCode>
               </Arrival>
               <DatedOperatingLeg>
                  <Arrival>
                     <AircraftScheduledDateTime>2020-05-13T16:05:00</AircraftScheduledDateTime>
                     <IATA_LocationCode>TFS</IATA_LocationCode>
                  </Arrival>
                  <CarrierAircraftType/>
                  <DatedOperatingLegID>DOL1</DatedOperatingLegID>
                  <Dep>
                     <AircraftScheduledDateTime>2020-05-13T12:20:00</AircraftScheduledDateTime>
                     <IATA_LocationCode>FRA</IATA_LocationCode>
                  </Dep>
               </DatedOperatingLeg>
               <Dep>
                  <AircraftScheduledDateTime>2020-05-13T12:20:00</AircraftScheduledDateTime>
                  <IATA_LocationCode>FRA</IATA_LocationCode>
               </Dep>
               <Duration>P0Y0M0DT4H45M0.000S</Duration>
               <MarketingCarrierInfo>
                  <CarrierDesigCode>ZZ</CarrierDesigCode>
                  <MarketingCarrierFlightNumberText>1478</MarketingCarrierFlightNumberText>
               </MarketingCarrierInfo>
               <MarketingCarrierRBD_Code>Y</MarketingCarrierRBD_Code>
               <PaxSegmentID>SEG1</PaxSegmentID>
            </PaxSegment>
         </PaxSegmentList>
         <PenaltyList>
            <Penalty>
               <DescText>The rebooking fees per person and flight are 75? on medium haul. The stated fees apply to each booking modification. They are restricted to the same flight zone and can be made until 24 hours before departure. If the fare for the new flight is higher, the fare difference must be paid. </DescText>
               <PenaltyID>rebooking/change_booking</PenaltyID>
            </Penalty>
            <Penalty>
               <DescText>In the case of cancellation or no-show, it is not possible to refund the air fare.</DescText>
               <PenaltyID>cancellation</PenaltyID>
            </Penalty>
            <Penalty>
               <DescText>No changes can be made.</DescText>
               <PenaltyID>name_change</PenaltyID>
            </Penalty>
            <Penalty>
               <DescText>Name correction is free of charge.</DescText>
               <PenaltyID>name_correction</PenaltyID>
            </Penalty>
         </PenaltyList>
         <PriceClassList>
            <PriceClass>
               <FareBasisCode>SPO</FareBasisCode>
               <Name>SPO</Name>
               <PriceClassID>PC1</PriceClassID>
            </PriceClass>
         </PriceClassList>
         <ServiceDefinitionList>
            <ServiceDefinition>
               <Desc>
                  <DescText>BaggageAllowance CarryOn Bags</DescText>
               </Desc>
               <Name>BaggageAllowanceCarry</Name>
               <ServiceDefinitionAssociation>
                  <BaggageAllowanceRefID>BA1</BaggageAllowanceRefID>
               </ServiceDefinitionAssociation>
               <ServiceDefinitionID>SVD1</ServiceDefinitionID>
            </ServiceDefinition>
            <ServiceDefinition>
               <Desc>
                  <DescText>BaggageAllowance Checked Bags</DescText>
               </Desc>
               <Name>BaggageAllowanceChecked</Name>
               <ServiceDefinitionAssociation>
                  <BaggageAllowanceRefID>BA2</BaggageAllowanceRefID>
               </ServiceDefinitionAssociation>
               <ServiceDefinitionID>SVD2</ServiceDefinitionID>
            </ServiceDefinition>
         </ServiceDefinitionList>
      </DataLists>
      <PricedOffer>
         <OfferID>OFfa0eaa64-77f1-11ea-abfe-eb9b3ad64127</OfferID>
         <OfferItem>
            <FareDetail>
               <FareComponent>
                  <CabinType>
                     <CabinTypeCode>Y</CabinTypeCode>
                     <CabinTypeName>ECONOMY</CabinTypeName>
                  </CabinType>
                  <FareBasisCode>SPO</FareBasisCode>
                  <FareRule>
                     <PenaltyRefID>rebooking/change_booking</PenaltyRefID>
                     <PenaltyRefID>cancellation</PenaltyRefID>
                     <PenaltyRefID>name_change</PenaltyRefID>
                     <PenaltyRefID>name_correction</PenaltyRefID>
                  </FareRule>
                  <PaxSegmentRefID>SEG1</PaxSegmentRefID>
                  <PriceClassRefID>PC1</PriceClassRefID>
               </FareComponent>
               <FarePriceType>
                  <FarePriceTypeCode>NET FARE</FarePriceTypeCode>
                  <Price>
                     <BaseAmount>80.42</BaseAmount>
                     <TaxSummary>
                        <Tax>
                           <Amount CurCode="EUR">49.57</Amount>
                           <TaxCode>TAX</TaxCode>
                        </Tax>
                        <TotalTaxAmount CurCode="EUR">49.57</TotalTaxAmount>
                     </TaxSummary>
                     <TotalAmount CurCode="EUR">129.99</TotalAmount>
                  </Price>
               </FarePriceType>
               <PaxRefID>PX1</PaxRefID>
            </FareDetail>
            <OfferItemID>OFIfa0eaa64-77f1-11ea-abfe-eb9b3ad641271</OfferItemID>
            <Price>
               <BaseAmount CurCode="EUR">80.42</BaseAmount>
               <TotalAmount CurCode="EUR">129.99</TotalAmount>
            </Price>
            <Service>
               <PaxRefID>PX1</PaxRefID>
               <ServiceAssociations>
                  <PaxJourneyRefID>FL1</PaxJourneyRefID>
               </ServiceAssociations>
               <ServiceID>SV1</ServiceID>
            </Service>
            <Service>
               <PaxRefID>PX1</PaxRefID>
               <ServiceAssociations>
                  <ServiceDefinitionRef>
                     <BaggageFlightAssociations>
                        <DatedOperatingLegRefID>DOL1</DatedOperatingLegRefID>
                        <PaxSegmentRefID>SEG1</PaxSegmentRefID>
                     </BaggageFlightAssociations>
                     <ServiceDefinitionRefID>SVD1</ServiceDefinitionRefID>
                  </ServiceDefinitionRef>
               </ServiceAssociations>
               <ServiceID>SV2</ServiceID>
            </Service>
            <Service>
               <PaxRefID>PX1</PaxRefID>
               <ServiceAssociations>
                  <ServiceDefinitionRef>
                     <BaggageFlightAssociations>
                        <DatedOperatingLegRefID>DOL1</DatedOperatingLegRefID>
                        <PaxSegmentRefID>SEG1</PaxSegmentRefID>
                     </BaggageFlightAssociations>
                     <ServiceDefinitionRefID>SVD2</ServiceDefinitionRefID>
                  </ServiceDefinitionRef>
               </ServiceAssociations>
               <ServiceID>SV3</ServiceID>
            </Service>
         </OfferItem>
         <OwnerCode>ZZ</OwnerCode>
         <TotalPrice>
            <BaseAmount CurCode="EUR">129.99</BaseAmount>
            <TaxSummary>
               <Tax>
                  <Amount CurCode="EUR">49.57</Amount>
                  <TaxCode>TAX</TaxCode>
               </Tax>
               <TotalTaxAmount CurCode="EUR">49.57</TotalTaxAmount>
            </TaxSummary>
            <TotalAmount CurCode="EUR">179.56</TotalAmount>
         </TotalPrice>
      </PricedOffer>
      <ShoppingResponse>
         <ShoppingResponseRefID>5ff4d0fe-e1dc-494a-b90f-f81517494478</ShoppingResponseRefID>
      </ShoppingResponse>
   </Response>
   <PayloadAttributes>
      <Timestamp TimeZoneCode="UTC">2020-04-06T10:32:55.431</Timestamp>
      <VersionNumber>19.2</VersionNumber>
   </PayloadAttributes>
</IATA_OfferPriceRS>

Credit Card Fee

If a offer price needs to be done by adding CC fee, the tag “ShoppingCriteria” must be present. If the tag “ShoppingCriteria” is not present, no CC fee will be added.

Currently only SunExpress supports this feature!

Request Shopping Criteria Part

<ShoppingCriteria>
    <PaymentMethodCriteria>
        <PaymentCardCriteria>
            <CardBrandCode>MC</CardBrandCode>
            <IssuerIdentificationNumber>123456</IssuerIdentificationNumber>
        </PaymentCardCriteria>
        <TypeCode>CC</TypeCode>
    </PaymentMethodCriteria>
</ShoppingCriteria>

Response Fee Part

<Fee>
        <Amount CurCode="EUR">5.80</Amount>
        <DescText>Credit card fee</DescText>
        <DesigText>SURCHARGE</DesigText>
</Fee>