현금영수증 API 를 사용하여 ‘취소 현금영수증’ 발행하는 방법에 대해 안내해 드리겠습니다. 취소 현금영수증 발행을 위해서는 즉시발행(registIssue) API 호출시 ‘거래유형(tradeType)’ 을 ‘취소거래’ 로 작성하고 원본 현금영수증 국세청 승인번호(orgConfirmNum)와 원본 현금영수증 거래일자(orgTradeDate)를 기재하여 발행해야 합니다. 또한 거래유형을 제외한 항목(발행자 정보, 구매정보)은 원본 현금영수증에 작성된 정보와 동일하게 작성하여 발행해야 합니다.
현금영수증 국세청승인번호, 거래일자 확인
취소 현금영수증 발행을 위해서는 국세청 전송이 완료된 원본 현금영수증의 국세청승인번호(confirmNum)와 거래일자(tradeDate)를 확인하여 기재해야 합니다. 국세청승인번호와 거래일자는 언어별 SDK 예제에 포함되어 있는 문서상태/요약 정보 조회(GetInfo API) 응답전문의 ‘confirmNum’, ‘tradeDate’ 변수를 통해 확인할 수 있다.
취소 현금영수증 작성예제
문서상태 및 요약정보(GetInfo) API를 통해 원본 현금영수증의 국세청승인번호와 거래일자를 확인한 후 거래유형 항목을 ‘취소거래’로 기재하고 즉시발행(registIssue) 시 작성하여 발행해야 합니다. 자세한 사항은 다음의 언어별 예제코드를 참조하시기 바랍니다.
- 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 작성 예시
- Ruby(Rails) SDK 작성 예시
Java(SpringMVC) 취소 현금영수증 작성예제
“CashbillServiceExample.java” 취소현금영수증 즉시발행 revokeRegistIssue() 함수의 ‘orgConfirmNum’ 변수값에 원본현금영수증 국세청승인번호(confirmNum)를, ‘orgTradeDate’ 변수값에 원본현금영수증 거래일자(tradeDate) 기재하여 API를 호출합니다.
906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 |
public String revokeRegistIssue( Model m) { // 현금영수증 문서관리번호 String mgtKey = "20170816-22" // 원본현금영수증 승인번호 String orgConfirmNum = "820116333"; // 원본현금영수증 거래일자 String orgTradeDate = "20170711"; try { Response response = cashbillService.revokeRegistIssue(testCorpNum, mgtKey, orgConfirmNum, orgTradeDate); m.addAttribute("Response",response); } catch (PopbillException e) { m.addAttribute("Exception", e); return "exception"; } return "response"; } |
[참고] 원본현금영수증 국세청승인번호, 거래일자 확인방법 [바로가기]
Java(JSP) 취소 현금영수증 작성예제
예제폴더에 포함되어 있는 “revokeRegistIssue.jsp” 파일의 ‘orgConfirmNum’ 변수값에 원본현금영수증 국세청승인번호(confirmNum)를, ‘orgTradeDate’ 변수값에 원본현금영수증 거래일자(tradeDate) 기재하여 API를 호출합니다.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
// 현금영수증 문서관리번호, 최대 24자리, 영문, 숫자 '-', '_'를 조합하여 사업자별로 중복되지 않도록 구성 String mgtKey = "20170816-30"; // 원본현금영수증 승인번호 String orgConfirmNum = "820116333"; // 원본현금영수증 거래일자 String orgTradeDate = "20170711"; Response CheckResponse = null; try { CheckResponse = cashbillService.revokeRegistIssue(testCorpNum, mgtKey, orgConfirmNum, orgTradeDate); } catch (PopbillException pe) { throw pe; } |
[참고] 원본현금영수증 국세청승인번호, 거래일자 확인방법 [바로가기]
.NET 취소 현금영수증 작성예제
예제폴더에 포함되어 있는 “frmExample.cs” 파일의 btnRegistIssue_Click() 함수의 ‘tradeType’ 변수값을 ‘취소거래’ 로 기재하고 ‘orgConfirmNum’ 변수값에 원본현금영수증 국세청승인번호를, ‘orgTradeDate’ 변수값에 원본현금영수증 거래일자를 기재합니다. 문서관리번호(mgtKey)를 제외한 현금영수증 정보는 원본 현금영수증에 기재한 정보와 동일해야 합니다 .
1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 |
private void btnRevokeRegistIssue_Click(object sender, EventArgs e) { // 원본현금영수증 승인번호 String orgConfirmNum = "820116333"; // 원본현금영수증 거래일자 String orgTradeDate = "20170711"; try { Response response = cashbillService.RevokeRegistIssue(txtCorpNum.Text, txtMgtKey.Text, orgConfirmNum, orgTradeDate); MessageBox.Show("응답코드(code) : " + response.code.ToString() + "\r\n" + "응답메시지(message) : " + response.message, "취소현금영수증 즉시발행"); } catch (PopbillException ex) { MessageBox.Show(ex.code.ToString() + " | " + ex.Message); } } |
[참고] 원본현금영수증 국세청승인번호, 거래일자 확인방법 [바로가기]
PHP 취소 현금영수증 작성예제
예제폴더에 포함되어 있는 “RevokeRegistIssue.php” 예제에 선언된 ‘orgConfirmNum’ 변수에 원본현금영수증 국세청승인번호(confirmNum)를, ‘orgTradeDate’ 변수에 원본현금영수증 거래일자(tradeDate)를 기재하여 API를 호출합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// 문서관리번호, 사업자별로 중복없이 1~24자리 영문, 숫자, '-', '_' 조합으로 구성 $mgtKey = '20170817-13'; // 원본현금영수증 승인번호, 문서정보 확인(GetInfo API)을 통해 확인가능. $orgConfirmNum = '820116333'; // 원본현금영수증 거래일자, 문서정보 확인(GetInfo API)을 통해 확인가능. $orgTradeDate = '20170711'; try { $result = $CashbillService->RevokeRegistIssue($testCorpNum, $mgtKey, $orgConfirmNum, $orgTradeDate); $code = $result->code; $message = $result->message; } catch(PopbillException $pe) { $code = $pe->getCode(); $message = $pe->getMessage(); } |
[참고] 원본현금영수증 국세청승인번호, 거래일자 확인방법 [바로가기]
Python 취소 현금영수증 작성예제
예제폴더에 포함되어 있는 “revokeRegistIssue.py” 파일의 ‘orgConfirmNum’ 변수에 원본현금영수증 국세청승인번호(confirmNum)를, ‘orgTradeDate’ 변수에 원본현금영수증 거래일자(tradeDate)를 기재하여 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 |
try: print("=" * 15 + " 취소현금영수증 1건 즉시발행 "+ "=" * 15) # 팝빌회원 사업자번호 CorpNum = testValue.testCorpNum # 팝빌회원 아이디 UserID = testValue.testUserID # 문서관리번호, 1~24자리, 영문,숫자,-,_ 조합으로 사업자별로 중복되지 않도록 구성 mgtKey = "20170817-42" # 원본현금영수증 국세청승인번호, 문서정보확인(GetInfo API)로 확인가능 orgConfirmNum = "820116333" # 원본현금영수증 거래일자, 문서정보확인(GetInfo API)로 확인가능 orgTradeDate = "20170711" # 발행안내문자 전송여부 smssendYN = False # 즉시발행 메모 memo = "취소현금영수증 즉시발행 메모" result = cashbillService.revokeRegistIssue(CorpNum, mgtKey, orgConfirmNum, orgTradeDate, smssendYN, memo, UserID) print("처리결과 : [%d] %s" % (result.code,result.message)) except PopbillException as PE: print("Exception Occur : [%d] %s" % (PE.code , PE.message)) |
[참고] 원본현금영수증 국세청승인번호, 거래일자 확인방법 [바로가기]
ASP 취소 현금영수증 작성예제
예제폴더에 포함되어 있는 revokeRegistIssue.asp” 파일의 ‘orgConfirmNum’ 변수에 원본현금영수증 국세청승인번호(confirmNum)를, ‘orgTradeDate’ 변수에 원본현금영수증 거래일자(tradeDate)를 기재하여 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 |
' 문서관리번호, 발행자별 고유번호 할당, 1~24자리 영문,숫자조합으로 중복없이 구성. mgtKey = "20170817-24" ' 원본 현금영수증 국세청승인번호 orgConfirmNum = "820116333" ' 원본 현금영수증 거래일자 orgTradeDate = "20170711" ' 발행안내 문자 전송여부 smssendYN = False ' 메모 memo = "즉시발행 메모" On Error Resume Next Set Presponse = m_CashbillService.RevokeRegistIssue(testCorpNum, mgtKey, orgConfirmNum, orgTradeDate, smssendYN, memo, 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” 취소현금영수증 즉시발행 클릭 이벤트(btnRevokeRegistIssueClick) 코드에 선언된 ‘orgConfirmNum’ 변수에 원본현금영수증 국세청승인번호(confirmNum)를, ‘orgTradeDate’ 변수에 원본현금영수증 거래일자를 기재하여 API를 호출합니다.
1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 |
procedure TfrmExample.btnRevokeRegistIssueClick(Sender: TObject); var response : TResponse; memo, mgtKey, orgConfirmNum, orgTradeDate : String; smssendYN : Boolean; begin {**********************************************************************} { 1건의 취소현금영수증을 즉시발행 처리합니다. } { - 현금영수증 항목별 정보는 "[현금영수증 API 연동매뉴얼] > } { 4.1. 현금영수증 구성" 을 참조하시기 바랍니다. } {**********************************************************************} // [필수] 문서 관리번호 1~24자리, 영문, 숫자, '-', '_' 조합하여 구성 // 사업자별로 중복되지 않도록 구성 mgtKey := txtMgtKey.Text; // 원본현금영수증 국세청 승인번호 // 문서 정보 (GetInfo API) 응답항목중 국세청승인번호(confirmNum) 확인하여 기재. orgConfirmNum := '729385934'; // 원본현금영수증 거래일자 // 문서 정보 (GetInfo API) 응답항목중 거래일자(tradeDate) 확인하여 기재. orgTradeDate := '20170711'; // 발행안내문자 전송여부 smssendYN := False; // 메모 memo := '즉시발행 취소현금영수증 메모'; try response := cashbillService.RevokeRegistIssue(txtCorpNum.text, mgtKey, orgConfirmNum, orgTradeDate, smssendYN, memo, txtUserID.text); except on le : EPopbillException do begin ShowMessage('응답코드 : ' + IntToStr(le.code) + #10#13 + '응답메시지 : ' + le.Message); Exit; end; end; ShowMessage('응답코드 : ' + IntToStr(response.code) + #10#13 + '응답메시지 : ' + response.Message); end; |
[참고] 원본현금영수증 국세청승인번호, 거래일자 확인방법 [바로가기]
Visual Basic 취소 현금영수증 작성예제
예제코드의 “frmExample.frm” 파일의 btnRevokeRegistIssue_Click() 함수의 ‘orgConfirmNum’ 변수에 원본현금영수증 국세청승인번호(confirmNum)를, ‘orgTradeDate’ 변수에 원본현금영수증 거래일자(tradeDate)를 기재하여 API를 호출합니다.
1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 |
Private Sub btnRevokeRegistIssue_Click() Dim Response As PBResponse Dim orgConfirmNum As String Dim orgTradeDate As String '원본현금영수증 승인번호 orgConfirmNum = "820116333" '원본현금영수증 거래일자 orgTradeDate = "20170711" Set Response = CashbillService.RevokeRegistIssue(txtCorpNum.Text, txtMgtKey.Text, orgConfirmNum, orgTradeDate) If Response Is Nothing Then MsgBox ("응답코드 : " + CStr(CashbillService.LastErrCode) + vbCrLf + "응답메시지 : " + CashbillService.LastErrMessage) Exit Sub End If MsgBox ("응답코드 : " + CStr(Response.code) + vbCrLf + "응답메시지 : " + Response.message) End Sub |
[참고] 원본현금영수증 국세청승인번호, 거래일자 확인방법 [바로가기]
VBA 취소 현금영수증 작성예제
예제파일 “cashbill_example.accdb(mdb)” 파일의 btnRevokeRegistIssue_Click() 함수에 선언되어있는 ‘orgConfirmNum’ 변수에 원본현금영수증 국세청승인번호(confirmNum)를, ‘orgTradeDate’ 변수에 원본현금영수증 거래일자를 기재하여 API를 호출합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Private Sub btnRevokeRegistIssue_Click() Dim Response As PBResponse Dim orgConfirmNum As String Dim orgTradeDate As String '원본현금영수증 승인번호 orgConfirmNum = "820116333" '원본현금영수증 거래일자 orgTradeDate = "20170711" Set Response = CashbillService.RevokeRegistIssue(txtCorpNum.Value, txtMgtKey.Value, orgConfirmNum, orgTradeDate) If Response Is Nothing Then MsgBox ("응답코드 : " + CStr(CashbillService.LastErrCode) + vbCrLf + "응답메시지 : " + CashbillService.LastErrMessage) Exit Sub End If MsgBox ("응답코드 : " + CStr(Response.code) + vbCrLf + "응답메시지 : " + Response.message) End Sub |
[참고] 원본현금영수증 국세청승인번호, 거래일자 확인방법 [바로가기]
PowerBuilder 취소 현금영수증 작성예제
예제코드의 cashbillexample Form – 취소현금영수증 즉시발행 버튼의 “clicked()” 이벤트에 선언된 ‘orgConfirmNum’ 변수에 원본현금영수증 국세청승인번호(confirmNum)를, ‘orgTradeDate’ 변수에 원본현금영수증 거래일자(tradeDate)를 기재하여 API를 호출합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// 현금영수증 문서관리번호 mgtKey = "20170825-01" // 원본현금영수증 국세청승인번호 orgConfirmNum = "8322412309" // 원본현금영수증 거래일자 orgTradeDate = "20170711" try l_response = in_cashbillservice.revokeRegistIssue(sle_corpnum.text, mgtKey, orgConfirmNum, orgTradeDate) 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(‘/revokeRegistIssue’)에 선언된 ‘orgConfirmNum’ 변수에 원본현금영수증 국세청승인번호(confirmNum)를, ‘orgTradeDate’에 원본현금영수증 거래일자(tradeDate) 기재하여 API를 호출합니다.
596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 |
router.get('/revokeRegistIssue', function(req,res,next){ // 팝빌회원 사업자번호, '-' 제외 10자리 var testCorpNum = '1234567890'; // 문서관리번호, 1~24자리 숫자, 영문, '-', '_'를 조합하여 사업자별로 중복되지 않도록 작성 var mgtKey = '20170818-10'; // [취소 현금영수증 발행시 필수] 원본 현금영수증 국세청 승인번호 // 국세청 승인번호는 GetInfo API의 ConfirmNum 항목으로 확인할 수 있습니다. orgConfirmNum = '820116333'; // [취소 현금영수증 발행시 필수] 원본 현금영수증 거래일자 // 원본 현금영수증 거래일자는 GetInfo API의 TradeDate 항목으로 확인할 수 있습니다. orgTradeDate = '20170711'; cashbillService.revokeRegistIssue(testCorpNum, mgtKey, orgConfirmNum, orgTradeDate, 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}); }); }); |
Ruby – Rails 취소 현금영수증 작성예제
예제코드의 ‘/app/controllers/cashbill_controller.rb’ 취소현금영수증 즉시발행 (revokeRegistIssue) 함수에 선언된 ‘orgConfirmNum’ 변수에 원본현금영수증 국세청승인번호(confirmNum)를, ‘orgTradeDate’ 변수에 원본현금영수증 거래일자를 기재하여 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 |
def revokeRegistIssue # 팝빌회원 사업자번호 corpNum = CashbillController::TestCorpNum # 현금영수증 문서관리번호 mgtKey = "20170818-40" # [취소거래시 필수] 원본 현금영수증 국세청승인번호 orgConfirmNum = "820116333" # [취소거래시 필수] 원본 현금영수증 거래일자 orgTradeDate = "20170711" begin @Response = CashbillController::CBService.revokeRegistIssue( corpNum, mgtKey, orgConfirmNum, orgTradeDate, ) render "home/response" rescue PopbillException => pe @Response = pe render "home/exception" end end |
[참고] 원본현금영수증 국세청승인번호, 거래일자 확인방법 [바로가기]
지금까지 현금영수증 API의 취소 현금영수증 작성방법에 대해 안내해 드렸습니다. 현금영수증 API 발행에 대한 자세한 사항은 [현금영수증 API 연동매뉴얼] 참조하시기 바랍니다.
고객님들의 편의를 위하여 이메일, 전화 등 다양한 채널을 열어놓고 있으니 언제든지 연락주시기 바랍니다.
링크허브 개발팀 정요한 과장 / T.1600-9854 / D. 070-4304-2991/ E. code@linkhub.co.kr