protected void Page_Load(object sender, EventArgs e) { /** * 세금계산서 1건의 상태 및 요약정보를 확인합니다. * - https://docs.popbill.com/taxinvoice/dotnet/api#GetInfo */ // 팝빌회원 사업자번호, '-' 제외 10자리 String testCorpNum = "1234567890"; // 세금계산서 문서번호 String mgtKey = "20220525-001"; // 세금계산서 발행유형, SELL-매출, BUY-매입, TRUSTEE-위수탁 MgtKeyType KeyType = MgtKeyType.SELL; try { taxinvoiceInfo = Global.taxinvoiceService.GetInfo(testCorpNum, KeyType, mgtKey); } catch (PopbillException ex) { code = ex.code.ToString(); message = ex.Message; } }
protected void Page_Load(object sender, EventArgs e) { /** * 안내메일과 관련된 전자세금계산서를 확인 할 수 있는 상세 페이지의 팝업 URL을 반환하며, 해당 URL은 메일 하단의 "전자세금계산서 보기" 버튼의 링크와 같습니다. * - 함수 호출로 반환 받은 URL에는 유효시간이 없습니다. * - https://docs.popbill.com/taxinvoice/dotnet/api#GetMailURL */ // 팝빌회원 사업자번호, '-' 제외 10자리 String testCorpNum = "1234567890"; // 팝빌회원 아이디 String testUserID = "testkorea"; // 세금계산서 발행유형, SELL-매출, BUY-매입, TRUSTEE-위수탁 MgtKeyType KeyType = MgtKeyType.SELL; // 세금계산서 문서번호 String mgtKey = "20220525-001"; try { url = Global.taxinvoiceService.GetMailURL(testCorpNum, KeyType, mgtKey, testUserID); } catch (PopbillException ex) { code = ex.code.ToString(); message = ex.Message; } }
protected void Page_Load(object sender, EventArgs e) { /** * 세금계산서에 첨부된 파일목록을 확인합니다. * - 응답항목 중 파일아이디(AttachedFile) 항목은 파일삭제(DeleteFile API) 호출시 이용할 수 있습니다. * - https://docs.popbill.com/taxinvoice/dotnet/api#GetFiles */ // 팝빌회원 사업자번호, '-' 제외 10자리 String testCorpNum = "1234567890"; // 세금계산서 문서번호 String mgtKey = "20220525-001"; // 세금계산서 발행유형, SELL-매출, BUY-매입, TRUSTEE-위수탁 MgtKeyType KeyType = MgtKeyType.SELL; try { fileList = Global.taxinvoiceService.GetFiles(testCorpNum, KeyType, mgtKey); } catch (PopbillException ex) { code = ex.code.ToString(); message = ex.Message; } }
//첨부파일 추가 public Response AttachFile(string CorpNum, MgtKeyType KeyType, string MgtKey, string FilePath, string UserID = null) { if (string.IsNullOrEmpty(value: MgtKey)) { throw new PopbillException(code: -99999999, Message: "문서번호가 입력되지 않았습니다."); } if (string.IsNullOrEmpty(value: FilePath)) { throw new PopbillException(code: -99999999, Message: "파일경로가 입력되지 않았습니다."); } List <UploadFile> files = new List <UploadFile>(); UploadFile file = new UploadFile { FieldName = "Filedata", FileName = System.IO.Path.GetFileName(path: FilePath), FileData = new FileStream(path: FilePath, mode: FileMode.Open, access: FileAccess.Read) }; files.Add(item: file); return(httppostFile <Response>("/Taxinvoice/" + KeyType.ToString() + "/" + MgtKey + "/Files", CorpNum, null, files, null, UserID)); }
protected void Page_Load(object sender, EventArgs e) { /** * "임시저장" 상태의 세금계산서에 1개의 파일을 첨부합니다. (최대 5개) * - https://docs.popbill.com/taxinvoice/dotnet/api#AttachFile */ // 팝빌회원 사업자번호, '-' 제외 10자리 String testCorpNum = "1234567890"; // 팝빌회원 아이디 String testUserID = "testkorea"; // 세금계산서 발행유형, SELL-매출, BUY-매입, TRUSTEE-위수탁 MgtKeyType KeyType = MgtKeyType.SELL; // 세금계산서 문서번호 String mgtKey = "20220525-001"; // 첨부파일 경로 String filePath = "C:/popbill.example.aspdotnet/PopbillExample/test.jpg"; try { Response response = Global.taxinvoiceService.AttachFile(testCorpNum, KeyType, mgtKey, filePath, testUserID); code = response.code.ToString(); message = response.message; } catch (PopbillException ex) { code = ex.code.ToString(); message = ex.Message; } }
protected void Page_Load(object sender, EventArgs e) { /** * 팝빌 사이트를 통해 발행하여 문서번호가 부여되지 않은 세금계산서에 문서번호를 할당합니다. * - https://docs.popbill.com/taxinvoice/dotnet/api#AssignMgtKey */ // 팝빌회원 사업자번호, '-' 제외 10자리 String testCorpNum = "1234567890"; // 세금계산서 유형 SELL-매출, BUY-매입, TRUSTEE-위수탁 MgtKeyType KeyType = MgtKeyType.SELL; // 세금계산서 팝빌번호, 목록조회(Search) API의 반환항목중 ItemKey 참조 String itemKey = "021041823580800001"; // 할당할 문서관호, 최대 24자리, 영문, 숫자 '-', '_'를 조합하여 사업자별로 중복되지 않도록 구성 String mgtKey = "20220525-001"; try { Response response = Global.taxinvoiceService.AssignMgtKey(testCorpNum, KeyType, itemKey, mgtKey); code = response.code.ToString(); message = response.message; } catch (PopbillException ex) { code = ex.code.ToString(); message = ex.Message; } }
protected void Page_Load(object sender, EventArgs e) { /** * "발행완료" 상태의 전자세금계산서를 국세청에 즉시 전송하며, 함수 호출 후 최대 30분 이내에 전송 처리가 완료됩니다. * - 국세청 즉시전송을 호출하지 않은 세금계산서는 발행일 기준 다음 영업일 오후 3시에 팝빌 시스템에서 일괄적으로 국세청으로 전송합니다. * - https://docs.popbill.com/taxinvoice/dotnet/api#SendToNTS */ // 팝빌회원 사업자번호, '-' 제외 10자리 String testCorpNum = "1234567890"; // 팝빌회원 아이디 String testUserID = "testkorea"; // 세금계산서 발행유형, SELL-매출, BUY-매입, TRUSTEE-위수탁 MgtKeyType KeyType = MgtKeyType.SELL; // 세금계산서 문서번호 String mgtKey = "20220525-001"; try { Response response = Global.taxinvoiceService.SendToNTS(testCorpNum, KeyType, mgtKey, testUserID); code = response.code.ToString(); message = response.message; } catch (PopbillException ex) { code = ex.code.ToString(); message = ex.Message; } }
protected void Page_Load(object sender, EventArgs e) { /** * 세금계산서에 첨부된 전자명세서를 해제합니다. * - https://docs.popbill.com/taxinvoice/dotnet/api#DetachStatement */ // 팝빌회원 사업자번호, '-' 제외 10자리 String testCorpNum = "1234567890"; // 세금계산서 발행유형, SELL-매출, BUY-매입, TRUSTEE-위수탁 MgtKeyType KeyType = MgtKeyType.SELL; // 세금계산서 문서번호 String mgtKey = "20220525-001"; // 첨부해제 할 명세서 종류 코드 int DocItemCode = 121; // 첨부해제 할 명세서 문서번호 String DocMgtKey = "20220525-001"; try { Response response = Global.taxinvoiceService.DetachStatement(testCorpNum, KeyType, mgtKey, DocItemCode, DocMgtKey); code = response.code.ToString(); message = response.message; } catch (PopbillException ex) { code = ex.code.ToString(); message = ex.Message; } }
protected void Page_Load(object sender, EventArgs e) { /** * "공급받는자" 용 세금계산서 1건을 인쇄하기 위한 페이지의 팝업 URL을 반환합니다. * - 반환되는 URL은 보안 정책상 30초 동안 유효하며, 시간을 초과한 후에는 해당 URL을 통한 페이지 접근이 불가합니다. * - https://docs.popbill.com/taxinvoice/dotnet/api#GetEPrintURL */ // 팝빌회원 사업자번호, '-' 제외 10자리 String testCorpNum = "1234567890"; // 팝빌회원 아이디 String testUserID = "testkorea"; // 세금계산서 발행유형, SELL-매출, BUY-매입, TRUSTEE-위수탁 MgtKeyType KeyType = MgtKeyType.SELL; // 세금계산서 문서번호 String mgtKey = "20220525-001"; try { url = Global.taxinvoiceService.GetEPrintURL(testCorpNum, KeyType, mgtKey, testUserID); } catch (PopbillException ex) { code = ex.code.ToString(); message = ex.Message; } }
protected void Page_Load(object sender, EventArgs e) { /** * 공급자가 공급받는자에게 역발행 요청 받은 세금계산서의 발행을 거부합니다. * - https://docs.popbill.com/taxinvoice/dotnet/api#Refuse */ // 팝빌회원 사업자번호, '-' 제외 10자리 String testCorpNum = "1234567890"; // 팝빌회원 아이디 String testUserID = "testkorea"; // 세금계산서 발행유형, SELL-매출, BUY-매입, TRUSTEE-위수탁 MgtKeyType KeyType = MgtKeyType.SELL; // 세금계산서 문서번호 String mgtKey = "20220525-001"; // 메모 String memo = "역발행 요청 거부 메모"; try { Response response = Global.taxinvoiceService.Refuse(testCorpNum, KeyType, mgtKey, memo, testUserID); code = response.code.ToString(); message = response.message; } catch (PopbillException ex) { code = ex.code.ToString(); message = ex.Message; } }
protected void Page_Load(object sender, EventArgs e) { /** * 전자세금계산서 PDF 파일을 다운 받을 수 있는 URL을 반환합니다. * - 반환되는 URL은 보안정책상 30초의 유효시간을 갖으며, 유효시간 이후 호출시 정상적으로 페이지가 호출되지 않습니다. * - https://docs.popbill.com/taxinvoice/dotnet/api#GetPDFURL */ // 팝빌회원 사업자번호, '-' 제외 10자리 String testCorpNum = "1234567890"; // 팝빌회원 아이디 String testUserID = "testkorea"; // 세금계산서 발행유형, SELL-매출, BUY-매입, TRUSTEE-위수탁 MgtKeyType KeyType = MgtKeyType.SELL; // 세금계산서 문서번호 String mgtKey = "20220525-001"; try { url = Global.taxinvoiceService.GetPDFURL(testCorpNum, KeyType, mgtKey, testUserID); } catch (PopbillException ex) { code = ex.code.ToString(); message = ex.Message; } }
protected void Page_Load(object sender, EventArgs e) { /** * 다수건의 세금계산서를 인쇄하기 위한 페이지의 팝업 URL을 반환합니다. (최대 100건) * - 반환되는 URL은 보안 정책상 30초 동안 유효하며, 시간을 초과한 후에는 해당 URL을 통한 페이지 접근이 불가합니다. * - https://docs.popbill.com/taxinvoice/dotnet/api#GetMassPrintURL */ // 팝빌회원 사업자번호, '-' 제외 10자리 String testCorpNum = "1234567890"; // 팝빌회원 아이디 String testUserID = "testkorea"; // 세금계산서 발행유형, SELL-매출, BUY-매입, TRUSTEE-위수탁 MgtKeyType KeyType = MgtKeyType.SELL; List <string> MgtKeyList = new List <string>(); // 인쇄할 세금계산서 문서번호, (최대 100건) MgtKeyList.Add("20220525-001"); MgtKeyList.Add("20220525-002"); try { url = Global.taxinvoiceService.GetMassPrintURL(testCorpNum, KeyType, MgtKeyList, testUserID); } catch (PopbillException ex) { code = ex.code.ToString(); message = ex.Message; } }
protected void Page_Load(object sender, EventArgs e) { /** * 팝빌 전자명세서 API를 통해 발행한 전자명세서를 세금계산서에 첨부합니다. * - https://docs.popbill.com/taxinvoice/dotnet/api#AttachStatement */ // 팝빌회원 사업자번호, '-' 제외 10자리 String testCorpNum = "1234567890"; // 세금계산서 발행유형, SELL-매출, BUY-매입, TRUSTEE-위수탁 MgtKeyType KeyType = MgtKeyType.SELL; // 세금계산서 문서번호 String mgtKey = "20220525-001"; // 첨부할 명세서 코드 - 121(거래명세서), 122(청구서), 123(견적서), 124(발주서), 125(입금표), 126(영수증) int DocItemCode = 121; // 첨부할 명세서 문서번호 String DocMgtKey = "20220525-S001"; try { Response response = Global.taxinvoiceService.AttachStatement(testCorpNum, KeyType, mgtKey, DocItemCode, DocMgtKey); code = response.code.ToString(); message = response.message; } catch (PopbillException ex) { code = ex.code.ToString(); message = ex.Message; } }
protected void Page_Load(object sender, EventArgs e) { /** * 파트너가 세금계산서 관리 목적으로 할당하는 문서번호의 사용여부를 확인합니다. * - 이미 사용 중인 문서번호는 중복 사용이 불가하고, 세금계산서가 삭제된 경우에만 문서번호의 재사용이 가능합니다. * - https://docs.popbill.com/taxinvoice/dotnet/api#CheckMgtKeyInUse */ // 팝빌회원 사업자번호, '-' 제외 10자리 String testCorpNum = "1234567890"; // 조회할 세금계산서 문서번호, 최대 24자리, 영문, 숫자 '-', '_'를 조합하여 사업자별로 중복되지 않도록 구성 String mgtKey = "20220525-001"; // 세금계산서 발행유형, SELL-매출, BUY-매입, TRUSTEE-위수탁 MgtKeyType KeyType = MgtKeyType.SELL; try { bool InUse = Global.taxinvoiceService.CheckMgtKeyInUse(testCorpNum, KeyType, mgtKey); message = InUse ? "사용중" : "미사용중"; } catch (PopbillException ex) { code = ex.code.ToString(); message = ex.Message; } }
protected void Page_Load(object sender, EventArgs e) { /** * 삭제 가능한 상태의 세금계산서를 삭제합니다. * - ※ 삭제 가능한 상태: "임시저장", "발행취소", "역발행거부", "역발행취소", "전송실패" * - 삭제처리된 세금계산서의 문서번호는 재사용이 가능합니다. * - https://docs.popbill.com/taxinvoice/dotnet/api#Delete */ // 팝빌회원 사업자번호, '-' 제외 10자리 String testCorpNum = "1234567890"; // 세금계산서 발행유형, SELL-매출, BUY-매입, TRUSTEE-위수탁 MgtKeyType KeyType = MgtKeyType.SELL; // 세금계산서 문서번호 String mgtKey = "20220525-001"; try { Response response = Global.taxinvoiceService.Delete(testCorpNum, KeyType, mgtKey); code = response.code.ToString(); message = response.message; } catch (PopbillException ex) { code = ex.code.ToString(); message = ex.Message; } }
protected void Page_Load(object sender, EventArgs e) { /** * 다수건의 세금계산서 상태 및 요약 정보를 확인합니다. (1회 호출 시 최대 1,000건 확인 가능) * - https://docs.popbill.com/taxinvoice/dotnet/api#GetInfos */ // 팝빌회원 사업자번호, '-' 제외 10자리 String testCorpNum = "1234567890"; // 세금계산서 발행유형, SELL-매출, BUY-매입, TRUSTEE-위수탁 MgtKeyType KeyType = MgtKeyType.SELL; List <string> MgtKeyList = new List <string>(); // 조회할 세금계산서 문서번호 배열, (최대 1000건) MgtKeyList.Add("20220525-001"); MgtKeyList.Add("20220525-002"); try { taxinvoiceInfoList = Global.taxinvoiceService.GetInfos(testCorpNum, KeyType, MgtKeyList); } catch (PopbillException ex) { code = ex.code.ToString(); message = ex.Message; } }
public TISearchResult Search(String CorpNum, MgtKeyType KeyType, String DType, String SDate, String EDate, String[] State, String[] Type, String[] TaxType, String[] IssueType, bool?LateOnly, String TaxRegIDYN, String TaxRegIDType, String TaxRegID, String QString, String Order, int Page, int PerPage, String InterOPYN, String UserID) { if (String.IsNullOrEmpty(DType)) { throw new PopbillException(-99999999, "검색일자 유형이 입력되지 않았습니다."); } if (String.IsNullOrEmpty(SDate)) { throw new PopbillException(-99999999, "시작일자가 입력되지 않았습니다."); } if (String.IsNullOrEmpty(EDate)) { throw new PopbillException(-99999999, "종료일자가 입력되지 않았습니다."); } String uri = "/Taxinvoice/" + KeyType; uri += "?DType=" + DType; uri += "&SDate=" + SDate; uri += "&EDate=" + EDate; uri += "&State=" + String.Join(",", State); uri += "&Type=" + String.Join(",", Type); uri += "&TaxType=" + String.Join(",", TaxType); if (IssueType != null) { uri += "&IssueType=" + String.Join(",", IssueType); } if (LateOnly != null) { if ((bool)LateOnly) { uri += "&LateOnly=1"; } else { uri += "&LateOnly=0"; } } if (TaxRegIDYN != "") { uri += "&TaxRegIDYN=" + TaxRegIDYN; } uri += "&InterOPYN=" + InterOPYN; uri += "&TaxRegIDType=" + TaxRegIDType; uri += "&TaxRegID=" + TaxRegID; uri += "&QString=" + QString; uri += "&Order=" + Order; uri += "&Page=" + Page.ToString(); uri += "&PerPage=" + PerPage.ToString(); return(httpget <TISearchResult>(uri, CorpNum, UserID)); }
public Response Delete(String CorpNum, MgtKeyType KeyType, String MgtKey, String UserID) { if (String.IsNullOrEmpty(MgtKey)) { throw new PopbillException(-99999999, "관리번호가 입력되지 않았습니다."); } return(httppost <Response>("/Taxinvoice/" + KeyType.ToString() + "/" + MgtKey, CorpNum, UserID, null, "DELETE")); }
//상세정보 확인 (XML) public TaxinvoiceXML GetXML(string CorpNum, MgtKeyType KeyType, string MgtKey, string UserID = null) { if (string.IsNullOrEmpty(MgtKey)) { throw new PopbillException(-99999999, "문서번호가 입력되지 않았습니다."); } return(httpget <TaxinvoiceXML>("/Taxinvoice/" + KeyType.ToString() + "/" + MgtKey + "?XML", CorpNum, UserID)); }
public TaxinvoiceInfo GetInfo(String CorpNum, MgtKeyType KeyType, String MgtKey) { if (String.IsNullOrEmpty(MgtKey)) { throw new PopbillException(-99999999, "관리번호가 입력되지 않았습니다."); } return(httpget <TaxinvoiceInfo>("/Taxinvoice/" + KeyType.ToString() + "/" + MgtKey, CorpNum, null)); }
public List <AttachedFile> GetFiles(String CorpNum, MgtKeyType KeyType, String MgtKey) { if (String.IsNullOrEmpty(MgtKey)) { throw new PopbillException(-99999999, "관리번호가 입력되지 않았습니다."); } return(httpget <List <AttachedFile> >("/Taxinvoice/" + KeyType.ToString() + "/" + MgtKey + "/Files", CorpNum, null)); }
//국세청 즉시 전송 public Response SendToNTS(string CorpNum, MgtKeyType KeyType, string MgtKey, string UserID = null) { if (string.IsNullOrEmpty(MgtKey)) { throw new PopbillException(-99999999, "문서번호가 입력되지 않았습니다."); } return(httppost <Response>("/Taxinvoice/" + KeyType.ToString() + "/" + MgtKey, CorpNum, null, "NTS", null, UserID)); }
public List <TaxinvoiceInfo> GetInfos(String CorpNum, MgtKeyType KeyType, List <String> MgtKeyList) { if (MgtKeyList == null || MgtKeyList.Count == 0) { throw new PopbillException(-99999999, "관리번호 목록이 입력되지 않았습니다."); } String PostData = toJsonString(MgtKeyList); return(httppost <List <TaxinvoiceInfo> >("/Taxinvoice/" + KeyType.ToString(), CorpNum, null, PostData, null)); }
public String GetEPrintURL(String CorpNum, MgtKeyType KeyType, String MgtKey, String UserID) { if (String.IsNullOrEmpty(MgtKey)) { throw new PopbillException(-99999999, "관리번호가 입력되지 않았습니다."); } URLResponse response = httpget <URLResponse>("/Taxinvoice/" + KeyType.ToString() + "/" + MgtKey + "?TG=EPRINT", CorpNum, UserID); return(response.url); }
public Response AssignMgtKey(String CorpNum, MgtKeyType KeyType, String ItemKey, String MgtKey, String UserID) { if (String.IsNullOrEmpty(MgtKey)) { throw new PopbillException(-99999999, "할당할 문서관리번호가 입력되지 않았습니다."); } String PostData = "MgtKey=" + MgtKey; return(httppost <Response>("/Taxinvoice/" + ItemKey + "/" + KeyType, CorpNum, UserID, PostData, null, "application/x-www-form-urlencoded; charset=utf-8")); }
//세금계산서 메일링크 URL public string GetMailURL(string CorpNum, MgtKeyType KeyType, string MgtKey, string UserID) { if (string.IsNullOrEmpty(MgtKey)) { throw new PopbillException(-99999999, "문서번호가 입력되지 않았습니다."); } URLResponse response = httpget <URLResponse>("/Taxinvoice/" + KeyType.ToString() + "/" + MgtKey + "?TG=MAIL", CorpNum, UserID); return(response.url); }
//전자명세서 첨부해제 public Response DetachStatement(string CorpNum, MgtKeyType KeyType, string MgtKey, int DocItemCode, string DocMgtKey, string UserID = null) { string uri = "/Taxinvoice/" + KeyType + "/" + MgtKey + "/DetachStmt"; DocRequest request = new DocRequest { ItemCode = DocItemCode, MgtKey = DocMgtKey }; string PostData = toJsonString(request); return(httppost <Response>(uri, CorpNum, PostData, null, null, UserID)); }
public String GetMassPrintURL(String CorpNum, MgtKeyType KeyType, List <String> MgtKeyList, String UserID) { if (MgtKeyList == null || MgtKeyList.Count == 0) { throw new PopbillException(-99999999, "관리번호 목록이 입력되지 않았습니다."); } String PostData = toJsonString(MgtKeyList); URLResponse response = httppost <URLResponse>("/Taxinvoice/" + KeyType.ToString() + "?Print", CorpNum, UserID, PostData, null); return(response.url); }
public Response DetachStatement(String CorpNum, MgtKeyType KeyType, String MgtKey, int DocItemCode, String DocMgtKey) { String uri = "/Taxinvoice/" + KeyType + "/" + MgtKey + "/DetachStmt"; DocRequest request = new DocRequest(); request.ItemCode = DocItemCode; request.MgtKey = DocMgtKey; String PostData = toJsonString(request); return(httppost <Response>(uri, CorpNum, null, PostData, null)); }
//첨부파일 삭제 public Response DeleteFile(string CorpNum, MgtKeyType KeyType, string MgtKey, string FileID, string UserID = null) { if (string.IsNullOrEmpty(MgtKey)) { throw new PopbillException(-99999999, "문서번호가 입력되지 않았습니다."); } if (string.IsNullOrEmpty(FileID)) { throw new PopbillException(-99999999, "파일 아이디가 입력되지 않았습니다."); } return(httppost <Response>("/Taxinvoice/" + KeyType.ToString() + "/" + MgtKey + "/Files/" + FileID, CorpNum, null, "DELETE", null, UserID)); }