Amadeus Air_SellFromRecommendation API(버전 05.2)의 기술 용어를 정리한 문서입니다. Master Pricer Travelboard Search로 검색한 추천 결과(Recommendation)를 기반으로 실제 항공편 예약(Booking)을 생성하는 API입니다.
1. 개요
Air_SellFromRecommendation 은 항공편 검색 결과에서 선택한 여정을 실제 GDS 인벤토리에 Sell(판매/확약)하는 Amadeus API입니다.
Request : 검색 결과의 항공편 정보(편명, 날짜, 클래스 등)와 승객 수, 액션 코드를 전달
Reply : 각 구간의 예약 확정 상태(HK/NN 등)와 운항 세부 정보 반환
항목 내용 API 명 Air_SellFromRecommendation플로우 단계 Step 7 — 예약 생성 목적 선택한 항공편의 좌석 확보 (Sell) 이전 단계 MiniRule_GetFromRec 다음 단계 PNR_AddMultiElements
검색(MPTBS) → 판매(SellFromRecommendation) → PNR 저장의 플로우에서 핵심 단계입니다. 검색 결과의 Recommendation을 그대로 전달하여 예약을 생성하며, 좌석 확보 전 인벤토리 가용성을 실시간으로 확인합니다.
05.2 이전 버전(05.2.1)과의 차이점: TVL 세그먼트의 출발/도착 시간 형식이 n..4(가변 4자리)에서 n4(고정 4자리)로 변경되어 앞자리 0이 사라지는 문제를 방지합니다.
2. Query 구조 (요청)
최상위 구조
엔티티 구조명 St Rep 설명 messageActionDetailsMessage action details C 1 메시지 액션 정보. 메시지의 기능을 지정 originatorDetailsGroup C 1 ORG 세그먼트를 포함하는 그룹 recordLocatorReservation control information C 1 PNR Record Locator itineraryDetailsGroup C 99 여정(O&D) 그룹. 출발지-도착지 쌍 originDestinationDetailsOrigin and destination details M 1 첫 출발 도시와 최종 도착 도시 messageMessage action details C 1 Master Pricer 알고리즘 사용 여부 지정 segmentInformationGroup M 9 구간 정보 그룹. 최대 9개 구간 travelProductInformationTravel product information M 1 항공편 상세 정보 relatedproductInformationRelated product information M* 1 예약 관련 정보 (승객 수, 액션 코드 등)
M = Mandatory (필수)
M* = Mandatory for implementation (구현 필수, IATA PADIS 기준과 다름)
C = Conditional (조건부)
3. Reply 구조 (응답)
최상위 구조
엔티티 구조명 St Rep 설명 messageMessage action details C 1 메시지 기능 및 비즈니스 기능 표시 errorAtMessageLevelGroup C 5 메시지 레벨 오류 그룹. 일반 처리 오류 errorSegmentApplication error information M 1 에러 코드 informationTextInteractive free text C 1 에러에 대한 자유 형식 텍스트 itineraryDetailsGroup C 99 여정 상세 그룹 originDestinationOrigin and destination details M 1 출발지/도착지 쌍 errorItinerarylevelGroup C 5 O&D 레벨 오류 그룹 segmentInformationGroup C 9 항공편 정보 그룹 flightDetailsTravel product information M 1 항공편 상세 정보 apdSegmentAdditional product details C 1 운항 정보(기재, 경유 등) actionDetailsRelated product information M* 1 예약 액션 상세 (확정 상태) informationTextInteractive free text C 1 항공사가 부가한 정보 텍스트 errorAtSegmentLevelGroup C 5 구간 레벨 오류 그룹
오류는 세 단계로 반환됩니다: 메시지 레벨 (전체 요청 실패) → O&D 레벨 (특정 여정 실패) → 세그먼트 레벨 (특정 구간 실패). 각 레벨별 오류를 별도로 처리해야 합니다.
4. 주요 데이터 구조
4-1. Message Action Details (메시지 액션)
Query와 Reply 양쪽에서 사용되는 메시지 기능 정보입니다.
messageFunctionDetails
필드 형식 설명 messageFunctionan..3 메시지 기능 코드. Query에서 유효 값은 183(Lowest fare across airline, flight, class criteria)만 허용 additionalMessageFunctionan..3 (×20) 추가 메시지 기능 코드 businessFunctionan..3 비즈니스 기능 코드. O&D 레벨 MSG에서 MP(Master Pricer) 사용 responsibleAgencyan..3 코드 리스트 책임 기관 코드 responseTypean..3 응답 유형 코드
PNR Record Locator 관련 정보입니다.
필드 형식 설명 companyIdan..35 회사 식별자 controlNumberan..20 PNR Record Locator 번호 controlTypean1 제어 유형 코드. → Reservation Control Type 코드 참조 datean..35 날짜 timen..9 시간
4-3. Origin and Destination Details (출발지·도착지)
여정의 출발지와 목적지를 나타냅니다.
필드 형식 설명 originan..3 출발 도시/공항 IATA 코드. 예: NCE, ICN destinationan..3 도착 도시/공항 IATA 코드. 예: CDG, LAX
항공편의 핵심 식별 정보입니다. Query와 Reply에서 모두 사용됩니다.
flightDate (운항 일자)
필드 형식 설명 departureDatean..6 출발일 (ddMMyy 형식). 예: 010306 departureTimen4 출발 시간 (hhmm 고정 4자리). 예: 1245 arrivalDatean..6 도착일. 야간 비행·시차로 출발일과 다를 수 있음 arrivalTimen4 도착 시간 (hhmm 고정 4자리). 예: 1300 dateVariationn1 출발일과 도착일 간 날짜 차이
boardPointDetails / offpointDetails (출발·도착 공항)
필드 형식 설명 trueLocationIdan..3 (Query) / an..25 (Reply) IATA 공항 코드. 예: NCE, ICN trueLocationan..17 공항 전체 명칭 (Reply 전용)
companyDetails (항공사 정보)
필드 형식 설명 marketingCompanyan..35 마케팅 항공사 IATA 코드. 예: AF, KE operatingCompanyan..35 실제 운항 항공사 코드. 코드셰어 시 마케팅 항공사와 다름 (Reply 전용) otherCompanyan..35 기타 항공사 코드 (Reply 전용)
flightIdentification (편명 식별)
필드 형식 설명 flightNumberan..5 (Query) / an..4 (Reply) 항공편 번호. 예: 7713 bookingClassan..2 예약 클래스(RBD). 예: Y, C, F operationalSuffixan..3 편명 접미사. 동일 편명의 변형 구분. 예: A modifieran..7 (×3) Dominance 지시자. Marriage 처리에 사용 (Reply 전용)
flightTypeDetails (항공편 유형)
필드 형식 설명 flightIndicatoran..6 (×9) 항공편 기능 정보 코드. → Flight Indicator 코드 참조 specialSegmentan..3 처리 지시자. N=Non-polling, P=Polling
marriageDetails (결합 구간 정보)
필드 형식 설명 relationan..3 결합 관계 코드. → Marriage Relation 코드 참조 marriageIdentifiern..10 결합 그룹 번호 lineNumbern..6 Marriage 내 구간 순서 번호 otherRelationan..3 추가 관계 코드 (Reply 전용) carrierCodean..35 결합 구간의 항공사 코드 (Reply 전용)
승객 수와 예약 액션 코드를 담습니다.
필드 형식 설명 quantityn..15 승객 수 (Number in Party) statusCodean..3 (×10) 예약 상태 코드. Query: NN(Sell) 또는 OX(Cancel). Reply: HK(Confirmed) 등 → Segment Status 코드 참조
4-6. Additional Product Details (부가 상품 정보)
Reply에서 반환되는 운항 세부 정보입니다.
legDetails (구간 세부)
필드 형식 설명 equipmentan..8 기재 코드 (IATA). 예: 388(A380), 789(B787-9), 77W(B777-300ER) numberOfStopsn..3 경유 횟수. 0=직항 durationn..6 비행 시간 (분 단위) daysOfOperationan..7 운항 요일. 1=월~7=일 complexingFlightIndicatoran1 복합 항공편 표시자. → Complexing Flight 코드 참조 locationsan..25 (×3) 경유 공항 코드 목록
departureStationInfo / arrivalStationInfo (터미널 정보)
필드 형식 설명 gateDescriptionan..6 게이트 번호 terminalan..25 터미널 번호. 예: 1, 2, INT concoursean..25 탑승동(Concourse) 식별자
facilitiesInformation (기내 서비스 정보)
필드 형식 설명 codean..3 기내 시설 코드 (coded) descriptionan..70 기내 시설 설명 qualifieran..3 상품 세부 한정자 extensionCodean..17 (×26) 시설 확장 코드
필드 형식 설명 errorCodean..5 오류 코드. → 주요 Application Error 코드 참조 errorCategoryan..3 코드 리스트 한정자. EC=Error Codes, WEC=Warning code errorCodeOwneran..3 오류 코드 책임 기관
4-8. Interactive Free Text (자유 형식 텍스트)
항공사가 부가하는 텍스트 정보입니다.
필드 형식 설명 textSubjectQualifieran..3 텍스트 주제 한정자. → Text Subject Qualifier 코드 참조 informationTypean..4 정보 유형 코드 statusan..3 상태 코드 companyIdan..35 관련 항공사 코드 languagean..3 언어 코드 freeTextan..70 (×99) 자유 형식 텍스트 본문
5. 주요 코드셋
Segment Status 코드
relatedproductInformation.statusCode에 사용되는 핵심 코드입니다.
코드 의미 방향 NNNeed - Sell Segment (판매 요청) Query OXCancel Segment (취소 요청) Query HKHave Confirmed (확정) Reply HLHave Waitlisted (대기 명단 등록) Reply HXCancel Refused (취소 거부) Reply UCUnable to Confirm - Sell Refused (판매 불가) Reply UNUnable - Sell Refused (판매 불가) Reply XXCancel Accepted (취소 수락) Reply SSLink Down (시스템 연결 불가) Reply
Reply에서 UC 또는 UN이 반환되면 해당 구간 예약이 실패한 것입니다. 대체 편을 검색하거나 사용자에게 안내해야 합니다.
Flight Indicator 코드
flightTypeDetails.flightIndicator에 사용됩니다.
코드 의미 ACodeshare service (코드셰어 운항) BBus (버스 연결) CConnection portion of journey (연결 구간) CBCode share - block space (코드셰어 블록 스페이스) CFCode share - free sell (코드셰어 자유 판매) CRCar Rental (렌터카 연결) CSCruise Ship (크루즈 연결) DDirect service (직항 서비스) EEnd of journey (여정 종료) ENNot electronic ticket candidate (전자 발권 불가) ETElectronic ticket candidate (전자 발권 가능) FCharter Flight (전세 항공편) HTHotel (호텔 연결) IInbound flight (인바운드 항공편) JStopover permitted (스톱오버 허용) KStopover not permitted (스톱오버 불가) MMarketing flight grouping indicator (마케팅 편명 그룹) MPMarried to previous segment (이전 구간과 결합) MXMarried to next segment (다음 구간과 결합) NNon-stop service (무기착 직항) OOperating flight (운항 항공편) SStart of journey (여정 시작) TTransfer (환승) TRTrain (철도 연결)
Marriage Relation 코드
marriageDetails.relation에 사용됩니다.
코드 의미 AMarried on-line (동일 항공사 내 결합) BNon-Dominant flight (비주도 항공편) CPotential marriage candidate (결합 후보) FFirst host cascading (첫 번째 호스트 전파) IMarried interline (타 항공사 간 결합) LLast host cascading (마지막 호스트 전파) MMiddle host cascading (중간 호스트 전파)
GDS에서 여러 구간이 하나의 여정으로 **결합(Married)**된 상태입니다. 결합된 구간은 개별 취소·변경이 불가하며 전체를 함께 처리해야 합니다. 예: ICN→NRT→LAX가 결합 여정이면 NRT→LAX만 단독 취소 불가.
Message Function 코드
messageFunctionDetails.messageFunction에 사용됩니다.
코드 의미 183Lowest fare across airline, flight, class criteria (항공사·편명·클래스 기준 최저 운임) M1Trigger Sell Optimization Algorithm - cancel all if unsuccessful (최적화 알고리즘 실행, 실패 시 전체 취소) M2Trigger Sell Optimization Algorithm - keep all confirmed if unsuccessful (최적화 알고리즘 실행, 실패 시 확정된 것 유지)
Business Function 코드
messageFunctionDetails.businessFunction에 사용됩니다.
코드 의미 MPEMaster Pricer Expert Edition MPMaster Pricer (O&D 레벨 MSG에 사용)
Reservation Control Type 코드
recordLocator.controlType에 사용됩니다.
코드 의미 1System Reference (시스템 참조) 2Confirmation Reference (확인 참조) 3Related System Reference - Block Booking (블록 예약 관련 참조) 4Fare record information identification (운임 레코드 식별) 5PNR status value (PNR 상태 값) AAirline Indexing Field (항공사 인덱스 필드) BBooking system (예약 시스템) QQuerying system (질의 시스템) RResponding system (응답 시스템)
Complexing Flight Indicator 코드
legDetails.complexingFlightIndicator에 사용됩니다.
코드 의미 1Complexing Flight (복합 항공편. 동일 편명이 여러 구간으로 운항) 2Change of Gauge Flight (기재 변경 비행. 중간 기착지에서 항공기 교체) 3Seat map returned is partial segment of request (좌석 배치도가 요청의 일부 구간만 반환)
Text Subject Qualifier 코드
freeTextQualification.textSubjectQualifier에 사용됩니다.
코드 의미 1Coded free text (코드화된 자유 텍스트) 3Literal text (리터럴 텍스트) 4Coded and literal text (코드 + 리터럴 혼합) CHGChange information (변경 정보) PRDProduct information (상품 정보) SAFSafety information (안전 정보) SIMIATA SSIM defined information (SSIM 정보) SPHSpecial handling (특수 처리) STNStatutory notice (법적 고지) TRATransportation information (교통 정보) ZZZMutually defined (양자 합의 정보)
주요 Application Error 코드
빈번하게 발생하는 오류 코드를 정리합니다. 전체 목록은 원문 Technical Reference를 참조하십시오.
코드 의미 100Invalid Place of Departure Code (출발지 코드 오류) 101Invalid Place of Destination Code (목적지 코드 오류) 102Invalid Departure Date (출발일 오류) 103Invalid Departure Time (출발 시간 오류) 104Invalid Reservation Booking Designator (RBD 오류) 114Invalid Flight Number (편명 오류) 118Schedule Change in Progress (스케줄 변경 진행 중) 119System Unable to Process (시스템 처리 불가) 120Invalid Action Code (액션 코드 오류) 121Invalid Number in Party (승객 수 오류) 122Unable - Flight Beyond System Capacity (시스템 용량 초과로 불가) 126Unable - Codeshare Flight (코드셰어 편으로 인해 불가) 129No PNR Match Found (PNR 일치 없음) 133FLIFO Exists for this Flight (해당 편에 FLIFO 존재) 154Message Function Invalid (메시지 기능 코드 오류) 292Segment Sells Restricted (세그먼트 판매 제한) 293Unable to Sell Due to Sales Limit being Reached (판매 한도 초과) 303Flight Cancelled (항공편 결항) 304System Temporarily Unavailable (시스템 일시 불가) 320Invalid segment status (세그먼트 상태 오류) 321Duplicate flight segment (중복 세그먼트) 322Segment continuity error (세그먼트 연속성 오류) 351Invalid cancel - married connection single leg(s) (결합 구간 단독 취소 불가) 370Simultaneous changes to PNR (PNR 동시 변경 충돌) 411Flight Does Not Operate on Date Requested (요청 날짜에 운항 없음) 418Flight has Departed (항공편 출발 완료) 420Not Available but Waitlist is Open (가용 없음, 대기 가능) 421Not Available and Waitlist is Closed (가용 없음, 대기 불가) 900Inactivity Time Out Value Exceeded (비활성 타임아웃) 911Unable to process - system error (시스템 오류로 처리 불가) 912Incomplete message - data missing in query (요청 데이터 누락)
Facility Type 코드 (기내 서비스)
facilitiesInformation.code에 사용됩니다.
코드 의미 1Movie (영화) 2Telephone (전화) 4Audio programming (오디오 프로그램) 5Television (TV) 7Duty free sales (면세 판매) 8Smoking (흡연) 9Non-smoking (금연) 12In-seat power source (좌석 전원 콘센트) 13Internet access (인터넷 접속) 14E-Mail (이메일) 15Inseat Video Player/Library (좌석 비디오 플레이어) 700Meal service (기내식 서비스) 701Entertainment (엔터테인먼트)
Response Type 코드
messageFunctionDetails.responseType에 사용됩니다.
코드 의미 1Alternate booking (대체 예약) 2Request received, pending (요청 수신, 처리 중) 3Processed successfully (처리 성공) 6Partially processed (부분 처리) 7Received, not processed (수신됨, 미처리) 8Received, rejected (수신됨, 거부) 11Alternate response - Seat map returned (대체 응답 - 좌석 배치도 반환) 12Alternate response - Availability returned (대체 응답 - 가용성 반환)
6. 약어 모음
약어 풀네임 설명 ARNK Arrival Not Known 여정 내 지표면 구간 (항공편 없이 이동). IATA 코드 ARNK 사용 ET Electronic Ticket 전자 발권 항공권 FLIFO Flight Information 실시간 항공편 운항 정보 FQTV Frequent Traveler Verification 상용 고객 마일리지 회원 인증 GDS Global Distribution System 전 세계 항공편 예약 유통 시스템 IATA International Air Transport Association 국제항공운송협회 ICAO International Civil Aviation Organization 국제민간항공기구 IATCI IATA Common Use Terminal Interface IATA 공용 터미널 인터페이스 MP Master Pricer Amadeus 최저 운임 검색 엔진 MPTBS Master Pricer Travelboard Search Amadeus 항공편 검색 API O&D Origin and Destination 출발지-목적지 쌍. 여정 단위 ODI Origin Destination Information 출발지-목적지 정보 그룹 OSI Other Service Information 기타 서비스 정보 (항공사 메모) PNR Passenger Name Record 승객 예약 레코드 PRBD Presented Reservation Booking Designator 표시되는 예약 클래스 RBD Reservation Booking Designator 예약 등급 지시자 (예약 클래스 코드) Recloc Record Locator PNR 고유 예약 번호 (6자리 영숫자) SSR Special Service Request 특별 서비스 요청 (WCHR, VGML 등) SSIM Standard Schedules Information Manual IATA 표준 스케줄 정보 매뉴얼
WBS Integration Flow - Step 7
Master Pricer Travelboard Search 용어집