승인 요청
결제 화면 호출 이후 응답 파라미터가 성공인 경우 승인 요청을 진행합니다.
승인 요청 전 확인사항
- 결제 화면에서
code가0000(성공)인 경우에만 승인 요청을 진행하세요. - 응답의
code는 통신 성공 여부를 의미하며, 실제 승인 결과는data.replyCode로 확인해야 합니다. replyCode가0000이면 승인 성공, 그 외 값은 승인 실패입니다.approvalUrl에 도메인이 포함됩니다.
결제 금액 주의
1,004원은 당사 정책에 따라 매입 처리되지 않으며, 매입 취소도 불가능합니다. 운영환경에서 테스트하실 경우 1,004원 이외의 금액을 사용해 주세요.
요청 파라미터
POST
/{결제 화면 응답 파라미터 approvalUrl}
Base URL
https://dev.firstpay.co.krContent-Type
application/json필수
조건부 필수
| key | 타입 | 최대크기 | 필수 | 설명 |
|---|---|---|---|---|
mxId | String | 12 | 가맹점 ID | |
mxIssueNo | String | 32 | 주문번호 (결제 화면 호출시 전달한 주문번호) | |
fdTid | String | 40 | KPN 인증 거래번호 | |
callHash | String | - | 체크용 해시 데이터 : SHA256(mxId + mxIssueNo + passKey) | |
mallApReserved | String | 1024 | - | 가맹점필드 (승인 완료 후 전달받은 값 리턴) |
요청 예시
json
{
"mxId": "testcorp",
"mxIssueNo": "YYYYMMDD00001",
"fdTid": "test12345",
"callHash": "SHA256(mxId + mxIssueNo + passKey)"
}응답 파라미터
API 응답은 서비스 API 공통 형식을 따릅니다.
data 필드 상세는 아래와 같습니다.
응답 구조
- 기관사에서 전달하지 않는 필드는 빈 값(
null)일 수 있습니다. - 기관사(카드사 등) 요청 후 승인 실패 시
data내replyCode를 반드시 확인해야 합니다.
공통
필수
조건부 필수
| key | 타입 | 최대크기 | 필수 | 설명 |
|---|---|---|---|---|
| String | 2 | 결제종류 | ||
mxId | String | 12 | 가맹점 ID | |
mxIssueNo | String | 32 | 주문번호 | |
mxIssueDate | String | 14 | 주문일시 (YYYYMMDDHHMMSS) | |
amount | Number | 12 | 결제금액 | |
replyCode | String | 8 | 에러코드 (성공: 0000) | |
replyMessage | String | - | 에러메세지 | |
authDate | String | 14 | 거래시간 (YYYYMMDDHHMMSS) | |
mallApReserved | String | 80 | - | 가맹점필드 |
tid | String | 40 | 거래 ID |
신용카드/간편결제 전용
필수
조건부 필수
| key | 타입 | 최대크기 | 필수 | 설명 |
|---|---|---|---|---|
authNo | String | 12 | - | 승인번호 |
| String | 2 | - | 매입사코드 | |
acqName | String | - | - | 매입사명 |
| String | 2 | - | 발급사코드 | |
issName | String | - | - | 발급사명 |
| String | 1 | - | 체크카드 여부 | |
ccNo | String | - | - | 마스킹 된 카드번호 |
acqNo | String | 12 | - | 가맹점 번호 |
installment | String | 2 | - | 할부개월 |
brandCd | String | 6 | - | 브랜드코드 |
| String | 1 | - | 간편결제 구분 (간편결제인 경우 전달) | |
referenceNo | String | 14 | - | 신용카드 거래고유번호 |
vanReferenceNo | String | 14 | - | VAN 거래고유번호 |
discountAmt | String | 12 | - | 할인 금액 |
finalAmt | String | 12 | - | 최종 결제 금액 |
계좌이체 전용
필수
조건부 필수
| key | 타입 | 최대크기 | 필수 | 설명 |
|---|---|---|---|---|
authNo | String | - | - | 승인번호 |
escrowYn | String | 1 | - | 에스크로 결제 여부 |
escrowCustNo | String | 17 | - | 에스크로 회원번호 |
| String | 3 | - | 은행코드 | |
bankName | String | 30 | - | 은행명 |
acctNo | String | 20 | - | 계좌이체번호 |
| String | 1 | - | 현금영수증 발행여부 | |
cashAuthNo | String | 12 | - | 현금영수증 승인번호 (cashFlag가 Y인 경우) |
| String | 1 | - | 현금영수증 발행구분 (cashFlag가 Y인 경우) |
가상계좌 전용
필수
조건부 필수
| key | 타입 | 최대크기 | 필수 | 설명 |
|---|---|---|---|---|
escrowYn | String | 1 | - | 에스크로 결제 여부 |
escrowCustNo | String | 17 | - | 에스크로 회원번호 |
vactNo | String | 32 | - | 가상계좌번호 |
vactName | String | 64 | - | 가상계좌예금주명 |
| String | 3 | - | 은행코드 | |
bankName | String | 30 | - | 은행명 |
expireDate | String | 14 | - | 가상계좌 만료일시 (YYYYMMDDHHMMSS) |
| String | 1 | - | 현금영수증 발행여부 |
휴대폰 전용
필수
조건부 필수
| key | 타입 | 최대크기 | 필수 | 설명 |
|---|---|---|---|---|
cap | String | 6 | - | 사용가능한 소액 금액 |
네이버페이 전용
필수
조건부 필수
| key | 타입 | 최대크기 | 필수 | 설명 |
|---|---|---|---|---|
| String | 1 | - | 현금영수증 발행여부 | |
cashAuthNo | String | 12 | - | 현금영수증 승인번호 (cashFlag가 Y인 경우) |
| String | 1 | - | 현금영수증 발행구분 (cashFlag가 Y인 경우) | |
cashAmount | Number | 12 | - | 현금영수증 발행금액 |
cashVAT | Number | 12 | - | 현금영수증 부가세 |