Skip to main content
Amadeus Air_SellFromRecommendation API(버전 05.2)의 기술 용어를 정리한 문서입니다. Master Pricer Travelboard Search로 검색한 추천 결과(Recommendation)를 기반으로 실제 항공편 예약(Booking)을 생성하는 API입니다.
이 API는 WBS Integration Flow예약 생성 단계 Step 7에 해당합니다.

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 구조 (요청)

최상위 구조

엔티티구조명StRep설명
messageActionDetailsMessage action detailsC1메시지 액션 정보. 메시지의 기능을 지정
originatorDetailsGroupC1ORG 세그먼트를 포함하는 그룹
recordLocatorReservation control informationC1PNR Record Locator
itineraryDetailsGroupC99여정(O&D) 그룹. 출발지-도착지 쌍
originDestinationDetailsOrigin and destination detailsM1첫 출발 도시와 최종 도착 도시
messageMessage action detailsC1Master Pricer 알고리즘 사용 여부 지정
segmentInformationGroupM9구간 정보 그룹. 최대 9개 구간
travelProductInformationTravel product informationM1항공편 상세 정보
relatedproductInformationRelated product informationM*1예약 관련 정보 (승객 수, 액션 코드 등)
  • M = Mandatory (필수)
  • M* = Mandatory for implementation (구현 필수, IATA PADIS 기준과 다름)
  • C = Conditional (조건부)

3. Reply 구조 (응답)

최상위 구조

엔티티구조명StRep설명
messageMessage action detailsC1메시지 기능 및 비즈니스 기능 표시
errorAtMessageLevelGroupC5메시지 레벨 오류 그룹. 일반 처리 오류
errorSegmentApplication error informationM1에러 코드
informationTextInteractive free textC1에러에 대한 자유 형식 텍스트
itineraryDetailsGroupC99여정 상세 그룹
originDestinationOrigin and destination detailsM1출발지/도착지 쌍
errorItinerarylevelGroupC5O&D 레벨 오류 그룹
segmentInformationGroupC9항공편 정보 그룹
flightDetailsTravel product informationM1항공편 상세 정보
apdSegmentAdditional product detailsC1운항 정보(기재, 경유 등)
actionDetailsRelated product informationM*1예약 액션 상세 (확정 상태)
informationTextInteractive free textC1항공사가 부가한 정보 텍스트
errorAtSegmentLevelGroupC5구간 레벨 오류 그룹
오류는 세 단계로 반환됩니다: 메시지 레벨 (전체 요청 실패) → 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응답 유형 코드

4-2. Reservation Control Information (예약 제어 정보)

PNR Record Locator 관련 정보입니다.
필드형식설명
companyIdan..35회사 식별자
controlNumberan..20PNR 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

4-4. Travel Product Information (여행 상품 정보)

항공편의 핵심 식별 정보입니다. 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..6Marriage 내 구간 순서 번호
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)시설 확장 코드

4-7. Application Error Information (애플리케이션 오류)

필드형식설명
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. 약어 모음

약어풀네임설명
ARNKArrival Not Known여정 내 지표면 구간 (항공편 없이 이동). IATA 코드 ARNK 사용
ETElectronic Ticket전자 발권 항공권
FLIFOFlight Information실시간 항공편 운항 정보
FQTVFrequent Traveler Verification상용 고객 마일리지 회원 인증
GDSGlobal Distribution System전 세계 항공편 예약 유통 시스템
IATAInternational Air Transport Association국제항공운송협회
ICAOInternational Civil Aviation Organization국제민간항공기구
IATCIIATA Common Use Terminal InterfaceIATA 공용 터미널 인터페이스
MPMaster PricerAmadeus 최저 운임 검색 엔진
MPTBSMaster Pricer Travelboard SearchAmadeus 항공편 검색 API
O&DOrigin and Destination출발지-목적지 쌍. 여정 단위
ODIOrigin Destination Information출발지-목적지 정보 그룹
OSIOther Service Information기타 서비스 정보 (항공사 메모)
PNRPassenger Name Record승객 예약 레코드
PRBDPresented Reservation Booking Designator표시되는 예약 클래스
RBDReservation Booking Designator예약 등급 지시자 (예약 클래스 코드)
ReclocRecord LocatorPNR 고유 예약 번호 (6자리 영숫자)
SSRSpecial Service Request특별 서비스 요청 (WCHR, VGML 등)
SSIMStandard Schedules Information ManualIATA 표준 스케줄 정보 매뉴얼

참고

WBS Integration Flow - Step 7

Master Pricer Travelboard Search 용어집

PNR_AddMultiElements 용어집

Air FlightInfo 용어집