// 센드빌 API 에러코드 참조표 // 출처: https://www.sendbill.co.kr/SendbillAPI_Error_Code.xls export const ERROR_CODES: Record = { // SBKEY 관련 "-10001": "SBKEY Header 데이터가 없습니다.", "-10002": "SBKEY의 데이터가 옳바르지 않습니다.", "-10003": "폐기 처리된 SBKEY 입니다.", "-10004": "SBKEY의 사용 기간이 만료되었습니다.", // 인증서 관련 "-11001": "실패", "-11002": "등록된 인증서가 없습니다.", "-11003": "기타오류, 고객센터로 문의 바랍니다.", "-11004": "파일 업로드 중 오류가 발생하였습니다.", "-11101": "올바른 파일을 선택해 주세요.", "-11102": "[venderno] 필수 항목입니다.", "-11103": "[venderno] 최대 길이는 10 bytes 입니다.", "-11104": "[venderno] 숫자만 입력 가능합니다.", "-11105": "[venderno] 올바른 형태의 사업자번호가 아닙니다.", "-11106": "[password] 필수 항목입니다.", "-11107": "[certderfile] 필수 항목입니다.", "-11108": "[certkeyfile] 필수 항목입니다.", "-11401": "등록된 인증서의 발급 정보와 사업자 번호가 일치하지 않습니다.", "-11402": "인증서의 발급 정보와 인증서 비밀번호가 일치하지 않습니다.", "-11403": "인증서의 사용기간이 만료되었습니다.", "-11509": "등록된 인증서의 데이터가 옳바르지 않습니다. 인증서 신규 등록 후 다시 시도해주세요.", "-11701": "URL 유효 시간이 만료되었습니다.", "-11702": "token 오류, token 재발행 후 재시도해주세요.", "-11703": "올바르지 않은 토큰입니다.", // 계산서 발행 관련 "-12001": "실패", "-12002": "조회된 데이터가 없습니다.", "-12003": "기타오류, 고객센터로 문의 바랍니다.", "-66666": "/api/agent/document/registDirect 긴급점검중 입니다.", "-12501": "충전된 요금이 부족합니다.", "-12502": "우대권 잔여 건 수 및 충전된 요금이 부족합니다.", "-12503": "[대납] 충전된 요금이 부족합니다.", "-12504": "[대납] 우대권 잔여 건 수 및 충전된 요금이 부족합니다.", "-12631": "[A] 공급자 사업자번호에 해당하는 회원 ID가 없습니다.", "-12633": "[A] 공급받는자 사업자번호에 해당하는 회원 ID가 없습니다.", "-12641": "[A] 관리자가 마감하여 전송할 수 없습니다.", "-12651": "[A] 품목의 합계 금액이 총 금액과 맞지 않습니다.", "-12654": "[A] 과세기간(반기)이 지난 세금계산서는 발행이 불가능 합니다.", "-12701": "발행자의 인증서가 등록되어 있지 않습니다.", "-12703": "발행자의 등록된 인증서 사용기간이 만료되었습니다.", "-12101": "[Billseq] 데이터가 중복되었습니다.", "-12102": "[Item(Array)] 필수 항목입니다.", // 회원 등록 관련 "-13001": "실패", "-13002": "조회된 데이터가 없습니다.", "-13003": "기타오류, 고객센터로 문의 바랍니다.", "-13101": "이미 등록된 아이디 입니다.", // 계산서 관리 관련 "-14001": "실패", "-14002": "조회된 데이터가 없습니다.", "-14003": "기타오류, 고객센터로 문의 바랍니다.", "-14101": "[Orderseq] 데이터 중복 입니다.", "-14102": "[Billseq] 필수 항목 입니다.", "-14104": "[cmd_div] 필수 항목 입니다.", "-14110": "[cmd_div] 올바른 코드 값을 입력 해주세요. [ 6, E ]", // 계산서 상태조회 관련 "-15001": "실패", "-15002": "조회된 데이터가 없습니다.", "-15101": "[Billseq] 필수 항목 입니다.", // 홈택스 연동 관련 "-18001": "실패", "-18002": "조회된 데이터가 없습니다.", "-18004": "홈택스에서 조회된 데이터가 없습니다.", "-18101": "요청 사업자번호의 인증서가 등록되어 있지 않습니다.", "-18403": "센드빌에 등록된 홈택스 계정 또는 인증서 정보가 없습니다.", "-18401": "홈택스연동 사용 사업자가 아닙니다. 고객센터에 문의 바랍니다.", }; export function getErrorMessage(code: number | string): string { const key = String(Math.round(Number(code))); return ERROR_CODES[key] ?? `알 수 없는 오류 코드: ${code}`; } // 코드표 export const CODE_TABLES = { billtype: { "10": "세금계산서", "11": "비회원 세금계산서", "20": "(면세)계산서", "21": "비회원(면세)계산서", "30": "거래명세서", "31": "비회원 거래명세서", "40": "위수탁 세금계산서", "41": "비회원 위수탁 세금계산서", "50": "위수탁 (면세)계산서", "51": "비회원 위수탁 (면세)계산서", "61": "개인 매출 세금계산서", "62": "개인 매출 계산서", "Y1": "외부 매출 세금계산서", "Z1": "외부 매입 세금계산서", }, cmd_div: { "6": "삭제요청", "E": "EMAIL 전송", }, taxrate: { "0": "과세율", "1": "영세율", "2": "면세율", "3": "매입세액불공제", "4": "의제매입", }, report_stat: { "N": "미신고", "A": "접수대기", "B": "접수완료", "R": "신고상태", "F": "신고실패", }, report_amend_cd: { "1": "기재사항 착오/정정", "2": "공급가액 변동", "3": "환입", "4": "계약의 해제", "5": "내국신용장 사후 개설", "6": "착오에 의한 이중발행", }, billstat: { "5": "미전송", "0": "미개봉", "3": "개봉", "1": "승인", "2": "반려", "4": "승인취소", "9": "종이문서저장", "6": "삭제", }, gubun: { "1": "영수", "2": "청구", }, etc01: { "S": "SENDID: 센드빌 ID / RECVID: 센드빌 ID", "I": "SENDID: 센드빌 ID / RECVID: 거래처 ID", "X": "SENDID: 거래처 ID / RECVID: 거래처 ID", }, };