Search code examples
soapsabre

Sabre how to book flight segment(s) with infant passenger


When I try to book with infant without seat I get the error below, booking with infants with seat has no problem.

INF = infant without seat
INS = infant with seat

reference : https://richmedia.sabre.com/docs_support/quickreferences/gen/price54.pdf

Here's my payload:

<EnhancedAirBookRQ version="3.6.0" HaltOnError="true"  xmlns="http://services.sabre.com/sp/eab/v3_6">
<OTA_AirBookRQ>
    <HaltOnStatus Code="SS" ></HaltOnStatus>
    <OriginDestinationInformation>
        <FlightSegment DepartureDateTime="2016-07-20T04:00:00" FlightNumber="2835" NumberInParty="4" ResBookDesigCode="K" Status="NN" >
            <DestinationLocation LocationCode="CEB" ></DestinationLocation>
            <MarketingAirline Code="PR" FlightNumber="2835" ></MarketingAirline>
            <OriginLocation LocationCode="MNL" ></OriginLocation>
        </FlightSegment>
        <FlightSegment DepartureDateTime="2016-07-25T04:50:00" FlightNumber="1836" NumberInParty="4" ResBookDesigCode="K" Status="NN" >
            <DestinationLocation LocationCode="MNL" ></DestinationLocation>
            <MarketingAirline Code="PR" FlightNumber="1836" ></MarketingAirline>
            <OriginLocation LocationCode="CEB" ></OriginLocation>
        </FlightSegment>
    </OriginDestinationInformation>
</OTA_AirBookRQ>
<OTA_AirPriceRQ>
    <PriceRequestInformation Retain="true" >
        <OptionalQualifiers>
            <PricingQualifiers>
                <PassengerType Code="ADT" Quantity="2" ></PassengerType>
                <PassengerType Code="CNN" Quantity="1" ></PassengerType>
                <PassengerType Code="INF" Quantity="1" ></PassengerType>
            </PricingQualifiers>
        </OptionalQualifiers>
    </PriceRequestInformation>
</OTA_AirPriceRQ>
<PostProcessing IgnoreAfter="false" ></PostProcessing>
<PreProcessing IgnoreBefore="false" ></PreProcessing>

and here's the response:

<soap-env:Envelope xmlns:soap-env='http://schemas.xmlsoap.org/soap/envelope/'>
<soap-env:Header>
    <eb:MessageHeader xmlns:eb='http://www.ebxml.org/namespaces/messageHeader' eb:version='1.0' soap-env:mustUnderstand='1'>
        <eb:From>
            <eb:PartyId eb:type='URI'>webservices.sabre.com</eb:PartyId>
        </eb:From>
        <eb:To>
            <eb:PartyId eb:type='URI'>xxxxxxxx</eb:PartyId>
        </eb:To>
        <eb:CPAId>xxx</eb:CPAId>
        <eb:ConversationId>CONV-EnhancedAirBookRQ@xxxxxx</eb:ConversationId>
        <eb:Service>EnhancedAirBookRQ</eb:Service>
        <eb:Action>EnhancedAirBookRS</eb:Action>
        <eb:MessageData>
            <eb:MessageId>1330890246910330610</eb:MessageId>
            <eb:Timestamp>2016-07-19T06:51:31</eb:Timestamp>
            <eb:RefToMessageId>MSG-EnhancedAirBookRQ@xxxxx</eb:RefToMessageId>
        </eb:MessageData>
    </eb:MessageHeader>
    <wsse:Security xmlns:wsse='http://schemas.xmlsoap.org/ws/2002/12/secext'>
        <wsse:BinarySecurityToken valueType='String' EncodingType='wsse:Base64Binary'>xxxxxxx</wsse:BinarySecurityToken>
    </wsse:Security>
</soap-env:Header>
<soap-env:Body>
    <EnhancedAirBookRS xmlns='http://services.sabre.com/sp/eab/v3_6'>
        <ApplicationResults xmlns='http://services.sabre.com/STL_Payload/v02_01' status='NotProcessed'>
            <Error type='BusinessLogic' timeStamp='2016-07-19T01:51:31.881-05:00'>
                <SystemSpecificResults>
                    <Message code='ERR.SWS.HOST.ERROR_IN_RESPONSE'>FORMAT-NEED MORE PSGR TYPES OR NAME SELECT-0115</Message>
                    <Message code='0'>FORMAT-NEED MORE PSGR TYPES OR NAME SELECT-0115</Message>
                </SystemSpecificResults>
            </Error>
        </ApplicationResults>
        <OTA_AirBookRS>
            <OriginDestinationOption>
                <FlightSegment ArrivalDateTime='07-20T05:10' DepartureDateTime='07-20T04:00' FlightNumber='2835' NumberInParty='004' ResBookDesigCode='K' Status='NN' eTicket='true'>
                    <DestinationLocation LocationCode='CEB'/>
                    <MarketingAirline Code='PR' FlightNumber='2835'/>
                    <OriginLocation LocationCode='MNL'/>
                </FlightSegment>
                <FlightSegment ArrivalDateTime='07-25T06:00' DepartureDateTime='07-25T04:50' FlightNumber='1836' NumberInParty='004' ResBookDesigCode='K' Status='NN' eTicket='true'>
                    <DestinationLocation LocationCode='MNL'/>
                    <MarketingAirline Code='PR' FlightNumber='1836'/>
                    <OriginLocation LocationCode='CEB'/>
                </FlightSegment>
            </OriginDestinationOption>
        </OTA_AirBookRS>
    </EnhancedAirBookRS>
</soap-env:Body>


Solution

  • Problem Solved!

    • To book infants without seat you must use PassengerType Code 'INF' and not count them in NumberInParty credits to @fcarreno.
    • To book infants with seat you must use PassengerType Code 'INS' and count them in NumberInParty.

    Solution Infant without seat payload :

    <EnhancedAirBookRQ version="3.6.0" HaltOnError="true"  xmlns="http://services.sabre.com/sp/eab/v3_6">
        <OTA_AirBookRQ>
            <HaltOnStatus Code="SS" ></HaltOnStatus>
            <OriginDestinationInformation>
                <FlightSegment DepartureDateTime="2016-07-22T21:55:00" FlightNumber="686" NumberInParty="3" ResBookDesigCode="S" Status="NN" >
                    <DestinationLocation LocationCode="BWN" ></DestinationLocation>
                    <MarketingAirline Code="BI" FlightNumber="686" ></MarketingAirline>
                    <OriginLocation LocationCode="MNL" ></OriginLocation>
                </FlightSegment>
                <FlightSegment DepartureDateTime="2016-07-23T10:55:00" FlightNumber="513" NumberInParty="3" ResBookDesigCode="S" Status="NN" >
                    <DestinationLocation LocationCode="BKK" ></DestinationLocation>
                    <MarketingAirline Code="BI" FlightNumber="513" ></MarketingAirline>
                    <OriginLocation LocationCode="BWN" ></OriginLocation>
                </FlightSegment>
                <FlightSegment DepartureDateTime="2016-07-25T13:30:00" FlightNumber="514" NumberInParty="3" ResBookDesigCode="S" Status="NN" >
                    <DestinationLocation LocationCode="BWN" ></DestinationLocation>
                    <MarketingAirline Code="BI" FlightNumber="514" ></MarketingAirline>
                    <OriginLocation LocationCode="BKK" ></OriginLocation>
                </FlightSegment>
                <FlightSegment DepartureDateTime="2016-07-25T19:00:00" FlightNumber="685" NumberInParty="3" ResBookDesigCode="S" Status="NN" >
                    <DestinationLocation LocationCode="MNL" ></DestinationLocation>
                    <MarketingAirline Code="BI" FlightNumber="685" ></MarketingAirline>
                    <OriginLocation LocationCode="BWN" ></OriginLocation>
                </FlightSegment>
            </OriginDestinationInformation>
        </OTA_AirBookRQ>
        <OTA_AirPriceRQ>
            <PriceRequestInformation Retain="true" >
                <OptionalQualifiers>
                    <PricingQualifiers>
                        <PassengerType Code="ADT" Quantity="2" ></PassengerType>
                        <PassengerType Code="CNN" Quantity="1" ></PassengerType>
                        <PassengerType Code="INF" Quantity="1" ></PassengerType>
                    </PricingQualifiers>
                </OptionalQualifiers>
            </PriceRequestInformation>
        </OTA_AirPriceRQ>
        <PostProcessing IgnoreAfter="false"/>
        <PreProcessing IgnoreBefore="false"/>
    </EnhancedAirBookRQ>
    

    Infant with seat payload :

    <EnhancedAirBookRQ version="3.6.0" HaltOnError="true"  xmlns="http://services.sabre.com/sp/eab/v3_6">
        <OTA_AirBookRQ>
            <HaltOnStatus Code="SS" ></HaltOnStatus>
            <OriginDestinationInformation>
                <FlightSegment DepartureDateTime="2016-07-22T21:55:00" FlightNumber="686" NumberInParty="4" ResBookDesigCode="S" Status="NN" >
                    <DestinationLocation LocationCode="BWN" ></DestinationLocation>
                    <MarketingAirline Code="BI" FlightNumber="686" ></MarketingAirline>
                    <OriginLocation LocationCode="MNL" ></OriginLocation>
                </FlightSegment>
                <FlightSegment DepartureDateTime="2016-07-23T10:55:00" FlightNumber="513" NumberInParty="3" ResBookDesigCode="S" Status="NN" >
                    <DestinationLocation LocationCode="BKK" ></DestinationLocation>
                    <MarketingAirline Code="BI" FlightNumber="513" ></MarketingAirline>
                    <OriginLocation LocationCode="BWN" ></OriginLocation>
                </FlightSegment>
                <FlightSegment DepartureDateTime="2016-07-25T13:30:00" FlightNumber="514" NumberInParty="3" ResBookDesigCode="S" Status="NN" >
                    <DestinationLocation LocationCode="BWN" ></DestinationLocation>
                    <MarketingAirline Code="BI" FlightNumber="514" ></MarketingAirline>
                    <OriginLocation LocationCode="BKK" ></OriginLocation>
                </FlightSegment>
                <FlightSegment DepartureDateTime="2016-07-25T19:00:00" FlightNumber="685" NumberInParty="3" ResBookDesigCode="S" Status="NN" >
                    <DestinationLocation LocationCode="MNL" ></DestinationLocation>
                    <MarketingAirline Code="BI" FlightNumber="685" ></MarketingAirline>
                    <OriginLocation LocationCode="BWN" ></OriginLocation>
                </FlightSegment>
            </OriginDestinationInformation>
        </OTA_AirBookRQ>
        <OTA_AirPriceRQ>
            <PriceRequestInformation Retain="true" >
                <OptionalQualifiers>
                    <PricingQualifiers>
                        <PassengerType Code="ADT" Quantity="2" ></PassengerType>
                        <PassengerType Code="CNN" Quantity="1" ></PassengerType>
                        <PassengerType Code="INS" Quantity="1" ></PassengerType>
                    </PricingQualifiers>
                </OptionalQualifiers>
            </PriceRequestInformation>
        </OTA_AirPriceRQ>
        <PostProcessing IgnoreAfter="false" ></PostProcessing>
        <PreProcessing IgnoreBefore="false" ></PreProcessing>
    </EnhancedAirBookRQ>