콘텐츠로 이동

실서버 확인 현황

메서드마다 실제 KORAIL 서버에 요청해 응답을 확인했는지 정리했습니다. 먼저 2026년 9월 28일의 7.0.8 재검증 결과를 보여주고, 아래 전체 목록에는 2026년 9월 24~26일의 7.0.6 시기 기록을 보존합니다. 개인정보와 식별자는 적지 않았습니다.

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로 홀드를 만든 뒤 바로 취소했습니다. 일반 예약과 좌석 지정 예약 모두 홀드를 만들었습니다. 예약대기 홀드는 결제할 수 없는 상태로 표시됩니다. 선택한 객실에 빈 좌석이 확인되지 않는 행(입석만 남은 행 포함)은 요청 전에 거절합니다.
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 확인됨 빈 목록을 받았습니다.