본인확인
본인확인 서비스(ver. V2) 연동하기
NHN KCP 본인확인 V2 서비스는 고객이 본인확인 화면에서 인증을 완료하면 인증 결과를 가맹점으로 전달하는 서비스입니다.
가맹점은 전달받은 결과를 조회하고 복호화하여 고객 본인 여부를 확인합니다.
본인확인 서비스 과정
본인확인 서버 IP 정보
안정적인 서비스 이용을 위해 도메인 기반 통신을 권장합니다.
IP 기준으로 화이트리스트를 관리하는 가맹점은 서버 방화벽 정보에 기재된 IP를 모두 허용해야 합니다.
| 구분 | 테스트 | 운영 |
|---|---|---|
| URL | testcert.kcp.co.kr | cert.kcp.co.kr |
| IP | 210.122.176.55 | 211.36.208.10, 210.122.74.20 |
| PORT | 443 | 443 |
| 연결방향 | INBOUND/OUTBOUND | INBOUND/OUTBOUND |
ENC_KEY 발급 및 관리 유의사항
ENC_KEY는 본인확인 거래등록과 결과 조회 시 사용합니다. 가맹점만 요청 데이터를 생성하고 해석할 수 있도록 하여,
가맹점 식별과 데이터 위·변조 방지에 사용됩니다.
ENC_KEY 발급경로
파트너관리자 로그인 → 기술관리센터 → 인증센터 → 가맹점 인증키 관리
실제 가맹점 정보로 연동하는 경우, 인증키가 발급 및 적용되지 않은 상태에서는 서비스를 이용할 수 없습니다. 반드시 파트너관리자에서 인증키 발급을 완료한 뒤 가맹점 소스에 적용해야 합니다. 테스트용으로 제공되는 정보는 인증키가 사전에 발급되어 있어 별도 발급 요청 없이 사용할 수 있습니다.
1. Header 설정하기
Header는 본인확인 거래등록과 결과 조회 API를 호출할 때 함께 전달하는 인증 정보입니다.
NHN KCP는 Header 값을 기준으로 가맹점과 요청 데이터를 확인합니다.
요청 데이터 예시
Content-Type : application/json site_cd : AO7F3 rv : Q2hhbmd1VGh......HQ=
Header 설정 값
암호화 데이터 처리
가맹점에서 생성한 JSON 데이터를 NHN KCP가 제공하는 라이브러리의 encryptJson 함수로 암호화하여 enc_data와 rv 값을 생성합니다. 생성된 값은 거래등록 API를 호출할 때 사용합니다.
예시) enc_data, rv = encryptJson(json_text, enc_key, site_cd)2. 거래 등록 하기
본인확인 거래등록은 고객에게 본인확인 화면을 보여주기 전에 인증 URL과 거래등록키를 먼저 발급받는 단계입니다.
거래등록이 완료되면 NHN KCP에서 본인확인 화면 호출과 결과 조회에 필요한 reg_cert_key와 call_url을 응답합니다.
call_url은 본인확인 화면 호출에 사용하므로 거래등록 후 응답받은 값을 그대로 사용하세요.
reg_cert_key는 본인확인창 호출과 본인확인 결과 조회에 사용하므로 가맹점 서버에 저장하여 관리하세요.
3. 본인확인창 호출하기
본인확인 인증창은 PC 환경에서는 팝업 방식으로, Mobile 환경에서는 페이지 전환 방식으로 호출합니다.
거래등록 응답으로 받은 call_url에 파라미터를 form 형태로 전달하여 본인확인 인증창을 호출합니다.


본인확인창 호출 함수
function () { var auth_form = document.form_auth; auth_form.action = auth_form.call_url.value; if (auth_form.kcp_page_submit_yn.value === "N") { var width = 410; var height = 500; var left = (screen.width / 2) - (width / 2); var top = (screen.height / 2) - (height / 2); var opts = "width=" + width + ",height=" + height + ",toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no" + ",left=" + left + ",top=" + top; window.open("", "auth_popup", opts); auth_form.target = "auth_popup"; } else { auth_form.target = "_self"; } auth_form.submit(); }
본인확인창 호출 파라미터
Y : 페이지 전환 방식으로 호출합니다. Mobile 환경에서 사용합니다.
N : 팝업 방식으로 호출합니다.ex) "kcp_page_submit_yn" : "Y"
4. 본인확인창 인증 결과
고객의 본인확인 인증이 완료되면 인증 처리 결과가 Ret_URL을 통해 가맹점으로 전달됩니다.
정상 인증 결과(res_cd=0000)를 받은 뒤에는 반드시 본인확인 결과 조회까지 진행하세요.
본인확인 결과 조회를 진행하지 않으면 고객 정보를 확인할 수 없습니다.
본인확인 인증 결과 파라미터
인증 결과 Callback으로 전달된 reg_cert_key는 가맹점 DB에 저장된 거래등록키와 주문번호가 일치하는지 확인한 뒤 사용합니다.
5. 본인확인 결과 조회하기
가맹점 Ret_URL로 응답받은 인증 결과가 정상인 경우, 가맹점 서버에서 NHN KCP로 본인확인 결과 조회를 요청합니다.
본인확인 결과 조회를 통해 암호화된 고객 인증 데이터를 응답받습니다.
이후 가맹점 서버에서 암호화된 데이터를 복호화하여 CI, DI, 이름 등 인증이 완료된 고객 정보를 확인합니다.
본인확인 결과 조회 요청 전문은 암호화하지 않은 평문 JSON 형태로 전송합니다.
6. 본인확인 결과 복호화
본인확인 결과 조회로 응답받은 암호화 인증 데이터(enc_cert_data, rv)를 NHN KCP가 제공하는 라이브러리의 decryptJson 함수로 복호화합니다. 복호화가 완료되면 고객 인증 정보가 포함된 dec_data를 확인합니다.
예시) dec_data = decryptJson(enc_cert_data, rv, ENC_KEY, SITE_CD) 본인확인 결과 복호화 파라미터
SK텔레콤 : SKT
LG U+ : LGT
KT : KTF
SKT 알뜰폰 : SKM
LG U+ 알뜰폰 : LGM
KT 알뜰폰 : KTMex) "comm_id" : "KTF"
01 : 남성
02 : 여성ex) "sex_code" : "01"
01 : 내국인
02 : 외국인ex) "local_code" : "01"
사용 시 URL 디코딩 후 CI 값으로 처리합니다.※ 해당 값은 웹 화면에 노출되지 않도록 처리해야 합니다.ex) "CI_URL" : "fd3/2Qs0rBa... 2dsdaffdsd=="
APP 연동 시 확인사항
모바일 앱 환경에서 본인확인 서비스를 연동하는 경우, PASS 앱 호출과 가맹점 앱 복귀가 정상적으로 동작하도록 안드로이드 패키지명을 설정해야 합니다. iOS는 Universal Link를 사용하므로 별도의 앱 스키마 설정이 필요하지 않습니다.
안드로이드 앱의 Intent 처리 방식은 앱 구조에 따라 다를 수 있으므로, 안드로이드 앱 개발 가이드를 참고하여 구현하세요.
PASS 앱, AOS 앱 패키지명 등록
※ targetSdkVersion 30(Android 11) 이상을 사용하는 경우, AndroidManifest.xml에 아래 패키지명을 선언해야 합니다.
패키지명이 선언되어 있지 않으면 PASS 앱 호출이 정상적으로 동작하지 않을 수 있으므로 확인하세요.
| 통신사 | 패키지명 |
|---|---|
| SKT | com.sktelecom.tauth |
| KT | com.kt.ktauth |
| LGU+ | com.lguplus.smartotp |