거래취소

1취소하기

거래취소는 상점에서 NHN KCP의 거래 상태를 취소하는 방법에 대해 설명합니다. 취소데이터를 API URL로 요청 할 수 있습니다.


거래취소 요청시에는 NHN KCP 발급 서비스 인증서와 부인방지를 위한 서명데이터 값이 필요합니다.
                        

취소등록 API URL (target URL)

Stage : https://stg-spl.kcp.co.kr/gw/mod/v1/cancel
Product : https://spl.kcp.co.kr/gw/mod/v1/cancel

2서비스 인증서

NHN KCP 발급 서비스 인증서는 KCP-API 결제시 필요한 인증서 입니다.
실제 서비스 운영을 위해서는 각 상점에 맞는 서비스 인증서가 필요합니다.

NHN KCP 발급 인증서 내 데이터 값 추출 > 가맹점 인증을 위해 KCP로부터 발급 받은 인증서 정보를 text 형식으로 전달해주셔야 하며, 인증서의 text 값을 데이터 직렬화하여 kcp_cert_info 의 value 값으로 전달하시기 바랍니다.


kcp_cert_info = "-----BEGIN CERTIFICATE-----MIIDgTCCAmmgAwIBAgIHkiG9w0……………
                          fWn5Cay7pJNWXCnw4jIiBsTBa3q95RVRyMEcDgPwugMXPXGBwNoMOOpuQ==-----END CERTIFICATE-----";
                        

kcp_cert_info는 결제 승인, 거래취소, 거래등록 시에 필요합니다.

추가적으로 NHN KCP 상점관리자 [ 기술관리센터 - 인증센터 - KCP PG-API ] 경로에서 개인키 + 인증서 발급이 가능합니다.


3서명데이터

서명데이터(kcp_sign_data)는 가맹점 부인방지와 요청 데이터의 무결성 검증을 위한 데이터이며,
NHN KCP로부터 발급받은 개인키(PRIVATE KEY)로 SHA256withRSA 알고리즘을 사용하여 문자열을 인코딩하는 방식으로 이루어집니다.

kcp_sign_data는 결제 거래취소 시에 필요합니다.

Cancel API 서명데이터(kcp_sign_data)는
site_cd + "^" + tno + "^" + mod_type 규칙으로 생성하며 SHA256withRSA 알고리즘을 통하여 인코딩 후 요청하시기 바랍니다.


kcp_sign_data = "QdwMF6y3GU1JTVkSv7Yn20CCCTeFrKkjvrdZOjShiFibFo...cA0nyX+4HEUZ4Fy3U+htmkZqAfJlje
ujC1KAL5Flnzqbp5Tst5p5SvZ...0qH7NSq0c6BpedDZb04w=="
                        

4취소요청 예시

전체취소


{
 "site_cd"         : "T0000",
 "kcp_cert_info"   : "-----BEGIN CERTIFICATE-----MIIDgTCCAmmgAwIBAgI……………
                          fWn5Cay7pJNWXCnw4jIiBsTBa3q95RVRyMEcDgPwugMXPXGBwNoMOOpuQ==-----END CERTIFICATE-----",
 "kcp_sign_data"   : "QdwMF6y3GU1JTVkSv7Yn20CCCTeFrKkjvrdZOjShiFibFo...
                          cA0nyX+4HEUZ4Fy3U+htmkZqAfJljeujC1KAL5Flnzqbp5Tst5p5SvZ...0qH7NSq0c6BpedDZb04w==",
 "mod_type"        : "STSC",
 "tno"             : "2099123112345"
}
                        

부분취소


{
 "site_cd"         : "T0000",
 "kcp_cert_info"   : "-----BEGIN CERTIFICATE-----MIIDgTCCAmmgAwIBAgI……………
                          fWn5Cay7pJNWXCnw4jIiBsTBa3q95RVRyMEcDgPwugMXPXGBwNoMOOpuQ==-----END CERTIFICATE-----",
 "kcp_sign_data"   : "QdwMF6y3GU1JTVkSv7Yn20CCCTeFrKkjvrdZOjShiFibFo...
                          cA0nyX+4HEUZ4Fy3U+htmkZqAfJljeujC1KAL5Flnzqbp5Tst5p5SvZ...0qH7NSq0c6BpedDZb04w==",
 "mod_type"        : "STPC",
 "tno"             : "2099123112345",
 "mod_mny"         : "5000",
 "rem_mny"         : "10000",
 "mod_desc"        : "취소 사유를 입력하세요"
}
                        

5파라미터

취소 파라미터

요청 파라미터


string5

site_cd

KCP발급 사이트(상점)코드
테스트코드 : T0000
ex) "site_cd" : "T0000"

string14

tno

NHN KCP 거래 고유번호
ex) "tno" : "24123456789012"

string가변

kcp_cert_info

KCP 인증서정보(직렬화)
관리자 페이지에서 발급받은 인증서 정보(직렬화 하여 요청)
ex) "kcp_cert_info" : "-----BEGIN CERTIFICATE-----MIIDgTCCAmmgAwIBAgIHkiG9w0…………Cay7pJNWXCnw4jIiBsTBa3q95RVRyMEcDgPwugMXPXGBwNoMOOpuQ==-----END CERTIFICATE-----"

string가변

kcp_sign_data

KCP 암호화데이터
site_cd + "^" + tno + "^" + mod_type
ex) "kcp_sign_data" : "QdwMF6y3GU1JTVkSv7Yn20CCCTeFrKkjvrdZOjShiFibFo... cA0nyX+4HEUZ4Fy3U+htmkZqAfJljeujC1KAL5Flnzqbp5Tst5p5SvZ... 0qH7NSq0c6BpedDZb04w=="

string4

mod_type

전체 승인취소 - STSC / 부분취소 - STPC
ex) "mod_type" : "STSC"

number12

mod_mny

부분취소일 경우 부분취소금액
ex) "mod_mny" : "500"

number12

rem_mny

부분취소일 경우 남은 원거래 금액
ex) "rem_mny" : "1004"

string100

mod_desc

취소사유
ex) "mod_desc" : "고객변심"

string4

tax_flag

복합과세 구문
복합과세 거래를 부분취소 할 때 사용하며 TG03 고정값이 사용됩니다.
복합과세 부분취소 시에는 요청금액이 부분 취소 요청 공금가액, 부가가치세, 비과세를 합한 금액과 동일해야 합니다.
(mod_mny = mod_tax_mny + mod_vat_mny + mod_free_mny)
ex) "tax_flag" : "TG03"

number12

mod_tax_mny

부분취소 공급가액
부분취소 요청 금액 중(mod_mny) 공급가액에 해당하는 금액을 입력합니다.
ex) "mod_tax_mny" : "363"

number12

mod_vat_mny

부분취소 부가가치세
부분취소 요청 금액 중(mod_mny) 부가가치세에 해당하는 금액을 입력합니다.
부가가치세는 부분취소 요청 금액 mod_mny 중 부분취소 비과세 금액을 제외한 금액의 10%입니다.
ex) "mod_vat_mny" : "37"

number12

mod_free_mny

부분취소 비과세
부분취소 요청 금액 중(mod_mny) 비과세에 해당하는 금액을 입력합니다.
ex) "mod_free_mny" : "0"

응답 파라미터


string4

res_cd

결과코드
정상 승인이 이루어졌을 경우 ‘0000’ 값 리턴
ex) "res_cd" : "0000"

string100

res_msg

결과메세지
ex) "res_msg" : "정상처리"

string14

tno

NHN KCP 거래 고유번호
※ 거래고유번호 전체로 사용 하시기 바랍니다. (임의의 숫자나 파싱하여 사용 불가)
ex) "tno" : "24123456789012"

string14

canc_time

취소시각
ex) "canc_time" : "20240131235959"

number12

mod_mny

부분취소일 경우 부분취소금액
ex) "mod_mny" : "500"

number12

rem_mny

부분취소일 경우 남은 원거래 금액
ex) "rem_mny" : "504"

string14

mod_pcan_seq_no

부분취소 일련번호
ex) "mod_pcan_seq_no" : "24080546646043"

number12

card_mod_mny

카드취소금액(부분취소일 경우)
부분취소금액 중 카드취소 금액
ex) "card_mod_mny" : "500"

number12

coupon_mod_mny

쿠폰취소금액(부분취소일 경우)
부분취소금액 중 쿠폰취소 금액
ex) "coupon_mod_mny" : "0"