한국결제네트웍스(KPN)
한국결제네트웍스(KPN) 결제 연동 방법을 안내합니다.
채널 설정하기
- 결제대행사 채널 설정하기의 내용을 참고하여 PG 설정을 진행합니다.
사전 계약 안내
아래 기능을 사용하시려면 한국결제네트웍스(KPN)에 사전 신청 후 계약이 완료되어야 합니다. 그렇지 않은 상태에서 해당 기능 이용시 결제 승인에 실패하거나, 승인에 성공하더라도 의도한 바와는 다른 응답(ex. 결제창에서 에스크로 결제를 했으나 비-에스크로 결제 응답을 받음)을 얻게 될 수 있으니 주의해주시기 바랍니다.
- API를 통한 수기(키인) 결제 (카드, 가상계좌)
- API를 통한 빌링키 발급
- 에스크로 결제 (결제창)
- 가상계좌 입금통보 설정 (백노티)
- 상점분담무이자 설정
- 부분무이자 설정
- 비과세 금액 직접 설정
- 간편결제 다이렉트 호출
- 결제 취소 시 계좌 환불 서비스 설정
가능한 결제 수단
-
결제창 일반 결제
payMethod
파라미터를 결제 수단에 따라 아래와 같이 설정해야 합니다.- 카드 :
CARD
- 계좌이체 :
TRANSFER
- 가상계좌 :
VIRTUAL_ACCOUNT
- 휴대폰 소액 결제 :
MOBILE
- 간편결제 :
EASY_PAY
- 카드 :
-
결제창 빌링키 발급
billingKeyMethod
파라미터를 결제 수단에 따라 아래와 같이 설정해야 합니다.- 카드:
CARD
- 카드:
-
API 수기(키인) 결제
method
파라미터를 결제 수단에 따라 아래와 같이 설정해야 합니다.- 카드:
card
로 설졍하여 카드 관련 파라미터 입력 - 가상계좌:
virtualAccount
로 설정하여 가상계좌 관련 파라미터 입력
자세한 파라미터 구성은 REST API Docs 를 참고해주시기 바랍니다.
- 카드:
-
API 빌링키 발급
method
파라미터를 결제 수단에 따라 아래와 같이 설정해야 합니다.- 카드:
card
로 설졍하여 카드 관련 파라미터 입력
자세한 파라미터 구성은 REST API Docs를 참고해주시기 바랍니다.
- 카드:
SDK 결제 요청하기
결제 요청 시에는 requestPayment
함수를 호출해야 합니다.
channelKey
파라미터에 결제 채널 연동 후 생성된 채널 키를 지정하여 한국결제네트웍스(KPN) 채널 사용을 명시해주세요.
한국결제네트웍스(KPN) 기준으로 작성한 예시 코드는 아래와 같습니다.
SDK 결제 요청import * as PortOne from "@portone/browser-sdk/v2"; function requestPayment() { PortOne.requestPayment({ storeId: "store-4ff4af41-85e3-4559-8eb8-0d08a2c6ceec", // 고객사 storeId로 변경해주세요. channelKey: "channel-key-9987cb87-6458-4888-b94e-68d9a2da896d", // 콘솔 결제 연동 화면에서 채널 연동 시 생성된 채널 키를 입력해주세요. paymentId: `payment${Math.random().toString(36).slice(2)}`, orderName: "나이키 와플 트레이너 2 SD", totalAmount: 1000, currency: "CURRENCY_KRW", payMethod: "CARD", }); }
주요 파라미터
스토어 아이디
포트원 계정에 생성된 상점을 식별하는 고유한 값으로 관리자 콘솔에서 확인할 수 있습니다.
고객사 주문 고유 번호
고객사에서 채번하는 주문 고유 번호로 매번 고유하게 채번되어야 합니다. 이미 승인 완료된 paymentId
로 결제를 시도하는 경우 에러가 발생합니다.
주문명
주문명으로 고객사에서 자유롭게 입력합니다.
채널 키
포트원 콘솔 내 [결제연동] > [채널관리] 화면에서 채널 추가 시 생성되는 값입니다. 결제 호출 시 채널을 지정할 때 사용됩니다.
결제 금액
결제 금액으로 결제를 원하는 통화(currency)별 scale factor(소수점 몇번째 자리까지 유효한지)를 고려한 number 형식만 허용됩니다.
결제 통화
결제통화로 원화 결제 시 KRW
로 입력해야 합니다.
결제수단 구분코드
결제 호출 시 결제수단을 지정할 때 사용됩니다.
- 신용카드 :
CARD
- 실시간 계좌이체 :
TRANSFER
- 가상계좌 :
VIRTUAL_ACCOUNT
- 휴대폰 소액결제 :
MOBILE
- 간편 결제 :
EASY_PAY
PG사 결제창 호출 시 PG사로 그대로 bypass할 파라미터들의 모음
한국결제네트웍스(KPN)에서 제공하는 파라미터
일부 렌더링할 결제방식 목록
특정 카드사로 구별되지 않는 결제수단을 지정할 때 사용합니다.
- 해외카드 (VISA + MASTER + JCB) :
GLOBAL
- 구인증 :
LEGACY_AUTH
- 키인 :
KEY_IN
유의사항
공통
카드 결제
간편 결제
계좌이체
가상계좌 결제
휴대폰 소액결제
SDK 빌링키 발급 요청하기
빌링키 발급 요청 시에는 requestIssueBillingKey
함수를 호출해야 합니다.
channelKey
파라미터에 결제 채널 연동 후 생성된 채널 키를 지정하여 한국결제네트웍스(KPN) 채널 사용을 명시해주세요.
한국결제네트웍스(KPN) 기준으로 작성한 예시 코드는 아래와 같습니다.
SDK 빌링키 발급 요청import * as PortOne from "@portone/browser-sdk/v2"; function requestIssueBillingKey() { PortOne.requestIssueBillingKey({ storeId: "store-4ff4af41-85e3-4559-8eb8-0d08a2c6ceec", // 고객사 storeId로 변경해주세요. channelKey: "channel-key-3b37819a-1c72-4deb-a245-8c810af5403d", // 콘솔 결제 연동 화면에서 채널 연동 시 생성된 채널 키를 입력해주세요. billingKeyMethod: "CARD", issueId: "test-issueId", issueName: "test-issueName", customer: { customerId: "uniqueCustomerId", fullName: "포트원", }, }); }
주요 파라미터
스토어 아이디
포트원 계정에 생성된 상점을 식별하는 고유한 값으로 관리자 콘솔에서 확인할 수 있습니다.
채널 키
포트원 콘솔 내 [결제연동] > [채널관리] 화면에서 채널 추가 시 생성되는 값입니다. 결제 호출 시 채널을 지정할 때 사용됩니다.
빌링키 발급수단
한국결제네트웍스(KPN)는 빌링키 발급 수단으로 카드만을 지원하므로 해당 파라미터는 CARD
로 고정해야 합니다.
고객 정보
구매자 고유 ID
- 한국결제네트웍스(KPN)의 경우 구매자 ID를 필수로 입력해야 합니다.
구매자 전체 이름
- 한국결제네트웍스(KPN)의 경우
fullName
혹은 (firstName
+lastName
)을 필수로 입력해야 합니다.
구매자 이름
- 한국결제네트웍스(KPN)의 경우
fullName
혹은 (firstName
+lastName
)을 필수로 입력해야 합니다.
구매자 성
- 한국결제네트웍스(KPN)의 경우
fullName
혹은 (firstName
+lastName
)을 필수로 입력해야 합니다.
유의사항
API 수기(키인) 결제 요청하기
수기(키인)로 결제하기 위해서는 POST /payments/${PAYMENT_ID_HERE}/instant
API를 통해 결제를 요청해야 합니다.
API 수기(키인) 결제 요청// ... 수기(키인) 결제 const issueResponse = await axios({ url: `https://api.portone.io/payments/${PAYMENT_ID_HERE}/instant`, method: "post", headers: { Authorization: `PortOne ${PORTONE_API_SECRET}` }, data: { paymentId: `payment${Math.random().toString(36).slice(2)}`, channelKey: "channel-key-9987cb87-****-****-****-********896d", // 콘솔 결제 연동 화면에서 채널 연동 시 생성된 채널 키를 입력해주세요. orderName: "나이키 와플 트레이너 2 SD", amount: { total: 10000, taxFree: 3000, }, currency: "KRW", customer: { name: { full: "홍길동", }, phoneNumber: "010-1234-0000", }, method: { virtualAccount: { bank: `SHINHAN`, expiry: { dueDate: `2024-11-12T00:00:00+09+00`, // 입금기한은 미래시간만 가능합니다. }, cashReceipt: { type: `PERSONAL`, customerIdentityNumber: `010-1234-0000`, }, }, }, }, });
주요 파라미터
고객사 주문 고유 번호
고객사에서 채번하는 주문 고유 번호로 매번 고유하게 채번되어야 합니다. 이미 승인 완료된 paymentId
로 결제를 시도하는 경우 에러가 발생합니다.
주문명
주문명으로 고객사에서 자유롭게 입력합니다.
채널 키
포트원 콘솔 내 [결제연동] > [채널관리] 화면에서 채널 추가 시 생성되는 값입니다. 결제 호출 시 채널을 지정할 때 사용됩니다.
결제 금액
총 결제 금액
결제 금액으로 결제를 원하는 통화(currency)별 scale factor(소수점 몇번째 자리까지 유효한지)를 고려한 number 형식만 허용됩니다.
면세액
결제 금액으로 결제를 원하는 통화(currency)별 scale factor(소수점 몇번째 자리까지 유효한지)를 고려한 number 형식만 허용됩니다.
결제 통화
결제통화로 원화 결제 시 KRW
로 입력해야 합니다.
결제수단 정보
가상계좌 결제 시 파라미터
발급 은행
- 은행코드는 ENUM으로 정의되어 있습니다.
- BANK ENUM 바로가기
입금 만료 기한
유효 시간
만료 시점
시간은 ISO8601 형식으로 입력해야 합니다.
가상계좌 발급 방식
가상계좌 발급 유형
발급 유형은 ENUM으로 정의되어 있습니다.
- 회전식 가상계좌 :
NORMAL
한국결제네트웍스(KPN)의 경우 회전식 가상계좌(NORMAL
)만 지원합니다.
회전식 가상계좌는 일반적으로 사용되는 방식이며 PG사에서 직접 채번한 가상계좌번호를 사용합니다.
현금영수증 정보
발급 유형
발급 유형은 ENUM으로 정의되어 있습니다.
- 소득공제용 :
PERSONAL
- 지출증빙용 :
CORPORATE
- 미발행 :
NO_RECEIPT
현금영수증 식별 번호
- 소득공제인 경우 주민등록번호 혹은 휴대폰 번호를 입력해야 합니다.
- 지출증빙인 경우 사업자등록번호를 입력해야 합니다.
카드 결제 시 파라미터
인증 관련 정보
카드 번호
유효 기간 만료 연도 (YY 형식 ex. 24)
유효기간 만료 월 (MM 형식 ex. 05)
생년월일 6자리 또는 사업자 등록 번호
비밀번호 앞 두자리
고객 정보
고객 이름
한 줄 이름 형식 (ex. 김포트)
분리된 이름
이름
성
구매자 연락처
유의사항
API 빌링키 발급 요청하기
빌링키를 발급하기 위해서는 POST /billing-keys
API를 이용하여 빌링키 발급을 요청해야 합니다.
한국결제네트웍스(KPN) 기준으로 작성한 예시 코드는 아래와 같습니다.
API 빌링키 발급 요청const issueResponse = await axios({ url: "https://api.portone.io/billing-keys", method: "post", headers: { Authorization: `PortOne ${PORTONE_API_SECRET}` }, data: { channelKey: "channel-key-9987cb87-****-****-****-********896d", // 콘솔 결제 연동 화면에서 채널 연동 시 생성된 채널 키를 입력해주세요. customer: { id: "customer-1234", // 고객사에서 관리하는 고객 고유번호 name: { full: "홍길동", }, phoneNumber: "010-1234-0000", }, method: { card: { credential: { number: "1111111111111111", expiryMonth: "01", expiryYear: "20", birthOrBusinessRegistrationNumber: "900101", passwordTwoDigits: "00", }, }, }, }, });
주요 파라미터
채널 키
포트원 콘솔 내 [결제연동] > [채널관리] 화면에서 채널 추가 시 생성되는 값입니다. 결제 호출 시 채널을 지정할 때 사용됩니다.
결제수단 정보
카드 빌링키 발급 시 파라미터
인증 관련 정보
카드 번호
유효 기간 만료 연도 (YY 형식 ex. 24)
유효기간 만료 월 (MM 형식 ex. 05)
생년월일 또는 사업자 등록 번호
비밀번호 앞 두자리
고객 정보
고객 이름
- 한국결제네트웍스(KPN)의 경우 full 혹은 separated를 필수로 입력해야 합니다.
한 줄 이름 형식 (ex. 김포트)
분리된 이름
이름
성
구매자 연락처
유의사항
API 빌링키 단건 결제 요청하기
발급된 빌링키로 단건 결제를 진행하려면 POST /payments/${PAYMENT_ID_HERE}/billing-key
API를 이용하여 결제를 요청하실 수 있습니다.
한국결제네트웍스(KPN) 기준으로 작성한 예시 코드는 아래와 같습니다.
API 빌링키 단건 결제const response = await axios({ url: `https://api.portone.io/payments/${PAYMENT_ID_HERE}/billing-key`, method: "post", headers: { Authorization: `PortOne ${PORTONE_API_SECRET}` }, data: { billingKey: "billing-key-1", // 빌링키 발급 API를 통해 발급받은 빌링키 orderName: "월간 이용권 정기결제", customer: { id: "customer-1234", // 고객사에서 관리하는 고객 고유번호 phoneNumber: `010-1234-5678`, email: `test@test.com`, }, amount: { total: 10000, }, currency: "KRW", productCount: 1, }, });
주요 파라미터
결제 주문 번호
- 고객사에서 채번하여 사용하는 주문번호로 고유한 값이여야 합니다.
- URL path에 포함하여 요청해야 합니다.
빌링키 결제에 사용할 빌링키
주문명
결제 금액
총 결제 금액
결제 금액으로 결제를 원하는 통화(currency)별 scale factor(소수점 몇번째 자리까지 유효한지)를 고려한 number 형식만 허용됩니다.
면세액
결제 금액으로 결제를 원하는 통화(currency)별 scale factor(소수점 몇번째 자리까지 유효한지)를 고려한 number 형식만 허용됩니다.
결제 통화
결제통화로 원화 결제 시 KRW
로 입력해야 합니다.
고객 정보
고객 이름
한 줄 이름 형식 (ex. 김포트)
분리된 이름
이름
성
구매자 연락처
구매자 이메일
API 빌링키 예약/반복 결제 요청하기
예약 결제를 진행하려면 POST /payments/${PAYMENT_ID_HERE}/schedule
API를 이용하여 결제를 예약하실 수 있습니다.
한국결제네트웍스(KPN) 기준으로 작성한 예시 코드는 아래와 같습니다.
API 예약/반복 결제const response = await axios({ url: `https://api.portone.io/payments/${PAYMENT_ID_HERE}/schedule`, method: "post", headers: { Authorization: `PortOne ${PORTONE_API_SECRET}` }, data: { payment: { billingKey: "billing-key-1", // 빌링키 발급 API를 통해 발급받은 빌링키 orderName: "월간 이용권 정기결제", customer: { id: "customer-1234", // 고객사에서 관리하는 고객 고유번호 }, amount: { total: 10000, taxFree: 3000, }, currency: "KRW", }, timeToPay: "2023-01-01 00:00:00", // 결제를 시도할 시각이며 미래 시각만 가능합니다. }, });
주요 파라미터
결제 주문 번호
- 고객사에서 채번하여 사용하는 주문번호로 고유한 값이여야 합니다.
- URL path에 포함하여 요청해야 합니다.
빌링키 결제 요청 입력정보
빌링키 결제에 사용할 빌링키
주문명
결제 금액
총 결제 금액
결제 금액으로 결제를 원하는 통화(currency)별 scale factor(소수점 몇번째 자리까지 유효한지)를 고려한 number 형식만 허용됩니다.
면세액
결제 금액으로 결제를 원하는 통화(currency)별 scale factor(소수점 몇번째 자리까지 유효한지)를 고려한 number 형식만 허용됩니다.
결제 통화
결제통화로 원화 결제 시 KRW
로 입력해야 합니다.
결제 예정 시점
고객 정보
고객 이름
- 한국결제네트웍스(KPN)의 경우 full 혹은 separated를 필수로 입력해야 합니다.
한 줄 이름 형식 (ex. 김포트)
분리된 이름
이름
성
구매자 연락처
구매자 이메일