발권 완료 후 예약 및 티켓을 취소 하는 3단계 플로우 용어집입니다.
PNR_Retrieve → Ticket_CancelDocument → PNR_Cancel 순서로 진행합니다.
1. 개요
항목 내용 플로우 단계 Step 15 — 후속 처리 목적 발권된 티켓 및 PNR 취소 구성 API PNR_Retrieve → Ticket_CancelDocument → PNR_Cancel
Query / Reply 구조
API Query 메시지 Reply 메시지 Ticket_CancelDocument Ticket_CancelDocument 14.1.1ATicket_CancelDocumentReply 14.1.1APNR_Cancel PNR_Cancel 22.1.1APNR_Reply 22.1.1A
2. 취소 순서
┌─────────────┐ ┌──────────────────────┐ ┌────────────┐
│ PNR_Retrieve│────▶│ Ticket_CancelDocument│────▶│ PNR_Cancel │
│ (PNR 조회) │ │ (티켓 취소 — 반복) │ │ (PNR 취소) │
└─────────────┘ └──────────────────────┘ └────────────┘
│ │ │
▼ ▼ ▼
PNR Record Locator 티켓 번호별 VOID/취소 PNR 요소 삭제
+ 티켓 번호 확인 (최대 20건/트랜잭션) 또는 전체 취소
상세 흐름
1) PNR_Retrieve
└─ PNR 조회 → 티켓 번호(FA/FH 라인) 확인
2) Ticket_CancelDocument (티켓 수만큼 반복)
├─ 티켓 번호 지정 (documentNumberDetails.number)
├─ VOID 옵션 지정 (voidOption — 선택)
├─ Stock Provider 지정 (stockProviderDetails — 필수)
└─ 응답: transactionResults.responseDetails.statusCode = "O" 확인
3) PNR_Cancel
├─ pnrActions: 처리 액션 코드 (11 = End Transaction + Cancel)
├─ cancelElements: 취소 대상 요소 지정
│ ├─ entryType = "I" → 여정(Itinerary) 전체 취소
│ ├─ entryType = "E" → 개별 요소 선택 취소
│ └─ element.identifier + element.number → 특정 요소 지정
└─ 응답: PNR_Reply (갱신된 PNR 이미지)
발권된 티켓이 있는 경우 반드시 Ticket_CancelDocument를 먼저 호출해야 합니다.
티켓 취소 없이 PNR_Cancel만 호출하면 오류가 발생합니다.
(에러 코드 9198: PNR MUST BE UNMODIFIED FOR ETKT VOID)
3. Void vs Refund
티켓 취소 시 Void 와 Refund 는 서로 다른 처리 방식이다.
구분 Void (무효) Refund (환불) 시점 발권 당일 (Same Day) 발권 익일 이후 정산 영향 BSP/ARC 정산 전 취소 → 정산 미반영 정산 후 환불 처리 → 환불 기록 생성 API Ticket_CancelDocument별도 Refund API 사용 voidOption indicator = "SRP" 등 사용 가능해당 없음 Sales Report 판매 보고서에서 제거 환불 보고서에 기록
Ticket_CancelDocument는 Reporting Database에서 문서를 취소(Void)하는 API이다.
발권 당일 TRDC(Ticket Reporting Document Cancel) 처리 시 Void로 동작한다.
익일 이후에는 별도 환불 절차가 필요하다.
4. Ticket_CancelDocument (티켓 취소)
Amadeus Reporting Database에 등록된 문서를 수동으로 취소하는 API.
여행사가 TRDC 크립틱 엔트리로 문서를 취소할 때와 동일한 동작을 수행한다.
한 트랜잭션에서 최대 20건 의 티켓을 동시에 처리할 수 있다 (TKT 세그먼트 다중 지정).
4.1 Query 메시지 구조 (Ticket_CancelDocument 14.1.1A)
Entity Structure St Rep 설명 documentNumberDetailsTicket number details C 99 취소할 문서의 기본 티켓 번호 sequenceNumberRangesItem number C 20 시퀀스 번호 범위 (최대 4개 범위) voidOptionStatus details C 1 Void 프로세스 옵션 지정 stockProviderDetailsOffice settings details M 1 문서의 Stock Provider (필수) targetOfficeDetailsAdditional business source information C 1 문서가 속한 오피스 지정
4.2 Query 필드 상세
documentNumberDetails (티켓 번호 상세)
취소 대상 문서 번호 를 지정하는 구조. 최대 99회 반복 가능.
필드 형식 St 설명 documentDetails.numberan..35 M* 문서 번호 (13자리 티켓 번호) documentDetails.statusan..3 C 문서 상태. Codeset: 4405
sequenceNumberRanges (시퀀스 번호 범위)
문서 내 쿠폰 시퀀스 번호 범위를 지정하는 구조. 최대 20회 반복, 각 반복당 FROM~TO 2개 쌍.
필드 형식 St 설명 itemNumberDetails.numberan..35 C 문서 시퀀스 번호 itemNumberDetails.typean..3 C FROM 또는 TO. Codeset: 7143
voidOption (Void 옵션)
Void 프로세스를 제어하는 구조.
필드 형식 St 설명 statusInformation.indicatoran..3 C 상태 한정자. His = Historical, Crt = Current. Codeset: 1245
stockProviderDetails (Stock Provider 상세)
문서의 Stock Provider 정보. 필수(M) 구조.
필드 형식 St 설명 officeSettingsDetails.marketIataCodean..35 C 항공사 코드 (Stock Provider Code). Codeset: 9906 stockProviderCodean..35 C Stock Provider 코드. Codeset: 9906
targetOfficeDetails (대상 오피스 상세)
문서가 소속된 오피스 를 지정하는 구조. 다른 오피스에서 발권된 문서를 취소할 때 사용.
필드 형식 St 설명 originatorDetails.inHouseIdentification2an..9 M Amadeus Office ID (티켓 조회 및 취소용)
4.3 Reply 메시지 구조 (Ticket_CancelDocumentReply 14.1.1A)
취소 성공 시 확인 정보를 반환. CTS(Central Ticketing System)에 표시할 정보와 Back Office 레코드용 문서 정보를 포함.
Entity Structure St Rep 설명 transactionResultsGroup M 99 처리된 문서별 결과 (최대 20건) responseDetails Response analysis details M 1 응답 분석 상세 sequenceNumberDetails Item number C 1 처리된 문서의 시퀀스 번호 ticketNumbers Ticket number details C 1 수정된 문서의 티켓 번호 (체크 디짓 포함) errorGroup ERRORGROUPTYPE C 1 에러 상세 sacNumber Reference information C 1 Settlement Authorization Code (SAC) 번호
4.4 Reply 필드 상세
responseDetails (응답 분석 상세)
필드 형식 St 설명 responseTypea1 M 응답 유형. X = Cancel. Codeset: 9868 statusCodea1 M 처리 상태. O = 성공, N = 에러. Codeset: 9869
sacNumber (SAC 번호)
필드 형식 St 설명 referenceDetails.typean..3 M* 참조 유형. SAC = Settlement Authorization Code. Codeset: 1153 referenceDetails.valuean..14 C SAC 값
errorGroup (에러 그룹)
필드 형식 St 설명 errorOrWarningCodeDetails.errorCodean..5 M 에러 코드. Codeset: 9321 errorOrWarningCodeDetails.errorCategoryan..3 C 코드 리스트 한정자. Codeset: 1131 errorOrWarningCodeDetails.errorCodeOwneran..3 C 코드 책임 기관. Codeset: 3055 errorWarningDescription.freeTextan..199 M 에러 상세 텍스트 (최대 99줄)
5. Ticket_CancelDocument 코드셋
5.1 Application Error (Ref: 9321 1A 10.2.1542)
티켓 취소 시 발생할 수 있는 에러 코드 목록.
코드 설명 (영문) 설명 (한글) 6145OK - DOCUMENT(S) CANCELLED 문서 취소 성공 29126OK - DOCUMENT CANCELLED IN SALES REPORT 판매 보고서에서 문서 취소 성공 6147REJECTED - DOCUMENT NOT ON DATABASE 거부 - 데이터베이스에 문서 없음 6149REJECTED - INVALID DOCUMENT TYPE FOR CANCEL 거부 - 취소 불가능한 문서 유형 6150REJECTED - DOCUMENT ALREADY CANCELLED 거부 - 이미 취소된 문서 6243DOCUMENT CANCELLATION PROHIBITED 문서 취소 금지 10006REJECTED - USE TWX OR TWX/N FROM ET RECORD 거부 - ET 레코드에서 TWX 사용 필요 23351DOCUMENT NOT AVAILABLE FOR CANCELLATION REQUEST 취소 요청에 사용할 수 없는 문서 23803MIXED TICKET TYPES NOT ALLOWED 혼합 티켓 유형 불가 24352UNABLE TO PROCESS - DOCUMENT RETRIEVAL FAILED 처리 불가 - 문서 조회 실패 29125TRDC/SR ENTRY NOT AUTHORIZED TRDC/SR 엔트리 권한 없음 29127DOCUMENT NOT AVAILABLE FOR /SR OPTION /SR 옵션에 사용할 수 없는 문서 3517FUNCTION NOT SUPPORTED FOR THIS AIRLINE 해당 항공사에서 지원하지 않는 기능 477INVALID FORMAT 잘못된 형식 5458NOT AUTHORISED 권한 없음 6485SELECT FA OR FH PNR LINE NUMBER FA 또는 FH PNR 라인 번호 선택 필요 6522REJECTED - DUPLICATES EXIST - USE DATA SEQUENCE NUMBER 거부 - 중복 존재, 데이터 시퀀스 번호 사용 필요 7112NO PNR PRESENT IN AAA AAA에 PNR 없음 7116NEED FA/FH ELEMENT FA/FH 요소 필요 777MUTUALLY AGREED 상호 합의 9197PNR IN AAA NOT ASSOCIATED TO ETKT RECORD AAA의 PNR이 ETKT 레코드와 연결되지 않음 9198PNR MUST BE UNMODIFIED FOR ETKT VOID ETKT Void를 위해 PNR이 수정되지 않은 상태여야 함 9956UNABLE TO PROCESS - MAXIMUM 20 TRANSACTIONS PER ENTRY 처리 불가 - 엔트리당 최대 20건 9964UNABLE TO PROCESS - NOT MORE THAN 4 COMPONENTS 처리 불가 - 4개 이상 컴포넌트 불가
5.2 Processing Status Code (Ref: 9869 IA 02.2.269)
코드 설명 O성공 (OK processed). 후속 데이터가 이어질 수 있음 N에러 (Recoverable error)
5.3 Response Type (Ref: 9868 IA 02.2.51)
코드 설명 BBoarding pass reprint 응답 F3rd host check-in 정보 업데이트 응답 ICheck-in 응답 PPassenger list function 응답 SSeat map function 응답 UUpdate 응답 XCancel 응답 (Ticket_CancelDocument에서 사용)
5.4 Status, coded (Ref: 4405 IA 02.2.422) — 주요 값
티켓/문서의 상태 코드 . 취소 플로우에서 관련되는 주요 값:
코드 설명 (한글) IOriginal Issue (최초 발행, 사용 가능) TTicketed (발권 완료) VVoid (무효 처리됨) XCancel (취소) RFRefunded (환불 완료) EExchanged/Reissued (교환/재발행) BFlown/Used (사용 완료) OKConfirmed (확인됨) OPEOpen (오픈) SSuspended (보류)
5.5 Item Number Type (Ref: 7143 IA 02.2.3)
시퀀스 번호 범위의 FROM/TO 구분에 사용.
코드 설명 700Frequent Traveler account to be decremented 701Teletype address 702Queue Identifier 703Sub-queue category 704First booked segment 705Last booked segment AAccount number CCustomer number DDocument number FRMFrom number (시작 번호) PProduct number TCNTransmission control number TOTo number (끝 번호)
5.6 Reference Qualifier (Ref: 1153 IA 02.2.531)
코드 설명 MNEPrinter Mnemonique RIDRule ID SACSettlement Authorization Code STKPrinter Stock TRMTerminal ID
5.7 Status Indicator (Ref: 1245 1A 11.1.10)
코드 설명 SRPVoid performed on sales report only (판매 보고서에서만 Void 처리)
5.8 Company Identification (Ref: 9906 IA 02.2.949)
코드 설명 7CCIndustry Car Rental Companies 7HHIndustry Hotel Chains (기타) IATA 2자리 항공사 코드 (예: KE, OZ, AA 등)
6. PNR_Cancel (PNR 취소)
PNR의 요소를 취소하는 API. 여정(Itinerary) 전체 취소, 개별 요소(Element) 선택 취소, 또는 PNR 전체 취소가 가능하다.
Reply 메시지로 PNR_Reply (SBR 이미지)를 반환한다.
6.1 Query 메시지 구조 (PNR_Cancel 22.1.1A)
Entity Structure St Rep 설명 reservationInfoReservation control information C 1 예약 제어 정보 (Record Locator 등) pnrActionsOptional PNR actions M 1 PNR 처리 액션 코드 (필수) cancelElementsCancel PNR element C 4 취소할 PNR 요소 지정 (최대 4개 그룹)
6.2 Query 필드 상세
pnrActions (PNR 액션)
PNR에 수행할 처리 액션 을 지정하는 필수 구조. optionCode에 액션 코드를 전달한다.
취소 플로우에서 사용하는 주요 액션 코드:
코드 설명 0No special processing (특별 처리 없음) 10End Transaction (ET) 11End Transaction + Cancel itinerary (ET + 여정 취소)20Ignore & Retrieve (변경 무시 후 재조회)
cancelElements (취소 요소)
취소할 PNR 요소 를 지정하는 구조. 최대 4개 그룹까지 지정 가능. 각 그룹은 entryType으로 취소 유형을 결정한다.
필드 설명 entryType취소 유형 코드 (아래 표 참조) element.identifier요소 유형 식별자 element.number요소 라인 번호
entryType (취소 유형 코드)
PNR 요소 취소의 핵심 코드 . 어떤 유형의 취소를 수행할지 결정한다.
코드 설명 (한글) 크립틱 대응 I여정(Itinerary) 전체 취소 — 모든 항공편 세그먼트 삭제XIE개별 요소(Element) 선택 취소 — 특정 라인 번호로 지정XE
element (요소 식별)
entryType = "E" (개별 요소 선택 취소) 시 삭제할 특정 요소 를 지정한다.
필드 설명 identifier요소 유형 (예: ST = Segment, PT = Passenger 등) number해당 요소의 라인 번호 (PNR 내 위치)
6.3 Reply 메시지 구조 (PNR_Reply 22.1.1A)
PNR_Cancel의 Reply는 PNR_Reply 형식으로, 취소 처리 후 갱신된 PNR 전체 이미지를 반환한다.
Entity Structure St Rep 설명 generalErrorInfoGroup C 99 일반 에러 정보 pnrHeaderGroup C 198 PNR 헤더 reservationInfo Reservation control information M 1 예약 참조 (Record Locator) referenceForRecordLocator Reference information C 1 레코드 로케이터 참조 securityInformation Reservation security information C 1 PNR 보안 정보 queueInformations Queue C 1 큐 정보 numberOfUnits Number of units C 1 유닛 수 pnrType Coded attribute C 1 PNR 특수 유형 freetextData Long free text C 3 자유 텍스트 pnrHeaderTag Status details C 1 PNR 헤더 태그 travellerInfoGroup C 100 승객(Name) 요소 elementManagementPassenger Element management segment M 1 요소 관리 (참조/액션) passengerData Group C 2 승객 데이터 (이름, 생년월일) originDestinationDetailsGroup C 50 출발지/도착지 구간 originDestination Origin and destination details M 1 O&D 상세 itineraryInfoGroup C 99 여정 세그먼트 elementManagementItinerary Element management segment M 1 세그먼트 요소 관리 travelProduct Travel product information C 1 여행 상품 정보 itineraryMessageAction Message action details C 1 메시지 액션 유형 dataElementsMasterGroup C 1 데이터 요소 마스터 dataElementsIndiv Group C 9999 개별 데이터 요소
6.4 Reply 주요 하위 구조
elementManagementData (요소 관리 세그먼트)
모든 PNR 요소에 공통으로 포함되는 참조/액션 정보 구조.
필드 설명 reference.qualifier참조 한정자 (OT = Other element) reference.number요소 라인 번호 segmentName세그먼트 이름 (예: AIR, AP, TK, FA, FH)
travelProduct (여행 상품 정보)
여정 세그먼트의 항공편 상세 정보.
필드 설명 product.depDate출발일 product.arrDate도착일 boardpointDetail.cityCode출발지 코드 offpointDetail.cityCode도착지 코드 company.identification항공사 코드 productDetails.identification편명 번호 productDetails.classOfService예약 클래스 (RBD)
dataElementsIndiv (개별 데이터 요소)
PNR의 개별 데이터 요소 . 취소 후 남아있는 요소를 확인하는 데 사용.
하위 Entity 설명 pnrSecurityPNR 개별 보안 정보 accounting어카운팅 정보 miscellaneousRemarks기타 리마크 (RM, RC, RI 등) extendedRemark확장 리마크 (Unicode 포함) serviceRequestSSR (Special Service Request) seatPaxInfo좌석 정보 ticketElement티켓 요소 (FA/FH) mcoRecordMCO 레코드
7. PNR 취소 요소 유형 상세
7.1 entryType별 취소 시나리오
시나리오 1: 여정 전체 취소 (XI)
─────────────────────────────
cancelElements[0].entryType = "I"
→ 모든 AIR 세그먼트 취소
→ 관련 SSR/좌석/OSI 자동 삭제
시나리오 2: 개별 요소 취소 (XE)
─────────────────────────────
cancelElements[0].entryType = "E"
cancelElements[0].element[0].identifier = "ST"
cancelElements[0].element[0].number = 3
→ PNR 라인 3번의 세그먼트만 취소
시나리오 3: 여정 취소 + ET
─────────────────────────────
pnrActions.optionCode = "11"
cancelElements[0].entryType = "I"
→ 여정 전체 취소 후 End Transaction
7.2 PNR 요소 식별자 (element.identifier)
식별자 요소 유형 설명 STSegment 여정 세그먼트 (항공편) PTPassenger 승객 이름 요소 OTOther 기타 데이터 요소 (리마크, SSR 등)
8. 통합 취소 플로우 다이어그램
8.1 티켓 있는 PNR 완전 취소
[클라이언트] [Amadeus]
│ │
│ 1. PNR_Retrieve (Record Locator) │
│─────────────────────────────────────▶│
│ PNR_Reply (FA/FH 라인 확인) │
│◀─────────────────────────────────────│
│ │
│ 2. Ticket_CancelDocument │
│ - documentNumberDetails.number │
│ = "1802400000001" │
│ - stockProviderDetails │
│ .marketIataCode = "KE" │
│─────────────────────────────────────▶│
│ Ticket_CancelDocumentReply │
│ - responseType = "X" │
│ - statusCode = "O" │
│◀─────────────────────────────────────│
│ │
│ (티켓 2매 이상이면 반복) │
│ │
│ 3. PNR_Cancel │
│ - pnrActions.optionCode = "11" │
│ - cancelElements.entryType = "I" │
│─────────────────────────────────────▶│
│ PNR_Reply (갱신된 PNR 이미지) │
│◀─────────────────────────────────────│
8.2 티켓 없는 PNR 취소 (미발권 상태)
[클라이언트] [Amadeus]
│ │
│ 1. PNR_Cancel │
│ - pnrActions.optionCode = "11" │
│ - cancelElements.entryType = "I" │
│─────────────────────────────────────▶│
│ PNR_Reply (취소된 PNR 이미지) │
│◀─────────────────────────────────────│
발권되지 않은 PNR은 Ticket_CancelDocument 없이 바로 PNR_Cancel로 취소할 수 있다.
9. 에러 처리
9.1 Ticket_CancelDocument 주요 에러 시나리오
에러 코드 원인 대응 방법 6147데이터베이스에 문서 없음 티켓 번호 확인 후 재시도 6149취소 불가능한 문서 유형 문서 유형 확인 (EMD 등은 별도 API) 6150이미 취소된 문서 중복 취소 방지 로직 확인 9198PNR이 수정된 상태에서 Void 시도 PNR을 IG(Ignore) 후 재조회하여 재시도 995620건 초과 트랜잭션 20건 단위로 분할 처리 7116FA/FH 요소 없음 PNR에 티켓 요소 존재 여부 확인 29125TRDC 권한 없음 오피스 권한 확인
9.2 PNR_Cancel 주요 에러 시나리오
상황 원인 대응 방법 티켓 취소 없이 PNR 취소 시도 발권된 티켓이 존재하는 PNR 먼저 Ticket_CancelDocument로 티켓 취소 세그먼트 번호 오류 잘못된 라인 번호 지정 PNR_Retrieve로 현재 PNR 구조 재확인보안 오류 다른 오피스 소유 PNR 권한 확인 또는 targetOfficeDetails 지정
10. 메시지 구조 용어
기술 문서에서 사용되는 메시지 구조 정의 용어 .
용어 설명 Entity 메시지 내 데이터 항목의 참조 이름 Structure Entity의 정식 명칭과 참조 번호 Rep (Repetitions) 상위 구조 내에서의 반복 횟수 St (Status) 필수 여부. M=Mandatory, C=Conditional, M*=구현 시 필수 Fmt (Format) 데이터 형식. a=문자, n=숫자, an=영숫자, ..x=가변 길이 Grouped Structure 하위 구조를 포함하는 복합 구조 (계층 구조) Simple Structure 데이터 요소만 포함하는 단순 구조 Codeset 코드화된 데이터 항목의 가능한 값 목록
데이터 형식 표기법
표기 의미 예시 a1고정 1자리 문자 X (Cancel 응답)an..3가변 영숫자 최대 3자리 SRP (Status indicator)an..5가변 영숫자 최대 5자리 6145 (에러 코드)an..9가변 영숫자 최대 9자리 SELBA08AA (Office ID)an..14가변 영숫자 최대 14자리 SAC 번호 값 an..35가변 영숫자 최대 35자리 1802400000001 (티켓 번호)an..199가변 영숫자 최대 199자리 에러 상세 텍스트
약어 모음
약어 정식 명칭 설명 AAA Amadeus Application Area Amadeus 애플리케이션 영역 (세션 컨텍스트) BSP Billing and Settlement Plan 항공권 정산 시스템 (IATA) ARC Airlines Reporting Corporation 항공 보고 법인 (미국 정산) CTS Central Ticketing System 중앙 발권 시스템 EMD Electronic Miscellaneous Document 전자 기타 문서 (부가서비스용) ET End Transaction 트랜잭션 종료 (PNR 저장) ETKT Electronic Ticket 전자 항공권 FA FA element PNR 내 자동 발권 요소 (Ticketing line — Automated) FH FH element PNR 내 수동 발권 요소 (Ticketing line — Manual) IG Ignore PNR 변경 무시 (원래 상태로 복원) MCO Miscellaneous Charge Order 기타 요금 주문서 PNR Passenger Name Record 승객 예약 기록 RBD Reservation Booking Designator 예약 클래스 코드 SAC Settlement Authorization Code 정산 인가 코드 SBR System Booking Record 시스템 예약 기록 SSR Special Service Request 특별 서비스 요청 TRDC Ticket Reporting Document Cancel 티켓 보고 문서 취소 (크립틱 명령어) TST Transitional Stored Ticket 임시 저장 티켓 (가격 레코드) VOID Void 무효 처리 (발권 당일 취소) XE Cancel Element 개별 요소 취소 (크립틱 명령어) XI Cancel Itinerary 여정 전체 취소 (크립틱 명령어)
WBS Integration Flow - Step 15