/* 자동생성 화면 매니페스트 - tools/gen_screens.py 가 svc 소스에서 추출 */
const SVC_SCREENS = [
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQUIRE",
  "desc": "* ACQUIRE.pgc - ac 모듈 서비스 ACQUIRE (one service = one file).",
  "in": [
   "T_MERCHANT",
   "T_AMOUNT",
   "T_BIZDATE"
  ],
  "out": [
   "T_PURCHASE_ID",
   "T_FEE",
   "T_NET"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_AMTFIX",
  "desc": "금액 확정 정정: 직전 금액 조회 후 하우스 25bps 로 절대 재계산, 증감(delta) 회신.",
  "in": [
   "T_PURCHASE_ID",
   "T_AMOUNT"
  ],
  "out": [
   "T_DELTA",
   "T_FEE",
   "T_NET"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_APPRLINK",
  "desc": "* ACQ_APPRLINK.pgc - ac 모듈 서비스 ACQ_APPRLINK (one service = one file).",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": []
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_APPRMAP",
  "desc": "* ACQ_APPRMAP.pgc - ac 모듈 서비스 ACQ_APPRMAP (one service = one file).",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_CANCEL",
  "desc": "* ACQ_CANCEL.pgc - ac 모듈 서비스 ACQ_CANCEL (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_AMOUNT",
   "T_BIZDATE",
   "T_REASON"
  ],
  "out": [
   "T_CANCEL_ID"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_CORRECT",
  "desc": "* ACQ_CORRECT.pgc - ac 모듈 서비스 ACQ_CORRECT (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_AMOUNT",
   "T_MERCHANT"
  ],
  "out": [
   "T_FEE",
   "T_NET"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_DATECHG",
  "desc": "* ACQ_DATECHG.pgc - ac 모듈 서비스 ACQ_DATECHG (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_DDC",
  "desc": "* ACQ_DDC.pgc - ac 모듈 서비스 ACQ_DDC (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_FX_AMT",
   "T_CCY",
   "T_BIZDATE"
  ],
  "out": [
   "T_AMOUNT"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_DUPCHK",
  "desc": "* ACQ_DUPCHK.pgc - ac 모듈 서비스 ACQ_DUPCHK (one service = one file).",
  "in": [
   "T_MERCHANT",
   "T_BIZDATE",
   "T_AMOUNT"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_EDC",
  "desc": "* ACQ_EDC.pgc - ac 모듈 서비스 ACQ_EDC (one service = one file).",
  "in": [
   "T_MERCHANT",
   "T_AMOUNT",
   "T_BIZDATE"
  ],
  "out": [
   "T_PURCHASE_ID",
   "T_FEE",
   "T_NET"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_EDI",
  "desc": "* ACQ_EDI.pgc - ac 모듈 서비스 ACQ_EDI (one service = one file).",
  "in": [
   "T_MERCHANT",
   "T_DOCNO",
   "T_BIZDATE",
   "T_AMOUNT"
  ],
  "out": []
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_FEEADJ",
  "desc": "* ACQ_FEEADJ.pgc - ac 모듈 서비스 ACQ_FEEADJ (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_DELTA",
   "T_BIZDATE",
   "T_REASON"
  ],
  "out": [
   "T_ADJ"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_FOREIGN",
  "desc": "* ACQ_FOREIGN.pgc - ac 모듈 서비스 ACQ_FOREIGN (one service = one file).",
  "in": [
   "T_MERCHANT",
   "T_AMOUNT",
   "T_BIZDATE",
   "T_CCY"
  ],
  "out": [
   "T_PURCHASE_ID",
   "T_FEE"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_HOLD",
  "desc": "매입 보류: 접수/대사(A,M) 상태만 보류로 전이, 반영 건수를 T_RC 로.",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_INSTALL",
  "desc": "* ACQ_INSTALL.pgc - ac 모듈 서비스 ACQ_INSTALL (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_INSTALL_N",
   "T_AMOUNT",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_ISSUERCLS",
  "desc": "* ACQ_ISSUERCLS.pgc - ac 모듈 서비스 ACQ_ISSUERCLS (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_ISSUER"
  ],
  "out": []
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_LIMITCHK",
  "desc": "* ACQ_LIMITCHK.pgc - ac 모듈 서비스 ACQ_LIMITCHK (one service = one file).",
  "in": [
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": [
   "T_GROSS",
   "T_RC"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_MERCHSUM",
  "desc": "* ACQ_MERCHSUM.pgc - ac 모듈 서비스 ACQ_MERCHSUM (one service = one file).",
  "in": [
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_PARTIAL",
  "desc": "* ACQ_PARTIAL.pgc - ac 모듈 서비스 ACQ_PARTIAL (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_AMOUNT",
   "T_BIZDATE"
  ],
  "out": [
   "T_CANCEL_ID"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_RECLASS",
  "desc": "업종/분류 재지정: category 갱신 후 같은 가맹점에서 동일 분류 건수를 집계 회신.",
  "in": [
   "T_PURCHASE_ID",
   "T_CATEGORY"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_REFUND",
  "desc": "* ACQ_REFUND.pgc - ac 모듈 서비스 ACQ_REFUND (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_AMOUNT",
   "T_BIZDATE",
   "T_REASON"
  ],
  "out": [
   "T_CANCEL_ID"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_RELEASE",
  "desc": "보류 해제: 직전 상태를 조회한 뒤 H->A 전이, 이전 상태를 함께 회신.",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_REPROC",
  "desc": "* ACQ_REPROC.pgc - ac 모듈 서비스 ACQ_REPROC (one service = one file).",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": []
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_SETTLELINK",
  "desc": "정산 연계: 가맹점 미지정 시 매입에서 조회, settlement 링크 행(status='LINKED') 생성.",
  "in": [
   "T_PURCHASE_ID",
   "T_NET",
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": [
   "T_SETTLE_ID"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_STATUS",
  "desc": "* ACQ_STATUS.pgc - ac 모듈 서비스 ACQ_STATUS (one service = one file).",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": []
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_TAXINV",
  "desc": "* ACQ_TAXINV.pgc - ac 모듈 서비스 ACQ_TAXINV (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_AMOUNT",
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": [
   "T_TAX"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_UNMATCH",
  "desc": "* ACQ_UNMATCH.pgc - ac 모듈 서비스 ACQ_UNMATCH (one service = one file).",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_VOID",
  "desc": "* ACQ_VOID.pgc - ac 모듈 서비스 ACQ_VOID (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_AMOUNT",
   "T_BIZDATE"
  ],
  "out": [
   "T_CANCEL_ID"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_WHT",
  "desc": "* ACQ_WHT.pgc - ac 모듈 서비스 ACQ_WHT (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_BIZDATE"
  ],
  "out": [
   "T_TAX"
  ]
 },
 {
  "mod": "ac",
  "modnm": "매입",
  "svc": "ACQ_XFERLINK",
  "desc": "* ACQ_XFERLINK.pgc - ac 모듈 서비스 ACQ_XFERLINK (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_AMOUNT",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "AUTH",
  "desc": "승인 접수: 한도 점검 후 authorization 원장 기록 + 한도 차감.",
  "in": [
   "T_KEY1",
   "T_MERCHANT",
   "T_AMOUNT",
   "T_BIZDATE"
  ],
  "out": [
   "T_ID1",
   "T_RC"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "AUTH_APPROVE",
  "desc": "승인 확정(pending->approved): dbio 래퍼로 상태만 A 로 확정.",
  "in": [
   "T_ID1"
  ],
  "out": []
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "AUTH_CANCEL",
  "desc": "승인 전체 취소 + 한도 원복.",
  "in": [
   "T_ID1",
   "T_AMOUNT",
   "T_KEY1",
   "T_BIZDATE",
   "T_REASON"
  ],
  "out": [
   "T_CANCEL_ID"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "AUTH_CAPTURE",
  "desc": "승인 매입확정(capture): 상태 A->M(매입대상).",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "AUTH_DECLINE",
  "desc": "승인 거절 처리: 거절 사유와 함께 상태 D 로 갱신.",
  "in": [
   "T_ID1",
   "T_REASON"
  ],
  "out": []
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "AUTH_HISTORY",
  "desc": "카드 승인 이력 건수 조회.",
  "in": [
   "T_KEY1"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "AUTH_HOLD",
  "desc": "승인 보류: 승인/예비(A,P) 상태만 보류(H)로 전이, 반영 건수를 T_RC 로.",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "AUTH_PARTCXL",
  "desc": "부분 취소: 승인 금액 감액 + 한도 부분 원복.",
  "in": [
   "T_ID1",
   "T_AMOUNT",
   "T_KEY1",
   "T_BIZDATE"
  ],
  "out": [
   "T_CANCEL_ID",
   "T_AMOUNT"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "AUTH_RELEASE",
  "desc": "보류 해제: 직전 상태를 조회한 뒤 H->A 전이, 이전 상태를 함께 회신.",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "AUTH_RETRY",
  "desc": "거절 승인 재시도 (상태 D->A 재승인).",
  "in": [
   "T_ID1",
   "T_AMOUNT",
   "T_KEY1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "AUTH_REVERSE",
  "desc": "승인 역전(reversal) + 한도 원복.",
  "in": [
   "T_ID1",
   "T_AMOUNT",
   "T_KEY1"
  ],
  "out": []
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "AUTH_ROUTE",
  "desc": "승인 라우팅(발급사 BIN 기준 라우팅 코드 산출).",
  "in": [
   "T_KEY1"
  ],
  "out": [
   "T_ARG1"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "AUTH_STATUS",
  "desc": "승인 상태 조회 (dbio).",
  "in": [
   "T_ID1"
  ],
  "out": []
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "AUTH_SUMMARY",
  "desc": "가맹점 당일 승인 집계 upsert (dbio).",
  "in": [
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "AUTH_VOID",
  "desc": "당일 승인 무효화(void) + 한도 원복.",
  "in": [
   "T_ID1",
   "T_AMOUNT",
   "T_KEY1",
   "T_BIZDATE"
  ],
  "out": [
   "T_CANCEL_ID"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "BLACKLIST_CHK",
  "desc": "블랙리스트 카드 조회.",
  "in": [
   "T_KEY1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "CARD_VALIDATE",
  "desc": "카드번호 Luhn 검증 (common lib).",
  "in": [
   "T_KEY1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "DCC_QUOTE",
  "desc": "해외승인 DCC 환산 견적(통화 -> 원화).",
  "in": [
   "T_FX_AMT",
   "T_CCY"
  ],
  "out": [
   "T_AMOUNT",
   "T_ARG1"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "FRAUD_DETECT",
  "desc": "부정거래 스코어링 + 위험시 fraud_log 기록.",
  "in": [
   "T_ID1",
   "T_AMOUNT",
   "T_KEY1",
   "T_BIZDATE"
  ],
  "out": [
   "T_ARG1",
   "T_ID2",
   "T_RC"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "INSTALL_AUTH",
  "desc": "할부 승인: 개월 수만큼 분할 승인 레코드.",
  "in": [
   "T_KEY1",
   "T_MERCHANT",
   "T_AMOUNT",
   "T_INSTALL_N",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "LIMIT_CHK",
  "desc": "카드 한도 점검 (사용가능 여부만 리턴).",
  "in": [
   "T_KEY1",
   "T_AMOUNT"
  ],
  "out": [
   "T_AMT1",
   "T_AMT2",
   "T_RC"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "LIMIT_DEC",
  "desc": "한도 차감(사용금액 증가).",
  "in": [
   "T_AMOUNT",
   "T_KEY1"
  ],
  "out": []
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "LIMIT_INQ",
  "desc": "한도 조회 (가용한도 계산).",
  "in": [
   "T_KEY1"
  ],
  "out": [
   "T_AMT1",
   "T_AMT2",
   "T_AMT3"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "LIMIT_RST",
  "desc": "한도 사용금액 초기화(일마감 원복).",
  "in": [
   "T_KEY1"
  ],
  "out": []
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "LIMIT_SET",
  "desc": "카드 한도 설정/등록 (dbio upsert).",
  "in": [
   "T_AMT1",
   "T_KEY1"
  ],
  "out": []
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "LIMIT_TEMP",
  "desc": "임시 한도 상향 (temp_limit 저장 + 당일 상향).",
  "in": [
   "T_KEY1",
   "T_AMT1"
  ],
  "out": []
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "PREAUTH",
  "desc": "예비승인(pre-authorization) 기록.",
  "in": [
   "T_KEY1",
   "T_MERCHANT",
   "T_BIZDATE",
   "T_AMOUNT"
  ],
  "out": [
   "T_ID2"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "PREAUTH_COMPLETE",
  "desc": "예비승인 확정: preauth 소진 + 본승인 생성.",
  "in": [
   "T_ID2",
   "T_BIZDATE"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "STANDIN",
  "desc": "발급사 무응답 시 대리승인(STANDIN, 소액 한도 내).",
  "in": [
   "T_KEY1",
   "T_MERCHANT",
   "T_AMOUNT",
   "T_BIZDATE"
  ],
  "out": [
   "T_RC",
   "T_ID1"
  ]
 },
 {
  "mod": "au",
  "modnm": "승인/한도",
  "svc": "VELOCITY_CHK",
  "desc": "속도(velocity) 점검: 당일 카드 승인건수/합계.",
  "in": [
   "T_KEY1",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS",
   "T_RC"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_AGGREGATE",
  "desc": "마감 총계 재집계 후 close_log 반영.",
  "in": [
   "T_ID1",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_ALERT",
  "desc": "미마감 경보: 당일 대사완료(M) 미전기 매입 건수.",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_RC"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_APPROVE",
  "desc": "마감 승인: 상태 A.",
  "in": [
   "T_ID1"
  ],
  "out": []
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_ARCHIVE",
  "desc": "마감 아카이브: 승인/완료 마감을 보관 상태로(memo 표시).",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_BALVERIFY",
  "desc": "잔액 검증: 스냅샷 net 합 vs close_log total 비교.",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_AMT2",
   "T_AMT3",
   "T_DELTA"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_CANCEL",
  "desc": "마감 취소: 상태 X.",
  "in": [
   "T_ID1"
  ],
  "out": []
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_CONFIRM",
  "desc": "마감 확정: 상태 C.",
  "in": [
   "T_ID1"
  ],
  "out": []
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_DAILY",
  "desc": "일 마감: 당일 매입 집계 후 마감이력(DAILY) 생성.",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_DIFFCHK",
  "desc": "차액 점검: close_log total vs 스냅샷 gross 합.",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_DELTA",
   "T_RC"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_INQUIRY",
  "desc": "마감 조회: close_type/기간/상태/총건수 반환.",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_LOCK",
  "desc": "기간 잠금: cl_period_lock upsert(locked=true) + 마감 L.",
  "in": [
   "T_ID1",
   "T_STR1",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_MIDCLOSE",
  "desc": "중간 마감: 당일 중간 스냅 마감이력(MID) 생성.",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_ID1",
   "T_COUNT"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_MONTHLY",
  "desc": "월 마감: 해당 월(YYYY-MM) 매입 집계 후 마감이력(MONTHLY).",
  "in": [
   "T_BIZDATE",
   "T_STR1"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_PERIOD",
  "desc": "기간 마감 개시(open): close_log 를 O 상태로 등록.",
  "in": [
   "T_BIZDATE",
   "T_STR1",
   "T_STR2"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_PURGE",
  "desc": "취소 마감 정리: 오래된 X 상태 마감과 그 스냅샷 삭제.",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_QUARTER",
  "desc": "분기 마감: 분기 프리픽스(YYYY-MM LIKE)로 집계.",
  "in": [
   "T_BIZDATE",
   "T_STR1"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_RECLOSE",
  "desc": "재마감: 상태 R 로 표시하고 총계 재집계.",
  "in": [
   "T_ID1",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_RECON",
  "desc": "마감 대사: 실제 매입건수 vs close_log txn_count 대사.",
  "in": [
   "T_ID1",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_DELTA",
   "T_RC"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_REPORT",
  "desc": "마감 리포트: 특정 마감의 스냅샷 건수/총매출.",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_RESTORE",
  "desc": "마감 복원: 취소(X) 마감을 개시(O) 상태로 되돌림.",
  "in": [
   "T_ID1"
  ],
  "out": []
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_ROLLBACK",
  "desc": "마감 롤백: 스냅샷 삭제 + 상태 O 로 복귀.",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_SEQ",
  "desc": "마감 순번 발번(dbio upsert).",
  "in": [
   "T_STR2"
  ],
  "out": [
   "T_ID2"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_SNAPSHOT",
  "desc": "마감 스냅샷: merchant_summary 를 close_id 로 고정 복사.",
  "in": [
   "T_ID1",
   "T_BIZDATE",
   "T_STR1"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_STATS",
  "desc": "마감 통계: close_type 별 마감 건수/총액.",
  "in": [
   "T_STR2"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_STATUS",
  "desc": "마감 상태 조회(dbio getter).",
  "in": [
   "T_ID1"
  ],
  "out": []
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_SUMMARY",
  "desc": "마감 요약: 스냅샷 gross/fee/net 합계 반환.",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_GROSS",
   "T_FEE",
   "T_NET"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_UNCLOSED",
  "desc": "미마감일 점검: close_log 없는 매입 영업일 건수.",
  "in": [],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_UNLOCK",
  "desc": "기간 잠금 해제.",
  "in": [
   "T_STR1",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_VERIFY",
  "desc": "마감 검증: close_log 총건수 vs 실제 매입건수 비교.",
  "in": [
   "T_ID1",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_RC"
  ]
 },
 {
  "mod": "cl",
  "modnm": "마감",
  "svc": "CL_YEAREND",
  "desc": "연말 마감: 연도(YYYY) 프리픽스로 집계.",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_ADDDAYS",
  "desc": "* CM_ADDDAYS.pgc - cm 모듈 서비스 CM_ADDDAYS (one service = one file).",
  "in": [
   "T_STR1",
   "T_ARG1"
  ],
  "out": [
   "T_STR3"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_AMT_ROUND",
  "desc": "금액 반올림 (순수 계산): 단위(T_ARG1)로 반올림. */",
  "in": [
   "T_AMOUNT",
   "T_ARG1"
  ],
  "out": [
   "T_AMT1"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_AMT_SPLIT",
  "desc": "금액 균등 분할 (순수 계산): n등분 + 잔액. */",
  "in": [
   "T_AMOUNT",
   "T_ARG1"
  ],
  "out": [
   "T_AMT1",
   "T_AMT2",
   "T_COUNT"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_BIZDAY",
  "desc": "* CM_BIZDAY.pgc - cm 모듈 서비스 CM_BIZDAY (one service = one file).",
  "in": [],
  "out": [
   "T_BIZDATE"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_CACHE_INV",
  "desc": "캐시 무효화 (순수 처리: 버전 증가 표시). */",
  "in": [
   "T_STR1"
  ],
  "out": [
   "T_RC",
   "T_MSG"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_CACHE_LOAD",
  "desc": "* CM_CACHE_LOAD.pgc - cm 모듈 서비스 CM_CACHE_LOAD (one service = one file).",
  "in": [
   "T_STR1"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_CHECKDIGIT",
  "desc": "* CM_CHECKDIGIT.pgc - cm 모듈 서비스 CM_CHECKDIGIT (one service = one file).",
  "in": [
   "T_STR2"
  ],
  "out": [
   "T_ARG1",
   "T_STR4"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_CODE",
  "desc": "* CM_CODE.pgc - cm 모듈 서비스 CM_CODE (one service = one file).",
  "in": [
   "T_STR1",
   "T_STR2"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_CODENAME",
  "desc": "* CM_CODENAME.pgc - cm 모듈 서비스 CM_CODENAME (one service = one file).",
  "in": [
   "T_STR1",
   "T_STR2"
  ],
  "out": [
   "T_STR3"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_CRC",
  "desc": "* CM_CRC.pgc - cm 모듈 서비스 CM_CRC (one service = one file).",
  "in": [
   "T_STR1"
  ],
  "out": [
   "T_STR4",
   "T_ARG1"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_ERRMSG",
  "desc": "* CM_ERRMSG.pgc - cm 모듈 서비스 CM_ERRMSG (one service = one file).",
  "in": [
   "T_STR1",
   "T_STR2"
  ],
  "out": [
   "T_MSG"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_FMT_AMT",
  "desc": "* CM_FMT_AMT.pgc - cm 모듈 서비스 CM_FMT_AMT (one service = one file).",
  "in": [
   "T_AMOUNT"
  ],
  "out": [
   "T_STR4"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_FMT_DATE",
  "desc": "날짜 포맷 변환 (순수 계산): YYYYMMDD -> YYYY-MM-DD. */",
  "in": [
   "T_STR1"
  ],
  "out": [
   "T_STR3"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_FX",
  "desc": "* CM_FX.pgc - cm 모듈 서비스 CM_FX (one service = one file).",
  "in": [
   "T_CCY",
   "T_BIZDATE"
  ],
  "out": [
   "T_ARG1"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_FX_CONV",
  "desc": "환율 환산 (cm_fx_rate + compute): 외화 -> 원화. */",
  "in": [
   "T_CCY",
   "T_BIZDATE",
   "T_FX_AMT"
  ],
  "out": [
   "T_AMOUNT",
   "T_ARG1"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_HOLIDAY_CHK",
  "desc": "* CM_HOLIDAY_CHK.pgc - cm 모듈 서비스 CM_HOLIDAY_CHK (one service = one file).",
  "in": [
   "T_STR1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_INTEREST",
  "desc": "단리 이자 계산 (순수 계산): 원금*연이율(bps)*일수/(10000*365). */",
  "in": [
   "T_AMOUNT",
   "T_ARG1",
   "T_ARG2"
  ],
  "out": [
   "T_AMT1"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_LOG",
  "desc": "* CM_LOG.pgc - cm 모듈 서비스 CM_LOG (one service = one file).",
  "in": [
   "T_SVCNAME",
   "T_MSG",
   "T_BIZDATE"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_LUHN",
  "desc": "* CM_LUHN.pgc - cm 모듈 서비스 CM_LUHN (one service = one file).",
  "in": [
   "T_STR5"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_MASK",
  "desc": "카드번호 마스킹 (순수 계산): 앞6 뒤4 노출. */",
  "in": [
   "T_STR5"
  ],
  "out": [
   "T_STR4"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_MONTHEND",
  "desc": "* CM_MONTHEND.pgc - cm 모듈 서비스 CM_MONTHEND (one service = one file).",
  "in": [
   "T_STR1"
  ],
  "out": [
   "T_STR3",
   "T_ARG1"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_NETTING_CALC",
  "desc": "네팅 계산 (순수 계산): 차변-대변. */",
  "in": [
   "T_AMT1",
   "T_AMT2"
  ],
  "out": [
   "T_NET",
   "T_RC"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_NEXTBIZ",
  "desc": "* CM_NEXTBIZ.pgc - cm 모듈 서비스 CM_NEXTBIZ (one service = one file).",
  "in": [
   "T_STR1"
  ],
  "out": [
   "T_STR3"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_PARAM",
  "desc": "* CM_PARAM.pgc - cm 모듈 서비스 CM_PARAM (one service = one file).",
  "in": [
   "T_STR1"
  ],
  "out": [
   "T_STR3"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_PARAM_SET",
  "desc": "* CM_PARAM_SET.pgc - cm 모듈 서비스 CM_PARAM_SET (one service = one file).",
  "in": [
   "T_STR1",
   "T_STR3"
  ],
  "out": []
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_PING",
  "desc": "* CM_PING.pgc - cm 모듈 서비스 CM_PING (one service = one file).",
  "in": [],
  "out": [
   "T_MSG",
   "T_RC"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_PRORATE",
  "desc": "일할 계산 (순수 계산): 금액*사용일/총일. */",
  "in": [
   "T_AMOUNT",
   "T_ARG1",
   "T_ARG2"
  ],
  "out": [
   "T_AMT1"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_SEQ",
  "desc": "* CM_SEQ.pgc - cm 모듈 서비스 CM_SEQ (one service = one file).",
  "in": [
   "T_KEY1"
  ],
  "out": [
   "T_ARG1"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_STATUS",
  "desc": "모듈 상태: 파라미터 건수 조회로 DB 연결 확인. */",
  "in": [],
  "out": [
   "T_COUNT",
   "T_RC",
   "T_STATUS"
  ]
 },
 {
  "mod": "cm",
  "modnm": "공통",
  "svc": "CM_WEEKDAY",
  "desc": "* CM_WEEKDAY.pgc - cm 모듈 서비스 CM_WEEKDAY (one service = one file).",
  "in": [
   "T_STR1"
  ],
  "out": [
   "T_ARG1",
   "T_STR3",
   "T_RC"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_ACCTSUM",
  "desc": "계정 잔액 재집계(dbio) 후 잔액 반환.",
  "in": [
   "T_KEY1",
   "T_BIZDATE"
  ],
  "out": [
   "T_NET"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_ACQPOST",
  "desc": "매입 전기: 차변 RECV=amount, 대변 MERCH_PAY=net + FEE_INC=fee.",
  "in": [
   "T_BIZDATE",
   "T_MERCHANT",
   "T_AMOUNT",
   "T_FEE",
   "T_NET",
   "T_PURCHASE_ID"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_ADJUST",
  "desc": "조정 전표: 부호에 따라 차변/대변 단일 분개.",
  "in": [
   "T_KEY1",
   "T_BIZDATE",
   "T_MERCHANT",
   "T_DELTA",
   "T_PURCHASE_ID"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_APPLY",
  "desc": "전표 전기확정(P): 라인들의 계정잔액을 잔액테이블에 반영.",
  "in": [
   "T_ID1",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_BALCHK",
  "desc": "전표 단위 대차 균형 점검 (차변합 vs 대변합).",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_AMT2",
   "T_AMT3",
   "T_RC"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_CARRY",
  "desc": "이월: 당일 계정잔액을 익영업일 개시잔액으로 이월(upsert).",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_CLOSE_LINK",
  "desc": "마감연계: 전표 라인 closed + 전표 상태 S(마감연계).",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_CONFIRM",
  "desc": "전표 확정: 대차 균형이면 P로 확정, 아니면 실패.",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_CORRECT",
  "desc": "원장 라인 금액 정정.",
  "in": [
   "T_ID1",
   "T_AMOUNT"
  ],
  "out": []
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_CREDIT",
  "desc": "기존 전표에 대변(C) 분개 1줄 추가.",
  "in": [
   "T_ID1",
   "T_AMOUNT",
   "T_KEY1",
   "T_BIZDATE",
   "T_MERCHANT"
  ],
  "out": []
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_DAILYSUM",
  "desc": "당일 계정별 잔액 일괄 재집계(전 계정 upsert).",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_DEBIT",
  "desc": "기존 전표에 차변(D) 분개 1줄 추가.",
  "in": [
   "T_ID1",
   "T_AMOUNT",
   "T_KEY1",
   "T_BIZDATE",
   "T_MERCHANT"
  ],
  "out": []
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_DIFFCHK",
  "desc": "당일 전체 대차 차액 점검(총차변-총대변).",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_AMT2",
   "T_AMT3",
   "T_DELTA",
   "T_RC"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_DOUBLE",
  "desc": "신규 전표 즉시 전기(posted): 차변/대변 + 양 계정잔액 반영.",
  "in": [
   "T_KEY1",
   "T_KEY2",
   "T_BIZDATE",
   "T_MERCHANT",
   "T_AMOUNT",
   "T_PURCHASE_ID"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_FEEPOST",
  "desc": "수수료수익 전기: 차변 RECV=fee, 대변 FEE_INC=fee.",
  "in": [
   "T_BIZDATE",
   "T_MERCHANT",
   "T_FEE",
   "T_PURCHASE_ID"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_INQUIRY",
  "desc": "전표 상태 조회(dbio).",
  "in": [
   "T_ID1"
  ],
  "out": []
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_JOURNAL",
  "desc": "당일 분개(원장 라인) 건수 조회.",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_MERCHBAL",
  "desc": "가맹점 잔액 재집계(dbio).",
  "in": [
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_MONTHLYSUM",
  "desc": "월 계정과목별 차/대 집계 건수 조회(YYYY-MM).",
  "in": [
   "T_STR1",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_POST",
  "desc": "전표 작성(draft) + 차변/대변 균형 분개 2줄.",
  "in": [
   "T_KEY1",
   "T_KEY2",
   "T_BIZDATE",
   "T_MERCHANT",
   "T_PURCHASE_ID",
   "T_AMOUNT"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_RECALC",
  "desc": "계정 잔액 원장 라인 기준 재계산(dbio).",
  "in": [
   "T_KEY1",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_REVERSE",
  "desc": "역분개 전표: 원전표 라인의 차/대를 뒤집어 신규 전표에 복사.",
  "in": [
   "T_ID1",
   "T_BIZDATE"
  ],
  "out": [
   "T_ID2",
   "T_COUNT"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_ROLLFWD",
  "desc": "전 계정 잔액 익일 이월(개시잔액 롤포워드).",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_SETTLEPOST",
  "desc": "정산 전기: 차변 MERCH_PAY, 대변 CASH (net).",
  "in": [
   "T_BIZDATE",
   "T_MERCHANT",
   "T_NET",
   "T_PURCHASE_ID"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_STATS",
  "desc": "당일 전표/원장 통계(전표수, 총차변).",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_STATUS",
  "desc": "전표 상태 직접 변경(setter).",
  "in": [
   "T_ID1",
   "T_STATUS"
  ],
  "out": []
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_TRANSFER",
  "desc": "계정간 대체: 출금계정 대변, 입금계정 차변(균형).",
  "in": [
   "T_KEY1",
   "T_KEY2",
   "T_BIZDATE",
   "T_MERCHANT",
   "T_AMOUNT"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_TRIALBAL",
  "desc": "계정별 시산표 산출 후 lg_trial_bal upsert.",
  "in": [
   "T_KEY1",
   "T_BIZDATE"
  ],
  "out": [
   "T_AMT2",
   "T_AMT3",
   "T_DELTA"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_UNSETTLED",
  "desc": "미마감(status=posted) 원장 라인 건수.",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "lg",
  "modnm": "원장",
  "svc": "LG_VOUCHER",
  "desc": "빈 전표 헤더 생성(작성 상태).",
  "in": [
   "T_PURCHASE_ID",
   "T_STR2",
   "T_BIZDATE",
   "T_MSG"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_ACK",
  "desc": "* MG_ACK.pgc - mg 모듈 서비스 MG_ACK (one service = one file).",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_STATUS"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_BITMAP",
  "desc": "* MG_BITMAP.pgc - mg 모듈 서비스 MG_BITMAP (one service = one file).",
  "in": [
   "T_ARG1",
   "T_ID1"
  ],
  "out": [
   "T_STR6"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_CHANAUTH",
  "desc": "채널 인증: UP/SIGNON 상태만 통과. */",
  "in": [
   "T_CHANNEL"
  ],
  "out": [
   "T_RC",
   "T_STATUS"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_CHANSTAT",
  "desc": "* MG_CHANSTAT.pgc - mg 모듈 서비스 MG_CHANSTAT (one service = one file).",
  "in": [
   "T_CHANNEL"
  ],
  "out": [
   "T_STATUS"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_CONFIRM",
  "desc": "* MG_CONFIRM.pgc - mg 모듈 서비스 MG_CONFIRM (one service = one file).",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_STATUS"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_CONVERT",
  "desc": "* MG_CONVERT.pgc - mg 모듈 서비스 MG_CONVERT (one service = one file).",
  "in": [
   "T_CHANNEL",
   "T_STR1",
   "T_STR3",
   "T_BIZDATE",
   "T_AMOUNT"
  ],
  "out": [
   "T_STR1",
   "T_ID1"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_DEQUEUE",
  "desc": "* MG_DEQUEUE.pgc - mg 모듈 서비스 MG_DEQUEUE (one service = one file).",
  "in": [],
  "out": [
   "T_COUNT",
   "T_ID2",
   "T_ARG1",
   "T_CHANNEL",
   "T_STR3"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_ECHO",
  "desc": "* MG_ECHO.pgc - mg 모듈 서비스 MG_ECHO (one service = one file).",
  "in": [
   "T_CHANNEL",
   "T_BIZDATE"
  ],
  "out": [
   "T_ID1",
   "T_STATUS"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_ERRMSG",
  "desc": "* MG_ERRMSG.pgc - mg 모듈 서비스 MG_ERRMSG (one service = one file).",
  "in": [
   "T_CHANNEL",
   "T_STR1",
   "T_STR3",
   "T_BIZDATE",
   "T_RC"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_HEALTH",
  "desc": "게이트웨이 헬스: 활성 채널 수 조회. */",
  "in": [],
  "out": [
   "T_COUNT",
   "T_RC"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_ISO8583",
  "desc": "* MG_ISO8583.pgc - mg 모듈 서비스 MG_ISO8583 (one service = one file).",
  "in": [
   "T_CHANNEL",
   "T_STR3",
   "T_BIZDATE",
   "T_AMOUNT"
  ],
  "out": [
   "T_STR1",
   "T_STR4",
   "T_AMOUNT",
   "T_ID1"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_KEYEXCH",
  "desc": "키 교환: 키버전 채번 + 세션키 갱신. */",
  "in": [
   "T_CHANNEL",
   "T_KEY1"
  ],
  "out": [
   "T_ARG2"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_LOG",
  "desc": "* MG_LOG.pgc - mg 모듈 서비스 MG_LOG (one service = one file).",
  "in": [
   "T_CHANNEL",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_MAC",
  "desc": "simple additive 4-hex MAC/checksum over a buffer (전문 무결성 데모). */",
  "in": [
   "T_STR3",
   "T_ID1"
  ],
  "out": [
   "T_KEY1"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_NACK",
  "desc": "* MG_NACK.pgc - mg 모듈 서비스 MG_NACK (one service = one file).",
  "in": [
   "T_ID1",
   "T_RC"
  ],
  "out": [
   "T_STATUS"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_PACK",
  "desc": "고정길이 전문 조립 (순수 계산): MTI(4)+처리코드(6)+금액(12). */",
  "in": [
   "T_STR1",
   "T_STR4",
   "T_AMOUNT"
  ],
  "out": [
   "T_STR3",
   "T_COUNT"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_PARSE",
  "desc": "* MG_PARSE.pgc - mg 모듈 서비스 MG_PARSE (one service = one file).",
  "in": [
   "T_STR3"
  ],
  "out": [
   "T_STR1",
   "T_STR4",
   "T_COUNT"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_QUEUE",
  "desc": "* MG_QUEUE.pgc - mg 모듈 서비스 MG_QUEUE (one service = one file).",
  "in": [
   "T_CHANNEL",
   "T_STR1",
   "T_STR3",
   "T_BIZDATE",
   "T_ARG1"
  ],
  "out": [
   "T_ID2",
   "T_ARG1"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_RECV",
  "desc": "* MG_RECV.pgc - mg 모듈 서비스 MG_RECV (one service = one file).",
  "in": [
   "T_CHANNEL",
   "T_STR1",
   "T_STR3",
   "T_STR5",
   "T_BIZDATE",
   "T_AMOUNT"
  ],
  "out": [
   "T_ARG1",
   "T_ID1"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_RESEND",
  "desc": "전문 재전송: STAN 으로 원전문 찾아 큐에 적재. */",
  "in": [
   "T_ARG1",
   "T_CHANNEL",
   "T_STR1",
   "T_STR3",
   "T_BIZDATE"
  ],
  "out": [
   "T_ID2"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_RETRY",
  "desc": "큐 재시도: retry_cnt +1, status=Q. */",
  "in": [
   "T_ID2"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_ROUTE",
  "desc": "* MG_ROUTE.pgc - mg 모듈 서비스 MG_ROUTE (one service = one file).",
  "in": [
   "T_CHANNEL",
   "T_STR1"
  ],
  "out": [
   "T_RC",
   "T_STR3"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_SEND",
  "desc": "* MG_SEND.pgc - mg 모듈 서비스 MG_SEND (one service = one file).",
  "in": [
   "T_CHANNEL",
   "T_STR1",
   "T_STR3",
   "T_BIZDATE",
   "T_AMOUNT"
  ],
  "out": [
   "T_ARG1",
   "T_ID1"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_SESSION",
  "desc": "* MG_SESSION.pgc - mg 모듈 서비스 MG_SESSION (one service = one file).",
  "in": [],
  "out": [
   "T_ARG2"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_SIGNOFF",
  "desc": "* MG_SIGNOFF.pgc - mg 모듈 서비스 MG_SIGNOFF (one service = one file).",
  "in": [
   "T_CHANNEL"
  ],
  "out": [
   "T_STATUS"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_SIGNON",
  "desc": "* MG_SIGNON.pgc - mg 모듈 서비스 MG_SIGNON (one service = one file).",
  "in": [
   "T_CHANNEL",
   "T_KEY1"
  ],
  "out": [
   "T_STATUS"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_STAN",
  "desc": "* MG_STAN.pgc - mg 모듈 서비스 MG_STAN (one service = one file).",
  "in": [],
  "out": [
   "T_ARG1"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_STATS",
  "desc": "채널 당일 통계: 수신/송신/오류 건수. */",
  "in": [
   "T_CHANNEL",
   "T_BIZDATE"
  ],
  "out": [
   "T_ARG1",
   "T_ARG2",
   "T_ARG3",
   "T_GROSS"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_STATUS",
  "desc": "* MG_STATUS.pgc - mg 모듈 서비스 MG_STATUS (one service = one file).",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_STATUS"
  ]
 },
 {
  "mod": "mg",
  "modnm": "전문게이트웨이",
  "svc": "MG_UNPACK",
  "desc": "* MG_UNPACK.pgc - mg 모듈 서비스 MG_UNPACK (one service = one file).",
  "in": [
   "T_STR3"
  ],
  "out": [
   "T_STR1",
   "T_STR4",
   "T_AMOUNT"
  ]
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_BIN_INQ",
  "desc": "기능: BIN 조회.",
  "in": [
   "T_KEY1"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_BIN_REG",
  "desc": "기능: BIN 마스터 등록.",
  "in": [
   "T_KEY1",
   "T_ISSUER",
   "T_STR5"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_CODE_CACHE",
  "desc": "기능: 코드그룹의 활성 코드 수 (캐시 워밍 시뮬).",
  "in": [
   "T_STR1"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_CODE_INQ",
  "desc": "기능: 공통코드 조회.",
  "in": [
   "T_STR1",
   "T_KEY1"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_CODE_REG",
  "desc": "기능: 공통코드 등록.",
  "in": [
   "T_STR1",
   "T_KEY1",
   "T_STR2"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_CONFIRM",
  "desc": "기능: 가맹점 승인 확정 (상태 ACTIVE + 이력).",
  "in": [
   "T_MERCHANT"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_FEERATE_HIST",
  "desc": "기능: 수수료율 변경 이력 건수 (dbio).",
  "in": [
   "T_MERCHANT"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_FEERATE_INQ",
  "desc": "기능: 수수료율 조회 (dbio).",
  "in": [
   "T_MERCHANT",
   "T_STR4"
  ],
  "out": [
   "T_ARG1"
  ]
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_FEERATE_SET",
  "desc": "기능: 수수료율 설정 (dbio upsert + 이력).",
  "in": [
   "T_MERCHANT",
   "T_STR4",
   "T_ARG1"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_FX_INQ",
  "desc": "기능: 환율 조회 + 금액 환산 (rate_bps는 100 기준 bps).",
  "in": [
   "T_CCY",
   "T_FX_AMT"
  ],
  "out": [
   "T_ARG2",
   "T_AMOUNT"
  ]
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_FX_REG",
  "desc": "기능: 환율 마스터 upsert.",
  "in": [
   "T_CCY",
   "T_ARG2"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_HOLIDAY_REG",
  "desc": "기능: 공휴일 마스터 등록.",
  "in": [
   "T_BIZDATE",
   "T_STR1"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_ISSUER_INQ",
  "desc": "기능: 발급사 조회.",
  "in": [
   "T_ISSUER"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_ISSUER_REG",
  "desc": "기능: 발급사 마스터 등록.",
  "in": [
   "T_ISSUER",
   "T_STR1",
   "T_STR2"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_LIMIT_INQ",
  "desc": "기능: 가맹점 한도 조회.",
  "in": [
   "T_MERCHANT"
  ],
  "out": [
   "T_AMT1",
   "T_AMT2",
   "T_AMT3"
  ]
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_LIMIT_SET",
  "desc": "기능: 가맹점 한도 설정 (upsert).",
  "in": [
   "T_MERCHANT",
   "T_AMT1",
   "T_AMT2",
   "T_AMT3"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_MCC_REG",
  "desc": "기능: MCC 업종 마스터 등록.",
  "in": [
   "T_STR6",
   "T_STR1",
   "T_ARG1"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_MERCH_ACCT",
  "desc": "기능: 정산계좌 변경 (직접 UPDATE + 이력).",
  "in": [
   "T_MERCHANT",
   "T_STR3"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_MERCH_BULK",
  "desc": "기능: 가맹점 대량 등록 (T_COUNT개 파생 생성).",
  "in": [
   "T_MERCHANT",
   "T_STR2",
   "T_COUNT"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_MERCH_DEL",
  "desc": "기능: 가맹점 논리 삭제 (상태 DELETED + 이력).",
  "in": [
   "T_MERCHANT"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_MERCH_GRADE",
  "desc": "기능: 가맹점 등급 변경 (dbio + 이력).",
  "in": [
   "T_MERCHANT",
   "T_STR2"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_MERCH_INQ",
  "desc": "기능: 가맹점 마스터 조회 (dbio).",
  "in": [
   "T_MERCHANT"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_MERCH_REG",
  "desc": "기능: 가맹점 확장 마스터 등록 (dbio upsert + 이력).",
  "in": [
   "T_MERCHANT",
   "T_STR1",
   "T_STR2",
   "T_STR3"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_MERCH_STATUS",
  "desc": "기능: 가맹점 상태 변경 (dbio + 이력).",
  "in": [
   "T_MERCHANT",
   "T_STATUS"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_MERCH_SUM",
  "desc": "기능: 상태별 가맹점 수 집계 (ACTIVE 기준).",
  "in": [
   "T_STATUS"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_MERCH_UPD",
  "desc": "기능: 가맹점명/계좌 수정 (직접 UPDATE + 이력).",
  "in": [
   "T_MERCHANT",
   "T_STR1",
   "T_STR3"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_STATUS",
  "desc": "기능: 서비스 상태 (전체 가맹점 수, RC=0).",
  "in": [],
  "out": [
   "T_COUNT",
   "T_RC"
  ]
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_TERMINAL_INQ",
  "desc": "기능: 단말 조회.",
  "in": [
   "T_STR5"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_TERMINAL_REG",
  "desc": "기능: 단말 마스터 등록.",
  "in": [
   "T_STR5",
   "T_MERCHANT",
   "T_STR6"
  ],
  "out": []
 },
 {
  "mod": "mm",
  "modnm": "마스터",
  "svc": "MM_VALIDATE",
  "desc": "기능: 가맹점 마스터 정합성 검사 (존재+수수료율 존재).",
  "in": [
   "T_MERCHANT"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_ACCTCHK",
  "desc": "지급계좌 유효성 점검: dbio 로 계좌 상태/잔액을 읽어 ACTIVE 여부를 회신.",
  "in": [
   "T_KEY1"
  ],
  "out": [
   "T_RC",
   "T_AMT1"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_ADJUST",
  "desc": "지급 조정: py_adjust 에 증감(delta)을 기록하고 지급건 net 에 즉시 반영.",
  "in": [
   "T_ID1",
   "T_DELTA",
   "T_BIZDATE",
   "T_REASON"
  ],
  "out": [
   "T_ADJ"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_ADVANCE",
  "desc": "선지급(advance): 선지급 수수료(1%)를 공제한 지급건(ADVANCE 채널)을 생성.",
  "in": [
   "T_MERCHANT",
   "T_KEY1",
   "T_AMOUNT",
   "T_BIZDATE"
  ],
  "out": [
   "T_ID1",
   "T_FEE",
   "T_NET"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_APPROVE",
  "desc": "지급 승인: 금액을 먼저 조회한 뒤 요청(R) 상태만 승인(A)으로 전이하고 금액을",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_AMOUNT",
   "T_RC"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_BULK",
  "desc": "대량 지급 생성: 동일 금액의 지급건(BULK 채널)을 N건 반복 등록.",
  "in": [
   "T_MERCHANT",
   "T_KEY1",
   "T_AMOUNT",
   "T_COUNT",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_CANCEL",
  "desc": "지급 취소: 취소 조정(-amount)을 py_adjust 에 기록하고 지급건 상태 C 로 전이.",
  "in": [
   "T_ID1",
   "T_AMOUNT",
   "T_BIZDATE",
   "T_REASON"
  ],
  "out": [
   "T_ADJ"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_CLOSE",
  "desc": "일마감: 당일 지급완료(P)건을 마감(X)으로 일괄 전환하고 전환 건수를 회신.",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_CONFIRM",
  "desc": "지급 확정(confirm): 지급 파일 상태를 확정(C)으로 전이하고 확정 시각 기록.",
  "in": [
   "T_ID2"
  ],
  "out": []
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_FEEDED",
  "desc": "수수료 공제(fee deduction): bps 로 수수료를 산출해 fee/net 을 재계산·갱신.",
  "in": [
   "T_ID1",
   "T_AMOUNT",
   "T_ARG1"
  ],
  "out": [
   "T_FEE",
   "T_NET"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_FILEGEN",
  "desc": "지급 파일 헤더 생성: 당일 승인(A) 지급건 집계 -> py_file.",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_ID2",
   "T_COUNT",
   "T_GROSS"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_HISTORY",
  "desc": "가맹점 지급 이력 건수: 해당 가맹점의 전체 지급건 수를 집계해 회신.",
  "in": [
   "T_MERCHANT"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_HOLD",
  "desc": "지급 보류: 이미 지급완료(P)/마감(X)된 건은 보류 불가 - dbio 로 현재 상태를",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_INQUIRY",
  "desc": "지급 단건 상세 조회: 가맹점/계좌/금액/수수료/순액/상태를 한 번에 회신.",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_AMOUNT",
   "T_FEE",
   "T_NET"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_INT",
  "desc": "선지급 이자 계산: 일할(days) * bps 로 이자와 차감 후 순액을 산출(순수 계산).",
  "in": [
   "T_AMOUNT",
   "T_ARG1",
   "T_ARG2"
  ],
  "out": [
   "T_AMT1",
   "T_NET"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_MERCHSUM",
  "desc": "가맹점 당일 지급 집계: py_payout 집계 후 dbio 로 py_summary upsert.",
  "in": [
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_NETOFF",
  "desc": "상계(net-off): 지급건의 net 을 조회해 차감액을 반영하고 갱신.",
  "in": [
   "T_ID1",
   "T_AMOUNT"
  ],
  "out": [
   "T_NET"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_RECON",
  "desc": "지급-파일 대사: 특정 file_id 에 편성된 지급 건수/합계를 확인.",
  "in": [
   "T_ID2"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_REJECT",
  "desc": "지급 반려: 상태를 반려(J)로 전이하고 반려 사유를 reject_reason 에 기록.",
  "in": [
   "T_ID1",
   "T_REASON"
  ],
  "out": []
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_RELEASE",
  "desc": "보류 해제: 직전 상태를 조회하여 보류(H)가 아니면 무효 처리, 보류면 dbio 로",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_REMIT",
  "desc": "실지급 송금: 계좌 잔액을 확인해 부족하면 거절, 충분하면 차감 후 상태 P.",
  "in": [
   "T_ID1",
   "T_NET",
   "T_KEY1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_REPROC",
  "desc": "재처리: 직전 상태를 조회한 뒤 실패/보류/취소(J,H,C) -> 요청(R) 전이, 이전 상태 회신.",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_RESULT",
  "desc": "지급 결과 반영: 편성/요청(F,R) 상태만 지급완료(P)로 전이, 반영 건수를 T_RC 로.",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_RETRY",
  "desc": "실패 지급 재시도: 실패/보류(J,H) 건만 요청(R)으로 되돌리고 retry_count 증가.",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_REVERSE",
  "desc": "지급 역분개(reverse): 상태 V(역분개)로 전이하고 계좌 잔액을 원복.",
  "in": [
   "T_ID1",
   "T_AMOUNT",
   "T_KEY1"
  ],
  "out": []
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_SCHEDULE",
  "desc": "지급 예약 등록: 지정 실행일로 py_schedule 예약(S) 레코드를 생성.",
  "in": [
   "T_ID1",
   "T_BIZDATE"
  ],
  "out": [
   "T_ID2"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_SPLIT",
  "desc": "지급 분할: 금액을 N건으로 나눠 각각의 지급건(SPLIT 채널)으로 생성.",
  "in": [
   "T_MERCHANT",
   "T_KEY1",
   "T_AMOUNT",
   "T_COUNT",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_STATEMENT",
  "desc": "가맹점 지급 명세: 당일 지급완료(P) 건의 건수/금액/수수료/순액을 집계.",
  "in": [
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS",
   "T_FEE",
   "T_NET"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_STATUS",
  "desc": "지급 상태 조회: dbio 로 단건 상태를 읽어 회신.",
  "in": [
   "T_ID1"
  ],
  "out": []
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_SUMMARY",
  "desc": "가맹점 일별 지급 집계 조회: py_summary 에서 건수/금액을 읽어 회신(무행 시 0).",
  "in": [
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS"
  ]
 },
 {
  "mod": "py",
  "modnm": "지급",
  "svc": "PAY_XFERLINK",
  "desc": "이체 연계: 지급건에 대한 XFER 원장 엔트리를 py_ledger 에 기록.",
  "in": [
   "T_ID1",
   "T_AMOUNT",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_3WAY",
  "desc": "3-way 대사: 승인+매입+원장 모두 존재 시 MATCHED. */",
  "in": [
   "T_PURCHASE_ID",
   "T_NET",
   "T_BIZDATE"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_ACQ_DEP",
  "desc": "매입-입금(원장) 대사: 원장 합계와 net 비교. */",
  "in": [
   "T_PURCHASE_ID",
   "T_NET",
   "T_BIZDATE"
  ],
  "out": [
   "T_GROSS",
   "T_RC"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_ALERT",
  "desc": "* RC_ALERT.pgc - rc 모듈 서비스 RC_ALERT (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_BIZDATE",
   "T_MSG",
   "T_STR1"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_AMTDIFF",
  "desc": "금액 차이 대사: 기대(net) vs 실제(원장합) 차이 기록. */",
  "in": [
   "T_PURCHASE_ID",
   "T_NET",
   "T_BIZDATE"
  ],
  "out": [
   "T_DELTA"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_APPR_ACQ",
  "desc": "* RC_APPR_ACQ.pgc - rc 모듈 서비스 RC_APPR_ACQ (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_NET",
   "T_BIZDATE"
  ],
  "out": [
   "T_ID1",
   "T_RC"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_AUTOFIX",
  "desc": "자동 보정: 예외 해소 + 보정 원장. */",
  "in": [
   "T_PURCHASE_ID",
   "T_AMOUNT",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_BYDATE",
  "desc": "* RC_BYDATE.pgc - rc 모듈 서비스 RC_BYDATE (one service = one file).",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_BYISSUER",
  "desc": "* RC_BYISSUER.pgc - rc 모듈 서비스 RC_BYISSUER (one service = one file).",
  "in": [
   "T_BIZDATE",
   "T_ISSUER"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_BYMERCH",
  "desc": "* RC_BYMERCH.pgc - rc 모듈 서비스 RC_BYMERCH (one service = one file).",
  "in": [
   "T_BIZDATE",
   "T_MERCHANT"
  ],
  "out": [
   "T_GROSS"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_CNTDIFF",
  "desc": "건수 차이 대사: 매입 건수 vs 대사 로그 건수. */",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_CONFIRM",
  "desc": "* RC_CONFIRM.pgc - rc 모듈 서비스 RC_CONFIRM (one service = one file).",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": []
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_DELAY",
  "desc": "* RC_DELAY.pgc - rc 모듈 서비스 RC_DELAY (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_NET",
   "T_BIZDATE"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_DIFFRPT",
  "desc": "* RC_DIFFRPT.pgc - rc 모듈 서비스 RC_DIFFRPT (one service = one file).",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_DELTA"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_EXCEPTION",
  "desc": "* RC_EXCEPTION.pgc - rc 모듈 서비스 RC_EXCEPTION (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_BIZDATE",
   "T_REASON"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_HOLD",
  "desc": "* RC_HOLD.pgc - rc 모듈 서비스 RC_HOLD (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_NET",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_LEDGERLINK",
  "desc": "* RC_LEDGERLINK.pgc - rc 모듈 서비스 RC_LEDGERLINK (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_NET",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_MANUAL",
  "desc": "* RC_MANUAL.pgc - rc 모듈 서비스 RC_MANUAL (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_NET",
   "T_BIZDATE"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_PARTIAL",
  "desc": "* RC_PARTIAL.pgc - rc 모듈 서비스 RC_PARTIAL (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_AMOUNT",
   "T_BIZDATE"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_PROGRESS",
  "desc": "* RC_PROGRESS.pgc - rc 모듈 서비스 RC_PROGRESS (one service = one file).",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_RELEASE",
  "desc": "* RC_RELEASE.pgc - rc 모듈 서비스 RC_RELEASE (one service = one file).",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": []
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_REMATCH",
  "desc": "* RC_REMATCH.pgc - rc 모듈 서비스 RC_REMATCH (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_NET",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_REPROC",
  "desc": "재처리: EXCEPTION 대사 로그를 MATCHED 로 되돌림. */",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": []
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_RETURN",
  "desc": "반품 대사: 반품 원장 + 음수 대사 로그. */",
  "in": [
   "T_PURCHASE_ID",
   "T_AMOUNT",
   "T_BIZDATE"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_ROLLBACK",
  "desc": "* RC_ROLLBACK.pgc - rc 모듈 서비스 RC_ROLLBACK (one service = one file).",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": []
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_STATS",
  "desc": "* RC_STATS.pgc - rc 모듈 서비스 RC_STATS (one service = one file).",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_RC"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_STATUS",
  "desc": "* RC_STATUS.pgc - rc 모듈 서비스 RC_STATUS (one service = one file).",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": []
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_SUMMARY",
  "desc": "* RC_SUMMARY.pgc - rc 모듈 서비스 RC_SUMMARY (one service = one file).",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_TOLERANCE",
  "desc": "허용오차 대사: |차이| <= 허용치면 MATCHED. */",
  "in": [
   "T_PURCHASE_ID",
   "T_DELTA",
   "T_ARG1",
   "T_BIZDATE"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RC_UNMATCH",
  "desc": "* RC_UNMATCH.pgc - rc 모듈 서비스 RC_UNMATCH (one service = one file).",
  "in": [
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "rc",
  "modnm": "대사",
  "svc": "RECONCILE",
  "desc": "* RECONCILE.pgc - rc 모듈 서비스 RECONCILE (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_NET",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "SETTLE",
  "desc": "* SETTLE.pgc - st 모듈 서비스 SETTLE (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_NET",
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": [
   "T_SETTLE_ID"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_ADJUST",
  "desc": "* ST_ADJUST.pgc - st 모듈 서비스 ST_ADJUST (one service = one file).",
  "in": [
   "T_SETTLE_ID",
   "T_PURCHASE_ID",
   "T_DELTA",
   "T_BIZDATE",
   "T_REASON"
  ],
  "out": [
   "T_ADJ"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_ADVANCE",
  "desc": "선지급 예약: 지급 레코드(SCHEDULED) 생성 (dbio). */",
  "in": [
   "T_NET",
   "T_MERCHANT",
   "T_BIZDATE",
   "T_KEY1"
  ],
  "out": [
   "T_ID1"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_BANDRATE",
  "desc": "* ST_BANDRATE.pgc - st 모듈 서비스 ST_BANDRATE (one service = one file).",
  "in": [
   "T_AMOUNT",
   "T_STR1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_BYMERCH",
  "desc": "* ST_BYMERCH.pgc - st 모듈 서비스 ST_BYMERCH (one service = one file).",
  "in": [
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_CANCEL",
  "desc": "정산 취소: 상태 CANCELLED + 취소 조정 (dbio). */",
  "in": [
   "T_PURCHASE_ID",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_CAP",
  "desc": "수수료 상한 적용: 상한 초과분을 감액 조정 (dbio). */",
  "in": [
   "T_SETTLE_ID",
   "T_PURCHASE_ID",
   "T_FEE",
   "T_ARG1",
   "T_BIZDATE"
  ],
  "out": [
   "T_FEE",
   "T_DELTA"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_CONFIRM",
  "desc": "* ST_CONFIRM.pgc - st 모듈 서비스 ST_CONFIRM (one service = one file).",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": []
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_DELAYINT",
  "desc": "* ST_DELAYINT.pgc - st 모듈 서비스 ST_DELAYINT (one service = one file).",
  "in": [
   "T_SETTLE_ID",
   "T_PURCHASE_ID",
   "T_NET",
   "T_ARG1",
   "T_ARG2",
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": [
   "T_AMOUNT"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_DIFFCHK",
  "desc": "* ST_DIFFCHK.pgc - st 모듈 서비스 ST_DIFFCHK (one service = one file).",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": [
   "T_DELTA",
   "T_RC"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_FXCONV",
  "desc": "외화 환산: fx * rate/100 = KRW. */",
  "in": [
   "T_FX_AMT",
   "T_ARG1"
  ],
  "out": [
   "T_AMOUNT"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_HOLD",
  "desc": "* ST_HOLD.pgc - st 모듈 서비스 ST_HOLD (one service = one file).",
  "in": [
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_LEDGERLINK",
  "desc": "* ST_LEDGERLINK.pgc - st 모듈 서비스 ST_LEDGERLINK (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_NET",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_MDR",
  "desc": "* ST_MDR.pgc - st 모듈 서비스 ST_MDR (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_FEE",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_MONTHLY",
  "desc": "* ST_MONTHLY.pgc - st 모듈 서비스 ST_MONTHLY (one service = one file).",
  "in": [
   "T_MERCHANT",
   "T_KEY1"
  ],
  "out": [
   "T_GROSS"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_NETTING",
  "desc": "* ST_NETTING.pgc - st 모듈 서비스 ST_NETTING (one service = one file).",
  "in": [
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": [
   "T_GROSS"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_OFFSET",
  "desc": "상계: 음수 조정으로 채권 상계 기록 (dbio). */",
  "in": [
   "T_SETTLE_ID",
   "T_PURCHASE_ID",
   "T_AMOUNT",
   "T_BIZDATE"
  ],
  "out": [
   "T_ADJ"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_PAYDATE",
  "desc": "* ST_PAYDATE.pgc - st 모듈 서비스 ST_PAYDATE (one service = one file).",
  "in": [
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_RATEAPPLY",
  "desc": "* ST_RATEAPPLY.pgc - st 모듈 서비스 ST_RATEAPPLY (one service = one file).",
  "in": [
   "T_SETTLE_ID",
   "T_PURCHASE_ID",
   "T_AMOUNT",
   "T_MERCHANT",
   "T_BIZDATE",
   "T_STR1"
  ],
  "out": [
   "T_FEE",
   "T_RC"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_RECALC",
  "desc": "* ST_RECALC.pgc - st 모듈 서비스 ST_RECALC (one service = one file).",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": [
   "T_NET"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_RELAYFEE",
  "desc": "중계 수수료: 구간요율 조회 후 정산 상세 기록 (dbio). */",
  "in": [
   "T_SETTLE_ID",
   "T_PURCHASE_ID",
   "T_AMOUNT",
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": [
   "T_FEE"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_RELEASE",
  "desc": "* ST_RELEASE.pgc - st 모듈 서비스 ST_RELEASE (one service = one file).",
  "in": [
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_REPORT",
  "desc": "* ST_REPORT.pgc - st 모듈 서비스 ST_REPORT (one service = one file).",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_SPLIT",
  "desc": "분할 지급: net 을 n 회로 나눠 지급 레코드 생성 (dbio 루프). */",
  "in": [
   "T_NET",
   "T_INSTALL_N",
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_STATS",
  "desc": "* ST_STATS.pgc - st 모듈 서비스 ST_STATS (one service = one file).",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS",
   "T_AMT1"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_STATUS",
  "desc": "* ST_STATUS.pgc - st 모듈 서비스 ST_STATUS (one service = one file).",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": []
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_VANFEE",
  "desc": "VAN 수수료: 구간요율 조회 후 정산 상세 기록 (dbio). */",
  "in": [
   "T_SETTLE_ID",
   "T_PURCHASE_ID",
   "T_AMOUNT",
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": [
   "T_FEE"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_VAT",
  "desc": "* ST_VAT.pgc - st 모듈 서비스 ST_VAT (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_FEE",
   "T_BIZDATE"
  ],
  "out": [
   "T_TAX"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_WHT",
  "desc": "* ST_WHT.pgc - st 모듈 서비스 ST_WHT (one service = one file).",
  "in": [
   "T_SETTLE_ID",
   "T_PURCHASE_ID",
   "T_FEE",
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": [
   "T_TAX"
  ]
 },
 {
  "mod": "st",
  "modnm": "정산/수수료",
  "svc": "ST_XFERLINK",
  "desc": "* ST_XFERLINK.pgc - st 모듈 서비스 ST_XFERLINK (one service = one file).",
  "in": [
   "T_PURCHASE_ID",
   "T_NET",
   "T_BIZDATE"
  ],
  "out": []
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_AMOUNT",
  "desc": "기능: 금액 유효성(0<amt<=규칙 AMT_MAX) 검증 (RC 1=0/음수,2=상한초과).",
  "in": [
   "T_AMOUNT"
  ],
  "out": [
   "T_RC",
   "T_ARG1"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_ANOMALY",
  "desc": "기능: 이상거래 탐지 후 의심거래 적재 (dbio).",
  "in": [
   "T_PURCHASE_ID",
   "T_BIZDATE"
  ],
  "out": [
   "T_RC",
   "T_ID1"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_APPR_ACQ",
  "desc": "기능: 승인-매입 매칭 검증 (RC 1=승인 없음).",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": [
   "T_COUNT",
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_BALANCE",
  "desc": "기능: 가맹점 순액 대차 검증 (sum(purchase.net) vs sum(settlement.net)).",
  "in": [
   "T_MERCHANT",
   "T_BIZDATE"
  ],
  "out": [
   "T_GROSS",
   "T_NET",
   "T_DELTA",
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_BATCH_CHK",
  "desc": "기능: 배치 정합(purchase 건수 vs merchant_summary.txn_count).",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_GROSS",
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_BIN",
  "desc": "기능: BIN 유효성 검증 vs mm_bin (RC 1=미등록,2=비활성).",
  "in": [
   "T_KEY1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_CARD",
  "desc": "기능: 카드번호 Luhn 검증 (RC 1=체크섬 불일치).",
  "in": [
   "T_STR1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_CODEVAL",
  "desc": "기능: 공통코드 유효성 검증 vs mm_code (RC 1=미존재).",
  "in": [
   "T_STR3",
   "T_KEY1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_CONFIRM",
  "desc": "기능: 의심거래 종결 확정 (status CLOSED by suspect_id).",
  "in": [
   "T_ID1"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_CROSSCHK",
  "desc": "기능: 교차검증(매입+가맹점+승인 동시 존재, RC 비트합).",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_DATE",
  "desc": "기능: 영업일 유효성(미래일자 금지) 검증 (RC 1=미래).",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_DUP",
  "desc": "기능: 중복 매입 검증 (동일 가맹점/금액/영업일 2건 이상 → RC 1).",
  "in": [
   "T_MERCHANT",
   "T_BIZDATE",
   "T_AMOUNT"
  ],
  "out": [
   "T_COUNT",
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_DUPAUTH",
  "desc": "기능: 중복 승인 검증 (approval 2건 이상 → RC 1).",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": [
   "T_COUNT",
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_EXPIRY",
  "desc": "기능: 카드 유효기간(YYYYMM) vs 영업일 검증 (RC 1=만료).",
  "in": [
   "T_STR2",
   "T_BIZDATE"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_FEE",
  "desc": "기능: 수수료 재계산 정합 검증 (저장 fee vs MDR 재계산, RC 1=불일치).",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": [
   "T_RC",
   "T_FEE",
   "T_DELTA"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_FORMAT",
  "desc": "기능: 가맹점ID 형식(길이 4~16) 검증 (RC 1=형식 위반).",
  "in": [
   "T_MERCHANT"
  ],
  "out": [
   "T_COUNT",
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_LEDGER",
  "desc": "기능: 원장 합계 정합 검증 (sum(ledger) vs purchase.net, RC 1=불일치).",
  "in": [
   "T_PURCHASE_ID",
   "T_BIZDATE"
  ],
  "out": [
   "T_RC",
   "T_GROSS"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_LIMIT",
  "desc": "기능: 매입금액 vs 가맹점 일한도 검증 (RC 1=초과).",
  "in": [
   "T_MERCHANT",
   "T_AMOUNT"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_MERCH",
  "desc": "기능: 가맹점 상태 검증 (merchant.status != ACTIVE → RC 1).",
  "in": [
   "T_MERCHANT"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_REFINTEG",
  "desc": "기능: 참조무결성(purchase.merchant_id ∈ merchant) 검증.",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_REPORT",
  "desc": "기능: 심각도별 의심거래 건수 리포트.",
  "in": [
   "T_STR4",
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_REQUIRED",
  "desc": "기능: 필수필드(가맹점/금액) 존재 검증 (RC 비트합).",
  "in": [
   "T_MERCHANT",
   "T_AMOUNT"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_RULE",
  "desc": "기능: 검증 규칙 등록/갱신 (dbio upsert).",
  "in": [
   "T_STR3",
   "T_STR1",
   "T_STR4",
   "T_ARG1"
  ],
  "out": []
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_SALES",
  "desc": "기능: 매입 원거래 존재 검증 (RC 1=미존재).",
  "in": [
   "T_PURCHASE_ID",
   "T_BIZDATE"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_SETTLE",
  "desc": "기능: 정산금액 정합 검증 (settlement.net vs purchase.net, RC 1=불일치).",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": [
   "T_RC",
   "T_NET"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_STATUS",
  "desc": "기능: 서비스 상태 (전체 OPEN 의심거래 수, RC=0).",
  "in": [],
  "out": [
   "T_COUNT",
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_STATUS_CHK",
  "desc": "기능: 매입 상태 유효값 검증 (허용집합 밖 → RC 1).",
  "in": [
   "T_PURCHASE_ID"
  ],
  "out": [
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_SUMMARY",
  "desc": "기능: 당일 미결(OPEN) 의심거래 요약 (dbio).",
  "in": [
   "T_BIZDATE"
  ],
  "out": [
   "T_COUNT",
   "T_RC"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_THRESHOLD",
  "desc": "기능: 규칙 임계치 검사 (dbio get_rule; amount>threshold → RC 1).",
  "in": [
   "T_STR3",
   "T_AMOUNT"
  ],
  "out": [
   "T_RC",
   "T_ARG1"
  ]
 },
 {
  "mod": "vl",
  "modnm": "정합성검증",
  "svc": "VL_TOLERANCE",
  "desc": "기능: 금액 허용오차(amount == fee+net ± tol) 검증 (RC 1=초과).",
  "in": [
   "T_PURCHASE_ID",
   "T_ARG1"
  ],
  "out": [
   "T_RC",
   "T_DELTA"
  ]
 }
];
