Cancellation Notification (Webhook)
You can receive the payment cancellation result at the notifyUrl specified during the cancellation request.
Your server must be implemented to handle this notification as described below.
Retry Policy & Fallback
- Retry Policy: For WeChat Pay, if a success response is not received, the notification is resent up to 15 times.
- Fallback: If you do not receive a notification for a certain period, please use the Check Cancellation Status API to verify the transaction status.
Critical Requirements
- Registration: You must inform your KICC sales representative of your
notifyUrlbefore launching the service. - Timeout: Your server must respond to the notification within 10 seconds.
Firewall Settings
Please configure your server's firewall to allow inbound traffic from the following IPs.
| Environment | Source IP | Description |
|---|---|---|
| Production | 203.233.72.66 | INBOUND |
| Development | 61.33.205.151 | INBOUND |
Integration Guide
HTTP Header
The notification is sent as a POST request with the following header.
Header Info
POST https://{Your Cancellation notifyUrl}
Content-type: application/json; charset=utf-8
HTTP Body (Incoming Request)
| Field Name | Type | Length | Required | Description |
|---|---|---|---|---|
| resCd | String | 4Byte | ✅ | Result Code (Success: "0000") |
| resMsg | String | 1000Byte | ✅ | Result Message |
| mallId | String | 8Byte | Merchant ID assigned by KICC | |
| shopOrderNo | String | 40Byte | Merchant Order No. | |
| pgCno | String | 20Byte | Original Payment Transaction ID | |
| cancelPgCno | String | 20Byte | Cancellation Transaction ID | |
| cancelDate | String | 14Byte | Cancellation Date/Time (yyyyMMddHHmmss) | |
| amountInfo | Object | Cancellation Amount Info (See amountInfo below) |
amountInfo (Cancellation Amount Info)
| Field Name | Type | Length | Required | Description |
|---|---|---|---|---|
| currency | String | 2Byte | ✅ | Currency Code |
| amount | Number | ✅ | Cancellation Amount |
Response Requirement (Ack)
Your server must respond with a JSON object containing the result of your internal processing.
| Field Name | Type | Length | Required | Description |
|---|---|---|---|---|
| resCd | String | 4Byte | ✅ | Response Code (Success: "0000") |
| resMsg | String | 1000Byte | ✅ | Response Message (Failure reason if applicable) |
| pgCno | String | 20Byte | ✅ | KICC Payment Transaction ID (Echo back the received value) |
Response Example
{
// If processed successfully
"resCd": "0000",
"resMsg": "Success",
"pgCno": "{KICC Payment Transaction ID}"
// If internal processing failed
"resCd": "5001",
"resMsg": "Internal DB Error",
"pgCno": "{KICC Payment Transaction ID}"
}