# KICC

{% hint style="warning" %}
**Deprecated**

이 문서는 더 이상 관리되지 않습니다.

[PortOne 개발자센터](https://developers.portone.io/)를 이용해주세요.
{% endhint %}

### 1. KICC PG 설정하기

[**KICC 설정**](/docs/ready/2.-pg/payment-gateway/kicc.md) 페이지의 내용을 참고하여 PG 설정을 진행합니다.

![](/files/CkkfYsiozHrgqFuK3Mmz)

### 2.결제 요청하기

{% tabs %}
{% tab title="인증결제" %}
[JavaScript SDK](/docs/sdk/javascript-sdk-old.md) IMP.**request\_pay**(param, callback)을 호출하여 KICC 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 IMP.request\_pay(param, callback) 호출 후 <mark style="color:red;">**callback**</mark> 으로 수신되고 모바일의 경우<mark style="color:red;">**m\_redirect\_url**</mark> 로 리디렉션됩니다.

{% code title="Javascript SDK" %}

```javascript
IMP.request_pay({
    pg : 'kicc.{상점 ID}',
    pay_method : 'card',
    merchant_uid: "order_no_0001", //상점에서 생성한 고유 주문번호
    name : '주문명:결제테스트',
    amount : 1004,
    buyer_email : 'test@portone.io',
    buyer_name : '구매자이름',
    buyer_tel : '010-1234-5678',  //필수 
    buyer_addr : '서울특별시 강남구 삼성동',
    buyer_postcode : '123-456',
    m_redirect_url : '{모바일에서 결제 완료 후 리디렉션 될 URL}'
}, function(rsp) { // callback 로직
	//* ...중략... *//
});
```

{% endcode %}

#### 주요 파라미터 설명

**`pg` \***<mark style="color:green;">**string**</mark>

**PG사 구분코드**

**`kicc`** 로 지정하면 됩니다.

**`pay_method`** <mark style="color:red;">**\***</mark> <mark style="color:green;">**string**</mark>

**결제수단 구분코드**

* card(신용카드)
* trans(실시간 계좌이체)
* vbank(가상계좌)
* phone(휴대폰소액결제)

**`merchant_uid`** <mark style="color:red;">**\***</mark> <mark style="color:green;">**string**</mark>

**주문번호**

매번 고유하게 채번되어야 합니다.

**`buyer_tel`** <mark style="color:red;">**\***</mark> <mark style="color:green;">**`string`**</mark>

**`주문자 연락처`**

**`amount` \***<mark style="color:purple;">**integer**</mark>

**결제금액**

<mark style="color:green;">**string**</mark> 이 아닌점에 유의하세요

**`escrow`** <mark style="color:orange;">**`boolean`**</mark>

**에스크로 설정여부**

계좌이체,가상계좌만 지원됩니다.

{% embed url="<https://codepen.io/chaiport/pen/YzevrGz>" %}
{% endtab %}

{% tab title="비인증 결제(결제창)" %}
인증결제창 호출 파라미터에서 **customer\_uid** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. 비 인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다.

{% code title="Javascript SDK" %}

```javascript
IMP.request_pay({
    pg : 'kicc',
    pay_method : 'card', // 'card'만 지원됩니다.
    merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호
    name : '최초인증결제',
    amount : 1004, // 결제창에 표시될 금액. 실제 승인이 이뤄지지는 않습니다.
    customer_uid : 'your-customer-unique-id', // 필수 입력.
    buyer_email : 'test@portone.io',
    buyer_name : '포트원',
    buyer_tel : '02-1234-1234',
    m_redirect_url : '{모바일에서 결제 완료 후 리디렉션 될 URL}' 
}, function(rsp) {
    if ( rsp.success ) {
        alert('빌링키 발급 성공');
    } else {
        alert('빌링키 발급 실패');
    }
});
```

{% endcode %}

{% hint style="info" %}

* 비 인증 결제를 위해서는 **KICC와 협의가 완료된 MID 정보** 관리자콘솔에 설정하셔야 비인증 결제창을 활성화 시킬수 있습니다.
* KICC는 빌링키 발급시 <mark style="color:red;">**실 결제 발생되지 않습니다**</mark>.(금액을 지정해도 결제가 발생되지 않음)
  {% endhint %}

**주요 파라미터 설명**

**`pg` \***<mark style="color:green;">**string**</mark>

**PG사 구분코드**

**`kicc.<KICC와 협의가 완료된 MID>`** 로 지정하면 됩니다.

**`customer_uid` \***<mark style="color:green;">**string**</mark>

**카드 빌링키**

비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다.

**`amount` \***<mark style="color:purple;">**Integer**</mark>

**결제금액**

결제창에 표시될 금액으로 <mark style="color:red;">실제 승인은 이루어지지 않습니다.</mark>

(실 결제를 발생시키기 위해서는 **customer\_uid** 로 **REST API 를 이용하여 결제요청**을 해주셔야 합니다.)\\

**빌링키(customer\_uid)로 결제 요청하기**

빌링키 발급이 성공하면 실 빌링키는 customer\_uid 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. customer\_uid를 가맹점 내부서버에 저장하시고 [<mark style="color:blue;">**비 인증 결제요청 REST API**</mark>](/docs/api/api-4/api.md) 를 호출하시면 결제를 발생시킬 수 있습니다.

{% code title="server-side" %}

```
curl -H "Content-Type: application/json" \   
     -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":1004}' \
     https://api.iamport.kr/subscribe/payments/again
```

{% endcode %}

<mark style="color:red;">**포트원을 통한 KICC API 방식 비 인증 결제는 지원되지 않습니다.**</mark>
{% endtab %}
{% endtabs %}

### 3. 부가기능

{% tabs %}
{% tab title="에스크로 설정" %}
KICC는 **현금성 결제수단** (실시간계좌이체, 가상계좌)에 한하여 에스크로 결제수단을 지원합니다.

> 에스크로 설정을 위해서는 아래 파라미터를 기본적으로 설정한 후 추가적인 파라미터를
>
> 입력해야 합니다.
>
> * **escrow : true**

**추가 파라미터 안내**

에스크로 결제 시 다음 파라미터를 반드시 설정해야 합니다.

* `buyer_name` : 구매자 이름
* `buyer_email` : 구매자 이메일
* `buyer_tel` : 구매자 전화번호
* `kiccProducts` : 상품별 부분배송을 위한 상품 관련 정보 (4개의 필수 속성으로 구성된 객체배열). 해당 `amount` 값은 결제 금액(`param.amount`) 값과 관계가 없으며 비교검증되지 않습니다.
  * `orderNumber` : 상품주문번호
  * `name` : 상품명
  * `quantity` : 수량
  * `amount` : 상품 가격

{% code title="JavaScript SDK" %}

```javascript
IMP.request_pay({
   ...
   escrow : true, //에스크로 결제인 경우 필요
   kiccProducts : [
    	       {
			"orderNumber" : "xxxx",
			"name" : "상품A",
			"quantity" : 3,
			"amount" : 1000
		},
		{
			"orderNumber" : "yyyy",
			"name" : "상품B",
			"quantity" : 2,
			"amount" : 3000
		}
	       ]
    ...
}, function(rsp) { // callback 로직
	//* ...중략 ... *//
});
```

{% endcode %}
{% endtab %}

{% tab title="카드사 모듈 바로 호출" %}
{% code title="javascript" %}

```javascript
card: {
     direct: {
        code: "367",
        quota: 3
    }
}
```

{% endcode %}

**파라미터 설명**

* **code** : 카드사 금융결제원 표준 코드. [<mark style="color:red;">**링크**</mark>](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string**)
* **quota** : 할부 개월 수. 일시불일 시 0 으로 지정. (**integer**)

{% hint style="danger" %}
**주의사항**

* 일부 PG사의 경우, 모든 상점아이디에 대하여 카드사 결제창 direct 노출 기능을 지원하지 않습니다. 반드시 포트원을 통해 현재 사용중인 상점아이디가 카드사 결제창 direct 호출이 가능하도록 설정이 되어있는지 PG사에 확인이 필요합니다.
  {% endhint %}
  {% endtab %}

{% tab title="특정 카드사 노출" %}
{% code title="javascript" %}

```javascript
card : {
    detail : [
        {card_code:"*", enabled:false},     //모든 카드사 비활성화
        {card_code:'366', enabled:true}     //특정 카드만 활성화
    ]
}
```

{% endcode %}

**파라미터 설명**

* **card\_code :** 금결원 카드사코드 [<mark style="color:red;">**링크**</mark>](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (<mark style="color:green;">**string)**</mark>
* **enabled :** 해당카드 활성화 여부 (<mark style="color:orange;">**boolean)**</mark>

{% embed url="<https://codepen.io/chaiport/pen/MWQKdVo>" %} <mark style="color:red;">**신한카드**</mark>**만 결제창 노출 처리 예제**
{% endembed %}
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://portone.gitbook.io/docs/pg/payment-gateway/kicc.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
