Korail gateway API β agent-oriented docs. This same content is at /llms.txt (plain) and /openapi.json (spec).
# rail-api β Korail gateway API (agent guide)
A systematized pass-through over the Korail (μ½λ μΌ) mobile API. 159 operations,
all reachable through one generic endpoint. This service handles anti-macro (m-token),
login/session reuse, cookies, form-encoding and error mapping for you.
Base URL: https://rail-api.coderyn.com
## How to call
- Generic (any operation): POST https://rail-api.coderyn.com/v1/op/{operationId} body = JSON of raw korail fields
- Named aliases: POST /v1/sessions (login), GET /v1/trains (=trains.search)
- List operations: GET https://rail-api.coderyn.com/v1/ops (id, kind, auth, mToken, charge, note)
- Machine spec: GET https://rail-api.coderyn.com/openapi.json
- Health: GET https://rail-api.coderyn.com/v1/health
## Auth model
- This service has its OWN users. Each user stores ONE set of korail credentials (encrypted).
- Send: Authorization: Bearer <apiKey> on member operations.
- Admin (needs ADMIN_TOKEN):
POST https://rail-api.coderyn.com/admin/users {"name":"..."} -> {userId, apiKey}
POST https://rail-api.coderyn.com/admin/users/{userId}/credentials {"member_no","password"[,"model","os"]}
- auth levels per op: none (reference), member (needs Bearer), nonmember (send name+phone+ticket-pw in body).
## Rules
- It is a PASS-THROUGH: you supply the raw korail field names (txt*, hid*, h_*) in the JSON body.
The gateway adds Device/Version/Key/Lang, the m-token (for 6 protected paths), and the session cookie.
- Mutations (kind write/pay/refund) REQUIRE an Idempotency-Key header.
- pay/refund move real money β treat as gated.
- Reservation window: boarding date <= 31 days ahead, else NOT_YET_OPEN.
## Recipes (concrete field maps)
### A. Reference read (no auth)
POST https://rail-api.coderyn.com/v1/op/global.stations body: {"stnLang":"ko"}
POST https://rail-api.coderyn.com/v1/op/codes.get body: {"code":"app.login.cphd"}
### B. Establish session (member)
POST https://rail-api.coderyn.com/v1/sessions header: Authorization: Bearer <apiKey>
β {ok, custNo, mbCrdNo}. A session is also auto-established on the first member op.
### C. Search trains (op: trains.search β m-token handled for you)
POST https://rail-api.coderyn.com/v1/op/trains.search
body: {
"radJobId":"1","srtCheckYn":"N",
"txtGoAbrdDt":"YYYYMMDD", // boarding date, <= 31 days ahead
"txtGoStart":"μμΈ","txtGoEnd":"λΆμ°",
"txtGoHour":"060000", // from-time HHMMSS
"txtTrnGpCd":"100", // 100=KTX 101=ITX/μλ§μ 102=무κΆν 109=all
"txtPsgFlg_1":"1"
}
β data.trn_infos.trn_info[]: each has h_trn_no, h_trn_clsf_cd, h_trn_gp_cd, h_run_dt,
h_dpt_dt, h_dpt_tm, h_dpt_rs_stn_cd, h_dpt_stn_cons_ordr, h_dpt_stn_run_ordr,
h_arv_rs_stn_cd, h_arv_stn_cons_ordr, h_arv_stn_run_ordr,
h_gen_rsv_cd ("00"=seats available, "13"=sold out), h_spe_rsv_cd (special/first class).
### D. Reserve a seat hold (op: reservation.ticketReserve β WRITE, needs Idempotency-Key)
Pick a train t from search where h_gen_rsv_cd=="00". 1 adult, auto general seat, one-way:
POST https://rail-api.coderyn.com/v1/op/reservation.ticketReserve
header: Idempotency-Key: <uuid>
body: {
"txtMenuId":"11","txtJobId":"1101","hidFreeFlg":"N","txtStndFlg":"N",
"txtTotPsgCnt":"1","txtJrnyCnt":"1",
"txtSeatAttCd1":"000","txtSeatAttCd2":"000","txtSeatAttCd3":"000","txtSeatAttCd4":"015","txtSeatAttCd5":"000",
"txtCompaCnt1":"1","txtPsgTpCd1":"1","txtDiscKndCd1":"000",
"txtJrnyTpCd1":"11","txtJrnySqno1":"001",
"txtTrnNo1":t.h_trn_no,"txtTrnClsfCd1":t.h_trn_clsf_cd,"txtTrnGpCd1":t.h_trn_gp_cd,
"txtRunDt1":t.h_run_dt,"txtDptDt1":t.h_dpt_dt,"txtDptTm1":t.h_dpt_tm,
"txtDptRsStnCd1":t.h_dpt_rs_stn_cd,"txtDptStnConsOrdr1":pad6(t.h_dpt_stn_cons_ordr),"txtDptStnRunOrdr1":pad6(t.h_dpt_stn_run_ordr),
"txtArvRsStnCd1":t.h_arv_rs_stn_cd,"txtArvStnConsOrdr1":pad6(t.h_arv_stn_cons_ordr),"txtArvStnRunOrdr1":pad6(t.h_arv_stn_run_ordr),
"txtChgFlg1":"N","txtPsrmClCd1":"1"
}
(pad6 = left-pad numeric to 6 digits, e.g. 1 -> "000001")
β data.h_pnr_no (reservation id), data.h_jrny_cnt, data.h_ntisu_lmt_dt + h_ntisu_lmt_tm (payment deadline).
The hold auto-cancels if unpaid by the deadline.
### E. Cancel the hold (op: reservation.cancelCheck β this actually performs the cancel)
POST https://rail-api.coderyn.com/v1/op/reservation.cancelCheck
body: {"txtPnrNo":<h_pnr_no>,"txtJrnySqno":"001","txtJrnyCnt":<h_jrny_cnt>,"hidRsvChgNo":"000"}
β h_msg_cd "IRG000000" on success. Verify with op reservation.view -> data.jrny_infos empty.
### F. My tickets / reservation view
POST https://rail-api.coderyn.com/v1/op/myTicket.list body: {}
POST https://rail-api.coderyn.com/v1/op/reservation.view body: {"timeStamp":"<epoch-ms>"}
### G. Payment & refund β GATED (real money). Not executed by default.
Payment (op: pay.reservationPayment) and refund (op: refund.request / refund.commission)
move real money. Build them the same way (pass-through fields) but only fire with explicit intent.
## Response envelope & error codes
Every op returns: {ok, code, data, korail:{strResult,h_msg_cd,h_msg_txt}, requestId}
- ok=true β success (or benign "no data"). HTTP 200.
- ok=false β code tells you why; korail.h_msg_cd is the upstream reason.
Gateway codes (HTTP status):
OK success
MTOKEN_REJECTED 429 anti-macro tripped; the gateway auto-regenerates the token & retries once
NOT_YET_OPEN 409 WRD000058 β reservation window not open (>31 days out)
SESSION_EXPIRED 401 handled internally: the gateway re-logs-in and retries
KORAIL_FAIL 409 upstream strResult:FAIL (usually input error; see korail.h_msg_txt)
UPSTREAM_ERROR 502 korail 5xx; retried once for reads/idempotent
AUTH_REQUIRED 401 member op without a valid Bearer apiKey
LOCK_TIMEOUT 409 another mutation for the same user is in flight
NO_CREDENTIALS 400 user has no korail credentials registered
Common upstream h_msg_cd you'll see:
IRG000000 = success (generic) IRR000018 = reserve success (hold created)
IRZ000001 = query success WRT300005 = "no data" (benign)
WRR000100 = input error (you omitted/mis-typed a required field)
WRD000058 = reservation not yet open
## All operations (159)
refund.executeOnline [refund,charge] auth=member refunds.executeOnlineRefunds β μ¨λΌμΈ νλΆ μ€ν β ꡬ맀μ΄λ ₯ λΆμ(pnrNo+μκΆννλ§).
goods.cacheRead [read] auth=none goods.cacheRead.do
research.commutationInfo [read] auth=member research.cmtrInfo.do
push.crewCallList [read] auth=member push.crwCallRq.do
global.stations [read] auth=none /ebizcom/com.korail.mobile.global.stations.do
maas.cancelFee [read] auth=member maas.cncFee.do
copt.maasDetailList [read] auth=member copt.gdReqQry.do
ncard.history [read] auth=member ticket.dcntCrdUseQry.do
product.detail [read] auth=member product.ReservationDetail
product.list [read] auth=member product.ReservationList
goods.meta [read] auth=none goods.meta.do
pass.seatInfo [read] auth=member pass.seatInfo.do β ν¨μ€ μ’μμ§μ λμ μ‘°ν(wctNo/saleDt/saleSqno/tkRetPwd νμ΄μ§).
tripChange.originalTicket [read] auth=member research.tripChgOgtk.do β μ¬μ λ³κ²½μ© μκΆ(μμΉμ°¨κΆ) μ‘°ν.
tripChange.dates [read] auth=member reservation.tripChgDate.do β λ³κ²½κ°λ₯ λ μ§ μ‘°ν(GET).
pass.otrReserve [write] auth=member pass.passOtrReserve β OTR(μ’μμλ ν¨μ€κΆ) μμ½, passOtrPayIssue λ‘ μ΄μ΄μ§.
product.payInfo [read] auth=member product.payInfo β μ¬νμν κ²°μ μ¬μ νμΈ(strLumpStlTgtNo νλ).
maas.reserveStatus [read] auth=member maas.rsvStt.do β μλ΅ empty(λ΄ν¬λ§).
mileage.accompanySave [write] auth=member mileage.acpnMlgSave.do
delay.acceptProcess [write] auth=member delay.acptPrs.do β μ§μ°λ°°μκΈ μλ½μ²λ¦¬.
research.actualSchedule [read] auth=member research.actualTrainSchedule.do
cart.add [write] auth=member cart.addCartList
seats.airportBusResidual [read] auth=member lms.TResidualSeatsResearch.do β 곡νλ²μ€ μ’μλ§΅ β research.TResidualSeatsResearch μ λμΌ μ€ν€λ§.
mileage.amountSpec [read] auth=member mlg.amtSpec.do
research.assignScheduleView [read] auth=member research.assignScheduleView.do
addService.buyConfirm [write] auth=member addService.buyConfirm.do
goods.cacheCheck [read] auth=none goods.cacheCheck.do
checkin.cancel [write] auth=member checkin.cnc.do β νλλͺ
saleDt(psbFlg/reg λ saleDd).
addService.wheelchairCancel [write] auth=member addService.reserve.do β addService.reserve.do λ λ€κΈ°λ₯ κ²½λ‘(postRequestWheelchairWithHistory μ 곡μ ), jobDvCd λ‘ λΆκΈ°.
cashReceipt.issue [write] auth=member cashReceipt.issue.do
delay.cashRefund [write] auth=member dlay.cashRfn.do β λͺ
μμ @Field λ°λ(In λͺ¨λΈ μμ) β κ³μ’νλΆ(dmnPrsDvCd/dptnBankCd/dptnAcntNo).
cert.congressperson [read] auth=member certification.assemblyCert β κ΅νμμ 무μ(GET).
cert.merit [read] auth=member certification.MeritCert β κ΅κ°μ 곡μ μΈμ¦.
qry.transferStation [read] auth=member qry.chtnStn.do
codes.get [read] auth=none common.code.do β common.code.do 곡μ β λ¨μΌ μ½λμ
.
codes.getMulti [read] auth=none common.code.do β common.code.do 곡μ β 볡μ μ½λμ
λ³ν.
crypto.encrypt [read] auth=none common.encrypt.do β common.encrypt.do 곡μ (postKBPayEncrypt μ λμΌ κ²½λ‘).
passCard.coupons [read] auth=member passCard.CouponView
research.custTripInfo [read] auth=member research.custTripInfo.do
research.ncardInfo [read] auth=member research.dcntCrdInfo.do
research.ncardScheduleView [read] auth=member research.dcntCrdScheduleView.do
crypto.decrypt [read] auth=none common.decrypt.do
delay.certificate [read] auth=member dlay.athnIsu.do β μ§μ°μ¦λͺ
μ λ°κΈμ‘°ν.
passCard.delayDiscount [read] auth=member passCard.DelayDiscountView β νμ΄μ§ Query h_page_no.
delay.returnReceipt [read] auth=member dlay.pymtRcet.do
account.delete [write] auth=member login.mbSced.do β νμνν΄ β login.mbSced.do μ΄μ§λ§ λ‘κ·ΈμΈ μΈμ
νμ.
addSrv.wheelchairHistoryDelete [write] auth=member addSrv.helpSrvCust.do β helpSrvCust.do λ€κΈ°λ₯ κ²½λ‘(qryDvCd/addSrvDvCd λΆκΈ°).
tk.receivedTicketHistory [read] auth=member tk.pbpAcepSpec.do β λ°μμΉμ°¨κΆ λ΄μ.
tk.deliveryReceiver [read] auth=member tk.dlvRcvCust.do
gift.send [write] auth=member giftInfo.GiftSend β μΉμ°¨κΆ μ λ¬Ό λ°μ‘(+presentMap) β λ³κ²½ μμ½λ²νΈ chgePbpRsvNo.
tk.deviceReset [write] auth=member tk.dvcInfoInit.do β κΈ°κΈ°μ 보 μ΄κΈ°ν(λλ°μ΄μ€ λ°μΈλ© 리μ
).
cert.disability [read] auth=member certification.disabled.do
passCard.discountCheck [read] auth=member passCard.DiscountCheck
delay.depositBankList [read] auth=member dlay.dptnBank.do β λͺ
μμ @Field(Device/Version/Keyλ§) β κ³μ’νλΆμ© μνλͺ©λ‘.
ebizcross.uuid [read] auth=none /ebizcross/getUUID.do β ν¬λ‘μ€μλΉμ€ UUID λ°κΈ μ νΈ(μΈμ¦ μ ).
trn.freeSeatCar [read] auth=member trn.fresScar.do
copt.stationConvenienceMenu [read] auth=member copt.gdMenuLt.do β μνΈμ URL λ©λ΄(μλ¦¬λ² μ΄ν°/μ£Όμ°¨/BIS).
refund.ticketDetail [read] auth=member refunds.SelTicketInfo β refunds.* μ΄μ§λ§ μ‘°ν(λ°νλμ μμΈ).
tk.guardianSms [write] auth=member tk.gurdSmsSnd.do β 보νΈμ SMS λ°μ‘(μ¬μ΄λμ΄ννΈ μ‘μ
).
reservation.guideSeatCondition [read] auth=member reservation.guideSeatCnd.do
login.inquiryIsMember [read] auth=none login.joinCfm.do β joinCfm β νμμ‘΄μ¬ νμΈ(μΈμ¦ μ ).
reservation.ticketRsvInquiry [read] auth=member certification.ReservationList β certification.ReservationList 곡μ β κ²½λλ³ν(hidPnrNoλ§).
pay.integratedSettlement [pay,charge] auth=member pay.intgStl.do β ν΅ν©(μ₯λ°κ΅¬λ) μ μ°(+PaymentMethod 그리λ).
crypto.kbPayEncrypt [read] auth=none common.encrypt.do β common.encrypt.do 곡μ (postCommonEncrypt μ λμΌ κ²½λ‘) β KBνμ΄ λ³ν.
krPass.list [read] auth=nonmember /ebizcom/krPassLstDtl.do β μΈκ΅μΈ μ½λ μΌν¨μ€ μ‘°ν(μ¬κΆ/μ΄λ©μΌ/λΉλ²).
krPass.changeStartDate [write] auth=nonmember /ebizcom/krPassChgStDt.do
krPass.flexiDateFix [write] auth=nonmember /ebizcom/krPassFxDateFix.do β Flexi μ΄μ©μΌ νμ .
krPass.payment [pay,charge] auth=nonmember /ebizcom/krPassPayment.do β enc μΉ΄λνλ+3DS, μΈκ΅μΈ κ²°μ .
mileage.lpointAuth [read] auth=member mlg.lpotAthn.do β Lν¬μΈνΈ μΈμ¦(auth/cert μ±κ²©).
qr.localRailwayAuth [read] auth=member qr.bchTripSv.do β λ²½μ§λ
Έμ μ¬ν QR μΈμ¦.
session.login [write,mtoken] auth=none login.Login β π m-token κ²μ΄νΈ β μΈμ
ν립(JSESSIONID).
login.authRegister [write] auth=member login.loginAthnReg.do β λ‘κ·ΈμΈ μΈμ¦(μ체 λ±) λ±λ‘.
login.authRemove [write] auth=member login.loginAthnRmv.do β λ‘κ·ΈμΈ μΈμ¦ ν΄μ .
session.logout [write] auth=none login.Logout β μΈμ
νκΈ°.
ebizcom.lostCenterSearch [read] auth=none /ebizcom/cs/guide/lost/srchLostCenter.do β λΆμ€λ¬ΌμΌν° κ²μ(곡κ°).
addService.maasCancelPay [write] auth=member addService.cancelPay.do
addService.maasServiceCancel [write] auth=member addService.coptCnc.do β addService.coptCnc.do.
ebizmaas.stationList [read] auth=none /ebizmaas/EbizMaasStationList.do β MaaS μλͺ©λ‘(μ°Έμ‘°λ°μ΄ν°).
cust.matchedDiscountTarget [read] auth=member cust.mchdDcntTgt.do
member.verify [read] auth=none member.verify.do
research.mergeSeats [read] auth=member research.mergeSeatsC.do β μ€κ°μΉμ°¨μ μ’μμ°μ μ‘°ν.
file.mobilePlusMain [read] auth=none /file/CACHE/prdMobilePlusMain.cache β μ μ μΊμ νμΌ.
file.mobileService [read] auth=none /file/CACHE/MobileService.cache β μ μ μΊμ νμΌ.
myTicket.list [read] auth=member myTicket.MyTicketNewList.do
xPoint.myView [read] auth=member xPoint.MyXPointView
reservation.ncardExtension [write] auth=member reservation.dcntCrdExtn.do β NμΉ΄λ μ°μ₯(μνλ³κ²½).
pay.naverPayMoney [pay,charge] auth=member pay.naverPayMoneyRsv.do
pay.naverPay [pay,charge] auth=member pay.naverPayRsv.do β stlScnUrl(κ²°μ νλ©΄ URL) λ°ν β μΉλ·° 리λ€μ΄λ νΈ.
nonMember.ticketReserve [write,mtoken] auth=nonmember nonMember.NonMemTicket β π m-token β λΉνμ μλ§€(μ΄λ¦+μ ν+λΉλ²), PNR μμ±, μΈμ
μμ.
nonMember.ticketList [read] auth=nonmember nonMember.NonMemTicketList
xPoint.okCashbagCert [read] auth=member xPoint.OkCashbagCertView
pass.infoList [read] auth=member pass.passInfoList
pass.menu [read] auth=member pass.passMenu.do
pass.otrPayIssue [pay,charge] auth=member pass.passOtrPayIssue β OTR λ°κΆ(κ²°μ +λ°κΆ, 3 map).
pass.payIssue [pay,charge] auth=member pass.passPayIssue β ν¨μ€ κ²°μ +λ°κΆ(fromPassReserveInfo λ‘ μμ½κ°μ²΄βκ²°μ μμ²).
pass.reserve [write] auth=member pass.passReserve
pass.scheduleInfoList [read] auth=member pass.passScheduleInfoList
pay.payco [pay,charge] auth=member payment.reserve.payco.do
delay.pnrQuery [read] auth=member delay.pnrQry.do
login.popupConfirmRecord [write] auth=member login.poppCfmRec.do β νμ
νμΈ κΈ°λ‘ μ μ₯.
trn.priceFare [read,mtoken] auth=member trn.prcFare.do β π m-token κ²μ΄νΈ β μ΄μκ³μ°(μ‘°ν).
reservation.priceReCalculation [write] auth=member certification.PriceReCalculation β PNR μ¬κ³μ°(6κ° λ³λ ¬ @Field μΉκ°ν) β λ§μ€ν°ν W.
push.update [write] auth=member push.update β νΈμ λ±λ‘/ν ν° κ°±μ .
railplus.autoCharge [write] auth=member railplus.autoCharge.do
tk.recentDeliveryHistory [read] auth=member tk.rcntDlvHst.do
refund.commission [read] auth=member refunds.CommissionView β CommonIn λ―Έμμ β Device/Version/Key/Lang + h_comp_nm/h_comp_cert_no/ctlDvCd λͺ
μ μ μ‘.
refund.request [refund,charge] auth=member refunds.RefundsRequest β CommonIn λ―Έμμ β νλΆ μ€ν.
addSrv.wheelchairRequest [write] auth=member addSrv.helpSrvCust.do β helpSrvCust.do λ€κΈ°λ₯ κ²½λ‘.
addService.wheelchairReRequest [write] auth=member addService.reserve.do β addService.reserve.do λ€κΈ°λ₯ κ²½λ‘(postCancelWheelchair μ 곡μ ) β μ΄λ ₯ μ¬μ μ².
reservation.cancel [write] auth=member reservationCancel.ReservationCancel β μ€μ μ·¨μ μ€ν(txtPnrNo/txtJrnySqno/txtJrnyCnt).
reservation.cancelCheck [read] auth=member reservationCancel.ReservationCancelChk β μ·¨μ μ¬μ νμΈ(μμλ£/addSrvRetList λ°ν) β μ€μ μ·¨μλ ReservationCancel μ΄ μν.
reservation.change [write] auth=member reservation.reservationChange.do
reservation.list [read] auth=member certification.ReservationList β certification.ReservationList 곡μ β μ 체λ³ν(psgDisc0019List).
pay.reservationPayment [pay,charge] auth=member payment.ReservationPayment β payment.ReservationPayment 곡μ (postRsvPayment μ λμΌ κ²½λ‘) +PaymentMethod 그리λ β νλ¬Έ PAN/VAN_PWD.
reservation.view [read] auth=member reservation.ReservationView β timeStamp μΊμλ²μ€ν°.
reservationWait.register [write] auth=member reservationWait.ReservationWait β λͺ
μ λκΈ°μμ½(κΈ°μ‘΄ PNRμ λ±λ‘).
tk.retrieveTicket [write] auth=member tk.pbpWdrw.do β 보λΈμΉμ°¨κΆ μ² ν(withdraw).
pay.rsvPayment [pay,charge] auth=member payment.ReservationPayment β payment.ReservationPayment 곡μ (postReservationPayment μ λμΌ κ²½λ‘) β RsvPaymentIn λ³ν(hidRsvChgNo).
schedule.runDate [read] auth=member schedule.runDt
lmu.scheduleQuery [read] auth=member lmu.scdlQry.do
trains.search [read,mtoken] auth=member seatMovie.ScheduleView β π m-token β μ΄μ°¨μ‘°ν, νμ΄μ§ h_next_pg_flg + qryStNo/qryStTrnNo.
trains.searchSpecial [read,mtoken] auth=member seatMovie.ScheduleViewSpecial β π m-token β νΉλ³μ΄μ°¨ μ‘°ν.
ebizcom.travelProductSearch [read] auth=member /ebizcom/gdLstDtl.do
reservation.seatAssign [write] auth=member reservation.seatAssign.do β μ’μμ§μ μμ½ β ReservationOut(PNR μμ±).
checkin.info [read] auth=member checkin.info.do β νλλͺ
saleDt(psbFlg/reg λ saleDd).
checkin.possible [read] auth=member checkin.psbFlg.do β νλλͺ
saleDd + qrcode.
checkin.register [write] auth=member checkin.reg.do β νλλͺ
saleDd + 물리μ’μ(scarNo/seatNo).
crypto.shinhanEncrypt [read] auth=member shinhan.Encrypt.do β μ νμΉ΄λ μνΈν μ νΈ.
cart.show [read] auth=member cart.showCartList
pay.samsungPayDecrypt [pay,charge] auth=member pay.spayCphdDatVal.do β μΌμ±νμ΄ β μλ²λ³΅νΈλ‘ stlCrCrdNo λ°ν.
pay.monimoDecrypt [pay,charge] auth=member pay.monimoDecrypt.do β λͺ¨λλͺ¨ β μλ²λ³΅νΈ stlCrCrdNo.
pay.samsungPayOrderNo [pay,charge] auth=member pay.spayOrdNo.do β encTotTxnAmt AES-256-CBC(ν€=AppLoginCphd).
common.specificDateData [read] auth=none common.specificDateData.do
integrate.srCheck [read] auth=none integrate.srCheck.do
integrate.srJoin [write] auth=member integrate.srJoin.do β SR ν΅ν©νμ κ°μ
(join).
common.stationData [read] auth=none common.stationdata
common.stationInfo [read] auth=none common.stationinfo
pay.realtimeAccount [pay,charge] auth=member pay.stbkAcnt.do β μ€μκ°κ³μ’μ΄μ²΄ β μκΈμ£Ό μ‘°ν(pay.* κ²½λ‘λΌ kind=pay).
pay.stbkBankList [pay,charge] auth=member pay.stbkRegBank.do β μνλͺ©λ‘ μ‘°ν(pay.* κ²½λ‘λΌ kind=pay).
pay.settlementKeyProcess [pay,charge] auth=member pay.stlKeyPrs.do β μ μ°ν€ λ±λ‘.
pay.settlementKeyQuery [pay,charge] auth=member pay.stlKeyQry.do β λ±λ‘ μ μ°ν€ λͺ©λ‘ μ‘°ν(pay.* κ²½λ‘λΌ kind=pay).
seats.residual [read] auth=member research.TResidualSeatsResearch.do β μ’μλ§΅(μμ¬μ).
ticket.dupCheck [read] auth=member ticket.ticketDupCheck.do
receipt.info [read] auth=member receipt.ReceiptInfo
reservation.ticketReserve [write,mtoken] auth=member certification.TicketReservation β π m-token β λ°κΆμμ²(μλ/μ
μ), PNR μμ±.
myTicket.widget [read] auth=member myTicket.MyTicketWidget.do β encMbCrdNo(μνΈ νμμΉ΄λ).
pay.tossBillingKey [pay,charge] auth=member pay.tossautoC.do β ν μ€ λΉλ§ν€.
trainsInfo.tourTrainSpecialRoom [read] auth=member trainsInfo.TourTrainSpecialRoom
pass.travelGoodsMenu [read] auth=member pass.trGdMenuLt.do
research.trainResearch [read] auth=member research.TrainResearch
tripChange.handleCancel [write] auth=member ticket.tripChgHndgCnc.do β λ³κ²½ μκΈ°μ·¨μ(+lumpStlTgtMap λμ ).
tripChange.process [write] auth=member reservation.tripChgPrsC.do β μ¬μ λ³κ²½ νμ β μ κ· PNR(ReservationOut).
login.userCheck [read] auth=none login.userCheck
addSrv.wheelchairHistory [read] auth=member addSrv.helpSrvCust.do β helpSrvCust.do λ€κΈ°λ₯ κ²½λ‘(μ‘°ν λ³ν).
addSrv.wheelchairResult [read] auth=member addSrv.helpSrvTk.do
xPoint.view [read] auth=member xPoint.XPointView
product.cancel [write] auth=member product.ReservationCancel β GET λ©μλμ΄μ§λ§ μ·¨μ μ€ν.
push.crewCall [write] auth=member push.callCrew.do β μΉλ¬΄μ νΈμΆ(μ¬μ΄λμ΄ννΈ μ‘μ
).
self.seatChangeInfo [read] auth=member self.seatChgInfo.do β μ’μλ³κ²½ κ°λ₯μ‘°ν.
refund.verifyOnline [read] auth=member refunds.verifyOnlineRefunds β refunds.* μ΄μ§λ§ μ‘°ν(κ²μ¦) β CommonOut λ―Έμμ.