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 | |
| 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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 | ||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||
| 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": "삭제 완료"
}
