POPBill Developers
API Reference

1. Issue

1.1. RegistIssue - Issue a cash receipt

POST https://popbill-test.linkhub.co.kr/Cashbill
POST https://popbill.linkhub.co.kr/Cashbill
  • This API issues the cash receipt and process it as “issued”
  • For voluntary issuance, ‘소득공제용’ (tax deduction purpose) and ‘010-000-1234’ must be entered as a value of ‘tradeUsage’ (purpose of issuance) and ‘identityNum’(buyer’s identification number).
  • When issuing a cash receipt, notification mail will be sent to the buyer’s mail address.
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
mgtKey string 24 Y Document ID
user assigns this value to manage cash receipt
unique value that can contain alphanumeric characters and special characters (‘-’, ‘_’)
tradeDT string 14 N Date and time of trade
a user can assign this value
the available dates are the day or the previous day
format : yyyyMMddHHmmss
date and time of issuance(default) if not entered
tradeType string 4 Y Type of cash receipt
승인거래cash receipt for transaction approval
tradeUsage string - Y Purpose of issuance
소득공제용income deduction usage
지출증빙용proof of purchase usage
tradeOpt string 4 N Trade type
일반general
도서공연book/performance
대중교통public transportation
“일반” will be applied as default value if not entered
taxationType string - Y Purpose of issuance
과세taxable
비과세exempted
totalAmount string 9 Y Total amount
integer values(+) only
supplyCost string 9 Y Supply values
integer values(+) only
tax string 9 Y Tax amount
integer values(+) only
serviceFee string 9 Y Service fee
integer values(+) only
franchiseCorpNum string 10 Y [Seller] business registration number
POPBiLL user's business registration number
10 digits except a hyphen(‘-’)
franchiseTaxRegID string 4 N [Seller] identification number for a branch place
4 digits value
franchiseCorpName string 200 N [Seller] company name
franchiseCEOName string 100 N [Seller] CEO name
franchiseAddr string 400 N [Seller] company address
franchiseTEL string 20 N [Seller] telephone number
identityNum string 19 Y [Buyer] Identification number
- if the value of {tradeUsage} is ‘소득공제용’(income deduction usage), enter one of the following options : resident registration number/ cell phone number/ card number/ 010-000-1234( identification number for voluntary issuance)
- if the value of {tradeUsage} is ‘지출증빙용’(proof of purchase usage), enter one of the following options : business registration number/ cell phone number/ card number
resident registration number : 13 digits, phone number : 10~11 digits, card number : 13~19 digits, business registration number : 10 digits
customerName string 70 N [Buyer] name of the customer
itemName string 70 N Order product name
orderNumber string 200 N Order number
email string 100 N [Buyer] email
hp string 20 N [Buyer] cell phone number
memo string 200 N Memo for user’s convenience
emailSubject string 300 N Title of the notification mail for the issuance of a cash receipt
if not entered, a POPBiLL default value will be assigned
Request Example
curl --request POST \
  --url 'https://{domain}/Cashbill' \
  --header 'Authorization: Bearer {token}' \
  --header 'Content-Type: application/json' \
  --header 'X-HTTP-Method-Override: ISSUE' \
  --data '{
    "mgtKey": "TEST0001",
    "tradeType": "승인거래",
    "tradeUsage": "지출증빙용",
    "taxationType": "과세",
    "totalAmount": "11000",
    "supplyCost": "10000",
    "tax": "1000",
    "serviceFee": "0",
    "franchiseCorpNum": "1234567890",
    "identityNum": "1234567890"
  }'
Response
Response Body
No. Field Type Length Description
code number - API response code
message string - API response message
confirmNum string 24 NTS confirmation number
POPBiLL automatically assigns this when issuing a cash receipt
tradeDate string 8 Date of trade
format : yyyyMMdd
POPBiLL automatically assigns this when issuing a cash receipt
Response Example
{
    "code": 1,
    "message": "발행 완료",
    "confirmNum": "TB0000032",
    "tradeDate": "20251023"
}

1.2. RevokeRegistIssue - Issue a cash receipt for revocation

POST https://popbill-test.linkhub.co.kr/Cashbill
POST https://popbill.linkhub.co.kr/Cashbill
  • This API issues a cash receipt for revocation and process it as “issued”.
  • The total amount of the cash receipt for revocation cannot exceed the amount of the original cash receipt.
  • The trade date of the cash receipt for revocation cannot be past the date of the original cash receipt.
  • The NTS confirmation number and the trade date of the original cash receipt can be checked via [GetInfo – Check the status of a cash receipt] API. When issuing a cash receipt, a notification mail will be sent to the buyer’s mail address.
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
REVOKEISSUE
X-PB-UserID N User’s POPBiLL ID
Request Body
No. Field Type Length Mandatory Description
mgtKey string 24 Y Document ID
a unique value that can be entered with alphanumeric values and special characters(‘-’, ‘_’)
orgConfirmNum string 9 Y NTS confirmation number of the original cash receipt
this information can be found from variable ‘confirmNum’ of the [GetInfo] API.
orgTradeDate string 8 Y Trade date of the original cash receipt
this information can be found from variable ‘tradeDate’ of the [GetInfo] API
smssendYN boolean - N Whether to send a notification SMS or not
truesend
falsedo not send (default)
sms function is not available for overseas customers
memo string 200 N Memo for user’s convenience
isPartCancel boolean - N Type of cash receipt for revocation
truecancels partial amount
falsecancels full amount
‘false’ if not entered.
cancelType number 1 N Reasons for revocation
1transaction is returned/cancelled
2correction of errors
3other reasons
supplyCost string 9 Conditional Supply value
- if {isPartCancel} is true, enter the actual amount of supply value to cancel
- if {isPartCancel} is false, do not enter any value.
tax string 9 Conditional Tax amount
- if {isPartCancel} is true, enter the actual amount of tax to cancel
- if {isPartCancel} is false, do not enter any value
serviceFee string 9 Conditional Service Fee
- if {isPartCancel} is true, enter the actual amount of service fee to cancel
- if {isPartCancel} is false, do not enter any value
totalAmount string 9 Conditional Total amount
supply value + tax + service fee

- if {isPartCancel} is true, enter the actual amount to cancel
- if {isPartCancel} is false, do not enter any value
emailSubject string 300 N Title of the notification mail for the issuance of a cash receipt
if not entered, a POPBiLL default value will be assigned
tradeDT string 300 N Date and time of trade
a user can assign this value
the available dates are the day or the previous day
format : yyyyMMddHHmmss
date and time of issuance(default) if not entered
Request Example
curl --request POST \
  --url 'https://{domain}/Cashbill' \
  --header 'Authorization: Bearer {token}' \
  --header 'Content-Type: application/json' \
  --header 'X-HTTP-Method-Override: REVOKEISSUE' \
  --data '{
    "mgtKey": "TEST0002",
    "orgConfirmNum": "TB0000032",
    "orgTradeDate": "20251023"
  }'
Response
Response Body
No. Field Type Length Description
code number - API response code
message string - API response message
confirmNum string 24 NTS confirmation number
POPBiLL automatically assigns this when issuing a cash receipt
tradeDate string 8 Date of trade
format : yyyyMMdd
POPBiLL automatically assigns this when issuing a cash receipt
Response Example
{
    "code": 1,
    "message": "발행 완료",
    "confirmNum": "TB0000032",
    "tradeDate": "20251023"
}

1.3. BulkSubmit - Submit the issuance of bulk cash receipts

POST https://popbill-test.linkhub.co.kr/Cashbill
POST https://popbill.linkhub.co.kr/Cashbill
  • This API submit the issuance of bulk cash receipts. A single request processes maximum 100 cash receipts at once.
  • The NTS confirmation number and the trade date of the original cash receipt can be checked via [GetInfo – Check the status of a cash receipt] API.
  • When issuing a cash receipt, a notification mail will be sent to the buyer’s mail address.
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-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-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-UserID N User’s POPBiLL ID
Request Body
No. Field Type Length Mandatory Description
cashbills array - Y List of object of a cash receipt
maximum : 100 cash receipts
No. Field Type Length Mandatory Description
mgtKey string 24 Y Document ID
user assigns this value to manage cash receipt
unique value that can contain alphanumeric characters and special characters (‘-’, ‘_’)
tradeDT string 14 N Date and time of trade
a user can assign this value
the available dates are the day or the previous day
format : yyyyMMddHHmmss
default : date and time of issuance
tradeType string 4 Y Type of cash receipt
승인거래cash receipt for transaction approval
tradeUsage string - Y Purpose of issuance
소득공제용income deduction usage
지출증빙용proof of purchase usage
tradeOpt string 4 N Trade type
일반general
도서공연book/performance
대중교통public transportation
“일반” will be applied as default value if not entered
taxationType string - Y Taxation type
과세taxable
비과세exempted
totalAmount string 9 Y Total amount
integer values(+) only
supplyCost string 9 Y Supply values
integer values(+) only
tax string 9 Y Tax amount
integer values(+) only
serviceFee string 9 Y Service fee
integer values(+) only
franchiseCorpNum string 10 Y [Seller] business registration number
POPBiLL user's business registration number
10 digits except a hyphen(‘-’)
franchiseTaxRegID string 4 N [Seller] identification number for a branch place
4 digits value
franchiseCorpName string 200 N [Seller] company name
franchiseCEOName string 100 N [Seller] CEO name
franchiseAddr string 400 N [Seller] company address
franchiseTEL string 20 N [Seller] telephone number
identityNum string 19 Y [Buyer] Identification number
- if the value of {tradeUsage} is ‘소득공제용’(income deduction usage), enter one of the following options : resident registration number/ cell phone number/ card number/ 010-000-1234( identification number for voluntary issuance)
- if the value of {tradeUsage} is ‘지출증빙용’(proof of purchase usage), enter one of the following options : business registration number/ cell phone number/ card number
resident registration number : 13 digits, phone number : 10~11 digits, card number : 13~19 digits, business registration number : 10 digits
customerName string 70 N [Buyer] name of the customer
itemName string 70 N Order product name
orderNumber string 200 N Order number
email string 100 N [Buyer] email
hp string 20 N [Buyer] cell phone number
memo string 200 N Memo for user’s convenience
Request Example
curl --request POST \
  --url 'https://{domain}/Cashbill' \
  --header 'Authorization: Bearer {token}' \
  --header 'Content-Type: application/json' \
  --header 'X-HTTP-Method-Override: BULKISSUE' \
  --header 'X-PB-Submit-ID: {submitID}' \
  --header 'X-PB-Message-Digest: {messageDigest}' \
  --data '{
    "cashbills": [
        {
            "mgtKey": "TEST0004",
            "tradeType": "승인거래",
            "tradeUsage": "지출증빙용",
            "taxationType": "과세",
            "totalAmount": "11000",
            "supplyCost": "10000",
            "tax": "1000",
            "serviceFee": "0",
            "franchiseCorpNum": "1234567890",
            "identityNum": "1234567890"
        }
    ]
  }'
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.
Response Example
{
  "code": 1,
  "message": "접수 완료",
  "receiptID": "0251024-f842ed73b6004518bf5bc73c1d9f"
}

1.4. GetBulkResult - Check the submission status for bulk issuance

GET https://popbill-test.linkhub.co.kr/Cashbill/Bulk/{submitID}/State
GET https://popbill.linkhub.co.kr/Cashbill/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}/Cashbill/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
submitID string 36 Submission ID
assigned by a user when registering for a bulk submission
submitCount number - Number of cash receipt submissions
successCount number - Number of succeeded cash receipt issuance
failCount number - Number of failed cash receipt issuance
txState number 1 Submission status
0submitted
1in progress
2completed
txResultCode number - Result code of a submission
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
receiptID string 36 Receipt ID
POPBiLL automatically assigns when submission is processed
issueResult array - Issuance result
No. Field Type Length Description
code number - API response code
message string - API response message
mgtKey string 24 Document ID
a unique value that can be entered with alphanumeric values and special characters(‘-’, ‘_’)
confirmNum string 9 NTS confirmation number
POPBiLL automatically assigns this when issuing a cash receipt
tradeDate string 8 Date of trade
format : yyyyMMdd
POPBiLL automatically assigns this when issuing a cash receipt
issuance date(default) will be applied if not entered.
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": "0251024-bf8026eae6d64e44854593e5fa82",
    "submitID": "20251024-JAVA3",
    "submitCount": 5,
    "successCount": 5,
    "failCount": 0,
    "txState": 2,
    "txStartDT": "20251024140659",
    "txEndDT": "20251024140700",
    "txResultCode": 1,
    "issueResult": [
        {
            "mgtKey": "20251024-0",
            "code": 1,
            "confirmNum": "TB0000048",
            "tradeDate": "20251024",
            "issueDT": "20251024140659"
        }
    ],
    "receiptDT": "20251024140659"
}

1.5. Delete - Delete a revocable cash receipt

POST https://popbill-test.linkhub.co.kr/Cashbill/{MgtKey}
POST https://popbill.linkhub.co.kr/Cashbill/{MgtKey}
  • This API deletes a revocable cash receipt.

    ※ available status to delete : “failed”

  • Recommend to implement this API only if you need to reuse a document ID of a cash receipt.
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
MgtKey string 24 Y Document ID
Request Example
curl --request POST \
  --url 'https://{domain}/Cashbill/{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": "삭제 완료"
}