Skip to content

Order Detail ​

The Retrieve service allows to retrieve a booking from the Partner reservation system and returns all the details with its booking elements (e.g. passenger names, segments, flight info, class booked, etc.). Retrieve can be used for: checking on the success of ticket issue, ticket status, segments status, price breakdown etc.

Endpoint ​

Method: POST

URL: /json/orderDetail

Request Parameters ​

ParameterTypeRequiredDescription
└ authenticationObjectYesAuthentication details
  └ partnerIdStringYesPartner Id
  └ signStringYesSignature for the request
└ dataObjectYes
  └ orderNumStringYesUnique order number on the Partner side

Request Example ​

json
{
  "authentication": {
    "partnerId": "{{PARTNER_ID}}",
    "sign": "{{SIGN}}"
  },
  "data": {
    "orderNum": "917685547687690201"
  }
}

Response Parameters ​

ParameterTypeRequiredDescription
└ errorCodeStringYesError code, refer to Error Code List
└ errorMsgStringYesError message
└ dataObjectYesOnly if the errorCode returns "0", returned data would not be null
  └ orderStatusStringYesOrder Status, refer to Order Status List
  └ orderNumStringYesUnique order number on the Partner side
  └ createdTimeStringNoOrder creation time [yyyy-MM-ddTHH:mm:ss±HH:MM]
  └ ticketTimeLimitStringYesTicket time limit [yyyy-MM-ddTHH:mm:ss±HH:MM]
  └ pnrStringYesA reference number in the Provider system. This value must be unique and not repeated across different orders of the Partner
  └ passengers[Object]YesPassenger information
   └ passengerIdStringYesPassenger sequence ID
   └ firstNameStringYesFirst name
   └ lastNameStringYesLast name
   └ nationalityStringYesNationality [country code]
   └ psgTypeStringYesPassenger type (ADT, CHD, INF)
   └ genderStringYesGender, M or F
   └ birthdayStringYesBirthday, format [yyyy-mm-dd]
   └ cardTypeStringYesTravel document type
   └ cardNumStringYesTravel document number
   └ cardExpiredDateStringYesTravel document expired date, format [yyyy-mm-dd]
  └ solutions[Object]YesPricing information
   └ fareSourceStringNoFare source type, e.g. Regular, Charter, NDC, B2B
   └ categoryStringNoProduct type, e.g. VI (virtual interlining)
   └ fareTypeStringYesFare type: Public or Private
   └ validatingCarrierStringYesTicketing airline
   └ currencyStringYesCurrency code
   └ adtFareNumberYesAdult fare, per one adult passenger (not the sum for all adult passengers in the solution)
   └ adtTaxNumberYesAdult tax, per one adult passenger (not the sum for all adult passengers in the solution)
   └ chdFareNumberNoChild fare, per one child passenger (not the sum for all child passengers in the solution)
   └ chdTaxNumberNoChild tax, per one child passenger (not the sum for all child passengers in the solution)
   └ infFareNumberNoInfant fare, per one infant passenger (not the sum for all infant passengers in the solution)
   └ infTaxNumberNoInfant tax, per one infant passenger (not the sum for all infant passengers in the solution)
   └ tktFeeNumberNoTicketing fee, per one passenger (not the sum for all passengers in the solution)
   └ adultsIntegerNoNumber of adult passengers
   └ childrenIntegerNoNumber of child passengers
   └ infantsIntegerNoNumber of infant passengers
   └ baggageMapObjectNoBaggage rules Map by passenger type (ADT, CHD, INF)
    └ ADT[Object]NoBaggage rules for ADT
     └ segmentIdList[String]YesArray of segment IDs (segments -> segmentId)
     └ baggageAmountStringNoFree baggage amount: (e.g., "1PC")
     └ baggageWeightStringNoFree baggage weight:
Unity: KG - kilogram, LB - pounds
(e.g., "23KG")
     └ baggageSize[String]NoBaggage dimensions [L, W, H]:
Unity: CM - centimeter, IN - inches
(e.g., ["76CM", "50CM", "30CM"] or ["158CM"])
     └ carryOnAmountStringNoFree carry-on amount: (e.g., "1PC")
     └ carryOnWeightStringNoFree carry-on weight:
Unity: KG - kilogram, LB - pounds
(e.g., "10KG")
     └ carryOnSize[String]NoCarry-on dimensions [L, W, H]:
Unity: CM - centimeter, IN - inches
(e.g., ["55CM", "40CM", "20CM"] or ["115CM"])
    └ CHD[Object]NoBaggage rules for CHD (fields are the same as ADT)
    └ INF[Object]NoBaggage rules for INF (fields are the same as ADT)
  └ journeys[Object]YesItinerary information
   └ segments[Object]YesSegment information
    └ segmentIdStringYesSegment ID, unique identification
    └ marketingCarrierStringYesMarketing Carrier [IATA airline code]
    └ flightNumIntegerYesFlight Number
    └ operatingCarrierStringNoOperating Carrier [IATA airline code]
    └ equipmentStringNoAircraft equipment IATA-code
    └ cabinClassStringYesCabin class, refer to Сabin Class List
    └ bookingCodeStringYesBooking Code
    └ departureStringYesDeparture [IATA airport code]
    └ arrivalStringYesArrival [IATA airport code]
    └ departureTerminalStringNoDeparture Terminal
    └ arrivalTerminalStringNoArrival Terminal
    └ flightTimeIntegerNoFly Time, Unit: minutes
    └ departureDateStringYesDeparture Date [yyyy-MM-dd](Local time of departure location)
    └ departureTimeStringYesDeparture Time [HH:mm](Local time of departure location)
    └ arrivalDateStringYesArrival Date [yyyy-MM-dd](Local time of arrival location)
    └ arrivalTimeStringYesArrival Time [HH:mm](Local time of arrival location)
    └ fareBasisStringYesFare basis code
    └ stops[Object]NoDetails about technical stops
     └ locationStringNoAirport IATA code of the stop location
     └ arrivalDateStringNoTechnical stop arrival date (yyyy-MM-dd)
     └ arrivalTimeStringNoTechnical stop arrival time (HH:mm)
     └ departureDateStringNoTechnical stop departure date (yyyy-MM-dd)
     └ departureTimeStringNoTechnical stop departure time (HH:mm)
  └ pnrList[Object]NoPNR list as per passengers and flight segments. More information you can find here: PNRList explanation
   └ segmentIdStringYesSegment ID, unique identification (journeys -> segments -> segmentId)
   └ ticketNums[Object]YesPassengers and corresponding ticket information
    └ airPnrStringYesAirline PNR
    └ ticketNumStringNoTicket number
    └ passengerIdStringYesPassenger sequence ID. Consistent with the passengerId under each passenger

Response Example ​

json
{
  "errorCode": "0",
  "errorMsg": "ok",
  "data": {
    "orderStatus": "TO_BE_PAID",
    "orderNum": "917685547687690201",
    "createdTime": "2026-01-16T09:12:48+00:00",
    "ticketTimeLimit": "2026-02-28T10:00:00+00:00",
    "pnr": "WCREDC",
    "passengers": [
      {
        "passengerId": "1",
        "firstName": "GEORGE",
        "lastName": "TAYLOR",
        "nationality": "GB",
        "psgType": "ADT",
        "gender": "M",
        "birthday": "1998-04-26",
        "cardType": "P",
        "cardNum": "6970406",
        "cardExpiredDate": "2030-04-26"
      },
      {
        "passengerId": "2",
        "firstName": "SOPHIA",
        "lastName": "TAYLOR",
        "nationality": "GB",
        "psgType": "CHD",
        "gender": "F",
        "birthday": "2023-06-14",
        "cardType": "P",
        "cardNum": "54645854",
        "cardExpiredDate": "2028-07-25" 
      }
    ],
    "solutions": [
      {
        "fareSource": "Regular",
        "category": "VI",
        "fareType": "Private",
        "validatingCarrier": "W9",
        "currency": "EUR",
        "adtFare": 146.93,
        "adtTax": 0.86,
        "chdFare": 146.93,
        "chdTax": 0.86,
        "infFare": null,
        "infTax": null,
        "tktFee": 0,
        "baggageMap": {
          "ADT": [
            {
              "segmentIdList": [
                "1"
              ],
              "baggageAmount": "1PC",
              "baggageWeight": "23KG",
              "baggageSize": ["76CM", "50CM", "30CM"],
              "carryOnAmount": "1PC",
              "carryOnWeight": "10KG",
              "carryOnSize": ["55CM", "40CM", "20CM"]
            },
            {
              "segmentIdList": [
                "2"
              ],
              "baggageAmount": "1PC",
              "baggageWeight": "23KG",
              "baggageSize": ["76CM", "50CM", "30CM"],
              "carryOnAmount": "1PC",
              "carryOnWeight": "10KG",
              "carryOnSize": ["55CM", "40CM", "20CM"]
            }
          ],
          "CHD": [
            {
              "segmentIdList": [
                "1"
              ],
              "baggageAmount": "1PC",
              "baggageWeight": "23KG",
              "baggageSize": ["76CM", "50CM", "30CM"],
              "carryOnAmount": "1PC",
              "carryOnWeight": "10KG",
              "carryOnSize": ["55CM", "40CM", "20CM"]
            },
            {
              "segmentIdList": [
                "2"
              ],
              "baggageAmount": "1PC",
              "baggageWeight": "23KG",
              "baggageSize": ["76CM", "50CM", "30CM"],
              "carryOnAmount": "1PC",
              "carryOnWeight": "10KG",
              "carryOnSize": ["55CM", "40CM", "20CM"]
            }
          ]
        }
      }
    ],
    "journeys": [
      {
        "segments": [
          {
            "segmentId": "1",
            "marketingCarrier": "W9",
            "flightNum": 5772,
            "operatingCarrier": null,
            "equipment": "JET",
            "cabinClass": "Economy",
            "bookingCode": "X",
            "departure": "IST",
            "arrival": "LGW",
            "departureTerminal": "",
            "arrivalTerminal": "0",
            "flightTime": 245,
            "departureDate": "2026-08-14",
            "departureTime": "16:50",
            "arrivalDate": "2026-08-15",
            "arrivalTime": "18:55",
            "fareBasis": "YRT",
            "stops": [
              {
                "location": "IST",
                "arrivalDate": "2026-08-15",
                "arrivalTime": "10:00",
                "departureDate": "2026-08-15",
                "departureTime": "12:30"
              }
            ]
          }
        ]
      },
      {
        "segments": [
          {
            "segmentId": "2",
            "marketingCarrier": "W9",
            "flightNum": 5729,
            "operatingCarrier": null,
            "equipment": "JET",
            "cabinClass": "Economy",
            "bookingCode": "X",
            "departure": "LGW",
            "arrival": "IST",
            "departureTerminal": "S",
            "arrivalTerminal": "",
            "flightTime": 240,
            "departureDate": "2026-08-22",
            "departureTime": "13:35",
            "arrivalDate": "2026-08-22",
            "arrivalTime": "19:35",
            "fareBasis": "YRT",
            "stops": null
          }
        ]
      }
    ],
    "pnrList": [
      {
        "segmentId": "1",
        "ticketNums": [
          {
            "airPnr": "AAAAAA",
            "ticketNum": "333-544235677",
            "passengerId": "1"
          },
          {
            "airPnr": "AAAAAA",
            "ticketNum": "333-544235111",
            "passengerId": "2"
          }
        ]
      },
      {
        "segmentId": "2",
        "ticketNums": [
          {
            "airPnr": "BBBBBB",
            "ticketNum": "333-544235678",
            "passengerId": "1"
          },
          {
            "airPnr": "CCCCCC",
            "ticketNum": "333-544235222",
            "passengerId": "2"
          }
        ]
      }
    ]
  }
}

PnrList explanation ​

  • pnrList - PNR list as per passengers and flight segments. If the order has not been issued, this object should be returned empty: "pnrList": []. If the order has been issued, all fields in this object must be filled, except for "ticketNum" if the Partner's provider does not return it.

  • segmentId - Segment ID, unique identification. It takes the value from the Response -> data -> journeys -> segments -> segmentId.

  • ticketNums - Passengers and corresponding ticket information.

  • airPnr - Airline PNR. This parameter must always be provided without exceptions.
    If "airPnr" is the same for multiple segments or passengers, the value of this field should be duplicated accordingly.

INFO

It is important not to confuse "airPnr" (Airline PNR) with the order "pnr". The order "pnr" identifies the entire booking in provider's system, while the "airPnr" is the vendor locator generated directly by the operating airline. Passengers must use the "airPnr" for online check-in and booking management on the airline's official website.

  • ticketNum - Ticket number. If the order has been issued, this field must be filled in, except when the Partner's provider does not return it (for example, for LCC content).
    If "ticketNum" is the same for multiple segments or passengers, the value of this field should be duplicated accordingly.

  • passengerId - Passenger sequence ID. Consistent with the passengerId under each passenger.

Error Code List ​

errorCodeerrorMsgDescription
0okRequest has been processed successfully
S001System errorSystem error
S002TimeoutRequest timeout
P001-Parameter is illegal
B002Partner is not exists.PartnerID does not exist
B003Illegal signIllegal sign. Please check your signature
B048Invalid buyerRequest buyer is not matched with order
B037Order is not exists.Order is not exist

TTN Octo API documentation