Skip to main content

Payment Approval Notification (Webhook)

You can receive the payment approval result at the notifyUrl specified during transaction creation. 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 Payment Status API to verify the transaction status.
Critical Requirements
  • Registration: You must inform your KICC sales representative of your notifyUrl before launching the service.
  • Integrity Check: If the amount in the notification differs from your internal order amount, you MUST cancel the transaction immediately.
  • DB Failure: If you fail to update your database after receiving the notification, you MUST cancel the transaction.
  • 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.

EnvironmentSource IPDescription
Production203.233.72.66INBOUND
Development61.33.205.151INBOUND

Integration Guide

HTTP Header

The notification is sent as a POST request with the following header.

Header Info
POST https://{Your notifyUrl}
Content-type: application/json; charset=utf-8

HTTP Body (Incoming Request)

Field NameTypeLengthRequiredDescription
resCdString4ByteResult Code (Success: "0000")
resMsgString1000ByteResult Message
mallIdString8ByteMerchant ID assigned by KICC
shopOrderNoString40ByteMerchant Order No.
pgCnoString20ByteKICC Payment Transaction ID
approvalDateString14BytePayment Approval Date/Time (yyyyMMddHHmmss)
amountInfoObjectPayment Amount Info (See amountInfo below)

amountInfo (Payment Amount Info)

Field NameTypeLengthRequiredDescription
currencyString2ByteCurrency Code
amountNumberPayment Amount

Response Requirement (Ack)

Your server must respond with a JSON object containing the result of your internal processing.

Field NameTypeLengthRequiredDescription
resCdString4ByteResponse Code (Success: "0000")
resMsgString1000ByteResponse Message (Failure reason if applicable)
pgCnoString20ByteKICC 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}"
}