Search code examples
sabre

How can reserve Air Seats for all segments in a given PNR?


I am planning to use the <AirSeatRQ> request using Sabre's SOAP API, but according to the documentation, you have to request a seat assignment for each passenger on each segment with the user's preference.

Something like this according to the example on Dev Studio:

<AirSeatRQ ReturnHostCommand="false" TimeStamp="2011-10-27T15:30:00-06:00" Version="2.0.0">
<!--Repeat Factor=0-->
    <Seats>
        <Seat BoardingPass="true" ChangeOfGauge="true" NameNumber="1.1" Number="21A" Preference="AN" SegmentNumber="1"/>
    </Seats>
</AirSeatRQ>

Also, according to the request documentation, the repeat factor for the <Seats> request is zero. Does that mean that if I want to assign seats for all passengers on all segments do I have to send several requests?

Ideally, I would like to have the seats for all passengers in all segments automatically assigned after reading the PNR. Is that possible through Web Services?


Solution

  • Checking the <PassengerDetailsRQ> XML Schema definition, an <AirSeatRQ> can be sent along. I guess you can perform a standalone <AirSeatRQ> request, but bundling it with the passenger details is easier and save us from making extra requests to Sabre's API.

    You have to send a <Seat\> request for each passenger in each segment of the itinerary. This is a working example I did for a two legs itinerary, each leg consisting of two segments for two adults:

    I'm omitting most of the passenger details properties and focusing on the AirSeat element:

    <PassengerDetailsRQ Version="2.3.0">
        <PriceQuoteInfo HaltOnError="true"></PriceQuoteInfo>
        <SpecialReqDetails>
            <AddRemarkRQ>
                <RemarkInfo>
                    <Remark Code="H" Type="General">
                        <Text>THANK YOU FOR BOOKING MAURICIO CUENCA AIRLINES</Text>
                    </Remark>
                </RemarkInfo>
            </AddRemarkRQ>
            <AirSeatRQ>
                <Seats>
                    <Seat NameNumber="1.1" Preference="AN" SegmentNumber="1"/>
                    <Seat NameNumber="1.2" Preference="AN" SegmentNumber="2"/>
                    <Seat NameNumber="1.1" Preference="AN" SegmentNumber="3"/>
                    <Seat NameNumber="1.2" Preference="AN" SegmentNumber="4"/>
                </Seats>
            </AirSeatRQ>
            <SpecialServiceRQ HaltOnError="true">
                <SpecialServiceInfo></SpecialServiceInfo>
            </SpecialServiceRQ>
        </SpecialReqDetails>
        <TravelItineraryAddInfoRQ HaltOnError="true">
            <AgencyInfo></AgencyInfo>
            <CustomerInfo></CustomerInfo>
        </TravelItineraryAddInfoRQ>
    </PassengerDetailsRQ>
    

    This way, right after the PNR is created, all seats for all passengers in every segment are already assigned and there is no need for further requests asking for seat assignments.