티스토리 뷰
전자공시API
MFC 프로젝트 참조 : https://petra.tistory.com/1228
MFC 프로젝트 참조에서는 유니코드 프로젝트를 만들었는데, 아래 코드는 다른 코드들 때문에 멀티바이트에서 실행함. 상관없을듯 한데 문자열 대입할때 형변환만 맞게 해주면 될듯 하다.
========================
추가>
2020.01.21 현재 기준 OPEN API서비스 도메인이 http://dart.fss.or.kr 에서 http://opendart.fss.or.kr 로 변경 예정으로 시범서비스 이후 2020.04.01 부터 openDart 로만 서비스 한다고 함. 아래 내용 처럼 키값 또한 바뀌었다.
고유번호 얻기> https://opendart.fss.or.kr/guide/detail.do?apiGrpCd=DS001&apiId=2019018
https://opendart.fss.or.kr/api/corpCode.xml?crtfc_key=8c9====================d13
위 링크에서 XML 파일을 받을 수 있다. : CORPCODE.zip
<?xml version="1.0" encoding="UTF-8"?>
<result>
<list>
<corp_code>00434003</corp_code>
<corp_name>다코</corp_name>
<stock_code> </stock_code>
<modify_date>20170630</modify_date>
</list>
<list>
<corp_code>00434456</corp_code>
<corp_name>일산약품</corp_name>
<stock_code> </stock_code>
<modify_date>20170630</modify_date>
</list>
...
https://opendart.fss.or.kr/guide/detail.do?apiGrpCd=DS001&apiId=2019001
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 |
void CMFCRESTTelegramDlg::공시조회()
{
// 2020.04.01 이전에는 종목코드로 조회했으나, 고유번호로 변경됨.
CString strDart인증키 = TEXT("8c9====================d13"); // 20자리
CString strCompanyCode = TEXT("084180"); // 수성
int nType = 0; //
string_t strURL = L"https://opendart.fss.or.kr/api/list.json?crtfc_key=" + CStringW(strDart인증키); // 2020.04.01 부터 http://opendart.fss.or.kr 으로 변경되어 서비스 함.
//strURL += L"&crp_cd=" + CStringW(strCompanyCode); // +L"&bgn_de=19990101";
strURL += L"&corp_code=" + CStringW("00181712"); // SK 고유번호
/*
if (nType == 0)
strURL += L"&dsp_tp=";
else
strURL += L"&dsp_tp=l";
*/
http_client client(strURL);
auto requestTask = client.request(methods::GET);
requestTask.wait();
http_response response = requestTask.get();
string_t contents = U("페이지가 없습니다.");
auto v1 = response.extract_json().get(); // JSON 포맷으로 정보 받음
auto array = v1[U("list")].as_array(); // list 객체가 반복되어 배열로 저장
int n = array.size();
string_t* report_nm = new string_t[n]; // 보고서명
string strStr;
CString str;
std::string s1;
USES_CONVERSION;
std::wstring s2(A2W(s1.c_str())); // wstring <- string
for (int i = 0; i < n; i++)
{
report_nm[i] = array[i].at(U("report_nm")).as_string(); // 보고서 명
//strStr = W2A(rpt_nm[i].c_str()); // string <- wstring
//cout << i + 1 << ". rpt_nam : " << strStr << endl;
str = report_nm[i].c_str();
str.Trim(); // 보고서명에 공백문제가 없는거 같은데, 혹시 몰라서 Trim 하고 문자열 비교한다.
//if (str.Find(TEXT("거래재개")) >= 0 || str.Find(TEXT("거래 재개")) >= 0)
//if (str.Find(TEXT("전환사채")) >= 0 || str.Find(TEXT("거래 재개")) >= 0)
if (str.Find(TEXT("감사")) >= 0 || str.Find(TEXT("거래재개")) >= 0) // 수성 종목 전용
{
KillTimer(_TIMER_DART);
str = array[i].at(U("corp_name")).as_string().c_str(); // 종목명
str += (TEXT("\n") + CString(report_nm[i].c_str()));
AfxMessageBox(TEXT("거래정지 종목 : ") + str); //SendMsg(str);
break;
} // end if
if(str.Find(TEXT("풍문")) >= 0 || str.Find(TEXT("해명")) >= 0)
{
KillTimer(_TIMER_DART);
str = array[i].at(U("corp_name")).as_string().c_str(); // 종목명
str += (TEXT("\n") + CString(report_nm[i].c_str()));
AfxMessageBox(TEXT("해명 공시 : ") + str);
break;
}
} // end for
delete[] report_nm;
//cout << endl << "Total Count : " << n << endl;
} |
cs |
2020.07.29 실행화면>
공시검색 개발가이드
기본 정보
GET | https://opendart.fss.or.kr/api/list.json | UTF-8 | JSON |
GET | https://opendart.fss.or.kr/api/list.xml | UTF-8 | XML |
요청 인자
crtfc_key | API 인증키 | STRING(40) | Y | 발급받은 인증키(40자리) |
corp_code | 고유번호 | STRING(8) | N | 공시대상회사의 고유번호(8자리) ※ 개발가이드 > 공시정보 > 고유번호 API조회 가능 |
bgn_de | 시작일 | STRING(8) | N | 검색시작 접수일자(YYYYMMDD) : 없으면 종료일(end_de) 고유번호(corp_code)가 없는 경우 검색기간은 3개월로 제한 |
end_de | 종료일 | STRING(8) | N | 검색종료 접수일자(YYYYMMDD) : 없으면 당일 |
last_reprt_at | 최종보고서 검색여부 | STRING(1) | N | 최종보고서만 검색여부(Y or N) 기본값 : N (정정이 있는 경우 최종정정만 검색) |
pblntf_ty | 공시유형 | STRING(1) | N | A : 정기공시 B : 주요사항보고 C : 발행공시 D : 지분공시 E : 기타공시 F : 외부감사관련 G : 펀드공시 H : 자산유동화 I : 거래소공시 j : 공정위공시 |
pblntf_detail_ty | 공시상세유형 | STRING(4) | N | (※ 상세 유형 참조 : pblntf_detail_ty) |
corp_cls | 법인구분 | STRING(1) | N | 법인구분 : Y(유가), K(코스닥), N(코넥스), E(기타) ※ 없으면 전체조회, 복수조건 불가 |
sort | 정렬 | STRING(4) | N | 접수일자: date 회사명 : crp 보고서명 : rpt 기본값 : date |
sort_mth | 정렬방법 | STRING(4) | N | 오름차순(asc), 내림차순(desc) 기본값 : desc |
page_no | 페이지 번호 | STRING(5) | N | 페이지 번호(1~n) 기본값 : 1 |
page_count | 페이지 별 건수 | STRING(3) | N | 페이지당 건수(1~100) 기본값 : 10, 최대값 : 100 |
상세 유형
A | A001 | 사업보고서 |
A002 | 반기보고서 | |
A003 | 분기보고서 | |
A004 | 등록법인결산서류(자본시장법이전) | |
A005 | 소액공모법인결산서류 | |
B | B001 | 주요사항보고서 |
B002 | 주요경영사항신고(자본시장법 이전) | |
B003 | 최대주주등과의거래신고(자본시장법 이전) | |
C | C001 | 증권신고(지분증권) |
C002 | 증권신고(채무증권) | |
C003 | 증권신고(파생결합증권) | |
C004 | 증권신고(합병등) | |
C005 | 증권신고(기타) | |
C006 | 소액공모(지분증권) | |
C007 | 소액공모(채무증권) | |
C008 | 소액공모(파생결합증권) | |
C009 | 소액공모(합병등) | |
C010 | 소액공모(기타) | |
C011 | 호가중개시스템을통한소액매출 | |
D | D001 | 주식등의대량보유상황보고서 |
D002 | 임원ㆍ주요주주특정증권등소유상황보고서 | |
D003 | 의결권대리행사권유 | |
D004 | 공개매수 | |
E | E001 | 자기주식취득/처분 |
E002 | 신탁계약체결/해지 | |
E003 | 합병등종료보고서 | |
E004 | 주식매수선택권부여에관한신고 | |
E005 | 사외이사에관한신고 | |
E006 | 주주총회소집공고 | |
E007 | 시장조성/안정조작 | |
E008 | 합병등신고서(자본시장법 이전) | |
E009 | 금융위등록/취소(자본시장법 이전) | |
F | F001 | 감사보고서 |
F002 | 연결감사보고서 | |
F003 | 결합감사보고서 | |
F004 | 회계법인사업보고서 | |
F005 | 감사전재무제표미제출신고서 | |
G | G001 | 증권신고(집합투자증권-신탁형) |
G002 | 증권신고(집합투자증권-회사형) | |
G003 | 증권신고(집합투자증권-합병) | |
H | H001 | 자산유동화계획/양도등록 |
H002 | 사업/반기/분기보고서 | |
H003 | 증권신고(유동화증권등) | |
H004 | 채권유동화계획/양도등록 | |
H005 | 수시보고 | |
H006 | 주요사항보고서 | |
I | I001 | 수시공시 |
I002 | 공정공시 | |
I003 | 시장조치/안내 | |
I004 | 지분공시 | |
I005 | 증권투자회사 | |
I006 | 채권공시 | |
J | J001 | 대규모내부거래관련 |
J002 | 대규모내부거래관련(구) | |
J004 | 기업집단현황공시 | |
J005 | 비상장회사중요사항공시 | |
J006 | 기타공정위공시 |
응답 결과
status | 에러 및 정보 코드 | (※메시지 설명 참조) | |
message | 에러 및 정보 메시지 | (※메시지 설명 참조) | |
page_no | 페이지 번호 | 페이지 번호 | |
page_count | 페이지 별 건수 | 페이지 별 건수 | |
total_count | 총 건수 | 총 페이지 수 | |
total_page | 총 페이지 수 | 총 페이지 수 | |
corp_cls | 법인구분 | Y | 법인구분 : Y(유가), K(코스닥), N(코넥스), E(기타) |
corp_name | 종목명(법인명) | Y | 공시대상회사의 종목명(상장사) 또는 법인명(기타법인) |
corp_code | 고유번호 | Y | 공시대상회사의 고유번호(8자리) |
stock_code | 종목코드 | Y | 상장회사의 종목코드(6자리) |
report_nm | 보고서명 | Y | 공시구분+보고서명+기타정보 [기재정정] : 본 보고서명으로 이미 제출된 보고서의 기재내용이 변경되어 제출된 것임 [첨부정정] : 본 보고서명으로 이미 제출된 보고서의 첨부내용이 변경되어 제출된 것임 [첨부추가] : 본 보고서명으로 이미 제출된 보고서의 첨부서류가 추가되어 제출된 것임 [변경등록] : 본 보고서명으로 이미 제출된 보고서의 유동화계획이 변경되어 제출된 것임 [연장결정] : 본 보고서명으로 이미 제출된 보고서의 신탁계약이 연장되어 제출된 것임 [발행조건확정] : 본 보고서명으로 이미 제출된 보고서의 유가증권 발행조건이 확정되어 제출된 것임 [정정명령부과] : 본 보고서에 대하여 금융감독원이 정정명령을 부과한 것임 [정정제출요구] : 본 보고서에 대하여 금융감독원이 정정제출요구을 부과한 것임 |
rcept_no | 접수번호 | Y | 접수번호(14자리) ※ 공시뷰어 연결에 이용예시 - PC용 : http://dart.fss.or.kr/dsaf001/main.do?rcpNo=접수번호 - 모바일용 : http://m.dart.fss.or.kr/html_mdart/MD1007.html?rcpNo=접수번호 |
flr_nm | 공시 제출인명 | Y | 공시 제출인명 |
rcept_dt | 접수일자 | Y | 공시 접수일자(YYYYMMDD) |
rm | 비고 | Y | 조합된 문자로 각각은 아래와 같은 의미가 있음 유 : 본 공시사항은 한국거래소 유가증권시장본부 소관임 코 : 본 공시사항은 한국거래소 코스닥시장본부 소관임 채 : 본 문서는 한국거래소 채권상장법인 공시사항임 넥 : 본 문서는 한국거래소 코넥스시장 소관임 공 : 본 공시사항은 공정거래위원회 소관임 연 : 본 보고서는 연결부분을 포함한 것임 정 : 본 보고서 제출 후 정정신고가 있으니 관련 보고서를 참조하시기 바람 철 : 본 보고서는 철회(간주)되었으니 관련 철회신고서(철회간주안내)를 참고하시기 바람 |
회사의 전체(19990101~당일) 공시 10건
http://dart.fss.or.kr/api/search.xml?auth=인증키&crp_cd=종목코드&start_dt=19990101