Search code examples
amadeus

Amadeus PNR Retrieve


I am implementing Amadeus PNR Retrieve using c# .net.

When processing the PNR reply, trying to map passenger data to our internal system. I was using travellerInfo.elementManagementPassenger.reference.number as the link between Amadeus passenger and internal system passenger record.

Below the case where it contains an infant along with two adult. Here infant record comes along with one of the adult and doesn't contain separate reference for the infant. Is anyone have idea about identifying all passengers uniquely?

<travellerInfo>
 <elementManagementPassenger>
      <reference>
        <qualifier>PT</qualifier>
        <number>2</number>
      </reference>
      <segmentName>NM</segmentName>
      <lineNumber>1</lineNumber>
 </elementManagementPassenger>
 <enhancedPassengerData>
      <enhancedTravellerInformation>
        <travellerNameInfo>
          <quantity>1</quantity>
          <infantIndicator>1</infantIndicator>
        </travellerNameInfo>
        <otherPaxNamesDetails>
          <nameType>UN</nameType>
          <referenceName>Y</referenceName>
          <displayedName>Y</displayedName>
          <surname>TESTER</surname>
          <givenName>TEST MR</givenName>
        </otherPaxNamesDetails>
      </enhancedTravellerInformation>
  </enhancedPassengerData>
  <enhancedPassengerData>
      <enhancedTravellerInformation>
        <travellerNameInfo>
          <quantity>1</quantity>
          <type>INF</type>
        </travellerNameInfo>
        <otherPaxNamesDetails>
          <nameType>UN</nameType>
          <referenceName>Y</referenceName>
          <displayedName>Y</displayedName>
          <surname>TESTER</surname>
          <givenName>TEST1 MSTR</givenName>
        </otherPaxNamesDetails>
      </enhancedTravellerInformation>
   </enhancedPassengerData>
</travellerInfo>
<travellerInfo>
   <elementManagementPassenger>
      <reference>
        <qualifier>PT</qualifier>
        <number>1</number>
      </reference>
      <segmentName>NM</segmentName>
      <lineNumber>2</lineNumber>
    </elementManagementPassenger>
   <enhancedPassengerData>
      <enhancedTravellerInformation>
        <travellerNameInfo>
          <quantity>1</quantity>
        </travellerNameInfo>
        <otherPaxNamesDetails>
          <nameType>UN</nameType>
          <referenceName>Y</referenceName>
          <displayedName>Y</displayedName>
          <surname>TESTER</surname>
          <givenName>TEST3 MRS</givenName>
        </otherPaxNamesDetails>
      </enhancedTravellerInformation>
   </enhancedPassengerData>
</travellerInfo>

Cost Information

<referenceForTstData>
  <reference>
    <qualifier>PT</qualifier>
    <number>1</number>
  </reference>
  <reference>
    <qualifier>ST</qualifier>
    <number>1</number>
  </reference>
  <reference>
    <qualifier>ST</qualifier>
    <number>2</number>
  </reference>
</referenceForTstData>

Solution

  • I have contacted the Amadeus tech support and below is solution

    In addition to checking the referenceForTstData, needs to check the fareBasisInfo element under tstData. It contains ticketDesignator which will be CH for child and INF for infant

      <fareBasisInfo>
          <fareElement>
            <primaryCode>xxx</primaryCode>
            <notValidBefore>xxx</notValidBefore>
            <notValidAfter>xxx</notValidAfter>
            <baggageAllowance>1PC</baggageAllowance>
            <fareBasis>2KU</fareBasis>
            <ticketDesignator>CH</ticketDesignator>
          </fareElement>         
        </fareBasisInfo>