날짜별 실서버 기록¶
실서버 확인 현황의 날짜별 근거와 그곳에서 옮긴 기록입니다. 새 관측은 별도 절에 추가하고, 각 절은 당시의 날짜·버전·메서드 이름·집계를 그대로 둡니다.
3.0에서 바뀐 이름은 3.0으로 옮기기에 있고, 기록의 옛 메서드 링크는 새 이름의 절로 이어집니다.
최신 기록부터 10월 23일 3.0.0.dev0 개발 wheel의 익명 조회, 2.6.2 읽기 전용 확인과 2! 기본 진단 관측, 2.6.1 간편 조회(오프라인), 10월 19일 7.0.10 정적 검토와 제한적 실서버 확인,
10월 7일 출시 전 검증·사용자 제공 승객별 측정, 9월 29일 2.3.0 추가 기능, 9월 28일 7.0.8 재검증 순이며, 맨 아래에 9월 24~26일의 7.0.6 시기 전체 목록을 보존합니다. 개인정보와 식별자는 적지 않았습니다.
2026-10-23 3.0.0.dev0 익명 조회 1회¶
소유자가 허락한 익명 직통 열차 조회를 개발 wheel 한 개로 정확히 한 번 실행했습니다. 3.0.0은 여전히 배포 전이며, 이 관측은 출시된 3.0.0 전체의 호환 보증이 아닙니다.
| 항목 | 내용 |
|---|---|
| 실행 시각 | 2026-10-23 23:34:34.219590–23:34:34.997748 KST (14:34:34.219590–14:34:34.997748 UTC), 정상 반환·종료 코드 0 |
| 커밋 | e36d836fac495779c989f0643c9b2abe45b91b4c |
| 패키지·환경 | korail-mobile-api==3.0.0.dev0, non-editable wheel 설치, macOS·Python 3.11.16·HTTPX 0.28.1 |
| wheel | korail_mobile_api-3.0.0.dev0-py3-none-any.whl, SHA-256 f1f95a9e77dd65418651dcf1b7924e988353c9f86726c785085ef4c97b84aefc; SDK payload 전체가 위 커밋의 소스·설치본과 바이트 일치 |
| 호출·입력 | 로그인 없는 KorailClient.search_trains: departure_station="서울", arrival_station="부산", departure_date="20261024", departure_time="090000"(KST). 일반 직통 첫 페이지이며 나머지 검색 기본값 유지 |
| 설정 | 기본 AppVersion=7.0.8·API Version=250601003·DynaPath(2!)·대기열 유지. API timeout 10초, queue timeout 5초, queue 누적 wait limit 5초, queue request cap 8회 |
| 결과 | SUCC/IRG000000, 열차 10개 |
| 전송 인계 | API 1회·대기열 2회, 순서: 대기열 5101 → 검색 → 대기열 5004. 5002 반복·재시도·환승 fallback·추가 조회 없음 |
| 정확한 HTTP 상태 | 미관측(null). 정상 SDK decode에 따른 API 2xx 추론뿐이며 HTTP 200을 관측한 것은 아님 |
| 대기열 HTTP 상태·반납 성공 | 미관측. 5004 전송 인계는 반납 성공의 증거가 아님 |
request hook은 전송 전 인계만 기록하므로 모든 요청의 실제 도달·응답 상태를 증명하지 않습니다. 대기열 반납 오류는 SDK가 삼킬 수 있어 반납 성공을 주장하지 않습니다. TLS 검증과 HTTPX의 기본 환경 프록시·CA 처리를 유지했으며 프록시를 쓰지 않았다고 단정하지 않습니다.
확인한 범위는 이 개발 wheel의 한 노선·날짜·시각뿐입니다. 로그인·인증 조회·예약·취소·결제·환불은 실행하지 않았고 3.0 코드로 실서버 검증하지 않았습니다. 다른 입력·기능이나 이후 서버 정책의 성공도 보장하지 않습니다. 원문 응답·서버 메시지·쿠키·토큰·PNR·예외 전문은 기록하지 않았습니다.
2026-10-23 2.6.2 읽기 전용 확인¶
32 확인을 위해 소유자가 허락한 범위(로그인 없는 열차 조회, 홀드 없음)에서만 요청했습니다. 3.0 코드가 아니라 배포된 2.6.2로 실행했습니다.¶
| 항목 | 내용 |
|---|---|
| 시각 | 2026-10-23 08:16:11, 08:16:23 KST |
| 코드 | PyPI korail-mobile-api==2.6.2를 새 가상환경에 설치(macOS, Python 3.14.7, httpx 0.28.1), 프록시 없음·TLS 검증·대기열 사용 |
| 호출 | KorailClient.search_trains(TrainSearchQuery("서울", "부산", <다음 날>, "090000")), 로그인 없음 |
| 설정 | ① KorailConfig() 기본값: AppVersion=7.0.8·Version=250601003 ② KorailConfig(app_version="7.0.10", version="250722001"). 둘 다 기본 2! 헤더 |
| 요청 | 각각 대기열 5101 → seatMovie.ScheduleView(2! 헤더 포함) → 대기열 5004, 모두 HTTP 200 |
| 결과 | ①② 모두 SUCC/IRG000000, 열차 10개 |
로그인·예약·결제·환불, 다른 노선·시각과 서버의 이후 정책은 확인하지 않았습니다. 응답 원문과 식별자는 기록하지 않습니다.
2026-10-23 SDK 2.0.1 기본 진단¶
2.6.2의 기본 KorailClient·Korail은 2! 진단 헤더를 사용합니다. 같은 헤더 형식으로 로그인·주요 조회와
직통/환승/좌석 지정 미결제 홀드 3건의 생성·상세·취소를 확인했으며 시험 홀드는 모두 정리했습니다.
실행 당시 요청 버전은 AppVersion=7.0.10·API Version=250722001이며 병합된 코드나 2.6.2로 다시 실행한 기록은 아닙니다.
날짜·소스·입력·결과와 한계를 구분합니다. 아래 과거 기록은 원래 범위로 보존합니다.
2.6.1 간편 조회 (오프라인만 확인)¶
PriceFareLeg.from_train(), trains.iter_search(), membership·airport_bus 간편 조회는 2.6.1부터 제공합니다.
합성 응답과 소켓 차단 환경에서 요청값·중단 조건·원문 보존·설치된 wheel을 검사했으며 새 실서버 요청은 하지 않았습니다.
아래 기존 85개 KorailClient 메서드의 관측 날짜·집계·검증 범위는 바꾸지 않습니다. 사용법과 제한은 간편 API 가이드를 참고하세요.
7.0.10 정적 검토 (2026-10-19)¶
아래 검토의 사전·요청 순서·환불 대상 연결 변경은 2.6.0에 포함합니다. 검증 당시의 버전과 관측 집계는 그대로 보존합니다.
7.0.10 검토 요약은 공개 메서드 85개 행을 앱과 정적으로 대조한 별도 기록입니다.
앱 실행·실서버 요청·실제 예약·결제·환불은 하지 않았으며 아래 실서버 집계에 합산하지 않습니다.
오류 사전 갱신과 요청 순서·환불 대상 연결 정정이 새 서버 성공을 뜻하지 않습니다.
검토 당시에는 요청 기본 AppVersion=7.0.8, API Version, 패키지 버전 2.5.0과 과거 관측 기록을 유지했습니다.
같은 날 정적 검토 이후에는 작업 브랜치 소스를 AppVersion=7.0.10으로 명시해 별도 실서버 검증했습니다.
공개 메서드 64개(로컬 2개 포함)를 실행했고 HTTP 120건은 모두 200이었습니다. 56개는 FAIL 없이 반환했으며,
나머지 8개는 FAIL·업무상 거절·자료 없음으로 정상 기능 성공과 구별합니다. 직통·환승 임시 홀드 2건을 모두 취소했고 예약은 전후 0건입니다.
결제·실제 환불은 하지 않았고 21개 메서드는 범위·전제 조건으로 미실행입니다.
수수료 조회는 과거 표의 WRT200022 거절까지만 확인했습니다. 범위와 한계는 별도 실서버 확인을 참고하세요.
2.5.0 출시 전 검증 (2026-10-07)¶
출시 전 main 커밋 e62fd87을 앱 7.0.8 설정으로 검증했습니다. 당시 패키지 버전 문자열은 2.4.0이며,
배포된 2.5.0 패키지를 검증한 결과는 아닙니다. 상세 범위와 한계는 출시 전 검증 보고서,
요청·결과의 요약은 검증 근거 JSON에 있습니다.
| 범위 | 관측 결과 |
|---|---|
| 대표 조회·정리·로컬 팩토리 | 59개 시나리오 반환·검사 성공, 실패 0건. 정상 close()와 실응답 기반 로컬 팩토리도 포함하며 공개 메서드 수가 아닙니다. |
| 요청 | HTTP 105건 모두 200, 호스트·경로 조합 29종. Device가 기록된 56건 모두 AppVersion=7.0.8 포함. |
| 열차 필터·요약 | 필터 전후 10→0·10→3·10→10, 자정을 넘는 소요 시간과 필터 전 목록·원문 참조 보존 확인. |
| 후속 조회 | 마지막 출발 시각 방식으로 실제 조회 성공. 서버의 다음 페이지 표시가 Y여도 필수 커서 값이 없어 next_page()는 None이었음. |
| 승인된 임시 홀드 | 어른 1명 GENERAL_FIRST로 일반실 48,000원, 어린이 1명 SPECIAL_FIRST로 특실 46,000원 성공. 각각 find()의 예약번호·금액 보존과 상세 조회 후 취소 완료. |
| 상태 보존 | 임시 홀드 2개 생성·2개 취소, 시작·최종 예약 0건. 인증 배치 로그아웃과 API·대기열 연결 종료 확인. 카드 결제·환불 요청 없음. |
두 홀드 금액은 승객 유형·객실이 다른 관측값이며 어린이 할인율을 확정한 근거가 아닙니다.
사용할 수 있는 서버 커서·예약대기 전용 행·객실 대체 선택·ONLY 옵션·예외 유도·정기권·자율 좌석 변경·실제 결제는 확인하지 않았습니다.
이번 대표 흐름 검증을 과거 84개 메서드의 전수 집계에 합산하지 않습니다.
승객 유형별 추가 보고 (2026-10-07)¶
아래는 사용자가 제공한 2.3.0 실서버 측정 결과입니다. 이번 수정 중에는 실서버 요청을 다시 실행하지 않았습니다. 과거 어른 승객 중심의 확인 범위에 어린이 성공과 청소년 거절 사례를 추가하며, 과거 전수 확인표의 집계는 바꾸지 않습니다.
| 승객 구성 | 열차·조건 | 보고된 실서버 결과 |
|---|---|---|
청소년 1명(teenager=1) |
KTX 318, 2026-10-14 10:01, 동대구→수서, 일반실·직통 | ERR299943("예약할인이 지원되지 않습니다")로 거절 |
청소년 1명(teenager=1) |
KTX 007, 2026-10-14 06:03, 서울→부산, 일반실·직통 | ERR299943로 거절 |
어린이 1명(child=1) |
KTX-산천 310, 일반실·직통 | 18,600원 홀드 성공(사용자 보고상 어린이 50% 할인), 즉시 취소 |
어린이 사례의 원운임·할인액을 포함한 응답 원문은 제공되지 않아 50% 할인율을 별도로 대조하지 않았습니다.
다른 승객 유형이나 다른 열차·상품의 성공을 이 세 사례로 확정하지 않습니다.
현재 코드는 teenager > 0인 열차 예약을 대기열·예약 요청 전에 KorailProtocolError로 거절하며,
검색의 어른 인원 합산은 유지합니다. 어린이 단독 예약의 요청 폼과 직통·환승·병합·간편 API의
청소년 사전 거절은 오프라인 회귀 테스트로 확인했습니다.
2.3.0 추가 기능 (2026-09-29)¶
| 메서드 | 검증 범위 | 실서버 결과 |
|---|---|---|
get_reservation_hold |
실제 기존 예약 한 건의 상세를 조회하고, PNR·창구번호·양수 정산액·여정을 검증했습니다. 반환값으로 로컬 결제 폼을 만들어 PNR·창구번호·정산액 보존도 확인했습니다. | HTTP 200, SUCC/IRZ000001. 상세에서 h_payment_flg가 생략되는 것을 확인해 누락을 허용하고 None으로 보존하도록 수정했습니다. 카드 결제 요청은 보내지 않았습니다. |
새 메서드는 아래 84개 메서드의 과거 실서버 집계에 포함하지 않습니다.
첫 검사에서는 승인받은 일반실 어른 1명 임시 예약을 만들었으나, 결제 플래그를 필수로 요구하던 검증에서 거절됐습니다.
임시 예약은 SUCC/IRG000000으로 취소했고, 실행 직전에 있던 별도 예약 한 건만 그대로 남았음을 확인했습니다.
수정 후에는 그 기존 예약을 조회만 하여 새 메서드의 성공을 확인했으며, 각 검사 세션은 로그아웃했습니다.
환승·복수 좌석과 잘못된 금액·필수값의 거절은 합성 테스트로 확인했습니다. 이번 흐름의 실제 카드 결제와 N카드 예약 복원은 별도 검증하지 않았습니다. 근거는 2.3.0 실서버 검사 기록에 있으며, 계정·비밀번호·쿠키·예약번호·응답 본문을 포함하지 않습니다.
7.0.8 요청 변경 실서버 재검증 (2026-09-28)¶
조회, 인증, 임시 예약·취소 요청을 실서버에 보냈습니다. 공통 필드를 싣는 폼과 직접 은행 조회 폼에서 AppVersion=7.0.8을 확인했습니다. URL 쿼리를 쓰거나 본문이 없는 요청은 폼 기록만으로 버전을 판정하지 않았습니다. 공개 메서드 84개의 재검증 범위와 근거는 7.0.8 전수 확인표에 있습니다.
| 메서드 | 7.0.8 요청 | 실서버 결과 |
|---|---|---|
get_common_code("app.display.image") |
공통 필드와 코드·기기 정보를 전송 | HTTP 200, SUCC/API.I00000 |
get_train_calendar() |
공통 필드와 timeStamp 전송 |
HTTP 200, SUCC/API.I00000, 운행일 32개 |
get_maas_menu_list() |
공통 필드와 timeStamp 전송 |
HTTP 200, SUCC/API.I00000, 메뉴 11개 |
get_app_data(timestamp_ms=1) |
공통 필드·timeStamp·srtCheckYn=Y 전송 |
HTTP 200, JSON 파싱 성공, version·notice 객체 존재. 이 캐시 응답에는 strResult가 없습니다. |
login() |
로그인 요청에 AppVersion=7.0.8 전송 |
HTTP 200, 세션 쿠키를 받았으며 SDK 로그인이 성공함. |
get_deposit_banks() |
직접 @Field 네 개(Device, Version, AppVersion, Key) 전송 |
인증 세션에서 HTTP 200, SUCC/API.I00000, 은행 56개. 세션 없이 같은 필드로 보낸 요청은 P058을 받음. |
search_trains() |
7.0.8 공통 필드로 직통 열차 조회 | SUCC/IRG000000, 예약 가능 행 10개. |
reserve() → get_ticket_reservation_detail() |
미결제 홀드 하나를 만든 뒤 그 PNR의 상세를 조회 | 예약 SUCC/IRR000018, 상세 HTTP 200·SUCC/IRZ000001. 한 여정에 h_run_dt가 실제로 있었고 모델의 run_date와 원문 값이 일치함. |
cancel_unpaid_hold() |
위 미결제 홀드를 즉시 취소 | HTTP 200, SUCC/IRG000000. 이후 예약 이력은 P100·0여정. |
| 예약대기·병합·좌석 지정·환승·공항버스 예약 | 각 유형의 실제 미결제 홀드 생성 | 예약대기 옵션 저장까지 성공했고, 병합·좌석 지정·환승·공항버스 홀드도 성공했습니다. 모두 취소 후 예약 이력 0건을 확인했습니다. |
recalculate_price() |
실제 홀드의 할인 재계산 요청 | 요청은 서버에 도달했지만 WZZ000001과 변경 내용 없음 ERR930202를 받았습니다. 7.0.8 성공 응답은 미확인입니다. |
get_ticket_list(mode="2") → 발권 후 조회 |
3개월 이내 승차일 범위로 과거 이력 조회 | 7개 예약·8장 승차권을 받았고, 이 중 한 장의 영수증·원표·환불 상세·지연확인증·대리수령 명세 응답을 파싱했습니다. |
get_product_detail()·get_pbp_acceptance_specifications() |
계정의 실제 과거 여행상품·승차권 식별자로 조회 | 고객 취소된 여행상품 1건의 상세와 대리수령 대상 과거 승차권 2건의 명세를 파싱했습니다. 두 명세의 회수 가능 플래그는 모두 N이었습니다. |
get_discount_card_schedule() |
알려진 N카드 상품 코드로 읽기 전용 조회 | 서버의 EAZ000028 스케줄 조회 오류를 받았습니다. 보유 N카드가 없으므로 성공 경로는 미확인입니다. |
이는 각 경로의 현재 서버 응답과 파싱을 확인한 결과입니다. 재검증 전 예약 이력은 P100으로 비었고 현재 승차권은 WRT300005였습니다. 첫 과거 승차권 조회의 WRT100101은 자료 부재가 아니라 3개월 초과 날짜 범위 오류였고, 범위를 바로잡아 성공했습니다. 여러 미결제 홀드를 순차적으로 만들고 모두 취소했으며 최종 예약 이력은 0건이었습니다. 결제·환불 요청은 보내지 않았고 검증용 로그인 세션은 종료했습니다. 84개 중 실서버 응답 파싱 59개, 서버 거절 확인 10개, 자료 부족으로 미실행 13개, 로컬 메서드 2개입니다.
7.0.6 시기 기존 전체 목록 (2026-09-24~26)¶
| 상태 | 수 | 뜻 |
|---|---|---|
| 확인됨 | 66 | 실서버에서 정상 응답을 받았습니다. |
| 서버 응답만 확인 | 4 | 요청은 서버까지 갔지만 계정에 해당 자료나 자격이 없어 실패 결과 코드만 확인했습니다. |
| 미확인 | 12 | 필요한 카드·승차권·상태가 없어 정상 응답을 확인하지 못했습니다. 일부는 요청을 보내 실패 결과 코드만 받았습니다. |
| 해당 없음 | 2 | 네트워크를 쓰지 않는 메서드입니다. |
실서버 확인은 그 시점의 결과입니다. KORAIL이 서버나 앱을 바꾸면 결과가 달라질 수 있습니다.
세션·공통¶
| 메서드 | 상태 | 결과 |
|---|---|---|
login |
확인됨 | 로그인에 성공했습니다. 하이픈이 든 ID는 요청 전에 거절합니다. |
logout |
확인됨 | 로그아웃한 뒤의 요청은 FAIL/P058을 받으며, 세션 만료로 처리합니다. |
clear_session |
해당 없음 | - |
close |
해당 없음 | 닫은 뒤에 호출하면 요청을 보내지 않고 KorailProtocolError가 발생합니다. |
get_service_status |
확인됨 | SUCC/S100을 받았습니다. |
get_app_data |
확인됨 | - |
get_notice |
확인됨 | - |
get_common_code |
확인됨 | SUCC/API.I00000을 받았습니다. |
get_uuid |
확인됨 | - |
get_station_info |
확인됨 | - |
get_station_data |
확인됨 | 역 281개를 받았습니다. |
get_train_calendar |
확인됨 | 32일치 날짜를 받았습니다. |
get_crew_request_list |
확인됨 | 요청 사유 3건을 받았습니다. |
열차 조회·좌석¶
| 메서드 | 상태 | 결과 |
|---|---|---|
search_trains |
확인됨 | 서울→부산 열차 10편을 받았습니다. 청소년·유아·안내견 인원은 앱과 같이 어른·어린이 인원에 합쳐 보냅니다. peak_season=True일 때의 peak_season_inquiry 관문과 use_special_schedule=True일 때의 product_inquiry 관문은 실서버에서 확인하지 못했습니다. |
search_transfer_trains |
확인됨 | 강릉→목포 환승 여정 2개를 받았습니다. |
search_trains_with_transfer_fallback |
확인됨 | 강릉→목포 조회가 환승 조회로 전환돼 여정 2개를 받았습니다. |
get_transfer_stations |
확인됨 | 환승역 2개를 받았습니다. |
get_train_schedule |
확인됨 | 정차역 9개를 받았습니다. |
get_seat_cars |
확인됨 | 호차 13~14개를 받았습니다. 응답에 없는 호차 필드 가운데 네 개는 앱 기본값(문자열은 "", 숫자는 None)으로 읽습니다. |
get_seat_inventory |
확인됨 | 좌석 56석과 창문 6개를 받았습니다. 세 자리 숫자가 아닌 좌석 속성 코드는 요청 전에 거절합니다. |
get_free_seat_car_info |
확인됨 | 열차 203편을 조회했습니다. 자유석 칸이 있는 183편은 호차 안내 문구(KTX 18호차, KTX-산천 8·18호차, ITX-새마을 6호차 등)를 받았습니다. 자유석 칸이 없는 20편은 IRZ000005를 받았습니다. 모두 열차 조회 결과의 자유석 칸 수와 일치했습니다. |
get_seat_assignment_schedule |
확인됨 | 열차 10편을 받았습니다. 추석 기간 날짜로 조회하면 WRD000057을 받았습니다. peak_season=True일 때의 peak_season_inquiry 관문은 실서버에서 확인하지 못했습니다. |
get_merge_seats_inquiry |
확인됨 | 열차 2편을 받았습니다. |
get_guide_seat_condition |
서버 응답만 확인 | seat_attribute_code와 관계없이 FAIL/MRR800011을 받았습니다. seat_attribute_code가 "999"일 때도 같았습니다. 로그인 전에는 P058을 받았습니다. |
get_price_fare_quote |
확인됨 | SUCC/API.I00000을 받았습니다. 받은 운임은 홀드의 total_price와 같았습니다. 실제 결제액인 홀드의 received_amount는 좌석 할인만큼 더 낮을 수 있습니다. 환승 2구간 조회는 운임 4행을 받았습니다. |
예약¶
| 메서드 | 상태 | 결과 |
|---|---|---|
reserve |
확인됨 | SUCC/IRR000018로 홀드를 만든 뒤 바로 취소했습니다. 일반 예약과 좌석 지정 예약 모두 홀드를 만들었습니다. 예약대기 홀드는 결제할 수 없는 상태로 표시됩니다. 선택한 객실에 빈 좌석이 확인되지 않는 행(입석만 남은 행 포함)은 요청 전에 거절합니다. 어린이 성공·청소년 거절의 사용자 제공 측정 결과는 2026-10-07 추가 보고에 있습니다. |
reserve_transfer |
확인됨 | 2구간 환승 홀드를 만든 뒤 취소했습니다. 두 구간이 같은 열차이거나 탑승 순서가 아니면 요청 전에 거절합니다. |
reserve_merge |
확인됨 | 병합 예약 홀드를 만든 뒤 취소했습니다. 첫 홀드도 결제할 수 있는 상태였습니다. 병합할 행의 운행일이 첫 홀드와 다르면 요청 전에 거절합니다. |
confirm_standby_hold |
확인됨 | ITX-새마을 예약대기 홀드(IRR000014, 결제할 수 없는 상태)로 확인했습니다. 옵션 저장은 SUCC/IRZ000003을 받았습니다. 홀드 취소는 IRG000000을 받았고, 이후 예약 내역 조회는 P100을 받았습니다. |
cancel_unpaid_hold |
확인됨 | SUCC/IRG000000을 받았습니다. |
get_reservation_history |
확인됨 | 홀드가 없는 상태에서 P100을 받았습니다. |
get_ticket_reservation_detail |
확인됨 | SUCC/IRZ000001을 받았습니다. |
check_ticket_duplication |
확인됨 | 홀드의 PNR로 SUCC를 받았습니다. |
get_cart_list |
확인됨 | 장바구니에 담은 열차 홀드와 공항버스 홀드가 행으로 나왔습니다. |
add_to_cart |
확인됨 | SUCC/IRZ000002를 받았습니다. 홀드를 취소하면 장바구니에서도 빠졌습니다. |
결제·환불¶
| 메서드 | 상태 | 결과 |
|---|---|---|
pay_with_card |
확인됨 | 7,500원 홀드를 결제해 IRT000000을 받았고, 수수료 0원으로 환불했습니다. 예약대기 홀드, 0원 홀드, 형식이 잘못된 카드 입력은 요청 전에 거절합니다. |
recalculate_price |
확인됨 | 평일 열차의 할인을 바꾸자 SUCC/IRZ000008과 함께 금액이 21,500원에서 15,000원으로 바뀌었습니다. 토요일 열차는 같은 결과 코드를 받았지만 금액이 그대로였습니다. 할인이 바뀌지 않으면 ERR930202를 받았습니다. 결제에는 재계산 결과로 받은 홀드를 사용합니다. add_to_cart=True와 PriceRecalculationRequest.for_hold()로 만든 요청도 실서버에서 확인했습니다. |
get_refund_ticket_detail |
확인됨 | - |
get_refund_commission |
확인됨 | 결제한 승차권의 수수료로 0원을 받았습니다. 이미 환불한 승차권은 WRT200399, 승차일이 지난 승차권은 WRT200022를 받았습니다. |
refund |
확인됨 | 수수료 0원 승차권 환불을 두 번 실행해 모두 SUCC/IRT200277을 받았습니다. commission이 get_refund_commission의 응답이 아니면(None 포함) 요청 전에 KorailProtocolError가 발생합니다. settle_mileage=True는 사용할 수 있는 마일리지가 수수료 이상일 때만 받습니다. |
verify_station_ticket_refund |
미확인 | 역에서 발권한 승차권이 없어 확인하지 못했습니다. |
execute_station_ticket_refund |
미확인 | 역에서 발권한 승차권이 없어 확인하지 못했습니다. |
승차권·계정¶
| 메서드 | 상태 | 결과 |
|---|---|---|
get_ticket_list |
확인됨 | 현재 승차권 0장과 지난 이력 131건을 받았습니다. |
get_ticket_receipt |
확인됨 | 영수증 1건을 받았습니다. |
get_korail_point_summary |
확인됨 | - |
get_mileage_history |
확인됨 | - |
get_discount_coupons |
확인됨 | 할인쿠폰 0장을 받았습니다. |
get_delay_discount_tickets |
확인됨 | 지연할인권 0장을 받았습니다. |
get_deposit_banks |
확인됨 | 은행 56개를 받았습니다. |
get_customer_trip_info |
확인됨 | SUCC/IRS100002를 받았습니다. |
get_multi_child_discount_targets |
서버 응답만 확인 | 다자녀 할인 대상이 아닌 계정에서 WRC800029를 받았습니다. |
get_trip_change_dates |
확인됨 | 변경할 수 있는 날짜 15일을 받았습니다. |
get_original_ticket_inquiry |
확인됨 | 인쇄를 마친 승차권 2장으로 SUCC/IRT000001을 받았습니다. 환불한 승차권은 WRT200399를 받았습니다. |
get_self_seat_change_info |
확인됨 | 운행 중인 KTX 열차로 SUCC를 받았습니다. 운행 시간 밖의 열차는 WRT800176을 받았습니다. |
get_delay_certificate |
확인됨 | 지연된 승차권 2장으로 SUCC/IAZ000006과 지연 행 1개를 받았습니다. 받은 행에는 운행일이 없어 run_date가 None이었습니다. 지연되지 않은 승차권은 WRT400456을 받았습니다. |
get_delay_return_receipt |
서버 응답만 확인 | 지연료를 돌려받은 승차권이 없어 IRZ000005를 받았습니다. |
대리수령·셀프 체크인¶
| 메서드 | 상태 | 결과 |
|---|---|---|
get_recent_delivery_history |
확인됨 | 수령자 1명을 받았습니다. 응답에 해당 값이 없어 changed_acceptance_reservation_no는 None이었습니다. |
get_delivery_recipient |
미확인 | N카드 2인 승차권이 없어 수령자 응답을 확인하지 못했습니다. 서버는 IRZ000005를 반환했습니다. |
get_pbp_acceptance_specifications |
확인됨 | 대리수령 대상 승차권 6장으로 6장의 명세를 받았습니다. 대상이 아닌 승차권은 0건이었습니다. |
retrieve_delivered_ticket |
미확인 | 회수 가능한 전달 승차권이 없어 확인하지 못했습니다. 7.0.8에서 조회한 과거 명세 2건도 회수 가능 플래그가 모두 N입니다. |
get_self_checkin_info |
서버 응답만 확인 | 체크인한 승차권이 없어 WRZ000001을 받았습니다. |
check_self_checkin_seat |
미확인 | 열차 좌석의 QR 코드가 필요해 요청을 보내지 않았습니다. |
register_self_checkin |
미확인 | 열차 좌석의 QR 코드가 필요해 요청을 보내지 않았습니다. 앱 안내에 따르면 부정 사용 시 부가금이 있어 임의 값도 보내지 않았습니다. |
cancel_self_checkin |
미확인 | 체크인한 승차권이 없어 확인하지 못했습니다. |
정기권·패스·N카드·여행상품¶
| 메서드 | 상태 | 결과 |
|---|---|---|
get_pass_menu |
확인됨 | 메뉴 22항목을 받았습니다. |
get_pass_available_dates |
확인됨 | - |
get_pass_schedule |
확인됨 | 일반정기권(0001)과 기간자유형(0028) 조합 다섯 가지 모두 SUCC를 받았습니다(서울→부산 7편, 서울→대전 4편). 내일로 상품 코드(0046)로는 실패했습니다. |
get_commuter_kind_menu |
확인됨 | SUCC/IRZ000001을 받았습니다. |
get_commuter_info |
확인됨 | 초기 단계와 인원 단계는 IRZ000008을 받았습니다. 원표 단계는 정기권이 아닌 승차권으로 요청해 ERR000100을 받았습니다. |
get_trip_menu |
확인됨 | 메뉴 5개를 받았습니다. |
get_discount_card_usage_history |
미확인 | N카드가 없어 확인하지 못했습니다. 서버는 ERR000100을 반환했습니다. |
get_discount_card_schedule |
미확인 | N카드가 없어 확인하지 못했습니다. 서버는 WRR000100을 반환했습니다. |
register_discount_card |
미확인 | 호출하면 결제 전 N카드 구매가 실제로 만들어지므로 요청을 보내지 않았습니다. |
extend_discount_card |
미확인 | N카드가 없어 확인하지 못했습니다. |
reserve_with_discount_card |
미확인 | N카드가 없어 확인하지 못했습니다. |
get_product_reservations |
확인됨 | 웹에서 만든 결제 전 예약이 예약확정(03)으로 나왔고, 취소한 뒤에는 05로 나왔습니다. |
get_product_detail |
확인됨 | 상품 금액 15,400원, 취소 수수료 0원, 포함 열차 2개를 받았습니다. |
cancel_product_reservation |
확인됨 | 결제 전 예약을 취소해 SUCC를 받았습니다. 상품을 결제할 수 없어 결제한 예약의 취소는 확인하지 못했습니다. |
공항버스·부가서비스¶
| 메서드 | 상태 | 결과 |
|---|---|---|
get_limousine_schedules |
확인됨 | 광명→인천공항 30편을 받았습니다. |
get_limousine_seat_inventory |
확인됨 | 좌석 28석을 받았습니다. |
reserve_limousine |
확인됨 | 16,000원 홀드와 24,000원 홀드를 만든 뒤 취소했습니다. 16,000원 홀드는 결제한 뒤 수수료 0원으로 환불했습니다. |
get_maas_menu_list |
확인됨 | 메뉴 11개를 받았습니다. |
get_maas_station_data |
확인됨 | 역 101개를 받았습니다. |
get_maas_service_details |
확인됨 | 빈 목록을 받았습니다. |