Files
KArtSell.Aegis/docs/Design/kbx-foundation-v60-status-canonical-contract-hardening/docs/official-provider-adapters-v20.md
T
kjh2064 3f293d8aa8
deploy / deploy (push) Successful in 1m52s
deploy / notify (push) Successful in 1s
V13-FE-006: consolidate approved UI and contract hardening
2026-08-13 02:41:00 +09:00

2.4 KiB

KBX v20 — Official Market/Data Provider Adapters

목적

KRX OPEN API, OPENDART, KIS를 KBX/Domain에서 직접 호출하지 않고 Provider Adapter 뒤에 격리한다. 공식 문서에서 확인되지 않은 URL·호출한도·오류코드는 계약에 추정하여 넣지 않는다.

KRX

  • 이용 순서: 인증키 신청 → API 서비스 탐색 → 개별 서비스 활용 신청 → 승인 후 이용.
  • 인증키는 Request Header의 AUTH_KEY로 전달한다.
  • 개별 데이터 서비스 URL/메서드는 승인된 KRX 서비스 명세를 운영 설정으로 등록한다. v20 저장소는 확인되지 않은 공통 URL을 만들지 않는다.
  • 숫자형 공통 호출한도는 이번 공식 자료에서 확인되지 않아 null로 유지한다.

OPENDART

  • Base: https://opendart.fss.or.kr/api/
  • 인증: query crtfc_key, 40자리.
  • Reference operations: list.json, company.json, corpCode.xml.
  • 응답 status: 000 정상, 013 데이터 없음, 020 요청 제한, 800 점검, 900 정의되지 않은 오류 등.
  • 020은 공식 가이드에서 일반적으로 20,000건 이상의 요청에서 발생할 수 있다고 설명하지만 서비스별 제한이 다를 수 있으므로 KBX가 20,000을 보편적 quota로 고정하지 않는다.

KIS

  • REST 실전: https://openapi.koreainvestment.com:9443
  • REST 모의: https://openapivts.koreainvestment.com:29443
  • OAuth token: POST /oauth2/tokenP, grant_type=client_credentials, appkey/appsecret.
  • Access token 유효기간 24시간, 공식 문서는 6시간 갱신발급주기를 안내한다.
  • 2026-04-20 공식 공지: 실전 REST 18 req/s, 모의 1 req/s, token 발급 1 req/s. 동시 호출은 100~150ms 간격 권장.
  • v20의 KIS Adapter는 시세 조회 GET만 지원한다. 주문/정정취소 POST는 별도 Trading Integration 계약 없이는 추가하지 않는다.
  • 현재가 Reference: /uapi/domestic-stock/v1/quotations/inquire-price, TR FHKST01010100.

Secret 정책

AUTH_KEY, crtfc_key, appkey, appsecret, access_token은 UI·Telemetry·Audit diff·로그에 저장하지 않는다. Adapter는 IKbxProviderSecretStore에서만 읽는다.

캐시/실패

Provider 데이터는 업무 원장이 아니다. Provider 장애 시 기존 Domain Write를 되돌리거나 외부 응답을 Business Truth로 승격하지 않는다. 데이터 신선도와 원천 시각을 별도 보존한다.