KICC payment window integration guide

1. Configure KICC PG settings

Refer to the KICC settings page to configure the PG settings.

2. Request payment

To open the payment window, call JavaScript SDK IMP.request_pay(param, callback).
In PC browsers, callback is invoked after calling IMP.request_pay(param, callback). In mobile browsers, the page is redirected to m_redirect_url.
Authenticated payment request
Non-authenticated payment request
Non-authenticated API request
Javascript SDK
pg : 'kicc',
pay_method : 'card',
merchant_uid : '{Merchant created Order ID}', // Example: order_no_0001
name : 'Order name: Test payment request',
amount : 14000,
buyer_email : '[email protected]',
buyer_name : 'John Doe',
buyer_tel : '010-1234-5678',
buyer_addr : 'Shinsa-dong, Gangnam-gu, Seoul',
buyer_postcode : '123-456',
m_redirect_url : '{Mobile only - URL to redirect to after payment approval}' // Example:
}, function(rsp) { // callback logic
//* ...Omitted... *//

Key parameter description

pg *** **string
PG code
  • If not specified and this is the only PG setting that exists, default PG is automatically set.
  • If there are multiple PG settings, set to kicc.
pay_method *** **string
Payment method code
Payment method codes
  • card (credit card)
  • trans(instant account transfer)
  • vbank(virtual account)
  • phone(mobile micropayment)
merchant_uid *** **string
Order ID
Must be unique for each request.
Customer phone number
amount *** **integer
Payment amount
Must be an integer (not string)
escrow`` boolean
Escrow option
Only supports account transfer and virtual account payment.
To open non-authenticated payment window, specify the customer_uid parameter. After getting a billing key from this window, you can request payment using the billing key.
Javascript SDK
pg : 'kicc',
pay_method : 'card', // only 'card' supported.
merchant_uid : '{Merchant created Order ID}', // Example: issue_billingkey_monthly_0001
name : 'Initial billing key request',
amount : 0, // For display purpose only (no payment approval).
customer_uid : '{Unique ID for the card (billing key)}', // Required (Example: gildong_0001_1234)
buyer_email: "[email protected]",
buyer_name: "John Doe",
buyer_tel : '02-1234-1234',
m_redirect_url : '{redirect URL}' // Example: (for mobile only)
}, function(rsp) {
if ( rsp.success ) {
} else {
  • To request non-authenticated payment, you must set the MID info issued by KICC in the Admin console.
  • KICC does not process the payment when issuing the billing key even if you specify an amount.

Key parameter description

pg *** **string
PG code
  • If not specified and this is the only PG setting that exists, default PG is automatically set.
  • If there are multiple PG settings, set to kicc.[billing MID].
customer_uid *** **string
Credit card billing key
Billing key to be mapped 1:1 with the user-entered credit card information.
amount *** **Integer
Payment amount
Amount to display in the payment window, but actual payment approval is not processed. (To request payment, use the REST API with the customer_uid.)\

Request payment with billing key (customer_uid)

After successfully getting the billing key, the billing key is stored on the i'mport server mapped 1:1 with the specified customer_uid. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the non-authenticated payment request REST API with the customer_uid as follows:
curl -H "Content-Type: application/json" \
-X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \
Not supported.

3. Additional functions

Escrow setting
Direct credit card module call
Enable specific credit cards
KICC supports escrow payments only for cash payment methods (instant account transfer or virtual bank account).
To enable escrow payment, first set the following parameters and then configure additional parameters below.
  • escrow : true

Additional parameters

When making an escrow payment, you must enter the following required parameters:
  • buyer_name : Customer name
  • buyer_email : Customer email
  • buyer_tel : Customer phone number
  • kiccProducts : An array of objects consisting of the following 4 required properties. The amount value has no relation to the payment amount (param.amount) value and is not used for comparison.
    • orderNumber : Product order number
    • name : Product name
    • quantity : Quantity
    • amount : Product price
JavaScript SDK
escrow : true, // Required for escrow payment
kiccProducts : [
"orderNumber" : "xxxx",
"name" : "Product A",
"quantity" : 3,
"amount" : 1000
"orderNumber" : "yyyy",
"name" : "Product B",
"quantity" : 2,
"amount" : 3000
}, function(rsp) { // callback logic
//* ...Omitted ... *//
card: {
direct: {
code: "367",
quota: 3
  • code: Credit card code (string)
  • quota: Installment plan. For immediate, set to 0. (integer)
  • Some PGs do not support direct call to credit card company's payment windows for all Merchant IDs. You must check your Merchant ID with each PG for direct call support.
card : {
detail : [
{card_code:"*", enabled:false}, // Disable all credit cards
{card_code:'366', enabled:true} // Enable specific credit card
  • card_code: Credit card code (string)
  • enabled: Option to enable the credit card (boolean)
Example of enabling only Shinhan Card payment window