소비자가 현금영수증을 요청하지 않아 공급자가 무기명으로 현금영수증을 발행하는 경우를 ‘자진발급’ 이라고 합니다. 팝빌 현금영수증 API SDK 를 통해 ‘자진발급’ 현금영수증 작성방법을 안내해 드리도록 하겠습니다. 자진발급을 위해서는 ‘거래유형(tradeUsage)’ 을 ‘소득공제용’ 으로 ‘거래처 식별번호(identityNum)’ 을 ‘0100001234’로 작성해야합니다. 자진발급 관련법규는 아래의 “[국세청고시] 현금영수증가명점이 지켜야 할 사항”의 제1조 3항을 참조하시기 바랍니다.
[국세청고시] 현금영수증가맹점이 지켜야할 사항 [바로가기]
현금영수증 자진발급 작성예제
- Java(Spring) SDK 작성예시
- Java(JSP) SDK 작성예시
- .NET SDK 작성예시
- PHP SDK 작성예시
- Python SDK 작성예시
- ASP SDK 작성예시
- Delphi SDK 작성예시
- Visual Basic SDK 작성예시
- VBA SDK 작성예시
- PowerBuilder SDK 작성예시
- Node.js SDK 작성예시
Java(SpringMVC) 현금영수증 자진발급 작성예제
“CashbillServiceExample.java” 임시저장 register() 함수의 ‘setTradeUsage’ 변수에 ‘소득공제용’ 로 기재하고 ‘setIdentityNum’ 변수를 ‘0100001234’ 로 기재하여 API를 호출합니다.
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
public String register( Model m) { Cashbill cashbill = new Cashbill(); cashbill.setMgtKey("20150416-01"); cashbill.setTradeType("승인거래"); //거래형태, '소득공제용' 기재 cashbill.setTradeUsage("소득공제용"); cashbill.setTaxationType("과세"); //거래처 식별번호, '0100001234' 기재 cashbill.setIdentityNum("0100001234"); cashbill.setFranchiseCorpNum("1234567890"); cashbill.setFranchiseCorpName("발행자 상호"); cashbill.setFranchiseCEOName("발행자 대표자"); cashbill.setFranchiseAddr("발행자 주소"); cashbill.setFranchiseTEL("07043042991"); cashbill.setSmssendYN(false); cashbill.setCustomerName("고객명"); cashbill.setItemName("상품명"); cashbill.setOrderNumber("주문번호"); cashbill.setEmail("test@test.com"); cashbill.setHp("01043245117"); cashbill.setFax("07043042991"); cashbill.setSupplyCost("10000"); cashbill.setTax("1000"); cashbill.setServiceFee("0"); cashbill.setTotalAmount("11000"); try { Response response = cashbillService.register(testCorpNum, cashbill, testUserID); m.addAttribute("Response",response); } catch (PopbillException e) { m.addAttribute("Exception", e); return "exception"; } return "response"; } |
Java(JSP) 현금영수증 자진발급 작성예제
예제폴더에 포함되어 있는 “register.jsp” 파일의 ‘setTradeUsage’ 변수를 ‘소득공제용’ 로 기재하고 ‘setIdentityNum’ 변수를 ‘0100001234’로 기재하여 API를 호출합니다.
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 |
Cashbill cashbill = new Cashbill(); cashbill.setMgtKey("20150416-01"); cashbill.setTradeType("승인거래"); // 거래형태, '소득공제용' 기재 cashbill.setTradeUsage("소득공제용"); cashbill.setTaxationType("과세"); // 거래처 식별번호, '0100001234' 기재 cashbill.setIdentityNum("0100001234"); cashbill.setFranchiseCorpNum("1234567890"); cashbill.setFranchiseCorpName("발행자 상호"); cashbill.setFranchiseCEOName("발행자 대표자"); cashbill.setFranchiseAddr("발행자 주소"); cashbill.setFranchiseTEL("07043042991"); cashbill.setSmssendYN(false); cashbill.setCustomerName("고객명"); cashbill.setItemName("상품명"); cashbill.setOrderNumber("주문번호"); cashbill.setEmail("test@test.com"); cashbill.setHp("01043245117"); cashbill.setFax("07043042991"); cashbill.setSupplyCost("10000"); cashbill.setTax("1000"); cashbill.setServiceFee("0"); cashbill.setTotalAmount("11000"); Response CheckResponse = null; try { String testCorpNum = "1234567890"; String userID = "testkorea"; CheckResponse = cashbillService.register(testCorpNum, cashbill, userID); } catch (PopbillException pe) { throw pe; } |
.NET 현금영수증 자진발급 작성예제
예제폴더에 포함되어 있는 “frmExample.cs” 파일의 btnRegister_Click() 함수의 ‘tradeUsage’ 변수값을 ‘소득공제용’ 로 기재하고 ‘identityNum’ 변수값을 ‘0100001234’로 기재합니다
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 |
private void btnRegister_Click(object sender, EventArgs e) { Cashbill cashbill = new Cashbill(); cashbill.mgtKey = txtMgtKey.Text; // 거래형태, '소득공제용' 기재 cashbill.tradeUsage = "소득공제용"; // 거래처 식별번호, '0100001234'기재 cashbill.identityNum = "0100001234"; cashbill.tradeType = "승인거래"; cashbill.franchiseCorpNum = txtCorpNum.Text; cashbill.franchiseCorpName = "발행자 상호"; cashbill.franchiseCEOName = "발행자 대표자"; cashbill.franchiseAddr = "발행자 주소"; cashbill.franchiseTEL = "070-1234-1234"; cashbill.customerName = "고객명"; cashbill.itemName = "상품명"; cashbill.orderNumber = "주문번호"; cashbill.email = "test@test.com"; cashbill.hp = "111-1234-1234"; cashbill.fax = "777-444-3333"; cashbill.serviceFee = "0"; cashbill.supplyCost = "10000"; cashbill.tax = "1000"; cashbill.totalAmount = "11000"; cashbill.taxationType = "과세"; cashbill.smssendYN = false; try { Response response = cashbillService.Register(txtCorpNum.Text, cashbill, txtUserId.Text); MessageBox.Show(response.message); } catch (PopbillException ex) { MessageBox.Show(ex.code.ToString() + " | " + ex.Message); } } |
PHP 현금영수증 자진발급 작성예제
예제폴더에 포함되어 있는 “register.php” 파일에 선언된 거래형태(tradeUsage) 항목을 ‘소득공제용’ 로 기재하고, 거래처 식별번호(identityNum) 항목을 ‘0100001234’로 기재합니다.
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 |
<?php include 'common.php'; $Cashbill = new Cashbill(); $Cashbill->mgtKey = '20150416-01'; $Cashbill->tradeType = '승인거래'; // 거래형태, '소득공제용' 기재 $Cashbill->tradeUsage = '소득공제용'; // 거래처 식별번호, '0100001234' 기재 $Cashbill->identityNum = '0100001234'; $Cashbill->franchiseCorpNum = '1234567890'; $Cashbill->franchiseCorpName = '발행자 상호'; $Cashbill->franchiseCEOName = '발행자 대표자명'; $Cashbill->franchiseAddr = '발행자 주소'; $Cashbill->franchiseTEL = '070-1234-1234'; $Cashbill->customerName = '고객명'; $Cashbill->itemName = '상품명'; $Cashbill->orderNumber = '주문번호'; $Cashbill->email = 'test@test.com'; $Cashbill->hp = '111-1234-1234'; $Cashbill->fax = '777-444-3333'; $Cashbill->serviceFee = '0'; $Cashbill->supplyCost = '10000'; $Cashbill->tax = '1000'; $Cashbill->totalAmount = '11000'; $Cashbill->taxationType = '과세'; $Cashbill->smssendYN = false; $Cashbill->faxsendYN = false; try { $result = $CashbillService->Register('1234567890',$Cashbill); echo $result->message; } catch(PopbillException $pe) { echo '['.$pe->getCode().'] '.$pe->getMessage(); } echo chr(10); ?> |
Python 현금영수증 자진발급 작성예제
예제폴더에 포함되어 있는 “register.py” 파일의 ‘tradeUsage’ 변수값을 ‘소득공제용’ 로 기재하고, ‘identityNum’ 변수값을 ‘0100001234’ 로 기재하여 API를 호출합니다.
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 |
# -*- coding: utf-8 -*- # code for console Encoding difference. Dont' mind on it import sys import imp imp.reload(sys) try: sys.setdefaultencoding('UTF8') except Exception as E: pass import testValue from popbill import Cashbill,CashbillService,PopbillException cashbillService = CashbillService(testValue.LinkID,testValue.SecretKey) cashbillService.IsTest = testValue.IsTest try: print("현금영수증 1건 임시저장") cashbill = Cashbill(mgtKey = "20150416-01", tradeType = "취소거래", #거래형태, '소득공제용' 기재 tradeUsage = "소득공제용", taxationType = "과세", #거래처 식별번호 '0100001234'기재 identityNum = "0100001234", franchiseCorpNum = "1234567890", franchiseCorpName = "발행자 상호", franchiseCEOName = "발행 대표자 성명", franchiseAddr = "발행자 주소", franchiseTEL = "07043042991", smssendYN = False, customerName = "고객명", itemName = "상품명", orderNumber = "주문번호", email = "test@test.com", hp = "01043255117", fax = "07043042991", supplyCost = "15000", tax = "5000", serviceFee = "0", totalAmount = "20000" ) result = cashbillService.register(testValue.testCorpNum,cashbill) print("처리결과 : [%d] %s" % (result.code,result.message)) except PopbillException as PE: print("Exception Occur : [%d] %s" % (PE.code , PE.message)) |
ASP 현금영수증 자진발급 작성예제
예제폴더에 포함되어 있는 register.asp” 파일의 ‘tradeUsage’ 변수값을 ‘소득공제용’ 로 기재하고, ‘identityNum’ 변수값을 ‘0100001234’ 로 기재합니다.
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 |
<% testCorpNum = "1234567890" userID = "testkorea" mgtKey = "20150416-01" Set CashbillObj = New CashBill CashbillObj.mgtKey = mgtKey CashbillObj.tradeType = "승인거래" # 거래형태, 소득공제용 기재 CashbillObj.tradeUsage = "소득공제용" # 거래처 식별번호, 0100001234 기재 CashbillObj.identityNum = "0100001234" CashbillObj.franchiseCorpNum = testCorpNum CashbillObj.franchiseCorpName = "발행자 상호" CashbillObj.franchiseCEOName = "발행자 대표자" CashbillObj.franchiseAddr = "발행자 주소" CashbillObj.franchiseTEL = "070-1234-1234" CashbillObj.customerName = "고객명" CashbillObj.itemName = "상품명" CashbillObj.orderNumber = "주문번호" CashbillObj.email = "test@test.com" CashbillObj.hp = "111-1234-1234" CashbillObj.fax = "777-444-3333" CashbillObj.serviceFee = "0" CashbillObj.supplyCost = "10000" CashbillObj.tax = "1000" CashbillObj.totalAmount = "11000" CashbillObj.taxationType = "과세" CashbillObj.smssendYN = False On Error Resume Next Set Presponse = m_CashbillService.Register(testCorpNum, CashbillObj, UserID) If Err.Number <> 0 then code = Err.Number message = Err.Description Err.Clears Else code = Presponse.code message = Presponse.message End If On Error GoTo 0 %> |
Delphi 현금영수증 자진발급 작성예제
SDK 예제폴더의 “Example.pas” 임시저장버튼 클릭이벤트(btnRegisterClick) 코드에 선언된 ‘tradeUsage’ 변수에 ‘소득공제용’ 을 기재하고 ‘identityNum’ 변수에 거래처 식별번호를 기재합니다.
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 |
procedure TfrmExample.btnRegisterClick(Sender: TObject); var cashbill : TCashbill; response : TResponse; begin cashbill := TCashbill.Create; cashbill.MgtKey := txtMgtKey.Text; // [필수] 문서 관리번호 cashbill.tradeType := '승인거래'; // 승인거래 기재 cashbill.franchiseCorpNum := txtCorpNum.Text; // [필수] 발행자 사업자 번호 cashbill.franchiseCorpName := '발행자상호'; cashbill.franchiseCEOName := '발행자 대표자'; cashbill.franchiseAddr := '발행자 주소'; cashbill.franchiseTEL := '07043042991'; cashbill.tradeUsage := '소득공제용'; // [필수] 현금영수증 형태, 소득공제용 기재 cashbill.identityNum := '0100001234'; // [필수] 거래처 식별번호, 0100001234 기재 cashbill.customerName := '고객명'; cashbill.orderNumber := '주문번호'; cashbill.email := 'test@test.com'; cashbill.hp := '010-111-222'; cashbill.fax := '777-444-333'; cashbill.itemName := '항목명'; cashbill.serviceFee := '0'; // [필수] 봉사료 cashbill.supplycost := '10000'; // [필수] 공급가액 cashbill.tax := '1000'; // [필수] 세액 cashbill.totalAmount := '11000'; // [필수] 합계금액 cashbill.taxationType := '과세'; // [필수] 과세, 비과세 중 기재 cashbill.smssendYN := False; // 알림문자 전송여부 try response := cashbillService.Register(txtCorpNum.text, cashbill,txtUserID.Text); except on le : EPopbillException do begin ShowMessage(IntToStr(le.code) + ' | ' + le.Message); Exit; end; end; ShowMessage(IntToStr(response.code) + ' | ' + response.Message); end; |
Visual Basic 현금영수증 자진발급 작성예제
예제코드의 “frmExample.frm” 파일의 btnRegister_Click() 함수의 ‘tradeUsage’ 변수를 ‘소득공제용’ 로 기재하고, ‘identityNum’ 변수를 ‘0100001234’로 기재합니다.
863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 |
Private Sub btnRegister_Click() Dim Cashbill As New PBCashbill Cashbill.mgtKey = txtMgtKey.Text Cashbill.tradeType = "승인거래" '거래형태, 소득공제용 기재 Cashbill.tradeUsage = "소득공제용" '거래처 식별번호, 0100001234 기재 Cashbill.identityNum = "0100001234" Cashbill.franchiseCorpNum = "1234567890" Cashbill.franchiseCorpName = "발행자 상호" Cashbill.franchiseCEOName = "발행자 대표자" Cashbill.franchiseAddr = "발행자 주소" Cashbill.franchiseTEL = "070-1234-1234" Cashbill.customerName = "고객명" Cashbill.itemName = "상품명" Cashbill.orderNumber = "주문번호" Cashbill.email = "test@test.com" Cashbill.hp = "111-1234-1234" Cashbill.fax = "777-444-3333" Cashbill.serviceFee = "0" Cashbill.supplyCost = "10000" Cashbill.tax = "1000" Cashbill.totalAmount = "11000" Cashbill.taxationType = "과세" Cashbill.smssendYN = False Cashbill.faxsendYN = False Dim Response As PBResponse Set Response = CashbillService.Register(txtCorpNum.Text, Cashbill, txtUserID.Text) If Response Is Nothing Then MsgBox ("[" + CStr(CashbillService.LastErrCode) + "] " + CashbillService.LastErrMessage) Exit Sub End If MsgBox (Response.message) End Sub |
VBA 현금영수증 자진발급 작성예제
예제파일 “cashbill_example.accdb(mdb)” 파일의 btnRegister_Click() 함수에 선언되어있는 ‘tradeUsage’ 변수값을 ‘소득공제용’ 로 기재하고 ‘identityNum’ 변수를 ‘0100001234’로 기재합니다.
406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 |
Private Sub btnRegister_Click() Dim Cashbill As New PBCashbill Dim Response As PBResponse Cashbill.mgtKey = txtMgtKey.value Cashbill.tradeType = "승인거래" '거래형태, 소득공제용 기재 Cashbill.tradeUsage = "소득공제용" '거래처 식별번호, 0100001234 기재 Cashbill.identityNum = "0100001234" Cashbill.franchiseCorpNum = "1234567890" Cashbill.franchiseCorpName = "발행자 상호123" Cashbill.franchiseCEOName = "발행자 대표자123" Cashbill.franchiseAddr = "발행자 주소123" Cashbill.franchiseTEL = "070-1234-1234" Cashbill.customerName = "고객명" Cashbill.itemName = "상품명" Cashbill.orderNumber = "주문번호" Cashbill.email = "test@test.com" Cashbill.hp = "010-1111-2222" Cashbill.fax = "0264429700" Cashbill.serviceFee = "0" Cashbill.supplyCost = "10000" Cashbill.tax = "1000" Cashbill.totalAmount = "11000" Cashbill.taxationType = "과세" Cashbill.smssendYN = False Set Response = CashbillService.Register(txtCorpNum.value, Cashbill, txtUserID.value) If Response Is Nothing Then MsgBox ("[" + CStr(CashbillService.LastErrCode) + "] " + CashbillService.LastErrMessage) Exit Sub End If MsgBox (Response.message) End Sub |
PowerBuilder 현금영수증 자진발급 작성예제
예제코드의 cashbillexample Form – 등록 버튼의 “clicked()” 이벤트에 선언된 ‘tradeUsage’ 변수값을 ‘소득공제용’ 로 기재하고, ‘identityNum’ 변수값을 ‘0100001234’ 로 기재합니다.
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 |
cashbill l_cashbill response l_response l_cashbill.mgtkey = sle_mgtkey.text l_cashbill.tradetype = "승인거래" l_cashbill.taxationType = "과세" # 거래형태, 소득공제용 기재 l_cashbill.tradeUsage = "소득공제용" # 거래처 식별번호, 0100001234 기재 l_cashbill.identityNum = "0100001234" l_cashbill.serviceFee = "0" l_cashbill.supplyCost = "10000" l_cashbill.tax = "1000" l_cashbill.totalAmount = "11000" l_cashbill.franchiseCorpNum = "1234567890" l_cashbill.franchiseCorpName = "발행자 상호" l_cashbill.franchiseCEOName = "발행자 대표자" l_cashbill.franchiseAddr = "발행자 주소" l_cashbill.franchiseTEL = "070-1234-1234" l_cashbill.customerName = "고객명" l_cashbill.itemName = "상품명" l_cashbill.orderNumber = "주문번호" l_cashbill.email = "test@test.com" l_cashbill.hp = "010-111-222" l_cashbill.fax = "0264429700" try l_response = in_cashbillservice.register(sle_corpnum.text, l_cashbill) messagebox("팝빌 예제",String(l_response.code) + " | " + l_response.message) catch(popbillexception pe) messagebox("팝빌 오류",String(pe.getcode()) + " | " + pe.getmessage()) end try |
Node.js 현금영수증 자진발급 작성예제
예제코드의 ‘/routes/cashbill.js’ 파일에 임시저장 라우트 핸들러 router.get(‘/register’)에 선언된 ‘tradeUsage’ 변수를 ‘소득공제용’ 로 기재하고, ‘identityNum’ 변수를 ‘0100001234’로 기재합니다.
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
// 임시저장 router.get('/register', function(req,res,next){ var testCorpNum = '1234567890'; // 팝빌회원 사업자번호, '-' 제외 10자리 var MgtKey = '20150813-10'; // 문서관리번호 // 현금영수증 항목 var cashbill = { mgtKey : MgtKey, // [필수] 문서관리번호 tradeType : '승인거래', // [필수] 거래유형, (승인거래, 취소거래) 중 기재 tradeUsage : '소득공제용', // [필수] (소득공제용, 지출증빙용) 중 기재 taxationType : '과세', // [필수] (과세, 비과세) 중 기재 identityNum : '0100001234', // [필수] 거래처 식별번호 franchiseCorpNum : '1234567890', // [필수] 발행자 사업자번호 franchiseCorpName : '발행자 상호', franchiseCEOName : '발행자 대표자 성명', franchiseAddr : '발행자 주소', franchiseTEL : '000111222', customerName : '고객명', itemName : '상품명', orderNumber : '주문번호', email : 'test@test.com', hp : '000111222', fax : '000111222', smssendYN : false, // 발행시 알림문자 전송여부 supplyCost : '15000', // [필수] 공급가액, ',' 콤마 불가, 숫자만가능 tax : '5000', // [필수] 세액, ',' 콤마 불가, 숫자만가능 serviceFee : '0', // [필수] 봉사료, ',' 콤마 불가, 숫자만가능 totalAmount : '20000', // [거래금액], ',' 콤마 불가, 숫자만가능 }; cashbillService.register(testCorpNum,cashbill, function(result){ res.render('response', {path : req.path, code: result.code, message : result.message }); }, function(Error){ res.render('response', {path : req.path, code : Error.code, message : Error.message}); }); }); |
지금까지 현금영수증 API의 자진발급 현금영수증 작성방법에 대해 안내해 드렸습니다. 현금영수증 API 발행에 대한 자세한 사항은 [현금영수증 API 연동매뉴얼] 참조하시기 바랍니다.
고객님들의 편의를 위하여 이메일, 전화 등 다양한 채널을 열어놓고 있으니 언제든지 연락주시기 바랍니다.
링크허브 개발팀 정요한 과장 / T.1600-9854 / D. 070-4304-2991/ E. code@linkhub.co.kr