결제 화면 호출 - API

해당 API를 호출하면 응답으로 결제창 호출 URL이 반환됩니다. 해당 URL을 사용자 브라우저에서 직접 호출하거나 리디렉션하여 결제창을 연동할 수 있습니다.

안내사항
  • 결제서비스 UI 인코딩 방식은 UTF-8 입니다.
  • 결제 요청 Timeout은 30분입니다.
  • 파라미터는 별도 공지 없이 추가될 수 있습니다.
주의사항
  • API 방식의 경우 SDK 방식과 달리 당사에서 화면 요소를 관리하지 않으며, 전달받은 URL을 기반으로 고객사에 직접 openType, width, height 등의 화면 구성을 설정하실 수 있습니다.
  • 또한 API 방식에서 directView 옵션을 사용하시는 경우, 카드사 인증 페이지 역시 당사에서 관리하지 않기 때문에 고객사에서 구성해주셔야 합니다.

서비스 흐름

결제 흐름 요약
  1. 결제 URL 요청: API를 호출하여 결제창 URL(forwardUrl)을 받습니다.
  2. 결제 화면 호출: 받은 URL로 사용자를 리디렉션하여 결제창을 띄웁니다.
  3. 인증 완료: 사용자가 결제수단을 선택하고 인증을 완료하면, returnUrl로 결과가 전달됩니다.
  4. 승인 요청: 인증 성공 시 approvalUrl을 사용하여 승인 요청 API를 호출합니다.
  5. 결제 완료: 승인 결과에 따라 사용자에게 결과를 안내합니다.

결제 금액 주의

1,004원은 당사 정책에 따라 매입 처리되지 않으며, 매입 취소도 불가능합니다. 운영환경에서 테스트하실 경우 1,004원 이외의 금액을 사용해 주세요.

요청 파라미터

POST
/api/v1/payments_url
Base URLhttps://dev.firstpay.co.kr
Content-Typeapplication/json

공통

필수
조건부 필수
key타입최대크기필수기본값설명
String2--결제종류. 단일 결제수단만 노출 시 사용
mxIdString12-가맹점 ID
mxIssueNoString32-주문번호 (유니크한 값 권장)
mxIssueDateString14-주문일시 (YYYYMMDDHHMMSS)
orderNameString256-상품명
amountNumber--결제금액
taxAmountNumber---과세결제금액
taxFreeAmountNumber---면세결제금액
custNameString64--주문자 명
emailString64--주문자 이메일주소
phoneNoString32--주문자 휴대폰번호 ('-' 제거)
returnUrlString256-인증 결과 수신 URL
mallApReservedString1024--가맹점필드 (인증 완료 후 리턴)
String20-ko사용언어구분
callHashString--체크용 해시 데이터 : SHA256(mxId + mxIssueNo + amount + passKey)
payMethodViewBoolean--true결제수단 표시 여부
simplepayViewBoolean--true간편결제 결제수단 표시 여부
emailViewBoolean--true이메일 입력 필드 표시 여부
escrowViewBoolean--true에스크로 표시 여부
supportDateViewBoolean--false제공기간 표시 여부
supportDateString256-별도제공기간없음제공기간 노출 텍스트

신용카드 전용

필수
조건부 필수
key타입최대크기필수설명
String10-비인증 방식 결제
String256카드사 코드 (':' 구분자로 여러 카드사 노출 가능)
cardInstallmentString2-카드할부개월

가상계좌 전용

필수
조건부 필수
key타입최대크기필수설명
expireDateString14-가상계좌 만료일시 (YYYYMMDDHHMMSS)
vactNotiUrlString256가상계좌 통보 URL (가상계좌 사용 시 필수)
테스트 환경에서 가상계좌 입금통보 테스트

테스트 환경에서 가상계좌 입금 통보 테스트를 하시려면 별도의 API로 테스트가 가능합니다.

휴대폰 전용

필수
조건부 필수
key타입최대크기필수설명
String1휴대폰 결제 유형 (휴대폰결제 사용 시 필수)

현금영수증 전용

필수
조건부 필수
key타입최대크기필수기본값설명
String1-Y현금영수증 플래그

간편결제 전용

필수
조건부 필수
key타입최대크기필수설명
String10-간편결제 하위 결제수단 코드

다이렉트 전용

필수
조건부 필수
key타입최대크기필수기본값설명
directViewBoolean--false다이렉트 방식 사용여부
escrowTelString32-에스크로 이용자 휴대폰번호
String12현금영수증 구분
receiptValueString20-현금영수증 발행 데이터
네이버페이 다이렉트 호출 시 유의사항

네이버페이는 iframe을 지원하지 않아, layer 방식으로 호출해도 자동으로 popup으로 열립니다.

요청 예시

json
{ "payMethod": "CC", "mxId": "testcorp", "mxIssueNo": "testcorpYYYYMMDD00001", "mxIssueDate": "YYYYMMDDHHMMSS", "orderName": "상품명", "amount": 1000, "custName": "퍼스트", "email": "testpg@kpn.co.kr", "phoneNo": "01012345678", "returnUrl": "https://{your-returnUrl}", "callHash": "SHA256(mxId + mxIssueNo + amount + passKey)", "lang": "ko" }

응답 파라미터

API 응답은 서비스 API 공통 형식을 따릅니다. data 필드 상세는 아래와 같습니다.

필수
조건부 필수
key타입최대크기필수설명
forwardUrlString-PC 결제창 호출 URL
forwardMUrlString-모바일 결제창 호출 URL
다음 단계
  • 응답받은 forwardUrl 또는 forwardMUrl리디렉션하여 결제창을 호출합니다.
  • 결제창 호출 후 returnUrl로 응답값이 나가게 됩니다.

returnUrl로 인증 완료 응답받기

전달 파라미터

KPN 결제창에서 완료한 경우, returnUrl에 설정된 곳으로 응답 데이터(Form Submit)가 전달됩니다.

POST
가맹점 도메인/{returnUrl}
Base URL가맹점 도메인
Content-Typeapplication/x-www-form-urlencoded
필수
조건부 필수
key타입최대크기필수설명
mxIdString12가맹점 ID
mxIssueNoString32주문번호
mxIssueDateString14주문일시
amountString12결제금액
mallApReservedString1024-가맹점필드
codeString4에러코드 (성공: 0000)
messageString--에러메세지 (실패인 경우 리턴)
fdTidString18-KPN 인증 거래번호 (성공인 경우 리턴)
approvalUrlString--승인 요청 URL (성공인 경우 리턴)
다음 단계

응답 파라미터의 code0000(성공)인 경우, approvalUrl을 사용하여 승인 요청을 진행해야 실제 결제가 이루어집니다.