POPBill Developers
API Reference

1. Issue

1.1. RegistIssue - Issue an e-Tax invoice

POST https://popbill-test.linkhub.co.kr/Taxinvoice
POST https://popbill.linkhub.co.kr/Taxinvoice
  • This API issues(digitally signs) the generated e-Tax invoice data and process it as “issued”.
  • The seller’s certificate must be pre-registered in POPBiLL server to issue a tax invoice.
  • When issuing a tax invoice, service points will be charged, and a notification mail will be sent to the buyer.
Request
Request Headers
No. Field Mandatory Description
Authorization Y Auth Token
Content-Type Y Request body format
application/json
Accept-Language N Response language
ko-KR: default
en-US
Accept-Encoding N Response compression method
gzip
X-HTTP-Method-Override Y Request method override
ISSUE
X-PB-UserID N User’s POPBiLL ID
Request Body
No. Field Type Length Mandatory Description
issueType string 3 Y Issuance type
정발행general issuance
taxType string 2 Y Taxation type
과세taxable
영세zero-rated
면세exempted
chargeDirection string 3 Y Charging Direction
정과금Paid by seller
serialNum string 30 N Serial number
item to manage the list of e-Tax invoice
kwon number 4 N Volume of a book
item to manage the list of e-Tax invoice
ho number 4 N Number of a book
item to manage the list of e-Tax invoice
writeDate string 8 Y Date of preparation
format : yyyyMMdd
purposeType string 8 Y Payments received or not
영수payment received
청구payment not received
없음none
supplyCostTotal string 18 Y Sum of supply values
integer values(+/-) only
decimals will be automatically truncated
taxTotal string 18 Y Sum of tax amount
integer values(+/-) only
decimals will be automatically truncated
totalAmount string 18 Y Total amount
integer values(+/-) only
decimals will be automatically truncated
cash string 18 N Payment method – ‘cash’
chkBill string 18 N Payment method – ‘check’
credit string 18 N Payment method – ‘credit’
note string 18 N Payment method – ‘note’
remark1 string 150 Conditional 1st Remark
└ foreign registration number
└ passport number
remark2 string 150 N 2nd Remark
remark3 string 150 N 3rd Remark
invoicerMgtKey string 24 Conditional [Seller] document ID
unique value that can contain alphanumeric characters and special characters (‘-’, ‘_’)
invoicerCorpNum string 10 Y [Seller] business registration number
10 digits except a hyphen(‘-’)
invoicerTaxRegID string 4 N [Seller] identification number of a branch place
4 digits
invoicerCorpName string 200 Y [Seller] company name
invoicerCEOName string 100 Y [Seller] CEO name
invoicerAddr string 300 N [Seller] company address
invoicerBizType string 100 N [Seller] type of business
invoicerBizClass string 100 N [Seller] items of business
invoicerContactName string 100 N [Seller] name of the person in charge
invoicerDeptName string 100 N [Seller] department of the person in charge
invoicerTEL string 20 N [Seller] contact number of the person in charge
invoicerHP string 20 N [Seller] cell phone number of the person in charge
invoicerEmail string 100 N [Seller] email of the person in charge
invoiceeType string - N [Buyer] type of customer
사업자business proprietor
개인individual
외국인foreigner
invoiceeCorpNum string 13 Y [Buyer] business registration number
- if {invoiceeType} = 사업자(business proprietor type) : business registration number, 10 digits except a hyphen(‘-’)
- if {invoiceeType} = 개인(individual type) : resident registration number, 13 digits except a hyphen(‘-’)
- if {invoiceeType} = 외국인(foreigner type) : 9999999999999
invoiceeTaxRegID string 4 N [Buyer] identification number of a branch place
4 digits
invoiceeCorpName string 200 Y [Buyer] company name
invoiceeCEOName string 100 Y [Buyer] CEO name
invoiceeAddr string 300 N [Buyer] company address
invoiceeBizType string 100 N [Buyer] type of business
invoiceeBizClass string 100 N [Buyer] items of business
invoiceeContactName1 string 100 N [Buyer] name of the person in charge
invoiceeDeptName1 string 100 N [Buyer] department of the person in charge
invoiceeTEL1 string 20 N [Buyer] contact number of the person in charge
invoiceeHP1 string 20 N [Buyer] telephone number of the person in charge
invoiceeEmail1 string 100 N [Buyer] email of the person in charge
modifyCode number 1 Conditional Reason for revocation
mandatory when writing a revised invoice
orgNTSConfirmNum string 24 Conditional NTS confirmation number of the original tax invoice
mandatory when writing a revised invoice
detailList array - N Detailed list of items
maximum : 99
No. Field Type Length Mandatory Description
serialNum number 2 Y Serial number
write sequentially starting from 1
maximum : 99
purchaseDT string 8 N Date of trade
format : yyyyMMdd
itemName string 100 N Item name
spec string 60 N Specification
qty string 12 N Quantity
-99999999.99 ~ 999999999.99
allowed to enter two decimal places
unitCost string 18 N Unit price
-99999999999999.99 ~ 999999999999999.99
allowed to enter two decimal places
supplyCost string 18 N Supply values
integer values(+/-) only
decimals will be automatically truncated
tax string 18 N Tax amount
integer values(+/-) only
decimals will be automatically truncated
remark string 100 N Remark
addContactList array - N Additional person in charge information of the buyer
use this when sending notification mails to multiple persons in charge
maximum : 5
No. Field Type Length Mandatory Description
serialNum number 1 Y Serial number
write sequentially starting from 1
maximum : 5
contactName string 100 N Name of the person in charge
email string 100 Y Email of the person in charge
memo string 200 N Memo for user's convenience
emailSubject string 300 N Title of a notification mail sent to a buyer
default : title assigned by POPBiLL
writeSpecification boolean - N Whether a user uses concurrent creation of a transaction details or not
truedo
falsedo not (default)
forceIssue boolean - N Whether a user permits to issue an overdue e-Tax invoice or not
truedo
falsedo not (default)
dealInvoiceKey string 24 N If {WriteSpecification} = true, a document ID can be assigned by a user for an invoice
if not entered, the same document ID of an original e-Tax invoice will be assigned
Request Example
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
Response Body
No. Field Type Length Description
code number - API response code
1Success
message string - API response message
ntsConfirmNum string 24 NTS confirmation number
Response Example
{
  "code": 1,
  "message": "발행 완료",
  "ntsConfirmNum": "202510168888888800000023"
}

1.2. BulkSubmit - Submit an issuance of bulk invoices

POST https://popbill-test.linkhub.co.kr/Taxinvoice
POST https://popbill.linkhub.co.kr/Taxinvoice
  • This API submits the issuance of bulk invoices. A single request processes maximum 100 invoices at once.
  • The seller’s certificate must be pre-registered in POPBiLL server to issue a tax invoice.
  • When issuing a tax invoice, service points will be charged, and a notification mail will be sent to the buyer.
Request
Request Headers
No. Field Mandatory Description
Authorization Y Auth Token
Content-Type Y Request body format
application/json
Accept-Language N Response language
ko-KR: default
en-US
Accept-Encoding N Response compression method
gzip
X-HTTP-Method-Override Y Request method override
BULKISSUE
X-PB-Message-Digest Y Message Digest
Used to verify the integrity of the request body
X-PB-Submit-ID Y Submission ID
a user assigns this ID to identify each bulk submission
a unique value combined with alphabets, numeric values, and a hyphen(‘-’)
X-PB-UserID N User’s POPBiLL ID
Request Body
No. Field Type Length Mandatory Description
invoices array - Y List of objects of an e-Tax invoice
maximum 100 invoices
No. Field Type Length Mandatory Description
issueType string 3 Y Issuance type
정발행general issuance
taxType string 2 Y Taxation type
과세taxable
영세zero-rated
면세exempted
chargeDirection string 3 Y Charging Direction
정과금Paid by seller
serialNum string 30 N Serial number
item to manage the list of e-Tax invoice
kwon number 4 N Volume of a book
item to manage the list of e-Tax invoice
ho number 4 N Number of a book
item to manage the list of e-Tax invoice
writeDate string 8 Y Date of preparation
format : yyyyMMdd
purposeType string 8 Y Payments received or not
영수payment received
청구payment not received
없음none
supplyCostTotal string 18 Y Sum of supply values
integer values(+/-) only
decimals will be automatically truncated
taxTotal string 18 Y Sum of tax amount
integer values(+/-) only
decimals will be automatically truncated
totalAmount string 18 Y Total amount
integer values(+/-) only
decimals will be automatically truncated
cash string 18 Y Payment method – ‘cash’
chkBill string 18 Y Payment method – ‘check’
credit string 18 Y Payment method – ‘credit’
note string 18 Y Payment method – ‘note’
remark1 string 150 Conditional 1st Remark
└ foreign registration number
└ passport number
remark2 string 150 N 2nd Remark
remark3 string 150 N 3rd Remark
invoicerMgtKey string 24 Conditional [Seller] document ID
unique value that can contain alphanumeric characters and special characters (‘-’, ‘_’)
invoicerCorpNum string 10 Y [Seller] business registration number
10 digits except a hyphen(‘-’)
invoicerTaxRegID string 4 N [Seller] identification number of a branch place
4 digits value
invoicerCorpName string 200 Y [Seller] company name
invoicerCEOName string 100 Y [Seller] CEO name
invoicerAddr string 300 N [Seller] company address
invoicerBizType string 100 N [Seller] type of business
invoicerBizClass string 100 N [Seller] items of business
invoicerContactName string 100 N [Seller] name of the person in charge
invoicerDeptName string 100 N [Seller] department of the person in charge
invoicerTEL string 20 N [Seller] contact number of the person in charge
invoicerHP string 20 N [Seller] cell phone number of the person in charge
invoicerEmail string 100 N [Seller] email of the person in charge
invoiceeType string - N [Buyer] type of customer
사업자business proprietor
개인individual
외국인foreigner
invoiceeCorpNum string 13 Y [Buyer] business registration number
- if {invoiceeType} = 사업자(business proprietor type) : business registration number, 10 digits except a hyphen(‘-’)
- if {invoiceeType} = 개인(individual type) : resident registration number, 13 digits except a hyphen(‘-’)
- if {invoiceeType} = 외국인(foreigner type) : 9999999999999
invoiceeTaxRegID string 4 N [Buyer] identification number of a branch place
4 digits
invoiceeCorpName string 200 Y [Buyer] company name
invoiceeCEOName string 100 Y [Buyer] CEO name
invoiceeAddr string 300 N [Buyer] company address
invoiceeBizType string 100 N [Buyer] type of business
invoiceeBizClass string 100 N [Buyer] items of business
invoiceeContactName1 string 100 N [Buyer] name of the person in charge
invoiceeDeptName1 string 100 N [Buyer] department of the person in charge
invoiceeTEL1 string 20 N [Buyer] contact number of the person in charge
invoiceeHP1 string 20 N [Buyer] telephone number of the person in charge
invoiceeEmail1 string 100 N [Buyer] email of the person in charge
modifyCode number 1 Conditional Reason for revocation
mandatory when writing a revised invoice Refer to [Revised Invoice]
orgNTSConfirmNum string 24 Conditional NTS confirmation number of the original tax invoice
mandatory when writing a revised invoice
detailList array - N Detailed list of items
maximum : 99
No. Field Type Length Mandatory Description
serialNum number 2 Y Serial number
write sequentially starting from 1
maximum : 5
purchaseDT string 8 N Date of trade
format : yyyyMMdd
itemName string 100 N Item name
spec string 60 N Specification
qty string 12 N Quantity
-99999999.99 ~ 999999999.99
allowed to enter two decimal places
unitCost string 18 N Unit price
-99999999999999.99 ~ 999999999999999.99
allowed to enter two decimal places
supplyCost string 18 N Supply values
integer values(+/-) only
decimals will be automatically truncated
tax string 18 N Tax amount
integer values(+/-) only
decimals will be automatically truncated
remark string 100 N Remark
addContactList array - N Additional person in charge information of the buyer
use this when sending notification mails to multiple persons in charge
maximum : 5
No. Field Type Length Mandatory Description
serialNum number 1 Y Serial number
write sequentially starting from 1
maximum : 99
contactName string 100 N Name of the person in charge
email string 100 Y Email of the person in charge
memo string 200 N Memo for user's convenience
this field is used for individual e-Tax invoices within a Bulk submission only
emailSubject string 300 N Title of a notification mail sent to a buyer
default : title assigned by POPBiLL
writeSpecification boolean - N Whether a user uses concurrent creation of a transaction details or not
truedo
falsedo not (default)
Only possible when Buyer / invoicee type {invoiceeType}="사업자".
dealInvoiceKey string 24 N If {WriteSpecification} = true, a document ID can be assigned by a user for an invoice
if not entered, the same document ID of an original e-Tax invoice will be assigned
forceIssue boolean - N Whether a user permits to issue an overdue e-Tax invoice or not
truedo
falsedo not (default)
‘false’ if not entered
Request Example
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
Response Body
No. Field Type Length Description
code number - API response code
1Success
message string - API response message
receiptID string 36 Receipt ID
POPBiLL automatically assigns when submission is processed.
Response Example
{
    "code": 1,
    "message": "접수 완료",
    "receiptID": "0251023-cf84677932f44e3baa2541160366"
}

1.3. GetBulkResult - Check a submission status for bulk issuance

GET https://popbill-test.linkhub.co.kr/Taxinvoice/BULK/{submitID}/State
GET https://popbill.linkhub.co.kr/Taxinvoice/BULK/{submitID}/State
  • This API checks the submission status for bulk issuance using 'SubmitID’.
  • The issuance result(succeeded/failed) is returned when the submission status(variable : txState) is updated as ‘2’(completed).
Request
Request Headers
No. Field Mandatory Description
Authorization Y Auth Token
Accept-Language N Response language
ko-KR: default
en-US
Accept-Encoding N Response compression method
gzip
X-PB-UserID N User’s POPBiLL ID
Path Parameters
No. Field Type Length Mandatory Description
submitID string 36 Y Submission ID
assigned by a user when registering for a bulk submission
Request Example
curl --request GET \
  --url 'https://{domain}/Taxinvoice/BULK/{submitID}/State' \
  --header 'Authorization: Bearer {token}'
Response
Response Body
No. Field Type Length Description
code number - API response code
message string - API response message
receiptID string 36 Receipt ID
POPBiLL automatically assigns when submission is processed.
submitID string 36 Submission ID
assigned by a user when registering for a bulk submission
submitCount number - Number of tax invoice submissions
successCount number - Number of succeeded tax invoice issuance
failCount number - Number of failed tax invoice issuance
txState number 1 Submission status
0submitted
1in progress
2completed
txStartDT string 14 Start date and time of B/G issuance process
format : yyyyMMddHHmmss
txEndDT string 14 End date and time of B/G issuance process
format : yyyyMMddHHmmss
txResultCode number - Submission result code
issueResult array - Issuance result
No. Field Type Length Description
invoicerMgtKey string 24 [Seller] document ID
unique value that can contain alphanumeric characters and special characters (‘-’, ‘_’)
code number - API response code
message string - API response message
ntsconfirmNum string 24 NTS confirmation number
POPBiLL automatically assigns this when issuing a tax invoice.
issueDT string 14 Date and time of the issuance
format : yyyyMMddHHmmss
receiptDT string 14 Date and time of the submission
format : yyyyMMddHHmmss
Response Example
{
    "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"
}

1.4. CancelIssue - Cancel the issuance of an e-Tax invoice

POST https://popbill-test.linkhub.co.kr/Taxinvoice/{MgtKeyType}/{MgtKey}
POST https://popbill.linkhub.co.kr/Taxinvoice/{MgtKeyType}/{MgtKey}
  • This API processes an e-Tax invoice of a status “issued” as “cancelled” and exempts it from filing to the NTS.

You can reuse a document ID if you delete an “issued” e-Tax invoice via [Delete – Delete a revocable tax invoice] API.

Request
Request Headers
No. Field Mandatory Description
Authorization Y Auth Token
Content-Type Y Request body format
application/json
Accept-Language N Response language
ko-KR: default
en-US
Accept-Encoding N Response compression method
gzip
X-HTTP-Method-Override Y Request method override
CANCELISSUE
X-PB-UserID N User’s POPBiLL ID
Path Parameters
No. Field Type Length Mandatory Description
MgtKeyType string - Y Type of the e-Tax invoice
SELLSales
MgtKey string 24 Y Document ID
Request Body
No. Field Type Length Mandatory Description
memo string 200 N Memo for user's convenience
Request Example
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
Response Body
No. Field Type Length Description
code number - API response code
message string - API response message
Response Example
{
    "code": 1,
    "message": "발행취소 완료"
}

1.5. Delete - Delete

POST https://popbill-test.linkhub.co.kr/Taxinvoice/{MgtKeyType}/{MgtKey}
POST https://popbill.linkhub.co.kr/Taxinvoice/{MgtKeyType}/{MgtKey}
  • This API deletes a revocable e-Tax invoice.

    ※ available status to delete : “cancelled”, “failed”

  • Recommend to implement this API only if you need to reuse a document ID of an e-Tax invoice.
Request
Request Headers
No. Field Mandatory Description
Authorization Y Auth Token
Accept-Language N Response language
ko-KR: default
en-US
Accept-Encoding N Response compression method
gzip
X-HTTP-Method-Override Y Request method override
DELETE
X-PB-UserID N User’s POPBiLL ID
Path Parameters
No. Field Type Length Mandatory Description
MgtKeyType string - Y Type of the e-Tax invoice
SELLSales
MgtKey string 24 Y Document ID
Request Example
curl --request POST \
  --url 'https://{domain}/Taxinvoice/{MgtKeyType}/{MgtKey}' \
  --header 'Authorization: Bearer {token}' \
  --header 'X-HTTP-Method-Override: DELETE'
Response
Response Body
No. Field Type Length Description
code number - API response code
message string - API response message
Response Example
{
    "code": 1,
    "message": "삭제 완료"
}

1.6. SendToNTS - File “issued” e-Tax invoice to the NTS

POST https://popbill-test.linkhub.co.kr/Taxinvoice/{MgtKeyType}/{MgtKey}
POST https://popbill.linkhub.co.kr/Taxinvoice/{MgtKeyType}/{MgtKey}
  • This API immediately files an “issued”(stateCode = 300) e-tax invoice to the NTS and once the filing process is completed, the stateCode of an invoice will be returned as “succeeded”(stateCode = 304)or ”failed”(stateCode = 305).
  • This API can be optionally implemented for the users with NTS filing option set as ‘next-day filing’(default).
Request
Request Headers
No. Field Mandatory Description
Authorization Y Auth Token
Accept-Language N Response language
ko-KR: default
en-US
Accept-Encoding N Response compression method
gzip
X-HTTP-Method-Override Y Request method override
NTS
X-PB-UserID N User’s POPBiLL ID
Path Parameters
No. Field Type Length Mandatory Description
MgtKeyType string - Y Type of the e-Tax invoice
SELLSales
MgtKey string 24 Y Document ID
Request Example
curl --request POST \
  --url 'https://{domain}/Taxinvoice/{MgtKeyType}/{MgtKey}' \
  --header 'Authorization: Bearer {token}' \
  --header 'X-HTTP-Method-Override: NTS'
Response
Response Body
No. Field Type Length Description
code number - API response code
message string - API response message
Response Example
{
    "code": 1,
    "message": "전송요청 완료"
}