/* * 작성된 현금영수증 데이터를 팝빌에 저장과 동시에 발행하여 "발행완료" 상태로 처리합니다. * - 현금영수증 국세청 전송 정책 : https://docs.popbill.com/cashbill/ntsSendPolicy?lang=dotnetcore * - "발행완료"된 현금영수증은 국세청 전송 이전에 발행취소(CancelIssue API) 함수로 국세청 신고 대상에서 제외할 수 있습니다. * - https://docs.popbill.com/cashbill/dotnetcore/api#RegistIssue */ public IActionResult RegistIssue() { // 현금영수증 정보 객체 Cashbill cashbill = new Cashbill(); // 문서번호, 사업자별로 중복되지 않도록 문서번호 할당 // 1~24자리 영문,숫자,'-','_' 조합 구성 cashbill.mgtKey = "20220527-001"; // 문서형태, 승인거래 기재 cashbill.tradeType = "승인거래"; // 거래구분, { 소득공제용, 지출증빙용 } 중 기재 cashbill.tradeUsage = "소득공제용"; // 거래유형, { 일반, 도서공연, 대중교통 } 중 기재 // - 미입력 시 기본값 "일반" 처리 cashbill.tradeOpt = "일반"; // 과세형태, { 과세, 비과세 } 중 기재 cashbill.taxationType = "과세"; // 거래금액 ( 공급가액 + 세액 + 봉사료 ) cashbill.totalAmount = "11000"; // 공급가액 cashbill.supplyCost = "10000"; // 부가세 cashbill.tax = "1000"; // 봉사료 cashbill.serviceFee = "0"; // 가맹점 사업자번호 cashbill.franchiseCorpNum = corpNum; // 가맹점 종사업장 식별번호 cashbill.franchiseTaxRegID = ""; // 가맹점 상호 cashbill.franchiseCorpName = "가맹점 상호"; // 가맹점 대표자 성명 cashbill.franchiseCEOName = "가맹점 대표자"; // 가맹점 주소 cashbill.franchiseAddr = "가맹점 주소"; // 가맹점 전화번호 cashbill.franchiseTEL = ""; // 식별번호, 거래구분에 따라 작성 // └ 소득공제용 - 주민등록/휴대폰/카드번호(현금영수증 카드)/자진발급용 번호(010-000-1234) 기재가능 // └ 지출증빙용 - 사업자번호/주민등록/휴대폰/카드번호(현금영수증 카드) 기재가능 // └ 주민등록번호 13자리, 휴대폰번호 10~11자리, 카드번호 13~19자리, 사업자번호 10자리 입력 가능 cashbill.identityNum = "0100001234"; // 주문자명 cashbill.customerName = "주문자명"; // 주문상품명 cashbill.itemName = "주문상품명"; // 주문번호 cashbill.orderNumber = "주문번호"; // 주문자 이메일 // 팝빌 개발환경에서 테스트하는 경우에도 안내 메일이 전송되므로, // 실제 거래처의 메일주소가 기재되지 않도록 주의 cashbill.email = ""; // 주문자 휴대폰 // - {smssendYN} 의 값이 true 인 경우 아래 휴대폰번호로 안내 문자 전송 cashbill.hp = ""; // 주문자 팩스번호 cashbill.fax = ""; // 발행시 알림문자 전송여부 cashbill.smssendYN = false; // 현금영수증 발행 메모 string memo = "현금영수증 즉시발행 메모"; // 메일제목, 공백처리시 기본양식으로 전송 string emailSubject = ""; try { var response = _cashbillService.RegistIssue(corpNum, cashbill, memo, userID, emailSubject); return(View("IssueResponse", response)); } catch (PopbillException pe) { return(View("Exception", pe)); } }
/* * 1건의 현금영수증을 [즉시발행]합니다. * - 발행일 기준 오후 5시 이전에 발행된 현금영수증은 다음날 오후 2시에 국세청 전송결과를 확인할 수 있습니다. * - 현금영수증 국세청 전송 정책에 대한 정보는 "[현금영수증 API 연동매뉴얼] > 1.3. 국세청 전송정책"을 참조하시기 바랍니다. * - https://docs.popbill.com/cashbill/dotnetcore/api#RegistIssue */ public IActionResult RegistIssue() { // 현금영수증 정보 객체 Cashbill cashbill = new Cashbill(); // [필수] 문서번호, 사업자별로 중복되지 않도록 문서번호 할당 // 1~24자리 영문,숫자,'-','_' 조합 구성 cashbill.mgtKey = "20200526-002"; // [취소거래시 필수] 원본 현금영수증 국세청승인번호 cashbill.orgConfirmNum = ""; // [취소거래시 필수] 원본 현금영수증 거래일자 cashbill.orgTradeDate = ""; // [필수] 문서형태, { 승인거래, 취소거래 } 중 기재 cashbill.tradeType = "승인거래"; // [필수] 거래구분, { 소득공제용, 지출증빙용 } 중 기재 cashbill.tradeUsage = "소득공제용"; // 거래유형, { 일반, 도서공연, 대중교통 } 중 기재 cashbill.tradeOpt = "일반"; // [필수] 과세형태, { 과세, 비과세 } 중 기재 cashbill.taxationType = "과세"; // [필수] 거래금액 ( 공급가액 + 세액 + 봉사료 ) cashbill.totalAmount = "11000"; // [필수] 공급가액 cashbill.supplyCost = "10000"; // [필수] 부가세 cashbill.tax = "1000"; // [필수] 봉사료 cashbill.serviceFee = "0"; // [필수] 가맹점 사업자번호 cashbill.franchiseCorpNum = corpNum; // 가맹점 상호 cashbill.franchiseCorpName = "가맹점 상호"; // 가맹점 대표자 성명 cashbill.franchiseCEOName = "가맹점 대표자"; // 가맹점 주소 cashbill.franchiseAddr = "가맹점 주소"; // 가맹점 전화번호 cashbill.franchiseTEL = "070-1234-1234"; // [필수] 식별번호 // 거래구분(tradeUsage) - '소득공제용' 인 경우 주민등록/휴대폰/카드번호 기재 가능 // 거래구분(tradeUsage) - '지출증빙용' 인 경우 사업자번호/주민등록/휴대폰/카드번호 기재 가능 cashbill.identityNum = "0101112222"; // 주문자명 cashbill.customerName = "주문자명"; // 주문상품명 cashbill.itemName = "주문상품명"; // 주문번호 cashbill.orderNumber = "주문번호"; // 주문자 이메일 // 팝빌 개발환경에서 테스트하는 경우에도 안내 메일이 전송되므로, // 실제 거래처의 메일주소가 기재되지 않도록 주의 cashbill.email = "*****@*****.**"; // 주문자 휴대폰 cashbill.hp = "010-111-222"; // 주문자 팩스번호 cashbill.fax = "02-6442-9700"; // 발행시 알림문자 전송여부 cashbill.smssendYN = false; // 현금영수증 발행 메모 string memo = "현금영수증 즉시발행 메모"; // 메일제목, 공백처리시 기본양식으로 전송 string emailSubject = ""; try { var response = _cashbillService.RegistIssue(corpNum, cashbill, memo, userID, emailSubject); return(View("Response", response)); } catch (PopbillException pe) { return(View("Exception", pe)); } }