51
1 SmartBill Open API Service REST API Reference - javascript - 2016.09.02 (주)비즈니스온커뮤니케이션 연구소 개발팀

SmartBill Open API Service - demoapi.smartbill.co.krdemoapi.smartbill.co.kr/manual/SmartBill Open API Service... · 스마트빌 아이디 SbId 스마트빌 포탈에서 사용되는

Embed Size (px)

Citation preview

1

SmartBill Open API Service

REST API Reference

- javascript -

2016.09.02

(주)비즈니스온커뮤니케이션 연구소 개발팀

2

개정 이력

날짜 내용

2017-01-10 수신업체 SystemID 입력 파라미터 추가(DTI_SAVE, ARISSUE, DETAILARISSUE) ※삼성전자

2017-05-17 Rvalue 관련 주의사항 추가(ARISSUE, DETAILARISSUE, RARISSUE)

2017-05-18 거래명세서 관련 주석소스 수정

2017-07-19 플랫폼 코드 입력 파라미터 추가(ARISSUE, DETAILARISSUE) ※허브사업자를 분류하기 위한 코드

2017-11-03 플랫폼코드 설명 수정(B2B도입 모델)

2018-01-12 인증서 등록정보 조회 기능 추가

3

목 차

1. RequestModel 정의 및 설명 ............................................................................................................................................ 4

1.1 RequestModel .............................................................................................................................................................................. 4

2. 프로세스 별 예시 ............................................................................................................................................................... 5

2.1 세금계산서 발행 ........................................................................................................................................................................... 5

2.2 세금계산서 저장 ........................................................................................................................................................................... 8

2.3 세금계산서 역발행 요청 ............................................................................................................................................................ 10

2.4 세금계산서 역발행 ..................................................................................................................................................................... 12

2.5 거래명세서 발행 ......................................................................................................................................................................... 14

2.6 거래명세서 역발행 요청 ............................................................................................................................................................ 17

2.7 거래명세서 역발행 ..................................................................................................................................................................... 19

2.8 세금계산서 상태 변경 ............................................................................................................................................................... 21

2.9 메일 재전송 ................................................................................................................................................................................ 23

2.10 국세청 전송 요청 ..................................................................................................................................................................... 25

2.11 세금계산서 상태 조회 ............................................................................................................................................................. 27

2.12 부가정보 조회 .......................................................................................................................................................................... 29

2.13 메일 수신결과 조회 ................................................................................................................................................................. 31

2.14 미리보기 양식 조회 ................................................................................................................................................................. 33

2.15 보관함 조회 .............................................................................................................................................................................. 35

2.16 미처리함 조회 .......................................................................................................................................................................... 37

2.17 건별 상세 조회......................................................................................................................................................................... 40

2.18 건별 상세 이력 조회 ............................................................................................................................................................... 42

2.19 회원가입결과 조회 ................................................................................................................................................................... 44

2.20 세금계산서 발행결과 조회 ...................................................................................................................................................... 46

2.21 인증토큰 발급 .......................................................................................................................................................................... 48

2.22 공인인증서 등록정보 조회 ...................................................................................................................................................... 50

4

1. RequestModel 정의 및 설명

1.1 RequestModel

Param Name Param ID Description

메시지ID MessageId GUID(전역고유식별자) 생성 값

요청시그널 Signal 처리할 작업에 대한 구분 값

요청시간 RequestTime 처리할 작업의 요청시간(포맷: YYYYMMDDHH24MISS)

송신사업자번호 SendComRegno 요청하는 사업장의 사업자번호

수신사업자번호 ReceiveComRegno 요청 받는 사업장의 사업자번호

인증토큰 AuthToken 스마트빌의 API를 이용하기 위한 스마트빌에서 인증 받은 코드

서비스코드 ServiceCode 스마트빌의 서비스 구분 값

시스템타입 SystemType 스마트빌의 인터페이스 시스템 구분 값

참조번호 ConversationId 스마트빌의 전자세금계산서의 개별 Id

SMTP이메일 SMTPEmail 유통용 이메일 주소(옵션)

RValue RValue 인증서의 신원 확인 값

인증서 비밀번호 CertPassword 인증서의 비밀번호

서명원본 XML SignedXML 인증서의 서명정보가 있는 세금계산서 원본 xml

미 서명원본 XML UnSignedXML 세금계산서 원본 xml(xml형식은 [4. KEC 표준전자세금계산서 v3.0 항목표.xls] 참조)

인증코드 AuthCode 인증토큰 발급에 필요한 사전 코드

스마트빌 아이디 SbId 스마트빌 포탈에서 사용되는 아이디

유효기간 설정코드 ExpirationDateCode 인증토큰의 유효기간 설정을 위한 코드

인증토큰 만료일 ExpirationDate 인증토큰의 유효기간 만료일

검색 시작일자 SearchFromDate 검색할 시작일자

검색 종료일자 SearchToDate 검색할 종료일자

검색 사업자번호 SearchComRegno 검색할 사업자 번호

이메일 Email 이메일 주소(문자열 배열)

조회 타입코드 SearchTypeCode 조회를 위한 구분 코드

보관함 종류코드 RepoTypeCode 보관함 구분 코드

미처리함 종류코드 ListTypeCode 미처리함 구분 코드

상태 시그널 StatusSignal 세금계산서 상태 별 구분 값

상태변경 사유 StatusReason 세금계산서 상태 변경에 대한 사유

휴대전화 번호 Phone 휴대전화 번호

승인번호 IssueId 24자리의 승인번호(문자열 배열)

프로세스코드 ProcessCode 프로세스에 필요한 코드(타ASP XML업로드시 등록: 0, 삭제: 1)

수신시스템ID SystemId 수신자의 시스템 구분 값(ex. 삼성전자)

플랫폼코드 PlatformCode B2B 모델일 경우 → 허브업체 사업자번호(OpenAPI 도입모델 설명서 참고)

5

2. 프로세스 별 예시

2.1 세금계산서 발행

매출 세금계산서를 발행 한다. 요청시그널/서비스코드/시스템타입은 고정 값을 사용한다.

2.1.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: ARISSUE

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 공급자 사업자번호

수신사업자번호 ReceiveComRegno String (13) 공급받는자 사업자번호

인증토큰 AuthToken String(40)

서비스코드 ServiceCode String(10) 고정 값: DTI

시스템타입 SystemType String(10) 고정 값: OAPI

참조번호 ConversationId String[] 스마트빌 식별자(35자리)

SMTP이메일 SMTPEmail String(20) 유통용 이메일 주소(옵션)

RValue RValue String 신원 확인 값(서명모듈 이용해서 발행할 경우에만 필요)

인증서 비밀번호 CertPassword String 암호화된 인증서의 비밀번호

서명원본 XML SignedXML String 서명정보가 있는 세금계산서 원본 xml

(xml형식은 [4. KEC 표준전자세금계산서 v3.0 항목표.xls] 참조)

수신시스템ID SystemId String 수신업체의 SystemID 입력(ex. 삼성전자)

플랫폼코드 PlatformCode String 허브업체의 사업자번호(B2B모델일 경우에만 필요)

6

2.1.2 Request Sample

var arrConvId = new Array();

arrConvId[0] = '11111111192208758882201504011710003';

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'ARISSUE',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'ReceiveComRegno': '2208758882',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI',

'SystemType': 'OAPI',

'ConversationId': arrConvId,

'SMTPEmail': '',

'RValue': 'lSH2WInYgvm7lhfuSp6ptCZlbtY=', // 서명모듈 이용해서 발행할 경우에만 필요

'CertPassword': ' Ygvm7lhfuSp6p', // 암호화된 인증서의 비밀번호

'SystemId': '',

'PlatformCode': '',

'SignedXML': ''//서명정보가 있는 세금계산서 xml});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

7

2.1.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: ARISSUE

참조번호 ConversationId String(35) 요청 한 스마트빌 식별자

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

2.1.4 Response Sample

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

}

}

8

2.2 세금계산서 저장

발행 예정인 매출 세금계산서를 요청한다. 요청시그널/서비스코드/시스템타입은 고정 값을 사용한다.

2.2.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: DTI_SAVE

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 공급자 사업자번호

수신사업자번호 ReceiveComRegno String (13) 공급받는자 사업자번호

인증토큰 AuthToken String(40)

서비스코드 ServiceCode String(10) 고정 값: DTI

시스템타입 SystemType String(10) 고정 값: OAPI

참조번호 ConversationId String[] 스마트빌 식별자(35자리)

미 서명원본 XML UnSignedXML String 서명정보가 없는 세금계산서 원본 xml

(xml형식은 [4. KEC 표준전자세금계산서 v3.0 항목표.xls] 참조)

수신시스템ID SystemId String 수신업체의 SystemID 입력(ex. 삼성전자)

2.2.2 Request Sample

var arrConvId = new Array();

arrConvId[0] = '11111111192208758882201504011710003';

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'DTI_SAVE',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'ReceiveComRegno': '2208758882',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI',

'SystemType': 'OAPI',

'ConversationId': arrConvId,

'SystemId': '',

'UnSignedXML': ''//서명정보가 없는 세금계산서 xml

});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

9

2.2.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: DTI_SAVE

참조번호 ConversationId String(35) 요청 한 스마트빌 식별자

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

2.2.4 Response Sample

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

}

}

10

2.3 세금계산서 역발행 요청

매입 세금계산서를 요청한다. 요청시그널/서비스코드/시스템타입은 고정 값을 사용한다.

2.3.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: RARREQUEST

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 공급받는자 사업자번호

수신사업자번호 ReceiveComRegno String (13) 공급자 사업자번호

인증토큰 AuthToken String(40)

서비스코드 ServiceCode String(10) 고정 값: DTI

시스템타입 SystemType String(10) 고정 값: OAPI

참조번호 ConversationId String[] 스마트빌 식별자(35자리)

미 서명원본 XML UnSignedXML String 서명정보가 없는 세금계산서 원본 xml

(xml형식은 [4. KEC 표준전자세금계산서 v3.0 항목표.xls] 참조)

2.4.2 Request Sample

var arrConvId = new Array();

arrConvId[0] = '11111111192208758882201504011710003';

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'RARREQUEST',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'ReceiveComRegno': '2208758882',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI',

'SystemType': 'OAPI',

'ConversationId': arrConvId,

'UnSignedXML': ''//서명정보가 없는 세금계산서 xml

});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

11

2.3.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: RARREQUEST

참조번호 ConversationId String(35) 요청 한 스마트빌 식별자

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

2.3.4 Response Sample

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

}

}

12

2.4 세금계산서 역발행

발행 요청된 매출 세금계산서를 발행한다. 요청시그널/서비스코드/시스템타입은 고정 값을 사용한다.

2.4.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: RARISSUE

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 공급자 사업자번호

수신사업자번호 ReceiveComRegno String (13) 공급받는자 사업자번호

인증토큰 AuthToken String(40)

서비스코드 ServiceCode String(10) 고정 값: DTI

시스템타입 SystemType String(10) 고정 값: OAPI

참조번호 ConversationId String[] 스마트빌 식별자(35자리)

SMTP이메일 SMTPEmail String(20) 유통용 이메일 주소(옵션)

RValue RValue String 신원 확인 값(서명모듈 이용해서 발행할 경우에만 필요)

인증서 비밀번호 CertPassword String 암호화된 인증서의 비밀번호

서명원본 XML SignedXML String 서명정보가 있는 세금계산서 원본 xml

(xml형식은 [4. KEC 표준전자세금계산서 v3.0 항목표.xls] 참조)

2.4.2 Request Sample

var arrConvId = new Array();

arrConvId[0] = '11111111192208758882201504011710003';

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'RARISSUE',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'ReceiveComRegno': '2208758882',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI',

'SystemType': 'OAPI',

'ConversationId': arrConvId,

'SMTPEmail': '',

'RValue': 'lSH2WInYgvm7lhfuSp6ptCZlbtY=', //서명모듈 이용해서 발행할 경우에만 필요

'CertPassword': sdfsd345fsdf55faadfs, // 암호화된 인증서의 비밀번호

'SignedXML': ''//서명정보가 있는 세금계산서 xml

});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

13

2.4.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: RARISSUE

참조번호 ConversationId String(35) 요청 한 스마트빌 식별자

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

2.4.4 Response Sample

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

}

}

14

2.5 거래명세서 발행

매출 거래명세서(세금계산서+거래명세서)를 발행한다. 요청시그널/서비스코드/시스템타입은 고정 값을 사용한다.

2.5.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: DETAILARISSUE

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 공급자 사업자번호

수신사업자번호 ReceiveComRegno String (13) 공급받는자 사업자번호

인증토큰 AuthToken String(40)

서비스코드 ServiceCode String(10) 고정 값: DTI

시스템타입 SystemType String(10) 고정 값: OAPI

참조번호 ConversationId String[] 스마트빌 식별자(35자리)

SMTP이메일 SMTPEmail String(20) 유통용 이메일 주소(옵션)

RValue RValue String 신원 확인 값(서명모듈 이용해서 발행할 경우에만 필요)

인증서 비밀번호 CertPassword String 암호화된 인증서의 비밀번호

서명원본 XML SignedXML String 서명정보가 있는 세금계산서 원본 xml

미 서명원본 XML UnSignedXML String 서명정보가 없는 거래명세서 원본 xml

수신시스템ID SystemId String 수신업체의 SystemID 입력(ex. 삼성전자)

플랫폼코드 PlatformCode String 허브업체의 사업자번호(B2B모델일 경우에만 필요)

15

2.5.2 Request Sample

var arrConvId = new Array();

arrConvId[0] = '11111111192208758882201504011710003';

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'DETAILARISSUE',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'ReceiveComRegno': '2208758882',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI',

'SystemType': 'OAPI',

'ConversationId': arrConvId,

'SMTPEmail': '',

'RValue': 'lSH2WInYgvm7lhfuSp6ptCZlbtY=', //서명모듈 이용해서 발행할 경우에만 필요

'CertPassword': 'sdfsd345fsdf55faadfs', //암호화된 인증서의 비밀번호

'SystemId': '',

'PlatformCode': '',

'SignedXML': ''//서명정보가 있는 세금계산서 xml

'UnSignedXML': ''//서명정보가 없는 거래명세서 xml});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

16

2.5.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: DETAILARISSUE

참조번호 ConversationId String(35) 요청 한 스마트빌 식별자

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

2.5.4 Response Sample

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

}

}

17

2.6 거래명세서 역발행 요청

매입 거래명세서(세금계산서+거래명세서)를 요청한다. 요청시그널/서비스코드/시스템타입은 고정 값을 사용한다.

2.6.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: RDETAILREQUEST

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 공급받는자 사업자번호

수신사업자번호 ReceiveComRegno String (13) 공급자 사업자번호

인증토큰 AuthToken String(40)

서비스코드 ServiceCode String(10) 고정 값: DTI

시스템타입 SystemType String(10) 고정 값: OAPI

참조번호 ConversationId String[] 스마트빌 식별자(35자리)

서명원본 XML SignedXML String 서명정보가 없는 세금계산서 원본 xml

미 서명원본 XML UnSignedXML String 서명정보가 없는 거래명세서 원본 xml

2.6.2 Request Sample

var arrConvId = new Array();

arrConvId[0] = '11111111192208758882201504011710003';

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'RDETAILREQUEST',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'ReceiveComRegno': '2208758882',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI',

'SystemType': 'OAPI',

'ConversationId': arrConvId,

'SignedXML': ''//서명정보가 있는 세금계산서 xml

'UnSignedXML': ''//서명정보가 없는 거래명세세서 xml});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

18

2.6.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: RDETAILREQUEST

참조번호 ConversationId String(35) 요청 한 스마트빌 식별자

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

2.6.4 Response Sample

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

}

}

19

2.7 거래명세서 역발행

발행 요청된 매출 거래명세서(세금계산서+거래명세서)를 발행한다. 요청시그널/서비스코드/시스템타입은 고정 값을 사용한다.

2.7.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: RDETAILISSUE

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 공급자 사업자번호

수신사업자번호 ReceiveComRegno String (13) 공급받는자 사업자번호

인증토큰 AuthToken String(40)

서비스코드 ServiceCode String(10) 고정 값: DTI

시스템타입 SystemType String(10) 고정 값: OAPI

참조번호 ConversationId String[] 스마트빌 식별자(35자리)

SMTP이메일 SMTPEmail String(20) 유통용 이메일 주소(옵션)

RValue RValue String 신원 확인 값(서명모듈 이용해서 발행할 경우에만 필요)

인증서 비밀번호 CertPassword String 암호화된 인증서의 비밀번호

서명원본 XML SignedXML String 서명정보가 있는 세금계산서 원본 xml

(xml형식은 [4. KEC 표준전자세금계산서 v3.0 항목표.xls] 참조)

2.7.2 Request Sample

var arrConvId = new Array();

arrConvId[0] = '11111111192208758882201504011710003';

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'RDETAILISSUE',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'ReceiveComRegno': '2208758882',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI',

'SystemType': 'OAPI',

'ConversationId': arrConvId,

'SMTPEmail': '',

'RValue': 'lSH2WInYgvm7lhfuSp6ptCZlbtY=', //서명모듈 이용해서 발행할 경우에만 필요

'CertPassword': 'sdfsd345fsdf55faadfs', //암호화된 인증서의 비밀번호

'SignedXML': ''//서명정보가 있는 세금계산서 xml});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

20

2.7.3 Response

Param Name Param ID Type(max) Description

0메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: RDETAILISSUE

참조번호 ConversationId String(35) 요청 한 스마트빌 식별자

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

2.7.4 Response Sample

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

}

}

21

2.8 세금계산서 상태 변경

세금계산서의 상태를 변경한다. 요청시그널/서비스코드/시스템타입은 고정 값을 사용한다.

2.8.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: CHGSTATUS

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 공급자 사업자번호

수신사업자번호 ReceiveComRegno String (13) 공급받는자 사업자번호

인증토큰 AuthToken String(40)

서비스코드 ServiceCode String(10) 고정 값: DTI

시스템타입 SystemType String(10) 고정 값: OAPI

참조번호 ConversationId String[] 스마트빌 식별자(35자리)

상태 시그널 StatusSignal String 변경할 상태의 시그널 값(하단의 상태시그널 참조)

상태변경 사유 StatusReason String 취소, 거부 사유

2.8.2 Request Sample

var arrConvId = new Array();

arrConvId[0] = '11111111192208758882201504011710003';

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'CHGSTATUS',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'ReceiveComRegno': '2208758882',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI',

'SystemType': 'OAPI',

'ConversationId': arrConvId,

'StatusSignal': 'REJECT',

'StatusReason': '공급가액 상이. 확인요망'

});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

22

2.8.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: CHGSTATUS

참조번호 ConversationId String(35) 요청 한 스마트빌 식별자

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

2.8.4 Response Sample

2.8.5 상태 시그널 표

상태 Signal 취소/거부 사유 필요 여부 변경 전 상태

수신승인 APPROVE 수신미승인

수신거부 REJECT 필요 수신미승인

역발행요청취소 CANCELRREQUEST 필요 역발행요청

역발행요청거부 RIREJECT 필요 역발행요청

발행취소 CANCELALL 필요 수신미승인

발행예정승인 WAPPROVE 발행예정 요청

발행예정거부 WREJECT 필요 발행예정 요청

발행예정취소 WCANCELALL 필요 발행예정 요청

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

}

}

23

2.9 메일 재전송

메일을 재전송한다. 요청시그널/서비스코드/시스템타입은 고정 값을 사용한다.

2.9.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: SENDMAIL

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 공급자 사업자번호

인증토큰 AuthToken String(40)

서비스코드 ServiceCode String(10) 고정 값: DTI

시스템타입 SystemType String(10) 고정 값: OAPI

참조번호 ConversationId String[] 스마트빌 식별자(35자리)

상태 시그널 StatusSignal String 재전송할 상태의 시그널 값(하단의 상태시그널 참조)

이메일 Email String[] 재전송할 이메일 주소(이메일 주소가 공백일 경우, 최초 요청

시 저장된 수신 메일로 전송됨)

2.9.2 Request Sample

var arrConvId = new Array();

arrConvId[0] = '11111111192208758882201504011710003';

var arrEmail = new Array();

arrEmail[0] = '[email protected]';

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'SENDMAIL',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI',

'SystemType': 'OAPI',

'ConversationId': arrConvId,

'StatusSignal': 'ARISSUE',

'Email': arrEmail

});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

24

2.9.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: SENDMAIL

참조번호 ConversationId String(35) 요청 한 스마트빌 식별자

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

2.9.4 Response Sample

2.9.5 상태 시그널 표

상태 Signal

정발행 ARISSUE

역발행요청 RARREQUEST

역발행 RARISSUE

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

}

}

25

2.10 국세청 전송 요청

세금계산서를 즉시 국세청에 전송하도록 요청한다. 요청시그널/서비스코드/시스템타입은 고정 값을 사용한다.

2.10.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: NTS_REQUEST

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 공급자 사업자번호

인증토큰 AuthToken String(40)

서비스코드 ServiceCode String(10) 고정 값: DTI

시스템타입 SystemType String(10) 고정 값: OAPI

참조번호 ConversationId String[] 스마트빌 식별자(35자리, 다중 건 가능)

2.10.2 Request Sample

var arrConvId = new Array();

arrConvId[0] = '11111111192208758882201504011710003';

arrConvId[1] = '11111111192208758882201504011820003';

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'NTS_REQUEST',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI',

'SystemType': 'OAPI',

'ConversationId': arrConvId

});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

26

2.10.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: NTS_REQUEST

참조번호 ConversationId String(35) 요청 한 스마트빌 식별자

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

2.10.4 Response Sample

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

}

}

27

2.11 세금계산서 상태 조회

세금계산서의 상태 조회를 요청한다. 요청시그널/서비스코드는 고정 값을 사용한다.

※ 성능이슈와 네트워크 트래픽 관리 목적상, 동일한 검색조건의 함수 호출을 1회 / 1분으로 제한합니다.

2.11.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: DTI_STATUS_LIST

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 송신자 사업자번호

인증토큰 AuthToken String(40)

서비스코드 ServiceCode String(10) 고정 값: DTI

검색 시작일자 SearchFromDate String(10) YYYY-MM-DD

검색 종료일자 SearchToDate String(10) YYYY-MM-DD(최대 1주일간의 데이터 조회 가능)

검색 사업자번호 SearchComRegno String(13) 검색할 사업자번호 입력

매출건 조회일 경우 매입자의 사업자번호

매입건 조회일 경우 매출자의 사업자번호

매출 매입 구분 RepoTypeCode String(2) 매출(AR) 매입(AP) 선택 입력

2.11.2 Request Sample

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'DTI_STATUS_LIST',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI',

'SearchFromDate': '2015-04-01',

'SearchToDate': '2015-04-07',

'SearchComRegno': '2208758882'

'RepoTypeCode': 'AR'

});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

28

2.11.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: DTI_STATUS_LIST

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

처리결과 ResultDataSet DataSet

2.17.4 Response Sample

var totalCount;

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

totalCount = data.ResultDataSet.Table.length;

if(0 < totalCount){

for(var i = 0 ; i < totalCount ; i++){

data.ResultDataSet.Table[i].DTI_STATUS; //세금계산서 상태값

data.ResultDataSet.Table[i].ETC_PCS_NO; //세금계산서 참조번호

data.ResultDataSet.Table[i].NTS_RESULT_CODE; //세금계산서 국세청 전송결과

data.ResultDataSet.Table[i].NTS_SEND_DATE; //세금계산서 국세청 전송일자

data.ResultDataSet.Table[i].NTS_SEND_STATUS; //세금계산서 국세청 전송상태

data.ResultDataSet.Table[i].SUP_EMAIL; //담당자 이메일(매출조회일 경우)

data.ResultDataSet.Table[i].BYR_EMAIL; //담당자 이메일(매입조회일 경우)

}

}

else{

alert("데이터가 존재하지 않습니다.");

}

}

}

29

2.12 부가정보 조회

스마트빌을 사용하기 위한 부가정보를 조회한다. 요청시그널/서비스코드는 고정 값을 사용한다.

2.12.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: ADD_INFO

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 송신 사업자번호

인증토큰 AuthToken String(40)

서비스코드 ServiceCode String(10) 고정 값: DTI

검색 사업자번호 SearchComRegno String(10) 검색할 사업자번호 입력

담당자 이메일 Email String[] 담당자 이메일 입력

조회타입코드 SearchTypeCode String 하단의 조회타입 코드 참조

2.12.2 Request Sample

2.12.3 조회타입 코드

조회타입 코드 조회타입 종류 사용예 필수 입력 파라미터

NOTICE 공지사항 스마트빌 사이트에서 공지된 사항을 알고자 할 때

BIZPLACE 종사업장 코드 거래처의 종사업장 코드를 알고자 할 때 검색사업자번호(SearchComRegno)

AUTH 담당자 권한 거래처의 담당자의 스마트빌 권한을 알고자 할 때 검색사업자번호(SearchComRegno)

담당자이메일(Email)

CLOSE 휴폐업 여부 거래처의 휴폐업 여부를 알고자 할 때 검색사업자번호(SearchComRegno)

COMPANY 회사정보조회 거래처의 사업장 정보를 알고자 할 때 검색사업자번호(SearchComRegno)

var arrEmail = new Array();

arrEmail[0] = '[email protected]';

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'ADD_INFO',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI',

'SearchComRegno': '2208758882',

'Email': arrEmail,

'SearchTypeCode': 'NOTICE'

});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

30

2.12.4 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: ADD_INFO

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

처리결과 ResultDataSet DataSet

2.12.5 Response Sample

var totalCount;

var searchTypeCode = eval('(' + request + ')').SearchTypeCode; //조회타입 코드

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

} else{

alert("정상적으로 처리되었습니다.");

totalCount = data.ResultDataSet.Table.length;

if(0 < totalCount){

if("NOTICE" == searchTypeCode){ //공지사항

for(var i = 0 ; i < totalCount ; i++){

data.ResultDataSet.Table[i].CDATE; //공지사항 등록일

data.ResultDataSet.Table[i].NOTICE_CONTENTS; //공지사항 내용

data.ResultDataSet.Table[i].NOTICE_NO; //공지사항 번호

data.ResultDataSet.Table[i].NOTICE_TITLE; //공지사항 제목

}

} else if("BIZPLACE" == searchTypeCode){ //종사업장코드

for(var i = 0 ; i < totalCount ; i++){

data.ResultDataSet.Table[i].BIZPLACE_ADDRESS; //종사업장 주소

data.ResultDataSet.Table[i].BIZPLACE_CODE; //종사업장 코드

data.ResultDataSet.Table[i].BIZPLACE_NAME; //종사업장 명

}

} else if("AUTH" == searchTypeCode){ //담당자 권한

for(var i = 0 ; i < totalCount ; i++){

data.ResultDataSet.Table[i].ISSUE_YN; //세금계산서 발행권한

data.ResultDataSet.Table[i].RCV_YN; //세금계산서 수신권한

data.ResultDataSet.Table[i].REQUEST_YN; //세금계산서 역발행 요청 권한

}

} else if("CLOSE" == searchTypeCode){ //휴폐업 여부

for(var i = 0 ; i < totalCount ; i++){

data.ResultDataSet.Table[i].TYPE_CODE; //휴폐업 코드

data.ResultDataSet.Table[i].TYPE_DESC; //휴폐업 코드상세

}

} else if("COMPANY" == searchTypeCode){ //회사정보조회

for(var i = 0 ; i < totalCount ; i++){

data.ResultDataSet.Table[i].COM_ADDRESS; //주소

data.ResultDataSet.Table[i].COM_NAME; //회사명

data.ResultDataSet.Table[i].COM_BIZSTATUS; //업태

data.ResultDataSet.Table[i].COM_BIZCLASS; //업종

data.ResultDataSet.Table[i].COM_PRESIDENT; //대표자명

}

}

} else{

alert("데이터가 존재하지 않습니다.");

}

}

}

31

2.13 메일 수신결과 조회

세금계산서와 관련하여 발송된 메일의 담당자 수신여부를 조회한다. 요청시그널/서비스코드는 고정 값을 사용한다.

2.13.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: MAIL_RESULT

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 송신 사업자번호

인증토큰 AuthToken String(40)

서비스코드 ServiceCode String(10) 고정 값: DTI

참조번호 ConversationId String[] 스마트빌 식별자(35자리)

2.13.2 Request Sample

var arrConvId = new Array();

arrConvId[0] = '11111111192208758882201504011710003';

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'MAIL_RESULT',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI',

'ConversationId': arrConvId

});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

32

2.13.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: MAIL_RESULT

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

처리결과 ResultDataSet DataSet

2.13.4 Response Sample

var totalCount;

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

totalCount = data.ResultDataSet.Table.length;

if(0 < totalCount){

for(var i = 0 ; i < totalCount ; i++){

data.ResultDataSet.Table[i].OPEN_DATE; //메일 열람 일자

data.ResultDataSet.Table[i].OPEN_YN; //메일 열람 여부

data.ResultDataSet.Table[i].SUCCESS_YN; //메일 전송 여부

}

}

else{

alert("데이터가 존재하지 않습니다.");

}

}

}

33

2.14 미리보기 양식 조회

세금계산서를 보이기 위한 UI 템플릿을 요청한다. 요청시그널/서비스코드는 고정 값을 사용한다.

2.14.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: PREVIEW_FORM

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 송신 사업자번호

인증토큰 AuthToken String(40)

서비스코드 ServiceCode String(10) 고정 값: DTI

2.14.2 Request Sample

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'PREVIEW_FORM',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI'

});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

34

2.14.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: PREVIEW_FORM

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

처리결과 ResultDataSet DataSet

2.14.4 Response Sample

var totalCount;

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

totalCount = data.ResultDataSet.Table1.length;

if(0 < totalCount){

data.ResultDataSet.Table1[0].CONTENT; //공급받는자용 매입 세금계산서

data.ResultDataSet.Table1[1].CONTENT; //공급받는자용 매입 계산서

data.ResultDataSet.Table1[2].CONTENT; //공급받는자용 위수탁 매입 세금계산서

data.ResultDataSet.Table1[3].CONTENT; //공급받는자용 위수탁 매입 계산서

data.ResultDataSet.Table1[4].CONTENT; //공급자용 매출 세금계산서

data.ResultDataSet.Table1[5].CONTENT; //공급자용 매출 계산서

data.ResultDataSet.Table1[6].CONTENT; //공급자용 위수탁 매출 세금계산서

data.ResultDataSet.Table1[7].CONTENT; //공급자용 위수탁 매출 계산서

}

else{

alert("데이터가 존재하지 않습니다.");

}

}

}

35

2.15 보관함 조회

보관함 조회를 요청한다. 요청시그널/서비스코드는 고정 값을 사용한다.

※ 성능이슈와 네트워크 트래픽 관리 목적상, 동일한 검색조건의 함수 호출을 1회 / 1분으로 제한합니다.

2.15.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: ARAP_REPO

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 송신 사업자번호

인증토큰 AuthToken String(40)

서비스코드 ServiceCode String(10) 고정 값: DTI

검색 시작일자 SearchFromDate String(10) YYYY-MM-DD

검색 종료일자 SearchToDate String(10) YYYY-MM-DD(최대 1개월간의 데이터 조회 가능)

검색 사업자번호 SearchComRegno String(13) 검색할 사업자번호 입력

(매출보관함일 경우 검색할 매입자의 사업자번호,

매입보관함일 경우 검색할 매출자의 사업자번호

보관함 종류 코드 RepoTypeCode String 매출(AR), 매입(AP)를 선택해서 입력

2.15.2 Request Sample

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'ARAP_REPO',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI',

'SearchFromDate': '2015-04-01',

'SearchToDate': '2015-04-07',

'SearchComRegno': '2208758882',

'RepoTypeCode': 'AR'

});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

36

2.15.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: ARAP_REPO

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

처리결과 ResultDataSet DataSet

2.15.4 Response Sample

var totalCount;

var repoTypeCode = eval('(' + request + ')').RepoTypeCode; //조회타입 코드

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

} else{

alert("정상적으로 처리되었습니다.");

totalCount = data.ResultDataSet.Table.length;

if(0 < totalCount){

if("AR" == repoTypeCode){ //매출보관함

for(var i = 0 ; i < totalCount ; i++){

data.ResultDataSet.Table[i].BYR_COM_NAME; //공급받는자 회사명

data.ResultDataSet.Table[i].BYR_COM_REGNO; //공급받는자 사업자번호

data.ResultDataSet.Table[i].DIRECTION; //세금계산서 정/역 구분

data.ResultDataSet.Table[i].DTI_STATUS; //세금계산서 상태

data.ResultDataSet.Table[i].DTI_TYPE; //세금계산서 종류

data.ResultDataSet.Table[i].DTI_WDAY; //세금계산서 작성일자

data.ResultDataSet.Table[i].ETC_PCS_NO; //세금계산서 참조번호

data.ResultDataSet.Table[i].ISSUE_ID; //세금계산서 승인번호

data.ResultDataSet.Table[i].NTS_SEND_STATUS; //세금계산서 국세청 전송상태

data.ResultDataSet.Table[i].SUP_AMT; //세금계산서 공급가액

data.ResultDataSet.Table[i].SUP_EMAIL; //담당자 이메일

}

}

else if("AP" == repoTypeCode){ //매입보관함

for(var i = 0 ; i < totalCount ; i++){

data.ResultDataSet.Table[i].DIRECTION; //세금계산서 정/역 구분

data.ResultDataSet.Table[i].DTI_STATUS; //세금계산서 상태

data.ResultDataSet.Table[i].DTI_TYPE; //세금계산서 종류

data.ResultDataSet.Table[i].DTI_WDAY; //세금계산서 작성일자

data.ResultDataSet.Table[i].ETC_PCS_NO; //세금계산서 참조번호

data.ResultDataSet.Table[i].ISSUE_ID; //세금계산서 승인번호

data.ResultDataSet.Table[i].NTS_SEND_STATUS; //세금계산서 국세청 전송상태

data.ResultDataSet.Table[i].SUP_AMT; //세금계산서 공급가액

data.ResultDataSet.Table[i].SUP_COM_NAME; //공급자 회사명

data.ResultDataSet.Table[i].SUP_COM_REGNO; //공급자 사업자번호

data.ResultDataSet.Table[i].BYR_EMAIL; //담당자 이메일

}

}

}

else{

alert("데이터가 존재하지 않습니다.");

}

}

}

37

2.16 미처리함 조회

미처리함 내역을 요청한다. 요청시그널/서비스코드는 고정 값을 사용한다.

※ 성능이슈와 네트워크 트래픽 관리 목적상, 동일한 검색조건의 함수 호출을 1회 / 1분으로 제한합니다.

2.16.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: MY_LIST

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 송신 사업자번호

인증토큰 AuthToken String(40)

서비스코드 ServiceCode String(10) 고정 값: DTI

검색 시작일자 SearchFromDate String(10) YYYY-MM-DD

검색 종료일자 SearchToDate String(10) YYYY-MM-DD(최대 1주일간의 데이터 조회 가능)

검색 사업자번호 SearchComRegno String(13) 검색할 사업자번호 입력

미처리함 종류 코드 ListTypeCode String 회사 미처리함(C), 거래처 미처리함(T)를 선택해서 입력

2.16.2 Request Sample

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'MY_LIST',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI',

'SearchFromDate': '2015-04-01',

'SearchToDate': '2015-04-07',

'SearchComRegno': '2208758882',

'ListTypeCode': 'C'

});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

38

2.16.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: MY_LIST

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

처리결과 ResultDataSet DataSet

2.16.4 Response Sample

var totalCount;

var listTypeCode = eval('(' + request + ')').ListTypeCode; //조회타입 코드

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

} else{

alert("정상적으로 처리되었습니다.");

totalCount = data.ResultDataSet.Table.length;

if(0 < totalCount){

if("C" == listTypeCode){ //회사 미처리함

for(var i = 0 ; i < totalCount ; i++){

data.ResultDataSet.Table[i].AMEND_CODE; //수정코드

data.ResultDataSet.Table[i].AMEND_DTI_YN; //수정 세금계산서 여부

data.ResultDataSet.Table[i].BRK_COM_NAME; //수탁자 회사명

data.ResultDataSet.Table[i].BRK_COM_REGNO; //수탁자 사업자번호

data.ResultDataSet.Table[i].BRK_DTI_YN; //위수탁 세금계산서 여부

data.ResultDataSet.Table[i].BYR_COM_NAME; //공급받는자 회사명

data.ResultDataSet.Table[i].BYR_COM_REGNO; //공급받는자 사업자번호

data.ResultDataSet.Table[i].BYR_TYPE; //공급받는자 타입(개인/회사)

data.ResultDataSet.Table[i].CUSTOMER_COM_NAME; //거래처 회사명

data.ResultDataSet.Table[i].CUSTOMER_COM_REGNO; //거래처 사업자번호

data.ResultDataSet.Table[i].DIRECTION; //세금계산서 정/역 구분

data.ResultDataSet.Table[i].DTI_STATUS; //세금계산서 상태

data.ResultDataSet.Table[i].DTI_TYPE; //세금계산서 종류

data.ResultDataSet.Table[i].DTI_WDAY; //세금계산서 작성일자

data.ResultDataSet.Table[i].DTT_LINK_TYPE; //거래명세서 첨부 여부

data.ResultDataSet.Table[i].ETC_PCS_NO; //세금계산서 참조번호

data.ResultDataSet.Table[i].IS_ARAP; //매출 매입 구분

data.ResultDataSet.Table[i].SEQ_NO; //관리번호

data.ResultDataSet.Table[i].SUP_AMT; //세금계산서 공급가액

data.ResultDataSet.Table[i].SUP_COM_NAME; //공급자 회사명

data.ResultDataSet.Table[i].SUP_COM_REGNO; //공급자 사업자번호

data.ResultDataSet.Table[i].TAX_DEMAND; //영수 청구 구분

data.ResultDataSet.Table[i].EMAIL; //담당자 이메일

data.ResultDataSet.Table[i].DATAXML; //원본XML

}

}

else if("T" == listTypeCode){ //거래처 미처리함

39

else if("T" == listTypeCode){ //거래처 미처리함

for(var i = 0 ; i < totalCount ; i++){

data.ResultDataSet.Table[i].AMEND_DTI_YN; //수정 세금계산서 여부

data.ResultDataSet.Table[i].BRK_COM_NAME; //수탁자 회사명

data.ResultDataSet.Table[i].BRK_COM_REGNO; //수탁자 사업자번호

data.ResultDataSet.Table[i].BRK_DTI_YN; //위수탁 세금계산서 여부

data.ResultDataSet.Table[i].BYR_TYPE; //공급받는자 타입(개인/회사)

data.ResultDataSet.Table[i].CUSTOMER_COM_NAME; //거래처 회사명

data.ResultDataSet.Table[i].CUSTOMER_COM_REGNO; //거래처 사업자번호

data.ResultDataSet.Table[i].DIRECTION; //세금계산서 정/역 구분

data.ResultDataSet.Table[i].DTI_STATUS; //세금계산서 상태

data.ResultDataSet.Table[i].DTI_TYPE; //세금계산서 종류

data.ResultDataSet.Table[i].DTI_WDAY; //세금계산서 작성일자

data.ResultDataSet.Table[i].DTT_LINK_TYPE; //거래명세서 첨부 여부

data.ResultDataSet.Table[i].ETC_PCS_NO; //세금계산서 참조번호

data.ResultDataSet.Table[i].IS_ARAP; //매출 매입 구분

data.ResultDataSet.Table[i].SEND_STATUS; //국세청 전송 상태

data.ResultDataSet.Table[i].SEQ_NO; //

data.ResultDataSet.Table[i].SUP_AMT; //세금계산서 공급가액

data.ResultDataSet.Table[i].SUP_COM_NAME; //공급자 회사명

data.ResultDataSet.Table[i].SUP_COM_REGNO; //공급자 사업자번호

data.ResultDataSet.Table[i].TAX_DEMAND; //영수 청구 구분

data.ResultDataSet.Table[i].VIEW_CNT; //열람 횟수

}

}

}

else{

alert("데이터가 존재하지 않습니다.");

}

}

}

40

2.17 건별 상세 조회

세금계산서의 상세 내역을 조회한다. 요청시그널/서비스코드는 고정 값을 사용한다.

※ 성능이슈와 네트워크 트래픽 관리 목적상, 동일한 검색조건의 함수 호출을 1회 / 1분으로 제한합니다.

2.17.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: DTI_STATUS

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 송신 사업자번호

인증토큰 AuthToken String(40)

서비스코드 ServiceCode String(10) 고정 값: DTI

참조번호 ConversationId

2.17.2 Request Sample

var arrConvId = new Array();

arrConvId[0] = '11111111192208758882201504011710003';

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'DTI_STATUS',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI',

'ConversationId': arrConvId

});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

41

2.17.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: DTI_STATUS

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

처리결과 ResultDataSet DataSet

2.17.4 Response Sample

var totalCount;

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

totalCount = data.ResultDataSet.Table.length;

if(0 < totalCount){

data.ResultDataSet.Table[0].AMEND_CODE; //수정코드

data.ResultDataSet.Table[0].DTI_ISSUEDATE; //세금계산서 발행일자

data.ResultDataSet.Table[0].DTI_STATUS; //세금계산서 상태

data.ResultDataSet.Table[0].DTI_WDAY; //세금계산서 작성일자

data.ResultDataSet.Table[0].ETC_PCS_NO; //세금계산서 참조번호

data.ResultDataSet.Table[0].ISSUE_ID; //세금계산서 승인번호

data.ResultDataSet.Table[0].NTS_RESULT_CODE; //세금계산서 국세청 전송결과

data.ResultDataSet.Table[0].NTS_SEND_DATE; //세금계산서 국세청 전송일자

data.ResultDataSet.Table[0].NTS_SEND_STATUS; //세금계산서 국세청 전송상태

data.ResultDataSet.Table[0].ORI_ISSUE_ID; //원본 세금계산서 승인번호

data.ResultDataSet.Table[0].SUP_AMT; //세금계산서 공급가액

data.ResultDataSet.Table[0].TAX_AMT; //세금계산서 세액

data.ResultDataSet.Table[0].TOT_AMT; //세금계산서 합계금액

}

else{

alert("데이터가 존재하지 않습니다.");

}

}

}

42

2.18 건별 상세 이력 조회

세금계산서의 상세 이력을 조회한다. 요청시그널/서비스코드는 고정 값을 사용한다.

※ 성능이슈와 네트워크 트래픽 관리 목적상, 동일한 검색조건의 함수 호출을 1회 / 1분으로 제한합니다.

2.18.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: DTI_HISTORY

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 송신 사업자번호

인증토큰 AuthToken String(40)

서비스코드 ServiceCode String(10) 고정 값: DTI

참조번호 ConversationId

2.18.2 Request Sample

var arrConvId = new Array();

arrConvId[0] = '11111111192208758882201504011710003';

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'DTI_HISTORY',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI',

'ConversationId': arrConvId

});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

43

2.18.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: DTI_HISTORY

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

처리결과 ResultDataSet DataSet

2.18.4 Response Sample

var totalCount;

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

totalCount = data.ResultDataSet.Table.length;

if(0 < totalCount){

for(var i = 0 ; i < totalCount ; i++){

data.ResultDataSet.Table[i].CDATE; //생성일자

data.ResultDataSet.Table[i].COM_NAME; //회사명

data.ResultDataSet.Table[i].DTI_STATUS; //세금계산서 상태

data.ResultDataSet.Table[i].DTI_WDAY; //세금계산서 작성일자

data.ResultDataSet.Table[i].MEM_NAME; //담당자명

data.ResultDataSet.Table[i].REASON; //사유

data.ResultDataSet.Table[i].SEQ_NUM; //

}

}

else{

alert("데이터가 존재하지 않습니다.");

}

}

}

44

2.19 회원가입결과 조회

이메일을 이용해서, 스마트빌의 회원아이디를 조회한다.

2.19.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: GET_MEMBERINFO

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 송신 사업자번호

인증코드 AuthCode String(40) 스마트빌에서 부여 받은 인증코드

이메일 Email String[] 조회할 사용자의 이메일 주소

2.19.2 Request Sample

var arrEmail = new Array();

arrEmail[0] = '[email protected]';

arrEmail[1] = '[email protected]';

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': ' GET_MEMBERINFO', 'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'AuthCode': 'B861CF77977142E39EDD44A6A91CCCCD',

'Email': arrEmail

});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

45

2.19.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: GET_ MEMBERINFO

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

처리결과 ResultDataSet DataSet

2.19.4 Response Sample

var totalCount;

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

totalCount = data.ResultDataSet.Table.length;

if(0 < totalCount){

for(var i = 0 ; i < totalCount ; i++){

data.ResultDataSet.Table[i].COM_REGNO;//사업자번호

data.ResultDataSet.Table[i].EMAIL;//이메일

data.ResultDataSet.Table[i].SBID; //스마트빌아이디(공백인 경우, 회원가입이 되어있지 않은 상태)

}

}

else{

alert("데이터가 존재하지 않습니다.");

}

}

}

46

2.20 세금계산서 발행결과 조회

참조번호를 이용해서, 세금계산서의 상태를 조회한다.

※ 성능이슈와 네트워크 트래픽 관리 목적상, 동일한 검색조건의 함수 호출을 1회 / 1분으로 제한합니다.

2.20.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: DTI_ISSUE_RESULT

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 송신 사업자번호

인증토큰 AuthToken String(40)

서비스코드 SERVICE_CODE String(10) 고정 값: DTI

참조번호 ConversationId String[] 상태 조회 할 참조번호

2.20.2 Request Sample

var arrConvId = new Array();

arrConvId[0] = '11111111191231231231000016146803000';

arrConvId[1] = '11111111191231231231000016146802000';

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'DTI_ISSUE_RESULT',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'AuthToken': 'dXVCcE96ZVlXVHBPeklGcitHQlErcmROYjhEeDFXYi8rVXJmVmZPQk1LTT0K',

'ServiceCode': 'DTI',

'ConversationId': arrConvId

});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

47

2.20.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: DTI_ISSUE_RESULT

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

처리결과 ResultDataSet DataSet

2.20.4 Response Sample

var totalCount;

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

totalCount = data.ResultDataSet.Table.length;

if(0 < totalCount){

for(var i = 0 ; i < totalCount ; i++){

data.ResultDataSet.Table[i].ETC_PCS_NO; //참조번호

data.ResultDataSet.Table[i].ISSUE_ID; //승인번호

data.ResultDataSet.Table[i].DTI_STATUS; //세금계산서 상태

data.ResultDataSet.Table[i].NTS_SEND_STATUS; //국세청전송 상태

data.ResultDataSet.Table[i].NTS_RESULT_CODE; //국세청전송 결과

data.ResultDataSet.Table[i].NTS_SEND_DATE; //국세청전송 일시

data.ResultDataSet.Table[i].TOT_AMT; //합계금액

data.ResultDataSet.Table[i].SUP_AMT; //공급가액

data.ResultDataSet.Table[i].TAX_AMT; //세액

data.ResultDataSet.Table[i].DTI_WDAY; //작성일자

data.ResultDataSet.Table[i].DTI_ISSUEDATE; //발행일시

data.ResultDataSet.Table[i].AMEND_CODE; //수정코드

data.ResultDataSet.Table[i].ORI_ISSUE_ID; //당초승인번호

}

}

else{

alert("데이터가 존재하지 않습니다.");

}

}

}

48

2.21 인증토큰 발급

통신용 인증토큰 발급을 요청한다. 요청시그널은 고정 값을 사용한다.

2.21.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: GET_TOKEN

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 공급자 사업자번호

인증코드 AuthCode String(40) 스마트빌에서 부여 받은 인증코드

스마트빌 아이디 SbId String(10) 스마트빌의 사용자 아이디

유효기간 설정코드 ExpirationDateCode String(10) 하단의 유효기간 설정코드 참조

인증토큰 만료일 ExpirationDate String[] 사용자가 지정하는 만료일 입력

2.21.2 Request Sample

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'GET_TOKEN',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'AuthCode': 'B861CF77977142E39EDD44A6A91CCCCD',

'SbId': 'lsh31147',

'ExpirationDateCode': 'D',

'ExpirationDate': ''

});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

49

2.21.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: GET_TOKEN

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

처리결과 ResultDataSet DataSet

2.21.4 Response Sample

2.21.5 유효기간 설정코드

유효기간 코드 유효기간 비고

D 1 일

W 7 일

H 15 일

M 30 일

Q 90 일

R 180 일

Y 365 일

Z 영구 사용

C 사용자 지정 ‘ExpirationDate’에 지정할 만료일 입력

var authToken;

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

authToken = data.ResultDataSet.Table1[0].AUTH_TOKEN; // 인증토큰 추출

}

}

50

2.22 공인인증서 등록정보 조회

스마트빌에 등록된 공인인증서의 등록정보를 조회한다.

2.22.1 Request

Param Name Param ID Type(max) Description

메시지ID MessageId String 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: GET_CERT_INFO

요청시간 RequestTime String(14) YYYYMMDDHH24MISS

송신사업자번호 SendComRegno String (13) 조회할 인증서 사업자번호

서비스코드 ServiceCode String(40) 고정값 : DTI

2.22.2 Request Sample

var request = JSON.stringify({

'MessageId': '3267cab1-3ea6-4aa6-b988-7d27d6d5ac89',

'Signal': 'GET_CERT_INFO',

'RequestTime': '20150401105301',

'SendComRegno': '1111111119',

'ServiceCode': 'DTI'

});

$.support.cors = true;

$.ajax({

type: "POST",

dataType: "json",

crossDomain: true,

contentType: "application/json",

url: "http://demoapi.smartbill.co.kr/sb-api/request/",

data: request,

success: function (data) {

fnGetData(data); //data 처리(하단의 Response Sample 참조)

},

error: function (error) {

//error 처리

}

});

51

2.22.3 Response

Param Name Param ID Type(max) Description

메시지ID MessageId String 요청 한 트랜잭션 식별자

요청시그널 Signal String(30) 고정 값: GET_CERT_INFO

응답시간 ResponseTime String(14) YYYYMMDDHH24MISS

처리코드 ResultCode String(5) 처리 결과 코드

처리메시지 ResultMessage String(2000) 처리 결과 상세 내역

처리결과 ResultDataSet DataSet

2.22.4 Response Sample

var authToken;

function fnGetData(data){

if ("30000" != data.ResultCode) {

alert(data.ResultMessage);

}

else{

alert("정상적으로 처리되었습니다.");

authToken = data.ResultDataSet.Table1[0].EXPIREDAY; // 인증서만료일

}

}