Error Codes
You can verify the success or failure of a transaction by checking the resCd (Response Code) and resMsg (Response Message) returned after calling the KICC API.
🟢 Success Code
The most important code is 0000. A payment is considered successfully completed only when this code is received.
Response Code (resCd) | Message (resMsg) | Description |
|---|---|---|
| 0000 | Approved | The requested operation (Payment, Cancellation, Inquiry, etc.) was processed successfully. |
Any case where resCd is not 0000 is considered a Failure.
In case of failure, check the reason in resMsg to guide the customer or handle it programmatically.
🔴 Major Failure Codes
Common error codes are categorized into Card Issuer Rejections (User-side), Merchant Configuration Issues, and System/Communication Errors.
Card Issuer Rejections (Action required by User)
These occur due to issues with the customer's card status or input information. Guide the customer to check their card or use a different payment method.
| Code | Message Example | Cause and Resolution |
|---|---|---|
| 8521 | Exceeded Limit | Insufficient credit/spending limit on the card. |
| 8035 | Insufficient Funds | Insufficient balance in the account linked to the check/debit card. |
| 8314 ~ 8316 | Invalid Expiry Date | The card has expired or the expiry date was entered incorrectly. |
| 8311 | Password Error | Incorrect card password entered (Caution: Account may lock after multiple failures). |
| 8350 | Stolen/Lost Card | Attempted use of a reported lost or stolen card (Stop transaction immediately). |
| 8373 | Contact Issuer | Transaction declined due to issuer policy (Customer must contact the card issuer). |
| 8527 | Insufficient Points | Insufficient point balance for point-based payments. |
Error codes may vary slightly depending on the specific payment service configuration. Please refer to the service-specific documentation for details.
Merchant Configuration Issues (Contact Sales Representative)
Occurs when the merchant account is not fully set up, a specific payment method is not registered, or unsupported interest-free installments are requested.
| Code | Message Example | Cause and Resolution |
|---|---|---|
| P007 | Card Not Supported | [Online] Request made with a card type not accepted by the merchant. |
| P010 | Overseas Card Disabled | [Online] Overseas card used at a merchant that only accepts domestic cards. |
| P022 | Invalid Interest-free Info | [Online] Interest-free installment requested for a non-eligible transaction. |
| E201 | Refund Service Disabled | [Online] Refund service is not activated in the merchant's settings. |
| E988 | General Approval Denied | [Online] Request made via general payment for a multi-settlement enabled merchant. |
| A228 | Registration Required | [VAN] EasyTalkPay is not registered on the terminal being used. |
System and Communication Errors (Action required by Developer)
Occurs due to network instability, parameter errors, or duplicate requests.
| Code | Message Example | Cause and Resolution |
|---|---|---|
| R108 | Duplicate Request | [Online] Re-requesting with a duplicate shopTransactionId. |
| R114 | Auth Value Verification Fail | [Online] Failure in verifying the message integrity/authentication value. |
| R200 | Unregistered Merchant | [Online] Request made with an invalid Merchant ID for the environment (Test/Prod). |
| WN14 | Duplicate Transaction | [Online] Attempting to invoke the payment window multiple times for one transaction. |
| TP01 | Issuer Comm. Failure | [Online] Communication error with the issuer; KICC has initiated a Net-Cancel. |
| A200 | Duplicate Transaction | [VAN] Re-requesting with a duplicate shopTransactionId. |
| A222 | Unauthenticated Trans. | [VAN] Approval requested without prior authentication via the card issuer app. |
| A234 | Transaction Not Found | [VAN] Cancellation requested for a transaction that does not exist. |
🛡️ Exception Handling Guide
The most critical state in a payment system is the "Unknown Status."
Q. What should I do if a Time Out occurs?
A. Immediately check the transaction status and perform a Net-Cancel.
A timeout might mean the request reached the server, but the response was cut off. Since the payment might have actually been approved, you MUST call the Query Transaction Status API to verify the state and initiate a Net-Cancel if necessary to ensure data integrity.