발행/전송
1. RegistIssue - 즉시 발행
POST
https://popbill-test.linkhub.co.kr/Taxinvoice
POST
https://popbill.linkhub.co.kr/Taxinvoice
- 작성된 세금계산서 데이터를 팝빌에 저장과 동시에 발행(전자서명)하여 "발행완료" 상태로 처리합니다. [참고] 팝빌 국세청 전송 정책
-
"발행완료"된 전자세금계산서는 국세청 전송 이전에 [CancelIssue – 발행취소] API로 국세청 신고 대상에서 제외할 수 있습니다.
※ [Register - 임시저장]과 [Issue - 발행] API 기능을 한 번의 프로세스로 처리합니다.
-
세금계산서 발행을 위해서 공급자의 인증서가 팝빌 인증서버에 사전등록 되어야 합니다.
※ 위수탁의 경우, 수탁자의 인증서 등록이 필요합니다.
- 세금계산서 발행시 포인트가 과금되며, 공급받는자에게 발행 메일이 발송됩니다.
Request
요청 헤더
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | 인증 토큰 | |
| Content-Type | Y | 요청 본문 형식 application/json |
|
| Accept-Language | N |
응답 언어 설정
ko-KR: 기본값
en-US
|
|
| Accept-Encoding | N | 응답 압축 방식 gzip |
|
| X-HTTP-Method-Override | Y | 요청 메서드 재정의 ISSUE |
|
| X-PB-UserID | N | 팝빌회원 아이디 |
요청 본문
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| issueType | string | 3 | Y |
발행형태 (택 1)
정발행
위수탁
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| taxType | string | 2 | Y |
과세형태 (택 1)
과세
영세
면세
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| chargeDirection | string | 3 | Y |
과금방향
정과금공급자 과금
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| serialNum | string | 30 | N | 일련번호 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| kwon | number | 4 | N |
책번호 "권" 항목
정수만 입력 가능
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ho | number | 4 | N |
책번호 "호" 항목
정수만 입력 가능
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| writeDate | string | 8 | Y |
작성일자
형식 : yyyyMMdd
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| purposeType | string | 8 | Y |
영수/청구
영수
청구
없음
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| supplyCostTotal | string | 18 | Y |
공급가액 합계
정수만 입력 가능(소수점 자동 절사)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| taxTotal | string | 18 | Y |
세액 합계
정수만 입력 가능(소수점 자동 절사)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| totalAmount | string | 18 | Y |
합계 합계
정수만 입력 가능(소수점 자동 절사)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| cash | string | 18 | Y | 현금 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| chkBill | string | 18 | Y | 수표 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| credit | string | 18 | Y | 외상 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| note | string | 18 | Y | 어음 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| remark1 | string | 150 | 조건부 | 비고1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| remark2 | string | 150 | N | 비고2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| remark3 | string | 150 | N | 비고3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerMgtKey | string | 24 | 조건부 |
공급자 문서번호
문서 관리를 위해 파트너가 할당하는 고유 식별번호
영문 대소문자, 숫자, 특수문자('-', '_')만 입력 가능 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerCorpNum | string | 10 | Y | 공급자 사업자번호 ('-' 제외) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerTaxRegID | string | 4 | N |
공급자 종사업장 식별번호
종사업장 식별번호는 4자리 숫자로만 구성
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerCorpName | string | 200 | Y | 공급자 상호 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerCEOName | string | 100 | Y | 공급자 대표자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerAddr | string | 300 | N | 공급자 주소 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerBizType | string | 100 | N | 공급자 업태 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerBizClass | string | 100 | N | 공급자 종목 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerContactName | string | 100 | N | 공급자 담당자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerDeptName | string | 100 | N | 공급자 담당자 부서명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerTEL | string | 20 | N | 공급자 담당자 연락처 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerHP | string | 20 | N | 공급자 담당자 휴대폰 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerEmail | string | 100 | N | 공급자 담당자 메일 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerSMSSendYN | boolean | - | N |
공급자 알림문자 전송 여부
true전송
false미전송 : 기본값
수신자 : 공급받는자 휴대폰번호 {invoiceeHP1}
문자 전송 포인트가 차감(단, 전송실패 건은 환불) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeMgtKey | string | 24 | 조건부 |
공급받는자 문서번호
문서 관리를 위해 파트너가 할당하는 고유 식별번호
영문 대소문자, 숫자, 특수문자('-', '_')만 입력 가능 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeType | string | - | N |
공급받는자 유형 (택 1)
사업자
개인
외국인
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeCorpNum | string | 13 | Y |
공급받는자 등록번호 ('-' 제외)
- {invoiceeType}="사업자" 경우 사업자번호 - {invoiceeType}="개인" 경우 주민등록번호 - {invoiceeType}="외국인" 경우 "9999999999999" |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeTaxRegID | string | 4 | N |
공급받는자 종사업장 식별번호
종사업장 식별번호는 4자리 숫자로만 구성
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeCorpName | string | 200 | Y | 공급받는자 상호 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeCEOName | string | 100 | Y | 공급받는자 대표자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeAddr | string | 300 | N | 공급받는자 주소 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeBizType | string | 100 | N | 공급받는자 업태 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeBizClass | string | 100 | N | 공급받는자 종목 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeContactName1 | string | 100 | N | 공급받는자 담당자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeDeptName1 | string | 100 | N | 공급받는자 담당자 부서명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeTEL1 | string | 20 | N | 공급받는자 담당자 연락처 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeHP1 | string | 20 | N | 공급받는자 담당자 휴대폰 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeEmail1 | string | 100 | N | 공급받는자 담당자 메일 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeSMSSendYN | boolean | - | N |
공급받는자 알림문자 전송 여부
true전송
false미전송 : 기본값
수신자 : 공급자 휴대폰번호 {invoicerHP}
문자 전송 포인트가 차감(단, 전송실패 건은 환불) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeMgtKey | string | 24 | 조건부 |
수탁자 문서번호
문서 관리를 위해 파트너가 할당하는 고유 식별번호
영문 대소문자, 숫자, 특수문자('-', '_')만 입력 가능 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeCorpNum | string | 10 | 조건부 | 수탁자 사업자번호 ('-' 제외) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeTaxRegID | string | 4 | N |
수탁자 종사업장 식별번호
종사업장 식별번호는 4자리 숫자로만 구성
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeCorpName | string | 200 | 조건부 | 수탁자 상호 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeCEOName | string | 100 | 조건부 | 수탁자 대표자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeAddr | string | 300 | N | 수탁자 주소 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeBizType | string | 100 | N | 수탁자 업태 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeBizClass | string | 100 | N | 수탁자 종목 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeContactName | string | 100 | N | 수탁자 담당자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeDeptName | string | 100 | N | 수탁자 담당자 부서명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeTEL | string | 20 | N | 수탁자 담당자 연락처 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeHP | string | 20 | N | 수탁자 담당자 휴대폰 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeEmail | string | 100 | N | 수탁자 담당자 메일 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeSMSSendYN | boolean | - | N |
수탁자 알림문자 전송 여부
true전송
false미전송 : 기본값
수신자 : 공급받는자 휴대폰번호 {invoiceeHP1}
문자 전송 포인트가 차감(단, 전송실패 건은 환불) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| modifyCode | number | 1 | 조건부 |
수정 사유코드
수정세금계산서 작성시 필수
[참고] 수정세금계산서
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| orgNTSConfirmNum | string | 24 | 조건부 |
당초 국세청승인번호
수정세금계산서 작성시 필수
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| businessLicenseYN | boolean | - | N |
팝빌에 등록된 사업자등록증 첨부 여부
true첨부
false미첨부 : 기본값
팝빌 사이트 또는 [GetSealURL - 인감 및 첨부문서 등록 팝업 URL]을 이용하여 등록
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| bankBookYN | boolean | - | N |
팝빌에 등록된 통장사본 첨부 여부
true첨부
false미첨부 : 기본값
팝빌 사이트 또는 [GetSealURL - 인감 및 첨부문서 등록 팝업 URL]을 이용하여 등록
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| detailList | array | - | N |
품목 상세정보
최대 : 99개
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| addContactList | array | - | N |
공급받는자 추가담당자 정보
여러 담당자에게 발행 안내 메일을 보내야할 경우 사용
최대 : 5명 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| memo | string | 200 | N | 세금계산서 상태 이력을 관리하기 위한 메모 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| emailSubject | string | 300 | N |
세금계산서 발행 안내메일 제목
기본값 : 팝빌에서 설정한 안내메일 제목
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| writeSpecification | boolean | - | N |
거래명세서 동시작성 여부
true사용
false미사용 : 기본값
공급받는자 유형 {invoiceeType}="사업자" 경우만 가능
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| forceIssue | boolean | - | N |
지연발행 가능여부
true가능
false불가능 : 기본값
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| dealInvoiceKey | string | 24 | N |
거래명세서 문서번호
기본값 : 세금계산서 문서번호와 동일하게 할당
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
요청 예시
curl --request POST \
--url 'https://{domain}/Taxinvoice' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--header 'X-HTTP-Method-Override: ISSUE' \
--data '{
"issueType": "정발행",
"taxType": "과세",
"chargeDirection": "정과금",
"writeDate": "20251117",
"purposeType": "영수",
"supplyCostTotal": "10000",
"taxTotal": "1000",
"totalAmount": "11000",
"invoicerMgtKey": "TEST202511170900000",
"invoicerCorpNum": "1234567890",
"invoicerCorpName": "공급자 상호",
"invoicerCEOName": "공급자 대표자 성명",
"invoiceeType": "사업자",
"invoiceeCorpNum": "1234567890",
"invoiceeCorpName": "공급받는자 상호",
"invoiceeCEOName": "공급받는자 대표자 성명",
"detailList": [
{
"serialNum": 1,
"purchaseDT": "20251117",
"itemName": "품명",
"spec": "규격",
"qty": "1",
"unitCost": "10000",
"supplyCost": "10000",
"tax": "1000",
"remark": "비고"
}
],
"addContactList": [
{
"serialNum": 1,
"contactName": "담당자 성명",
"email": "test@test.com"
}
]
}'
Response
응답 본문
| 순번 | 변수명 | 타입 | 길이 | 설명 |
|---|---|---|---|---|
| code | number | - |
API 처리에 대한 응답코드
1성공
|
|
| message | string | - | API 처리에 대한 응답메시지 | |
| ntsConfirmNum | string | 24 |
국세청승인번호
전자세금계산서 발행 시점에 팝빌에서 자동으로 할당
|
|
| issueDT | string | 14 |
발행일시
형식 : yyyyMMddHHmmss
|
응답 예시
{
"code": 1,
"message": "발행 완료",
"ntsConfirmNum": "202510168888888800000023",
"issueDT": "20251016151123"
}
2. BulkSubmit - 초대량 발행 접수
POST
https://popbill-test.linkhub.co.kr/Taxinvoice
POST
https://popbill.linkhub.co.kr/Taxinvoice
- 최대 100건의 세금계산서 발행을 한번의 요청으로 접수합니다.
-
세금계산서 발행을 위해서 공급자의 인증서가 팝빌 인증서버에 사전등록 되어야 합니다.
※ 위수탁의 경우, 수탁자의 인증서 등록이 필요합니다.
- 세금계산서 발행시 포인트가 과금되며, 공급받는자에게 발행 메일이 발송됩니다.
Request
요청 헤더
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | 인증 토큰 | |
| Content-Type | Y | 요청 본문 형식 application/json |
|
| Accept-Language | N |
응답 언어 설정
ko-KR: 기본값
en-US
|
|
| Accept-Encoding | N | 응답 압축 방식 gzip |
|
| X-HTTP-Method-Override | Y | 요청 메서드 재정의 BULKISSUE |
|
| X-PB-Message-Digest | Y |
Message Digest
요청 본문의 무결성을 검증하는데 사용
|
|
| X-PB-Submit-ID | Y |
제출아이디
영문, 숫자, '-' 조합으로 최대 36자 길이로 구성
|
|
| X-PB-UserID | N | 팝빌회원 아이디 |
요청 본문
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| invoices | array | - | Y |
전자세금계산서 목록
최대 : 100건
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| forceIssue | boolean | - | N |
지연발행 가능여부
true가능
false불가능 : 기본값
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
요청 예시
curl --request POST \
--url 'https://{domain}/Taxinvoice' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--header 'X-HTTP-Method-Override: BULKISSUE' \
--header 'X-PB-Message-Digest: {MessageDigest}' \
--header 'X-PB-Submit-ID: {submitID}' \
--data '{
"invoices": [
{
"issueType": "정발행",
"taxType": "과세",
"chargeDirection": "정과금",
"writeDate": "20251016",
"purposeType": "영수",
"supplyCostTotal": "10000",
"taxTotal": "1000",
"totalAmount": "11000",
"invoicerMgtKey": "TEST202510281800000",
"invoicerCorpNum": "1234567890",
"invoicerCorpName": "공급자 상호",
"invoicerCEOName": "공급자 대표자 성명",
"invoiceeType": "사업자",
"invoiceeCorpNum": "1234567890",
"invoiceeCorpName": "공급받는자 상호",
"invoiceeCEOName": "공급받는자 대표자 성명",
"detailList": [
{
"serialNum": 1,
"purchaseDT": "20251117",
"itemName": "품명",
"spec": "규격",
"qty": "1",
"unitCost": "10000",
"supplyCost": "10000",
"tax": "1000",
"remark": "비고"
}
],
"addContactList": [
{
"serialNum": 1,
"contactName": "담당자 성명",
"email": "test@test.com"
}
]
}
]
}'
Response
응답 본문
| 순번 | 변수명 | 타입 | 길이 | 설명 |
|---|---|---|---|---|
| code | number | - |
API 처리에 대한 응답코드
1성공
|
|
| message | string | - | API 처리에 대한 응답메시지 | |
| receiptID | string | 36 |
접수아이디
접수 시점에 팝빌에서 자동으로 할당
|
응답 예시
{
"code": 1,
"message": "접수 완료",
"receiptID": "0251023-cf84677932f44e3baa2541160366"
}
3. GetBulkResult - 초대량 접수결과 확인
GET
https://popbill-test.linkhub.co.kr/Taxinvoice/BULK/{submitID}/State
GET
https://popbill.linkhub.co.kr/Taxinvoice/BULK/{submitID}/State
- 접수시 기재한 SubmitID를 사용하여 세금계산서 접수결과를 확인합니다.
- txState(접수상태)가 2(완료)일 때, 개별 세금계산서 발행결과(성공/실패) 확인이 가능합니다.
Request
요청 헤더
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | 인증 토큰 | |
| Accept-Language | N |
응답 언어 설정
ko-KR: 기본값
en-US
|
|
| Accept-Encoding | N | 응답 압축 방식 gzip |
|
| X-PB-UserID | N | 팝빌회원 아이디 |
Path 파라미터
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| submitID | string | 36 | Y | 파트너가 할당한 제출아이디 |
요청 예시
curl --request GET \
--url 'https://{domain}/Taxinvoice/BULK/{submitID}/State' \
--header 'Authorization: Bearer {token}'
Response
응답 본문
| 순번 | 변수명 | 타입 | 길이 | 설명 | |||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| code | number | - |
API 처리에 대한 응답코드
1성공
|
||||||||||||||||||||||||||||||||||||
| message | string | - | API 처리에 대한 응답메시지 | ||||||||||||||||||||||||||||||||||||
| receiptID | string | 36 |
접수아이디
접수 시점에 팝빌에서 자동으로 할당
|
||||||||||||||||||||||||||||||||||||
| submitID | string | 36 | 접수 시점에 고객사에서 할당한 제출아이디 | ||||||||||||||||||||||||||||||||||||
| submitCount | number | - | 세금계산서 접수 건수 | ||||||||||||||||||||||||||||||||||||
| successCount | number | - | 세금계산서 발행 성공 건수 | ||||||||||||||||||||||||||||||||||||
| failCount | number | - | 세금계산서 발행 실패 건수 | ||||||||||||||||||||||||||||||||||||
| txState | number | 1 |
접수상태
0접수
1처리중
2처리완료
|
||||||||||||||||||||||||||||||||||||
| txStartDT | string | 14 |
발행처리 시작일시
형식 : yyyyMMddHHmmss
|
||||||||||||||||||||||||||||||||||||
| txEndDT | string | 14 |
발행처리 완료일시
형식 : yyyyMMddHHmmss
|
||||||||||||||||||||||||||||||||||||
| txResultCode | number | - |
접수 결과코드
- 성공 : 1 - 실패 : 음의 정수 8자리 숫자값 [참고] 오류코드 |
||||||||||||||||||||||||||||||||||||
| issueResult | array | - |
발행결과
최대 : 100건
|
||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||
| receiptDT | string | 14 |
접수일시
형식 : yyyyMMddHHmmss
|
||||||||||||||||||||||||||||||||||||
응답 예시
{
"code": 1,
"message": "확인 완료",
"receiptID": "0251023-cf84677932f44e3baa2541160366",
"submitID": "20210930-01",
"submitCount": 1,
"successCount": 1,
"failCount": 0,
"txState": 2,
"txStartDT": "20251023113522",
"txEndDT": "20251023113527",
"txResultCode": 1,
"issueResult": [
{
"invoicerMgtKey": "20251023-02-2",
"code": 1,
"ntsconfirmNum": "20251023888888880000000e",
"issueDT": "20251023114550"
},
],
"receiptDT": "20251023113521"
}
4. Register - 임시저장
POST
https://popbill-test.linkhub.co.kr/Taxinvoice
POST
https://popbill.linkhub.co.kr/Taxinvoice
- 작성된 세금계산서 데이터를 팝빌에 저장합니다.
- "임시저장" 상태의 세금계산서는 [Issue - 발행] API를 호출하여 "발행완료" 처리한 경우에만 국세청으로 전송됩니다.
- 세금계산서 파일첨부 기능을 구현하는 경우, [Register – 임시저장] → [AttachFile – 파일첨부] → [Issue – 발행] API를 차례로 호출합니다.
-
역발행 세금계산서를 저장하는 경우, chargeDirection 값을 통해 과금 주체를 지정할 수 있습니다.
※ 정과금: 공급자 과금, 역과금: 공급받는자 과금
- 임시저장된 세금계산서는 팝빌 사이트 '임시문서함'에서 확인 가능합니다.
Request
요청 헤더
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | 인증 토큰 | |
| Content-Type | Y | 요청 본문 형식 application/json |
|
| Accept-Language | N |
응답 언어 설정
ko-KR: 기본값
en-US
|
|
| Accept-Encoding | N | 응답 압축 방식 gzip |
|
| X-PB-UserID | N | 팝빌회원 아이디 |
요청 본문
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| issueType | string | 3 | Y |
발행형태 (택 1)
정발행
역발행
위수탁
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| taxType | string | 2 | Y |
과세형태 (택 1)
과세
영세
면세
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| chargeDirection | string | 3 | Y |
과금방향 (택 1)
정과금 공급자 과금
역과금 공급받는자 과금
- {issueType}="정발행", "역발행", "위수탁" 경우 정과금 가능- {issueType}="역발행" 경우 역과금 가능 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| serialNum | string | 30 | N | 일련번호 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| kwon | number | 4 | N |
책번호 "권" 항목
정수만 입력 가능
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ho | number | 4 | N |
책번호 "호" 항목
정수만 입력 가능
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| writeDate | string | 8 | Y |
작성일자
형식 : yyyyMMdd
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| purposeType | string | 8 | Y |
영수/청구
영수
청구
없음
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| supplyCostTotal | string | 18 | Y |
공급가액 합계
정수만 입력 가능(소수점 자동 절사)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| taxTotal | string | 18 | Y |
세액 합계
정수만 입력 가능(소수점 자동 절사)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| totalAmount | string | 18 | Y |
합계 합계
정수만 입력 가능(소수점 자동 절사)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| cash | string | 18 | Y | 현금 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| chkBill | string | 18 | Y | 수표 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| credit | string | 18 | Y | 외상 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| note | string | 18 | Y | 어음 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| remark1 | string | 150 | 조건부 | 비고1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| remark2 | string | 150 | N | 비고2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| remark3 | string | 150 | N | 비고3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerMgtKey | string | 24 | 조건부 |
공급자 문서번호
문서 관리를 위해 파트너가 할당하는 고유 식별번호
영문 대소문자, 숫자, 특수문자('-', '_')만 입력 가능 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerCorpNum | string | 10 | Y | 공급자 사업자번호 ('-' 제외) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerTaxRegID | string | 4 | N |
공급자 종사업장 식별번호
종사업장 식별번호는 4자리 숫자로만 구성
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerCorpName | string | 200 | Y | 공급자 상호 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerCEOName | string | 100 | Y | 공급자 대표자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerAddr | string | 300 | N | 공급자 주소 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerBizType | string | 100 | N | 공급자 업태 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerBizClass | string | 100 | N | 공급자 종목 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerContactName | string | 100 | N | 공급자 담당자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerDeptName | string | 100 | N | 공급자 담당자 부서명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerTEL | string | 20 | N | 공급자 담당자 연락처 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerHP | string | 20 | N | 공급자 담당자 휴대폰 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerEmail | string | 100 | N | 공급자 담당자 메일 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerSMSSendYN | boolean | - | N |
공급자 알림문자 전송 여부
true전송
false미전송 : 기본값
수신자 : 공급받는자 휴대폰번호 {invoiceeHP1}
문자 전송 포인트가 차감(단, 전송실패 건은 환불) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeMgtKey | string | 24 | 조건부 |
공급받는자 문서번호
문서 관리를 위해 파트너가 할당하는 고유 식별번호
영문 대소문자, 숫자, 특수문자('-', '_')만 입력 가능 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeType | string | - | N |
공급받는자 유형 (택 1)
사업자
개인
외국인
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeCorpNum | string | 13 | Y |
공급받는자 등록번호 ('-' 제외)
- {invoiceeType}="사업자" 경우 사업자번호 - {invoiceeType}="개인" 경우 주민등록번호 - {invoiceeType}="외국인" 경우 "9999999999999" |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeTaxRegID | string | 4 | N |
공급받는자 종사업장 식별번호
종사업장 식별번호는 4자리 숫자로만 구성
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeCorpName | string | 200 | Y | 공급받는자 상호 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeCEOName | string | 100 | Y | 공급받는자 대표자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeAddr | string | 300 | N | 공급받는자 주소 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeBizType | string | 100 | N | 공급받는자 업태 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeBizClass | string | 100 | N | 공급받는자 종목 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeContactName1 | string | 100 | N | 공급받는자 담당자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeDeptName1 | string | 100 | N | 공급받는자 담당자 부서명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeTEL1 | string | 20 | N | 공급받는자 담당자 연락처 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeHP1 | string | 20 | N | 공급받는자 담당자 휴대폰 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeEmail1 | string | 100 | N | 공급받는자 담당자 메일 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeSMSSendYN | boolean | - | N |
공급받는자 알림문자 전송 여부
true전송
false미전송 : 기본값
수신자 : 공급자 휴대폰번호 {invoicerHP}
문자 전송 포인트가 차감(단, 전송실패 건은 환불) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeMgtKey | string | 24 | 조건부 |
수탁자 문서번호
문서 관리를 위해 파트너가 할당하는 고유 식별번호
영문 대소문자, 숫자, 특수문자('-', '_')만 입력 가능 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeCorpNum | string | 10 | 조건부 | 수탁자 사업자번호 ('-' 제외) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeTaxRegID | string | 4 | N |
수탁자 종사업장 식별번호
종사업장 식별번호는 4자리 숫자로만 구성
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeCorpName | string | 200 | 조건부 | 수탁자 상호 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeCEOName | string | 100 | 조건부 | 수탁자 대표자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeAddr | string | 300 | N | 수탁자 주소 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeBizType | string | 100 | N | 수탁자 업태 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeBizClass | string | 100 | N | 수탁자 종목 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeContactName | string | 100 | N | 수탁자 담당자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeDeptName | string | 100 | N | 수탁자 담당자 부서명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeTEL | string | 20 | N | 수탁자 담당자 연락처 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeHP | string | 20 | N | 수탁자 담당자 휴대폰 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeEmail | string | 100 | N | 수탁자 담당자 메일 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeSMSSendYN | boolean | - | N |
수탁자 알림문자 전송 여부
true전송
false미전송 : 기본값
수신자 : 공급받는자 휴대폰번호 {invoiceeHP1}
문자 전송 포인트가 차감(단, 전송실패 건은 환불) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| modifyCode | number | 1 | 조건부 |
수정 사유코드
수정세금계산서 작성시 필수
[참고] 수정세금계산서
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| orgNTSConfirmNum | string | 24 | 조건부 |
당초 국세청승인번호
수정세금계산서 작성시 필수
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| businessLicenseYN | boolean | - | N |
팝빌에 등록된 사업자등록증 첨부 여부
true첨부
false미첨부 : 기본값
팝빌 사이트 또는 [GetSealURL - 인감 및 첨부문서 등록 팝업 URL]을 이용하여 등록
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| bankBookYN | boolean | - | N |
팝빌에 등록된 통장사본 첨부 여부
true첨부
false미첨부 : 기본값
팝빌 사이트 또는 [GetSealURL - 인감 및 첨부문서 등록 팝업 URL]을 이용하여 등록
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| detailList | array | - | N |
품목 상세정보
최대 : 99개
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| addContactList | array | - | N |
공급받는자 추가담당자 정보
여러 담당자에게 발행 안내 메일을 보내야할 경우 사용
최대 : 5명 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| memo | string | 200 | N | 세금계산서 상태 이력을 관리하기 위한 메모 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| emailSubject | string | 300 | N |
세금계산서 발행 안내메일 제목
기본값 : 팝빌에서 설정한 안내메일 제목
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| writeSpecification | boolean | - | N |
거래명세서 동시작성 여부
true사용
false미사용 : 기본값
공급받는자 유형 {invoiceeType}="사업자" 경우만 가능
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| forceIssue | boolean | - | N |
지연발행 가능여부
true가능
false불가능 : 기본값
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| dealInvoiceKey | string | 24 | N |
거래명세서 문서번호
기본값 : 세금계산서 문서번호와 동일하게 할당
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
요청 예시
curl --request POST \
--url 'https://{domain}/Taxinvoice' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data '{
"issueType": "정발행",
"taxType": "과세",
"chargeDirection": "정과금",
"writeDate": "20251117",
"purposeType": "영수",
"supplyCostTotal": "10000",
"taxTotal": "1000",
"totalAmount": "11000",
"invoicerMgtKey": "TEST202511170900000",
"invoicerCorpNum": "1234567890",
"invoicerCorpName": "공급자 상호",
"invoicerCEOName": "공급자 대표자 성명",
"invoiceeType": "사업자",
"invoiceeCorpNum": "1234567890",
"invoiceeCorpName": "공급받는자 상호",
"invoiceeCEOName": "공급받는자 대표자 성명",
"detailList": [
{
"serialNum": 1,
"purchaseDT": "20251117",
"itemName": "품명",
"spec": "규격",
"qty": "1",
"unitCost": "10000",
"supplyCost": "10000",
"tax": "1000",
"remark": "비고"
}
],
"addContactList": [
{
"serialNum": 1,
"contactName": "담당자 성명",
"email": "test@test.com"
}
]
}'
Response
응답 본문
| 순번 | 변수명 | 타입 | 길이 | 설명 |
|---|---|---|---|---|
| code | number | - |
API 처리에 대한 응답코드
1성공
|
|
| message | string | - | API 처리에 대한 응답메시지 |
응답 예시
{
"code": 1,
"message": "등록 완료"
}
5. Update - 수정
POST
https://popbill-test.linkhub.co.kr/Taxinvoice/{MgtKeyType}/{MgtKey}
POST
https://popbill.linkhub.co.kr/Taxinvoice/{MgtKeyType}/{MgtKey}
- "임시저장" 상태의 세금계산서를 수정합니다.
Request
요청 헤더
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | 인증 토큰 | |
| Content-Type | Y | 요청 본문 형식 application/json |
|
| Accept-Language | N |
응답 언어 설정
ko-KR: 기본값
en-US
|
|
| Accept-Encoding | N | 응답 압축 방식 gzip |
|
| X-HTTP-Method-Override | Y | 요청 메서드 재정의 PATCH |
|
| X-PB-UserID | N | 팝빌회원 아이디 |
Path 파라미터
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| MgtKeyType | string | - | Y |
문서번호 유형 (택 1)
SELL매출
TRUSTEE위수탁
|
|
| MgtKey | string | 24 | Y | 파트너가 할당한 문서번호 |
요청 본문
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| issueType | string | 3 | Y |
발행형태 (택 1)
정발행
역발행
위수탁
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| taxType | string | 2 | Y |
과세형태 (택 1)
과세
영세
면세
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| chargeDirection | string | 3 | Y |
과금방향 (택 1)
정과금 공급자 과금
역과금 공급받는자 과금
- {issueType}="정발행", "역발행", "위수탁" 경우 정과금 가능- {issueType}="역발행" 경우 역과금 가능 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| serialNum | string | 30 | N | 일련번호 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| kwon | number | 4 | N |
책번호 "권" 항목
정수만 입력 가능
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ho | number | 4 | N |
책번호 "호" 항목
정수만 입력 가능
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| writeDate | string | 8 | Y |
작성일자
형식 : yyyyMMdd
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| purposeType | string | 8 | Y |
영수/청구
영수
청구
없음
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| supplyCostTotal | string | 18 | Y |
공급가액 합계
정수만 입력 가능(소수점 자동 절사)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| taxTotal | string | 18 | Y |
세액 합계
정수만 입력 가능(소수점 자동 절사)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| totalAmount | string | 18 | Y |
합계 합계
정수만 입력 가능(소수점 자동 절사)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| cash | string | 18 | Y | 현금 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| chkBill | string | 18 | Y | 수표 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| credit | string | 18 | Y | 외상 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| note | string | 18 | Y | 어음 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| remark1 | string | 150 | 조건부 | 비고1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| remark2 | string | 150 | N | 비고2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| remark3 | string | 150 | N | 비고3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerMgtKey | string | 24 | 조건부 |
공급자 문서번호
문서 관리를 위해 파트너가 할당하는 고유 식별번호
영문 대소문자, 숫자, 특수문자('-', '_')만 입력 가능 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerCorpNum | string | 10 | Y | 공급자 사업자번호 ('-' 제외) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerTaxRegID | string | 4 | N |
공급자 종사업장 식별번호
종사업장 식별번호는 4자리 숫자로만 구성
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerCorpName | string | 200 | Y | 공급자 상호 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerCEOName | string | 100 | Y | 공급자 대표자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerAddr | string | 300 | N | 공급자 주소 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerBizType | string | 100 | N | 공급자 업태 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerBizClass | string | 100 | N | 공급자 종목 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerContactName | string | 100 | N | 공급자 담당자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerDeptName | string | 100 | N | 공급자 담당자 부서명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerTEL | string | 20 | N | 공급자 담당자 연락처 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerHP | string | 20 | N | 공급자 담당자 휴대폰 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerEmail | string | 100 | N | 공급자 담당자 메일 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerSMSSendYN | boolean | - | N |
공급자 알림문자 전송 여부
true전송
false미전송 : 기본값
수신자 : 공급받는자 휴대폰번호 {invoiceeHP1}
문자 전송 포인트가 차감(단, 전송실패 건은 환불) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeMgtKey | string | 24 | 조건부 |
공급받는자 문서번호
문서 관리를 위해 파트너가 할당하는 고유 식별번호
영문 대소문자, 숫자, 특수문자('-', '_')만 입력 가능 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeType | string | - | N |
공급받는자 유형 (택 1)
사업자
개인
외국인
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeCorpNum | string | 13 | Y |
공급받는자 등록번호 ('-' 제외)
- {invoiceeType}="사업자" 경우 사업자번호 - {invoiceeType}="개인" 경우 주민등록번호 - {invoiceeType}="외국인" 경우 "9999999999999" |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeTaxRegID | string | 4 | N |
공급받는자 종사업장 식별번호
종사업장 식별번호는 4자리 숫자로만 구성
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeCorpName | string | 200 | Y | 공급받는자 상호 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeCEOName | string | 100 | Y | 공급받는자 대표자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeAddr | string | 300 | N | 공급받는자 주소 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeBizType | string | 100 | N | 공급받는자 업태 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeBizClass | string | 100 | N | 공급받는자 종목 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeContactName1 | string | 100 | N | 공급받는자 담당자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeDeptName1 | string | 100 | N | 공급받는자 담당자 부서명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeTEL1 | string | 20 | N | 공급받는자 담당자 연락처 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeHP1 | string | 20 | N | 공급받는자 담당자 휴대폰 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeEmail1 | string | 100 | N | 공급받는자 담당자 메일 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeSMSSendYN | boolean | - | N |
공급받는자 알림문자 전송 여부
true전송
false미전송 : 기본값
수신자 : 공급자 휴대폰번호 {invoicerHP}
문자 전송 포인트가 차감(단, 전송실패 건은 환불) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeMgtKey | string | 24 | 조건부 |
수탁자 문서번호
문서 관리를 위해 파트너가 할당하는 고유 식별번호
영문 대소문자, 숫자, 특수문자('-', '_')만 입력 가능 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeCorpNum | string | 10 | 조건부 | 수탁자 사업자번호 ('-' 제외) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeTaxRegID | string | 4 | N |
수탁자 종사업장 식별번호
종사업장 식별번호는 4자리 숫자로만 구성
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeCorpName | string | 200 | 조건부 | 수탁자 상호 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeCEOName | string | 100 | 조건부 | 수탁자 대표자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeAddr | string | 300 | N | 수탁자 주소 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeBizType | string | 100 | N | 수탁자 업태 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeBizClass | string | 100 | N | 수탁자 종목 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeContactName | string | 100 | N | 수탁자 담당자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeDeptName | string | 100 | N | 수탁자 담당자 부서명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeTEL | string | 20 | N | 수탁자 담당자 연락처 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeHP | string | 20 | N | 수탁자 담당자 휴대폰 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeEmail | string | 100 | N | 수탁자 담당자 메일 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeSMSSendYN | boolean | - | N |
수탁자 알림문자 전송 여부
true전송
false미전송 : 기본값
수신자 : 공급받는자 휴대폰번호 {invoiceeHP1}
문자 전송 포인트가 차감(단, 전송실패 건은 환불) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| modifyCode | number | 1 | 조건부 |
수정 사유코드
수정세금계산서 작성시 필수
[참고] 수정세금계산서
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| orgNTSConfirmNum | string | 24 | 조건부 |
당초 국세청승인번호
수정세금계산서 작성시 필수
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| businessLicenseYN | boolean | - | N |
팝빌에 등록된 사업자등록증 첨부 여부
true첨부
false미첨부 : 기본값
팝빌 사이트 또는 [GetSealURL - 인감 및 첨부문서 등록 팝업 URL]을 이용하여 등록
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| bankBookYN | boolean | - | N |
팝빌에 등록된 통장사본 첨부 여부
true첨부
false미첨부 : 기본값
팝빌 사이트 또는 [GetSealURL - 인감 및 첨부문서 등록 팝업 URL]을 이용하여 등록
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| detailList | array | - | N |
품목 상세정보
최대 : 99개
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| addContactList | array | - | N |
공급받는자 추가담당자 정보
여러 담당자에게 발행 안내 메일을 보내야할 경우 사용
최대 : 5명 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| memo | string | 200 | N | 세금계산서 상태 이력을 관리하기 위한 메모 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| emailSubject | string | 300 | N |
세금계산서 발행 안내메일 제목
기본값 : 팝빌에서 설정한 안내메일 제목
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| writeSpecification | boolean | - | N |
거래명세서 동시작성 여부
true사용
false미사용 : 기본값
공급받는자 유형 {invoiceeType}="사업자" 경우만 가능
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| forceIssue | boolean | - | N |
지연발행 가능여부
true가능
false불가능 : 기본값
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| dealInvoiceKey | string | 24 | N |
거래명세서 문서번호
기본값 : 세금계산서 문서번호와 동일하게 할당
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
요청 예시
curl --request POST \
--url 'https://{domain}/Taxinvoice/{MgtKeyType}/{MgtKey}' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--header 'X-HTTP-Method-Override: PATCH' \
--data '{
"issueType": "정발행",
"taxType": "과세",
"chargeDirection": "정과금",
"writeDate": "20251117",
"purposeType": "영수",
"supplyCostTotal": "10000",
"taxTotal": "1000",
"totalAmount": "11000",
"invoicerMgtKey": "TEST202511170900000",
"invoicerCorpNum": "1234567890",
"invoicerCorpName": "공급자 상호",
"invoicerCEOName": "공급자 대표자 성명",
"invoiceeType": "사업자",
"invoiceeCorpNum": "1234567890",
"invoiceeCorpName": "공급받는자 상호",
"invoiceeCEOName": "공급받는자 대표자 성명",
"detailList": [
{
"serialNum": 1,
"purchaseDT": "20251117",
"itemName": "품명",
"spec": "규격",
"qty": "1",
"unitCost": "10000",
"supplyCost": "10000",
"tax": "1000",
"remark": "비고"
}
],
"addContactList": [
{
"serialNum": 1,
"contactName": "담당자 성명",
"email": "test@test.com"
}
]
}'
Response
응답 본문
| 순번 | 변수명 | 타입 | 길이 | 설명 |
|---|---|---|---|---|
| code | number | - |
API 처리에 대한 응답코드
1성공
|
|
| message | string | - | API 처리에 대한 응답메시지 |
응답 예시
{
"code": 1,
"message": "수정 완료"
}
6. Issue - 발행
POST
https://popbill-test.linkhub.co.kr/Taxinvoice/{MgtKeyType}/{MgtKey}
POST
https://popbill.linkhub.co.kr/Taxinvoice/{MgtKeyType}/{MgtKey}
- "임시저장" 또는 "(역)발행대기" 상태의 세금계산서를 발행(전자서명)하며, "발행완료" 상태로 처리합니다. [참고] 팝빌 국세청 전송 정책
- "발행완료"된 전자세금계산서는 국세청 전송 이전에 [CancelIssue – 발행취소] API로 국세청 신고 대상에서 제외할 수 있습니다.
-
세금계산서 발행을 위해서 공급자의 인증서가 팝빌 인증서버에 사전등록 되어야 합니다.
※ 위수탁의 경우, 수탁자의 인증서 등록이 필요합니다.
- 세금계산서 발행시 포인트가 과금되며, 공급받는자에게 발행 메일이 발송됩니다.
Request
요청 헤더
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | 인증 토큰 | |
| Content-Type | Y | 요청 본문 형식 application/json |
|
| Accept-Language | N |
응답 언어 설정
ko-KR: 기본값
en-US
|
|
| Accept-Encoding | N | 응답 압축 방식 gzip |
|
| X-HTTP-Method-Override | Y | 요청 메서드 재정의 ISSUE |
|
| X-PB-UserID | N | 팝빌회원 아이디 |
Path 파라미터
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| MgtKeyType | string | - | Y |
문서번호 유형 (택 1)
SELL매출
TRUSTEE위수탁
|
|
| MgtKey | string | 24 | Y | 파트너가 할당한 문서번호 |
요청 본문
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| memo | string | 200 | N | 세금계산서 상태 이력을 관리하기 위한 메모 | |
| emailSubject | string | 300 | N |
세금계산서 발행 안내메일 제목
기본값 : 팝빌에서 설정한 안내메일 제목
|
|
| forceIssue | boolean | - | N |
지연발행 가능여부
true가능
false불가능 : 기본값
|
요청 예시
curl --request POST \
--url 'https://{domain}/Taxinvoice/SELL/{MgtKey}' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--header 'X-HTTP-Method-Override: ISSUE' \
--data '{
"memo": "메모",
"emailSubject": "세금계산서 발행 안내메일 제목",
"forceIssue": false
}'
Response
응답 본문
| 순번 | 변수명 | 타입 | 길이 | 설명 |
|---|---|---|---|---|
| code | number | - |
API 처리에 대한 응답코드
1성공
|
|
| message | string | - | API 처리에 대한 응답메시지 | |
| ntsConfirmNum | string | 24 |
국세청승인번호
전자세금계산서 발행 시점에 팝빌에서 자동으로 할당
|
|
| issueDT | string | - |
발행일시
형식 : yyyyMMddHHmmss
|
응답 예시
{
"code": 1,
"message": "발행 완료",
"ntsConfirmNum": "20251016888888880000004c",
"issueDT": null
}
7. CancelIssue - 발행취소
POST
https://popbill-test.linkhub.co.kr/Taxinvoice/{MgtKeyType}/{MgtKey}
POST
https://popbill.linkhub.co.kr/Taxinvoice/{MgtKeyType}/{MgtKey}
- 국세청 전송 이전 "발행완료" 상태의 전자세금계산서를 "발행취소"하고 국세청 신고대상에서 제외합니다.
[Delete – 삭제] API를 호출하여 "발행취소" 상태의 전자세금계산서를 삭제하면, 문서번호 재사용이 가능합니다.
Request
요청 헤더
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | 인증 토큰 | |
| Content-Type | Y | 요청 본문 형식 application/json |
|
| Accept-Language | N |
응답 언어 설정
ko-KR: 기본값
en-US
|
|
| Accept-Encoding | N | 응답 압축 방식 gzip |
|
| X-HTTP-Method-Override | Y | 요청 메서드 재정의 CANCELISSUE |
|
| X-PB-UserID | N | 팝빌회원 아이디 |
Path 파라미터
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| MgtKeyType | string | - | Y |
문서번호 유형 (택 1)
SELL매출
TRUSTEE위수탁
|
|
| MgtKey | string | 24 | Y | 파트너가 할당한 문서번호 |
요청 본문
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| memo | string | 200 | N | 세금계산서 상태 이력을 관리하기 위한 메모 |
요청 예시
curl --request POST \
--url 'https://{domain}/Taxinvoice/{MgtKeyType}/{MgtKey}' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--header 'X-HTTP-Method-Override: CANCELISSUE' \
--data '{
"memo": "메모"
}'
Response
응답 본문
| 순번 | 변수명 | 타입 | 길이 | 설명 |
|---|---|---|---|---|
| code | number | - |
API 처리에 대한 응답코드
1성공
|
|
| message | string | - | API 처리에 대한 응답메시지 |
응답 예시
{
"code": 1,
"message": "발행취소 완료"
}
8. RegistRequest - 역발행 즉시 요청
POST
https://popbill-test.linkhub.co.kr/Taxinvoice
POST
https://popbill.linkhub.co.kr/Taxinvoice
- 공급받는자가 작성한 세금계산서 데이터를 팝빌에 저장하고 공급자에게 송부하여 발행을 요청합니다.
- 역발행 요청된 세금계산서는 "(역)발행대기" 상태이며, 공급자가 팝빌 사이트 또는 API를 호출하여 발행한 경우에만 국세청으로 전송됩니다.
-
공급자는 팝빌 사이트의 "매출 발행 대기함"에서 발행대기 상태의 역발행 세금계산서를 확인할 수 있습니다.
※ [Register – 임시저장]과 [Request – 역발행 요청] API 기능을 한 번의 프로세스로 처리합니다.
- 역발행 요청시 공급자에게 역발행 요청 메일이 발송됩니다.
-
공급자가 역발행 세금계산서 발행시 포인트가 과금되며, chargeDirection 값에 따라 과금 주체를 변경할 수 있습니다.
※ 정과금 : 공급자 과금, 역과금 : 공급받는자 과금
Request
요청 헤더
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | 인증 토큰 | |
| Content-Type | Y | 요청 본문 형식 application/json |
|
| Accept-Language | N |
응답 언어 설정
ko-KR: 기본값
en-US
|
|
| Accept-Encoding | N | 응답 압축 방식 gzip |
|
| X-HTTP-Method-Override | Y | 요청 메서드 재정의 REQUEST |
|
| X-PB-UserID | N | 팝빌회원 아이디 |
요청 본문
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| issueType | string | 3 | Y |
발행형태
역발행
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| taxType | string | 2 | Y |
과세형태 (택 1)
과세
영세
면세
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| chargeDirection | string | 3 | Y |
과금방향 (택 1)
정과금 공급자 과금
역과금 공급받는자 과금
- {issueType}="정발행", "역발행", "위수탁" 경우 정과금 가능- {issueType}="역발행" 경우 역과금 가능 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| serialNum | string | 30 | N | 일련번호 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| kwon | number | 4 | N |
책번호 "권" 항목
정수만 입력 가능
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ho | number | 4 | N |
책번호 "호" 항목
정수만 입력 가능
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| writeDate | string | 8 | Y |
작성일자
형식 : yyyyMMdd
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| purposeType | string | 8 | Y |
영수/청구
영수
청구
없음
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| supplyCostTotal | string | 18 | Y |
공급가액 합계
정수만 입력 가능(소수점 자동 절사)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| taxTotal | string | 18 | Y |
세액 합계
정수만 입력 가능(소수점 자동 절사)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| totalAmount | string | 18 | Y |
합계 합계
정수만 입력 가능(소수점 자동 절사)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| cash | string | 18 | Y | 현금 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| chkBill | string | 18 | Y | 수표 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| credit | string | 18 | Y | 외상 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| note | string | 18 | Y | 어음 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| remark1 | string | 150 | 조건부 | 비고1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| remark2 | string | 150 | N | 비고2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| remark3 | string | 150 | N | 비고3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerMgtKey | string | 24 | 조건부 |
공급자 문서번호
문서 관리를 위해 파트너가 할당하는 고유 식별번호
영문 대소문자, 숫자, 특수문자('-', '_')만 입력 가능 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerCorpNum | string | 10 | Y | 공급자 사업자번호 ('-' 제외) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerTaxRegID | string | 4 | N |
공급자 종사업장 식별번호
종사업장 식별번호는 4자리 숫자로만 구성
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerCorpName | string | 200 | Y | 공급자 상호 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerCEOName | string | 100 | Y | 공급자 대표자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerAddr | string | 300 | N | 공급자 주소 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerBizType | string | 100 | N | 공급자 업태 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerBizClass | string | 100 | N | 공급자 종목 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerContactName | string | 100 | N | 공급자 담당자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerDeptName | string | 100 | N | 공급자 담당자 부서명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerTEL | string | 20 | N | 공급자 담당자 연락처 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerHP | string | 20 | N | 공급자 담당자 휴대폰 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerEmail | string | 100 | N | 공급자 담당자 메일 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoicerSMSSendYN | boolean | - | N |
공급자 알림문자 전송 여부
true전송
false미전송 : 기본값
수신자 : 공급받는자 휴대폰번호 {invoiceeHP1}
문자 전송 포인트가 차감(단, 전송실패 건은 환불) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeMgtKey | string | 24 | 조건부 |
공급받는자 문서번호
문서 관리를 위해 파트너가 할당하는 고유 식별번호
영문 대소문자, 숫자, 특수문자('-', '_')만 입력 가능 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeType | string | - | N |
공급받는자 유형 (택 1)
사업자
개인
외국인
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeCorpNum | string | 13 | Y |
공급받는자 등록번호 ('-' 제외)
- {invoiceeType}="사업자" 경우 사업자번호 - {invoiceeType}="개인" 경우 주민등록번호 - {invoiceeType}="외국인" 경우 "9999999999999" |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeTaxRegID | string | 4 | N |
공급받는자 종사업장 식별번호
종사업장 식별번호는 4자리 숫자로만 구성
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeCorpName | string | 200 | Y | 공급받는자 상호 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeCEOName | string | 100 | Y | 공급받는자 대표자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeAddr | string | 300 | N | 공급받는자 주소 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeBizType | string | 100 | N | 공급받는자 업태 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeBizClass | string | 100 | N | 공급받는자 종목 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeContactName1 | string | 100 | N | 공급받는자 담당자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeDeptName1 | string | 100 | N | 공급받는자 담당자 부서명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeTEL1 | string | 20 | N | 공급받는자 담당자 연락처 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeHP1 | string | 20 | N | 공급받는자 담당자 휴대폰 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeEmail1 | string | 100 | N | 공급받는자 담당자 메일 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invoiceeSMSSendYN | boolean | - | N |
공급받는자 알림문자 전송 여부
true전송
false미전송 : 기본값
수신자 : 공급자 휴대폰번호 {invoicerHP}
문자 전송 포인트가 차감(단, 전송실패 건은 환불) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeMgtKey | string | 24 | 조건부 |
수탁자 문서번호
문서 관리를 위해 파트너가 할당하는 고유 식별번호
영문 대소문자, 숫자, 특수문자('-', '_')만 입력 가능 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeCorpNum | string | 10 | 조건부 | 수탁자 사업자번호 ('-' 제외) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeTaxRegID | string | 4 | N |
수탁자 종사업장 식별번호
종사업장 식별번호는 4자리 숫자로만 구성
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeCorpName | string | 200 | 조건부 | 수탁자 상호 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeCEOName | string | 100 | 조건부 | 수탁자 대표자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeAddr | string | 300 | N | 수탁자 주소 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeBizType | string | 100 | N | 수탁자 업태 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeBizClass | string | 100 | N | 수탁자 종목 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeContactName | string | 100 | N | 수탁자 담당자 성명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeDeptName | string | 100 | N | 수탁자 담당자 부서명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeTEL | string | 20 | N | 수탁자 담당자 연락처 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeHP | string | 20 | N | 수탁자 담당자 휴대폰 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeEmail | string | 100 | N | 수탁자 담당자 메일 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trusteeSMSSendYN | boolean | - | N |
수탁자 알림문자 전송 여부
true전송
false미전송 : 기본값
수신자 : 공급받는자 휴대폰번호 {invoiceeHP1}
문자 전송 포인트가 차감(단, 전송실패 건은 환불) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| modifyCode | number | 1 | 조건부 |
수정 사유코드
수정세금계산서 작성시 필수
[참고] 수정세금계산서
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| orgNTSConfirmNum | string | 24 | 조건부 |
당초 국세청승인번호
수정세금계산서 작성시 필수
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| businessLicenseYN | boolean | - | N |
팝빌에 등록된 사업자등록증 첨부 여부
true첨부
false미첨부 : 기본값
팝빌 사이트 또는 [GetSealURL - 인감 및 첨부문서 등록 팝업 URL]을 이용하여 등록
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| bankBookYN | boolean | - | N |
팝빌에 등록된 통장사본 첨부 여부
true첨부
false미첨부 : 기본값
팝빌 사이트 또는 [GetSealURL - 인감 및 첨부문서 등록 팝업 URL]을 이용하여 등록
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| detailList | array | - | N |
품목 상세정보
최대 : 99개
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| addContactList | array | - | N |
공급받는자 추가담당자 정보
여러 담당자에게 발행 안내 메일을 보내야할 경우 사용
최대 : 5명 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| memo | string | 200 | N | 세금계산서 상태 이력을 관리하기 위한 메모 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| emailSubject | string | 300 | N |
세금계산서 발행 안내메일 제목
기본값 : 팝빌에서 설정한 안내메일 제목
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| writeSpecification | boolean | - | N |
거래명세서 동시작성 여부
true사용
false미사용 : 기본값
공급받는자 유형 {invoiceeType}="사업자" 경우만 가능
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| forceIssue | boolean | - | N |
지연발행 가능여부
true가능
false불가능 : 기본값
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| dealInvoiceKey | string | 24 | N |
거래명세서 문서번호
기본값 : 세금계산서 문서번호와 동일하게 할당
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
요청 예시
curl --request POST \
--url 'https://{domain}/Taxinvoice' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--header 'X-HTTP-Method-Override: REQUEST' \
--data '{
"issueType": "역발행",
"taxType": "과세",
"chargeDirection": "정과금",
"writeDate": "20251016",
"purposeType": "영수",
"supplyCostTotal": "10000",
"taxTotal": "1000",
"totalAmount": "11000",
"invoicerCorpNum": "1234567890",
"invoicerCorpName": "공급자 상호",
"invoicerCEOName": "공급자 대표자 성명",
"invoiceeMgtKey": "TEST202510281800000",
"invoiceeType": "사업자",
"invoiceeCorpNum": "1234567890",
"invoiceeCorpName": "공급받는자 상호",
"invoiceeCEOName": "공급받는자 대표자 성명",
"detailList": [
{
"serialNum": 1,
"purchaseDT": "20251117",
"itemName": "품명",
"spec": "규격",
"qty": "1",
"unitCost": "10000",
"supplyCost": "10000",
"tax": "1000",
"remark": "비고"
}
],
"addContactList": [
{
"serialNum": 1,
"contactName": "담당자 성명",
"email": "test@test.com"
}
]
}'
Response
응답 본문
| 순번 | 변수명 | 타입 | 길이 | 설명 |
|---|---|---|---|---|
| code | number | - |
API 처리에 대한 응답코드
1성공
|
|
| message | string | - | API 처리에 대한 응답메시지 |
응답 예시
{
"code": 1,
"message": "발행요청 완료"
}
9. Request - 역발행 요청
POST
https://popbill-test.linkhub.co.kr/Taxinvoice/BUY/{MgtKey}
POST
https://popbill.linkhub.co.kr/Taxinvoice/BUY/{MgtKey}
- 공급받는자가 저장된 역발행 세금계산서를 공급자에게 송부하여 발행 요청합니다.
- 역발행 요청된 세금계산서는 "(역)발행대기" 상태이며, 공급자가 팝빌 사이트 또는 API를 호출하여 발행한 경우에만 국세청으로 전송됩니다.
- 공급자는 팝빌 사이트의 "매출 발행 대기함"에서 발행대기 상태의 역발행 세금계산서를 확인할 수 있습니다.
- 역발행 요청시 공급자에게 역발행 요청 메일이 발송됩니다.
- 공급자가 역발행 세금계산서 발행시 포인트가 과금됩니다.
Request
요청 헤더
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | 인증 토큰 | |
| Content-Type | Y | 요청 본문 형식 application/json |
|
| Accept-Language | N |
응답 언어 설정
ko-KR: 기본값
en-US
|
|
| Accept-Encoding | N | 응답 압축 방식 gzip |
|
| X-HTTP-Method-Override | Y | 요청 메서드 재정의 REQUEST |
|
| X-PB-UserID | N | 팝빌회원 아이디 |
Path 파라미터
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| MgtKey | string | 24 | Y | 파트너가 할당한 문서번호 |
요청 본문
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| memo | string | 200 | N | 세금계산서 상태 이력을 관리하기 위한 메모 |
요청 예시
curl --request POST \
--url 'https://{domain}/Taxinvoice/BUY/{mgtKey}' \
--header 'Authorization: Bearer {token}' \
--header 'X-HTTP-Method-Override: REQUEST' \
--header 'Content-Type: application/json' \
--data '{
"memo": "메모"
}'
Response
응답 본문
| 순번 | 변수명 | 타입 | 길이 | 설명 |
|---|---|---|---|---|
| code | number | - |
API 처리에 대한 응답코드
1성공
|
|
| message | string | - | API 처리에 대한 응답메시지 |
응답 예시
{
"code": 1,
"message": "(역)발행요청 완료"
}
10. CancelRequest - 역발행 요청취소
POST
https://popbill-test.linkhub.co.kr/Taxinvoice/BUY/{MgtKey}
POST
https://popbill.linkhub.co.kr/Taxinvoice/BUY/{MgtKey}
- 공급자가 요청받은 역발행 세금계산서를 발행하기 전, 공급받는자가 역발행요청을 취소합니다.
- API 호출시 "취소" 상태로 변경되고, 해당 역발행 세금계산서는 공급자에 의해 발행 될 수 없습니다.
Request
요청 헤더
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | 인증 토큰 | |
| Content-Type | Y | 요청 본문 형식 application/json |
|
| Accept-Language | N |
응답 언어 설정
ko-KR: 기본값
en-US
|
|
| Accept-Encoding | N | 응답 압축 방식 gzip |
|
| X-HTTP-Method-Override | Y | 요청 메서드 재정의 CANCELREQUEST |
|
| X-PB-UserID | N | 팝빌회원 아이디 |
Path 파라미터
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| MgtKey | string | 24 | Y | 파트너가 할당한 문서번호 |
요청 본문
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| memo | string | 200 | N | 세금계산서 상태 이력을 관리하기 위한 메모 |
요청 예시
curl --request POST \
--url 'https://{domain}/Taxinvoice/BUY/{mgtKey}' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--header 'X-HTTP-Method-Override: CANCELREQUEST' \
--data '{
"memo": "메모"
}'
Response
응답 본문
| 순번 | 변수명 | 타입 | 길이 | 설명 |
|---|---|---|---|---|
| code | number | - |
API 처리에 대한 응답코드
1성공
|
|
| message | string | - | API 처리에 대한 응답메시지 |
응답 예시
{
"code": 1,
"message": "(역)발행요청 취소 완료"
}
11. Refuse - 역발행 요청거부
POST
https://popbill-test.linkhub.co.kr/Taxinvoice/SELL/{MgtKey}
POST
https://popbill.linkhub.co.kr/Taxinvoice/SELL/{MgtKey}
- 공급자가 공급받는자에게 역발행 요청 받은 세금계산서의 발행을 거부합니다.
Request
요청 헤더
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | 인증 토큰 | |
| Content-Type | Y | 요청 본문 형식 application/json |
|
| Accept-Language | N |
응답 언어 설정
ko-KR: 기본값
en-US
|
|
| Accept-Encoding | N | 응답 압축 방식 gzip |
|
| X-HTTP-Method-Override | Y | 요청 메서드 재정의 REFUSE |
|
| X-PB-UserID | N | 팝빌회원 아이디 |
Path 파라미터
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| MgtKey | string | 24 | Y | 파트너가 할당한 문서번호 |
요청 본문
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| memo | string | 200 | N | 세금계산서 상태 이력을 관리하기 위한 메모 |
요청 예시
curl --request POST \
--url 'https://{domain}/Taxinvoice/SELL/{MgtKey}' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--header 'X-HTTP-Method-Override: REFUSE' \
--data '{
"memo": "메모"
}'
Response
응답 본문
| 순번 | 변수명 | 타입 | 길이 | 설명 |
|---|---|---|---|---|
| code | number | - |
API 처리에 대한 응답코드
1성공
|
|
| message | string | - | API 처리에 대한 응답메시지 |
응답 예시
{
"code": 1,
"message": "역발행 거부 완료"
}
12. Delete - 삭제
POST
https://popbill-test.linkhub.co.kr/Taxinvoice/{MgtKeyType}/{MgtKey}
POST
https://popbill.linkhub.co.kr/Taxinvoice/{MgtKeyType}/{MgtKey}
-
삭제 가능한 상태의 세금계산서를 삭제합니다.
※ 삭제 가능한 상태: "임시저장", "발행취소", "역발행거부", "역발행취소", "전송실패"
- 삭제 처리된 세금계산서의 문서번호는 재사용이 가능합니다.
Request
요청 헤더
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | 인증 토큰 | |
| Accept-Language | N |
응답 언어 설정
ko-KR: 기본값
en-US
|
|
| Accept-Encoding | N | 응답 압축 방식 gzip |
|
| X-HTTP-Method-Override | Y | 요청 메서드 재정의 DELETE |
|
| X-PB-UserID | N | 팝빌회원 아이디 |
Path 파라미터
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| MgtKeyType | string | - | Y |
문서번호 유형 (택 1)
SELL매출
BUY매입
TRUSTEE위수탁
|
|
| MgtKey | string | 24 | Y | 파트너가 할당한 문서번호 |
요청 예시
curl --request POST \
--url 'https://{domain}/Taxinvoice/{MgtKeyType}/{MgtKey}' \
--header 'Authorization: Bearer {token}' \
--header 'X-HTTP-Method-Override: DELETE'
Response
응답 본문
| 순번 | 변수명 | 타입 | 길이 | 설명 |
|---|---|---|---|---|
| code | number | - |
API 처리에 대한 응답코드
1성공
|
|
| message | string | - | API 처리에 대한 응답메시지 |
응답 예시
{
"code": 1,
"message": "삭제 완료"
}
13. SendToNTS - 국세청 즉시 전송
POST
https://popbill-test.linkhub.co.kr/Taxinvoice/{MgtKeyType}/{MgtKey}
POST
https://popbill.linkhub.co.kr/Taxinvoice/{MgtKeyType}/{MgtKey}
- "발행완료" 상태의 전자세금계산서를 국세청에 즉시 전송하며, API 호출 후 최대 30분 이내에 전송 처리가 완료됩니다.
- [GetInfo – 상태확인] API 또는 Webhook을 통해 국세청 전송 결과를 확인 합니다.
Request
요청 헤더
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | 인증 토큰 | |
| Accept-Language | N |
응답 언어 설정
ko-KR: 기본값
en-US
|
|
| Accept-Encoding | N | 응답 압축 방식 gzip |
|
| X-HTTP-Method-Override | Y | 요청 메서드 재정의 NTS |
|
| X-PB-UserID | N | 팝빌회원 아이디 |
Path 파라미터
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| MgtKeyType | string | - | Y |
문서번호 유형 (택 1)
SELL매출
TRUSTEE위수탁
|
|
| MgtKey | string | 24 | Y | 파트너가 할당한 문서번호 |
요청 예시
curl --request POST \
--url 'https://{domain}/Taxinvoice/{MgtKeyType}/{MgtKey}' \
--header 'Authorization: Bearer {token}' \
--header 'X-HTTP-Method-Override: NTS'
Response
응답 본문
| 순번 | 변수명 | 타입 | 길이 | 설명 |
|---|---|---|---|---|
| code | number | - |
API 처리에 대한 응답코드
1성공
|
|
| message | string | - | API 처리에 대한 응답메시지 |
응답 예시
{
"code": 1,
"message": "전송요청 완료"
}
