Sabre How to create PNR with child and or infant a

2019-02-16 00:40发布

问题:

When I try to create PNR with child and or infant passengers I get this error, however when it is Adult only it works fine. I've read their documentation I don't know what I did wrong. Please help.

Payload :

<PassengerDetailsRQ version="3.2.0" HaltOnError="true" IgnoreOnError="false"  xmlns="http://services.sabre.com/sp/pd/v3_2">
<PostProcessing IgnoreAfter="false" RedisplayReservation="true" >
    <EndTransactionRQ>
        <EndTransaction Ind="true" ></EndTransaction>
        <Source ReceivedFrom="TEST" ></Source>
    </EndTransactionRQ>
</PostProcessing>
<PriceQuoteInfo>
    <Link NameNumber="1.1" Record="1" ></Link>
    <Link NameNumber="2.1" Record="1" ></Link>
    <Link NameNumber="3.1" Record="1" ></Link>
</PriceQuoteInfo>
<SpecialReqDetails>
    <SpecialServiceRQ>
        <SpecialServiceInfo>
            <SecureFlight SegmentNumber="A" >
                <PersonName DateOfBirth="1980-01-01" Gender="M" NameNumber="1.1" >
                    <GivenName>JOHN</GivenName>
                    <Surname>DOE</Surname>
                </PersonName>
            </SecureFlight>
            <SecureFlight SegmentNumber="A" >
                <PersonName DateOfBirth="1980-03-01" Gender="F" NameNumber="2.1" >
                    <GivenName>JANE</GivenName>
                    <Surname>DOE</Surname>
                </PersonName>
            </SecureFlight>
            <SecureFlight SegmentNumber="A" >
                <PersonName DateOfBirth="2006-03-01" Gender="M" NameNumber="3.1" >
                    <GivenName>CHILD</GivenName>
                    <Surname>DOE</Surname>
                </PersonName>
            </SecureFlight>
        </SpecialServiceInfo>
    </SpecialServiceRQ>
</SpecialReqDetails>
<TravelItineraryAddInfoRQ>
    <AgencyInfo>
        <Address>
            <AddressLine>address here</AddressLine>
            <CityName>city here</CityName>
            <CountryCode>PH</CountryCode>
            <PostalCode>postal code here</PostalCode>
            <StreetNmbr>street number here</StreetNmbr>
        </Address>
        <Ticketing TicketType="7T-" ></Ticketing>
    </AgencyInfo>
    <CustomerInfo>
        <ContactNumbers>
            <ContactNumber Phone="817-555-1212" PhoneUseType="A" ></ContactNumber>
        </ContactNumbers>
        <Email Address="test.email@someemail.com" ShortText="ABC123" Type="CC" ></Email>
        <PersonName Infant="false" NameNumber="1.1" PassengerType="ADT" >
            <GivenName>JOHN</GivenName>
            <Surname>DOE</Surname>
        </PersonName>
        <PersonName Infant="false" NameNumber="2.1" PassengerType="ADT" >
            <GivenName>JANE</GivenName>
            <Surname>DOE</Surname>
        </PersonName>
        <PersonName Infant="false" NameNumber="3.1" NameReference="C10" PassengerType="CNN" >
            <GivenName>CHILD</GivenName>
            <Surname>DOE</Surname>
        </PersonName>
    </CustomerInfo>
</TravelItineraryAddInfoRQ>

Response :

<?xml version='1.0' encoding='UTF-8'?>
<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'>XXXXXXXXXXXXXXXXXXX</eb:PartyId>
            </eb:To>
            <eb:CPAId>XXXX</eb:CPAId>
            <eb:ConversationId>XXXXXXXXXXXXXX</eb:ConversationId>
            <eb:Service>PassengerDetailsRQ</eb:Service>
            <eb:Action>PassengerDetailsRS</eb:Action>
            <eb:MessageData>
                <eb:MessageId>250361059799101760</eb:MessageId>
                <eb:Timestamp>2016-07-18T01:39:41</eb:Timestamp>
                <eb:RefToMessageId>XXXXXXXXXXXXXXXXXXXXXX</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'>XXXXXXXXXXXXX</wsse:BinarySecurityToken>
        </wsse:Security>
    </soap-env:Header>
    <soap-env:Body>
        <PassengerDetailsRS xmlns='http://services.sabre.com/sp/pd/v3_2'>
            <ApplicationResults xmlns='http://services.sabre.com/STL_Payload/v02_01' status='NotProcessed'>
                <Error type='BusinessLogic' timeStamp='2016-07-17T20:39:41.169-05:00'>
                    <SystemSpecificResults>
                        <Message code='ERR.SWS.HOST.ERROR_IN_RESPONSE'>CHILD DETAILS REQUIRED IN SSR - ENTER 3CHLD/...</Message>
                    </SystemSpecificResults>
                </Error>
            </ApplicationResults>
        </PassengerDetailsRS>
    </soap-env:Body>
</soap-env:Envelope>

Payload with infant :

<PassengerDetailsRQ version="3.2.0" HaltOnError="true" IgnoreOnError="false"  xmlns="http://services.sabre.com/sp/pd/v3_2">
<PostProcessing IgnoreAfter="false" RedisplayReservation="true" >
    <EndTransactionRQ>
        <EndTransaction Ind="true" ></EndTransaction>
        <Source ReceivedFrom="TEST" ></Source>
    </EndTransactionRQ>
</PostProcessing>
<PriceQuoteInfo>
    <Link NameNumber="1.1" Record="1" ></Link>
    <Link NameNumber="2.1" Record="1" ></Link>
    <Link NameNumber="3.1" Record="2" ></Link>
    <Link NameNumber="4.1" Record="3" ></Link>
</PriceQuoteInfo>
<SpecialReqDetails>
    <AddRemarkRQ>
        <RemarkInfo>
            <Remark Code="H" SegmentNumber="A" Type="General" >
                <Text>TEXT</Text>
            </Remark>
        </RemarkInfo>
    </AddRemarkRQ>
    <SpecialServiceRQ>
        <SpecialServiceInfo>
            <SecureFlight SegmentNumber="A" >
                <PersonName DateOfBirth="1980-01-01" Gender="M" NameNumber="1.1" >
                    <GivenName>JOHN</GivenName>
                    <Surname>DOE</Surname>
                </PersonName>
            </SecureFlight>
            <SecureFlight SegmentNumber="A" >
                <PersonName DateOfBirth="1980-03-01" Gender="F" NameNumber="2.1" >
                    <GivenName>JANE</GivenName>
                    <Surname>DOE</Surname>
                </PersonName>
            </SecureFlight>
            <SecureFlight SegmentNumber="A" >
                <PersonName DateOfBirth="2006-03-01" Gender="M" NameNumber="3.1" >
                    <GivenName>CHILD</GivenName>
                    <Surname>DOE</Surname>
                </PersonName>
            </SecureFlight>
            <SecureFlight SegmentNumber="A" >
                <PersonName DateOfBirth="2016-01-01" Gender="MI" NameNumber="4.1" >
                    <GivenName>INFANT</GivenName>
                    <Surname>DOE</Surname>
                </PersonName>
            </SecureFlight>
            <Service SegmentNumber="A" SSR_Code="CHLD" >
                <PersonName NameNumber="3.1" ></PersonName>
                <Text>01MAR06</Text>
            </Service>
            <Service SegmentNumber="A" SSR_Code="INFT" >
                <PersonName NameNumber="1.1" ></PersonName>
                <Text>DOE/INFANT/01JAN16</Text>
            </Service>
        </SpecialServiceInfo>
    </SpecialServiceRQ>
</SpecialReqDetails>
<TravelItineraryAddInfoRQ>
    <AgencyInfo>
        <Address>
            <AddressLine>address here</AddressLine>
            <CityName>city here</CityName>
            <CountryCode>PH</CountryCode>
            <PostalCode>postal code here</PostalCode>
            <StreetNmbr>street number here</StreetNmbr>
        </Address>
        <Ticketing TicketType="7TAW" ></Ticketing>
    </AgencyInfo>
    <CustomerInfo>
        <ContactNumbers>
            <ContactNumber Phone="817-555-1212" PhoneUseType="A" ></ContactNumber>
        </ContactNumbers>
        <Email Address="test.email@someemail.com" ShortText="ABC123" Type="CC" ></Email>
        <PersonName Infant="false" NameNumber="1.1" NameReference="A36" PassengerType="ADT" >
            <GivenName>JOHN</GivenName>
            <Surname>DOE</Surname>
        </PersonName>
        <PersonName Infant="false" NameNumber="2.1" NameReference="A36" PassengerType="ADT" >
            <GivenName>JANE</GivenName>
            <Surname>DOE</Surname>
        </PersonName>
        <PersonName Infant="false" NameNumber="3.1" NameReference="C10" PassengerType="CNN" >
            <GivenName>CHILD</GivenName>
            <Surname>DOE</Surname>
        </PersonName>
        <PersonName Infant="true" NameNumber="4.1" NameReference="I6" PassengerType="INF" >
            <GivenName>INFANT</GivenName>
            <Surname>DOE</Surname>
        </PersonName>
    </CustomerInfo>
</TravelItineraryAddInfoRQ>

Result with infant :

<PassengerDetailsRS xmlns='http://services.sabre.com/sp/pd/v3_2'>
        <ApplicationResults xmlns='http://services.sabre.com/STL_Payload/v02_01' status='NotProcessed'>
            <Error type='BusinessLogic' timeStamp='2016-07-20T10:53:30.328-05:00'>
                <SystemSpecificResults>
                    <Message code='ERR.SWS.HOST.ERROR_IN_RESPONSE'>CANNOT ASSOC TO INFANT NAME</Message>
                </SystemSpecificResults>
            </Error>
        </ApplicationResults>
</PassengerDetailsRS>

EnhancedAirBookRQ : http://pastebin.com/uZtbApR1

回答1:

I will add some information that will helpful

1) When child present (CNN)

add SecureFlight segment

<SecureFlight SegmentNumber="A" >
       <PersonName DateOfBirth="2007-05-01" Gender="F" NameNumber="2.1" >
                <GivenName>CHILD</GivenName>
                <Surname>TESTBOOKING</Surname>
       </PersonName> 
</SecureFlight>

`Add a SSR for child

<Service SSR_Code="CHLD">
      <PersonName NameNumber="2.1"/>
      <Text>01MAY07</Text>
</Service>

For SSR we need child DOB as shown in the exapmle

2) When INF( infant without seat/lap infant) present

add SecureFlight segment. Make sure in this case as NameNumber use a ADT name number since infant is a lap infant

<SecureFlight SegmentNumber="A" >
       <PersonName DateOfBirth="2017-01-20" Gender="M" NameNumber="1.1" >
                <GivenName>INF</GivenName>
                <Surname>TESTBOOKING</Surname>
       </PersonName> 
</SecureFlight>

`Add a SSR for child

<Service SSR_Code="INFT">
      <PersonName NameNumber="1.1"/>
      <Text>TESTBOOKING/INF/20JAN17</Text>
</Service>

For SSR we also need ADT NameNumber and for text it should be in this format LASTNAME/FIRSTNAME/DATEOFBIRTH as in exapmle

3) When INS( infant with seat) present

add SecureFlight segment. Here we don't need adult NameNumber. but When create Customer Passenger use as Infant="false"

<SecureFlight SegmentNumber="A" >
       <PersonName DateOfBirth="2017-01-20" Gender="M" NameNumber="3.1" >
                <GivenName>INS</GivenName>
                <Surname>TESTBOOKING</Surname>
       </PersonName> 
</SecureFlight>

`Add a SSR for child

<Service SSR_Code="INFT">
      <PersonName NameNumber="3.1"/>
      <Text>TESTBOOKING/INS/20JAN17/OS</Text>
</Service>

For SSR we also need ADT NameNumber and for text it should be in this format LASTNAME/FIRSTNAME/DATEOFBIRTH/OS as in exapmle.



回答2:

You need to change de PQ

<Link NameNumber="1.1" Record="1" ></Link>
<Link NameNumber="2.1" Record="1" ></Link>
<Link NameNumber="3.1" Record="2" ></Link>

You put Record="1" in all cases, but you have a child, so your NameNumber 3.1 needs to be associated to Record="2". If you dont do that you will have adt fare for all your passengers.

Edit:

Record="2" is not always for children but also could be for infant, for example if you have 1 ADT + 1 CNN (children) + 1 INF then you need this:

<Link NameNumber="1.1" Record="1" ></Link>
<Link NameNumber="2.1" Record="2" ></Link>
<Link NameNumber="3.1" Record="3" ></Link>

Where NameNumber 2.1 and Record 2 are the child passenger, and NameNumber=3 and record 3 are the infant passenger, BUT if you have 1 ADT + 1 INF, then you need:

<Link NameNumber="1.1" Record="1" ></Link>
<Link NameNumber="2.1" Record="2" ></Link>

And now the record 2 and namenumber 2.1 are for infant passenger.

PassengerDetailsRQ:

        <soapenv:Body>
        <PassengerDetailsRQ version="3.2.0" HaltOnError="true" IgnoreOnError="true">
            <PostProcessing IgnoreAfter="false" RedisplayReservation="true">
                <EndTransactionRQ>
                    <EndTransaction Ind="true"/>
                    <Source ReceivedFrom="TEST"/>
                </EndTransactionRQ>
            </PostProcessing>
            <PriceQuoteInfo>
                <Link NameNumber="1.1" Record="1"/>
                <Link NameNumber="2.1" Record="2"/>
                <Link NameNumber="3.1" Record="3"/>
            </PriceQuoteInfo>
            <SpecialReqDetails>
                <AddRemarkRQ>
                    <RemarkInfo>
                        <Remark Code="H" SegmentNumber="1" Type="General">
                            <Text>TEXT</Text>
                        </Remark>
                    </RemarkInfo>
                </AddRemarkRQ>
                <SpecialServiceRQ>
                    <SpecialServiceInfo>
                        <SecureFlight SegmentNumber="A" >
                            <PersonName DateOfBirth="1980-01-01" Gender="M" NameNumber="1.1" >
                                <GivenName>JOHN</GivenName>
                                <Surname>DOE</Surname>
                            </PersonName>
                        </SecureFlight>
                        <SecureFlight SegmentNumber="A" >
                            <PersonName DateOfBirth="1980-03-01" Gender="F" NameNumber="2.1" >
                                <GivenName>CHILD</GivenName>
                                <Surname>DOE</Surname>
                            </PersonName>
                        </SecureFlight>
                        <SecureFlight SegmentNumber="A" >
                            <PersonName DateOfBirth="2006-03-01" Gender="MI" NameNumber="3.1" >
                                <GivenName>INFANT</GivenName>
                                <Surname>DOE</Surname>
                            </PersonName>
                        </SecureFlight>
                        <Service SSR_Code="INFT">
                            <PersonName NameNumber="1.1" />
                            <Text>DOE/INFANT/10OCT15</Text>
                        </Service>
                    </SpecialServiceInfo>
                </SpecialServiceRQ>
            </SpecialReqDetails>
            <TravelItineraryAddInfoRQ>
                <AgencyInfo>
                    <Address>
                        <AddressLine>address here</AddressLine>
                        <CityName>city here</CityName>
                        <CountryCode>PH</CountryCode>
                        <PostalCode>postal code here</PostalCode>
                        <StreetNmbr>street number here</StreetNmbr>
                    </Address>
                    <Ticketing TicketType="7T-" ></Ticketing>
                </AgencyInfo>
                <CustomerInfo>
                    <ContactNumbers>
                        <ContactNumber Phone="817-555-1212" PhoneUseType="A" ></ContactNumber>
                        <ContactNumber Phone="817-555-1212" PhoneUseType="H" ></ContactNumber>
                    </ContactNumbers>
                    <Email Address="test.email@someemail.com" NameNumber="1.1" />
                    <PersonName NameNumber="1.1" PassengerType="ADT" >
                        <GivenName>JOHN</GivenName>
                        <Surname>DOE</Surname>
                    </PersonName>
                    <PersonName NameNumber="2.1" PassengerType="CNN" >
                        <GivenName>CHILD</GivenName>
                        <Surname>DOE</Surname>
                    </PersonName>
                    <PersonName Infant="true" NameNumber="3.1" PassengerType="INF" >
                        <GivenName>INFANT</GivenName>
                        <Surname>DOE</Surname>
                    </PersonName>
                </CustomerInfo>
            </TravelItineraryAddInfoRQ>
        </PassengerDetailsRQ>
    </soapenv:Body>


回答3:

You can add the special service 'CHLD' right after your last SecureFlight element (date of birth format should be DDMMMYY).

<SpecialReqDetails>
    <SpecialServiceRQ>
        <SpecialServiceInfo>
            <SecureFlight SegmentNumber="A" >
                <PersonName DateOfBirth="1980-01-01" Gender="M" NameNumber="1.1" >
                    <GivenName>JOHN</GivenName>
                    <Surname>DOE</Surname>
                </PersonName>
            </SecureFlight>
            <SecureFlight SegmentNumber="A" >
                <PersonName DateOfBirth="1980-03-01" Gender="F" NameNumber="2.1" >
                    <GivenName>JANE</GivenName>
                    <Surname>DOE</Surname>
                </PersonName>
            </SecureFlight>
            <SecureFlight SegmentNumber="A" >
                <PersonName DateOfBirth="2006-03-01" Gender="M" NameNumber="3.1" >
                    <GivenName>CHILD</GivenName>
                    <Surname>DOE</Surname>
                </PersonName>
            </SecureFlight>
            <Service SSR_Code="CHLD">
                <PersonName NameNumber="3.1"/>
                <Text>20DEC80</Text>
              </Service>
        </SpecialServiceInfo>
    </SpecialServiceRQ>
</SpecialReqDetails>


标签: soap sabre