Skip to main content
발권 완료 후 예약 및 티켓을 취소하는 3단계 플로우 용어집입니다. PNR_RetrieveTicket_CancelDocumentPNR_Cancel 순서로 진행합니다.
이 플로우는 WBS Integration Flow후속 처리 단계 Step 15에 해당합니다.

1. 개요

항목내용
플로우 단계Step 15 — 후속 처리
목적발권된 티켓 및 PNR 취소
구성 APIPNR_RetrieveTicket_CancelDocumentPNR_Cancel

Query / Reply 구조

APIQuery 메시지Reply 메시지
Ticket_CancelDocumentTicket_CancelDocument 14.1.1ATicket_CancelDocumentReply 14.1.1A
PNR_CancelPNR_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

티켓 취소 시 VoidRefund는 서로 다른 처리 방식이다.
구분Void (무효)Refund (환불)
시점발권 당일 (Same Day)발권 익일 이후
정산 영향BSP/ARC 정산 전 취소 → 정산 미반영정산 후 환불 처리 → 환불 기록 생성
APITicket_CancelDocument별도 Refund API 사용
voidOptionindicator = "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)

EntityStructureStRep설명
documentNumberDetailsTicket number detailsC99취소할 문서의 기본 티켓 번호
sequenceNumberRangesItem numberC20시퀀스 번호 범위 (최대 4개 범위)
voidOptionStatus detailsC1Void 프로세스 옵션 지정
stockProviderDetailsOffice settings detailsM1문서의 Stock Provider (필수)
targetOfficeDetailsAdditional business source informationC1문서가 속한 오피스 지정

4.2 Query 필드 상세

documentNumberDetails (티켓 번호 상세)

취소 대상 문서 번호를 지정하는 구조. 최대 99회 반복 가능.
필드형식St설명
documentDetails.numberan..35M*문서 번호 (13자리 티켓 번호)
documentDetails.statusan..3C문서 상태. Codeset: 4405

sequenceNumberRanges (시퀀스 번호 범위)

문서 내 쿠폰 시퀀스 번호 범위를 지정하는 구조. 최대 20회 반복, 각 반복당 FROM~TO 2개 쌍.
필드형식St설명
itemNumberDetails.numberan..35C문서 시퀀스 번호
itemNumberDetails.typean..3CFROM 또는 TO. Codeset: 7143

voidOption (Void 옵션)

Void 프로세스를 제어하는 구조.
필드형식St설명
statusInformation.indicatoran..3C상태 한정자. His = Historical, Crt = Current. Codeset: 1245

stockProviderDetails (Stock Provider 상세)

문서의 Stock Provider 정보. 필수(M) 구조.
필드형식St설명
officeSettingsDetails.marketIataCodean..35C항공사 코드 (Stock Provider Code). Codeset: 9906
stockProviderCodean..35CStock Provider 코드. Codeset: 9906

targetOfficeDetails (대상 오피스 상세)

문서가 소속된 오피스를 지정하는 구조. 다른 오피스에서 발권된 문서를 취소할 때 사용.
필드형식St설명
originatorDetails.inHouseIdentification2an..9MAmadeus Office ID (티켓 조회 및 취소용)

4.3 Reply 메시지 구조 (Ticket_CancelDocumentReply 14.1.1A)

취소 성공 시 확인 정보를 반환. CTS(Central Ticketing System)에 표시할 정보와 Back Office 레코드용 문서 정보를 포함.
EntityStructureStRep설명
transactionResultsGroupM99처리된 문서별 결과 (최대 20건)
  responseDetailsResponse analysis detailsM1응답 분석 상세
  sequenceNumberDetailsItem numberC1처리된 문서의 시퀀스 번호
  ticketNumbersTicket number detailsC1수정된 문서의 티켓 번호 (체크 디짓 포함)
  errorGroupERRORGROUPTYPEC1에러 상세
  sacNumberReference informationC1Settlement Authorization Code (SAC) 번호

4.4 Reply 필드 상세

responseDetails (응답 분석 상세)

필드형식St설명
responseTypea1M응답 유형. X = Cancel. Codeset: 9868
statusCodea1M처리 상태. O = 성공, N = 에러. Codeset: 9869

sacNumber (SAC 번호)

필드형식St설명
referenceDetails.typean..3M*참조 유형. SAC = Settlement Authorization Code. Codeset: 1153
referenceDetails.valuean..14CSAC 값

errorGroup (에러 그룹)

필드형식St설명
errorOrWarningCodeDetails.errorCodean..5M에러 코드. Codeset: 9321
errorOrWarningCodeDetails.errorCategoryan..3C코드 리스트 한정자. Codeset: 1131
errorOrWarningCodeDetails.errorCodeOwneran..3C코드 책임 기관. Codeset: 3055
errorWarningDescription.freeTextan..199M에러 상세 텍스트 (최대 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 AUTHORIZEDTRDC/SR 엔트리 권한 없음
29127DOCUMENT NOT AVAILABLE FOR /SR OPTION/SR 옵션에 사용할 수 없는 문서
3517FUNCTION NOT SUPPORTED FOR THIS AIRLINE해당 항공사에서 지원하지 않는 기능
477INVALID FORMAT잘못된 형식
5458NOT AUTHORISED권한 없음
6485SELECT FA OR FH PNR LINE NUMBERFA 또는 FH PNR 라인 번호 선택 필요
6522REJECTED - DUPLICATES EXIST - USE DATA SEQUENCE NUMBER거부 - 중복 존재, 데이터 시퀀스 번호 사용 필요
7112NO PNR PRESENT IN AAAAAA에 PNR 없음
7116NEED FA/FH ELEMENTFA/FH 요소 필요
777MUTUALLY AGREED상호 합의
9197PNR IN AAA NOT ASSOCIATED TO ETKT RECORDAAA의 PNR이 ETKT 레코드와 연결되지 않음
9198PNR MUST BE UNMODIFIED FOR ETKT VOIDETKT 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)

EntityStructureStRep설명
reservationInfoReservation control informationC1예약 제어 정보 (Record Locator 등)
pnrActionsOptional PNR actionsM1PNR 처리 액션 코드 (필수)
cancelElementsCancel PNR elementC4취소할 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) 전체 취소 — 모든 항공편 세그먼트 삭제XI
E개별 요소(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 전체 이미지를 반환한다.
EntityStructureStRep설명
generalErrorInfoGroupC99일반 에러 정보
pnrHeaderGroupC198PNR 헤더
  reservationInfoReservation control informationM1예약 참조 (Record Locator)
  referenceForRecordLocatorReference informationC1레코드 로케이터 참조
  securityInformationReservation security informationC1PNR 보안 정보
  queueInformationsQueueC1큐 정보
  numberOfUnitsNumber of unitsC1유닛 수
  pnrTypeCoded attributeC1PNR 특수 유형
  freetextDataLong free textC3자유 텍스트
  pnrHeaderTagStatus detailsC1PNR 헤더 태그
travellerInfoGroupC100승객(Name) 요소
  elementManagementPassengerElement management segmentM1요소 관리 (참조/액션)
  passengerDataGroupC2승객 데이터 (이름, 생년월일)
originDestinationDetailsGroupC50출발지/도착지 구간
  originDestinationOrigin and destination detailsM1O&D 상세
itineraryInfoGroupC99여정 세그먼트
  elementManagementItineraryElement management segmentM1세그먼트 요소 관리
  travelProductTravel product informationC1여행 상품 정보
  itineraryMessageActionMessage action detailsC1메시지 액션 유형
dataElementsMasterGroupC1데이터 요소 마스터
  dataElementsIndivGroupC9999개별 데이터 요소

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메시지 내 데이터 항목의 참조 이름
StructureEntity의 정식 명칭과 참조 번호
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자리에러 상세 텍스트

약어 모음

약어정식 명칭설명
AAAAmadeus Application AreaAmadeus 애플리케이션 영역 (세션 컨텍스트)
BSPBilling and Settlement Plan항공권 정산 시스템 (IATA)
ARCAirlines Reporting Corporation항공 보고 법인 (미국 정산)
CTSCentral Ticketing System중앙 발권 시스템
EMDElectronic Miscellaneous Document전자 기타 문서 (부가서비스용)
ETEnd Transaction트랜잭션 종료 (PNR 저장)
ETKTElectronic Ticket전자 항공권
FAFA elementPNR 내 자동 발권 요소 (Ticketing line — Automated)
FHFH elementPNR 내 수동 발권 요소 (Ticketing line — Manual)
IGIgnorePNR 변경 무시 (원래 상태로 복원)
MCOMiscellaneous Charge Order기타 요금 주문서
PNRPassenger Name Record승객 예약 기록
RBDReservation Booking Designator예약 클래스 코드
SACSettlement Authorization Code정산 인가 코드
SBRSystem Booking Record시스템 예약 기록
SSRSpecial Service Request특별 서비스 요청
TRDCTicket Reporting Document Cancel티켓 보고 문서 취소 (크립틱 명령어)
TSTTransitional Stored Ticket임시 저장 티켓 (가격 레코드)
VOIDVoid무효 처리 (발권 당일 취소)
XECancel Element개별 요소 취소 (크립틱 명령어)
XICancel Itinerary여정 전체 취소 (크립틱 명령어)

참고

WBS Integration Flow - Step 15

PNR_Retrieve 용어집