Payment Approval (VAN)
This API requests payment approval using the Auth Sequence Number (certControlNo) received from the payment window.
Critical Implementation Guidelines
- Network Error/Timeout: If you do not receive a response due to a timeout or network error, you MUST check the status via Query Transaction Status, retrieve the transaction ID, and proceed with a cancellation.
- Amount Mismatch: If the approved amount in the response differs from the merchant's requested amount, you MUST cancel the transaction immediately.
- DB Update Failure: If your internal database fails to process the result after a successful approval, you MUST cancel the transaction to maintain data integrity.
Request
Request URL
POST https://{API Domain}/appcardpay/v1/approval.do
Content-type: application/json; charset=euc-kr
Note
Supports API Idempotency (See API Idempotency)
Caution
The final approval process may take time; please set your client timeout to 30 seconds.
Parameters
| Field Name | Type | Length | Required | Description |
|---|---|---|---|---|
| vanTid | String | 8Byte | ✅ | VAN Terminal ID |
| shopTransactionId | String | 60Byte | ✅ | Merchant Transaction ID (API Idempotency Key) |
| certControlNo | String | 40Byte | ✅ | Auth Sequence Number (Use the value received from the auth window as-is) |
| approvalReqDate | String | 8Byte | ✅ | Approval Request Date (yyyyMMdd) |
Request Example
{
"vanTid": "{VAN Terminal ID}",
"shopTransactionId": "{API Idempotency Key}",
"certControlNo": "{Auth Sequence Number}",
"approvalReqDate": "{yyyyMMdd}"
}
Response
Parameters
| Field Name | Type | Length | Required | Description |
|---|---|---|---|---|
| resCd | String | 4Byte | ✅ | Result Code (Success: “0000”) |
| resMsg | String | 1000Byte | ✅ | Result Message |
| shopTransactionId | String | 60Byte | ✅ | Returns the value sent in the approval request |
| vanTid | String | 8Byte | VAN Terminal ID | |
| shopOrderNo | String | 40Byte | Merchant Order Number (Matches registration value) | |
| controlNo | String | 20Byte | KICC Transaction Sequence Number | |
| amount | Number | Total Payment Amount | ||
| transactionDate | String | 14Byte | Transaction Date (yyyyMMddHHmmss) | |
| accepterId | String | 15Byte | Member Store ID | |
| paymentInfo | Object | Payment Approval Result Details (See paymentInfo below) |
paymentInfo (Approval Result Details)
| Field Name | Type | Length | Required | Description |
|---|---|---|---|---|
| payMethodType | String | 2Byte | ✅ | Payment Method Code (Credit Card: "11") |
| vanSerial | String | 20Byte | VAN Transaction Serial Number | |
| authNo | String | 20Byte | ✅ | Approval Number |
| cardInfo | Object | Credit Card Payment Result (See cardInfo below) |
paymentInfo > cardInfo (Credit Card Result)
| Field Name | Type | Length | Required | Description |
|---|---|---|---|---|
| cardNo | String | 20Byte | ✅ | Card Number (Masked *) |
| issuerCode | String | 3Byte | ✅ | Issuer Code (See Card Codes) |
| acquirerCode | String | 3Byte | ✅ | Acquirer Code (See Card Codes) |
| installmentMonth | String | 2Byte | ✅ | Installment Months |
Response Example
{
"resCd": "0000",
"resMsg": "Payment Success",
"vanTid": "{VAN Terminal ID}",
"controlNo": "{KICC Transaction Sequence Number}",
"shopTransactionId": "{API Idempotency Key}",
"shopOrderNo": "{Merchant Order Number}",
"amount": 51004,
"transactionDate": "20210326090200",
"accepterId": "{Member Store ID}",
"paymentInfo": {
"payMethodTypeCode": "11",
"approvalNo": "00017177",
"vanSerial": "50123011010326090200",
"cardInfo": {
"cardNo": "45184211******81",
"issuerCode": "029",
"acquirerCode": "029",
"installmentMonth": "00"
}
}
}