본문으로 건너뛰기

결제 승인

정기 결제 승인 요청하는 API 입니다.

주의사항
  • 응답 대기시간 초과 및 네트워크 오류로 응답을 받지 못한 경우 반드시 거래상태 조회를 통해 PG 거래고유번호를 조회 후 취소처리 바랍니다. 거래상태 조회 참고
  • 승인결과의 결제금액과 상점의 결제금액이 상이할 시 반드시 취소처리 바랍니다.
  • 승인결과에 대한 상점 DB 처리 실패 시 반드시 취소처리 바랍니다

요청​

요청 URL
POST https://{API 도메인}/api/trades/approval/batch
Content-type: application/json; charset=utf-8
참고

API 멱등성 지원 대상 (API 멱등성 참조)

주의사항

최종 결제 승인이 완료되기까지 시간이 걸리므로 timeout을 30초로 설정해야 합니다.

파라미터​

필드명타입길이필수여부설명
mallIdString8Byte✅KICC에서 부여한 상점ID
shopTransactionIdString60Byte✅상점 거래고유번호 (API 멱등성 키)
shopOrderNoString40Byte✅상점 주문번호 반드시 Unique 값으로 생성
approvalReqDateString8Byte✅결제 승인요청일자(yyyyMMdd)
amountNumber✅결제요청 금액
currencyString2Byte✅통화코드(원화 : “00”)
orderInfoObject✅결제 주문정보 (아래 orderInfo 참조)
payMethodInfoObject✅결제수단 정보 (아래 payMethodInfo 참조)
taxInfoObject복합과세 정보(복합과세 사용 시 필수)
아래 refundInfo 참조

orderInfo(주문 정보)​

필드명타입길이필수여부설명
goodsNameString50Byte✅상품명
customerInfoObject주문 고객정보 (아래 customerInfo 참조)

orderInfo > customerInfo(주문 고객정보)​

필드명타입길이필수여부설명
customerIdString20Byte고객 ID
customerNameString20Byte고객명
customerMailString50Byte고객 Email
customerContactNoString11Byte고객 연락처(숫자만 허용)
customerAddrString200Byte고객 주소

payMethodInfo(결제수단 정보)​

필드명타입길이필수여부설명
billKeyMethodInfoObject✅빌키 정보 (아래 billKeyMethodInfo 참조)
cardMethodInfoObject✅신용카드 정보 (아래 cardMethodInfo 참조)

payMethodInfo > billKeyMethodInfo(빌키 정보)​

필드명타입길이필수여부설명
batchKeyString60Byte✅빌키 빌키 발급 응답의 cardNo 값

payMethodInfo > cardMethodInfo(신용카드 정보)​

필드명타입길이필수여부설명
installmentMonthNumber✅할부개월
freeInstallmentUsedBoolean무이자 여부 true: 사용, false: 미사용
joinCdString4Byte제휴서비스 코드

taxInfo(복합과세 정보)​

필드명타입길이필수여부설명
taxAmountNumber✅과세 금액
freeAmountNumber✅비과세 금액
vatAmountNumber✅부가세 금액
요청 예시
{  
"mallId": "T5102001",
"shopOrderNo": "{상점 주문번호}",
"shopTransactionId": "{API 멱등성 키}",
"approvalReqDate": "{요청 일자}",
"amount": 1000,
"currency": "00",
"orderInfo": {
"goodsName": "예시 상품명"
}
"payMethodInfo": {
"billKeyMethodInfo": {
"batchKey": "발급받은 빌키"
},
"cardMethodInfo":{
"installmentMonth": 12
}
}
}

응답​

파라미터​

필드명타입길이설명
resCdString4Byte결과코드(정상 : “0000”)
resMsgString1000Byte결과 메시지
shopTransactionIdString60Byte상점 거래고유번호
mallIdString8ByteKICC에서 부여한 상점ID
shopOrderNoString40Byte상점 주문번호(거래등록 시 요청한 값 그대로 응답)
pgCnoString20BytePG 거래고유번호(취소 또는 환불 시 필수로 사용되는 필드)
amountNumber총 결제금액(결제 요청금액과 응답금액을 필수로 비교하여 주세요.)
transactionDateString14Byte거래일시(yyyyMMddHHmmss)
statusCodeString4Byte거래상태 코드 (거래상태 코드 참고)
statusMessageString50Byte거래상태 메시지
msgAuthValueString200Byte응답값의 무결성을 검증 (메시지 인증값 바로가기)
escrowUsedString1Byte에스크로 사용유무(Y/N)
paymentInfoObject결제수단별 승인결과 정보 (아래 paymentInfo 참조)

paymentInfo(결제수단별 승인결과 정보)​

필드명타입길이설명
payMethodTypeCodeString2Byte결제수단 코드 (결제수단 코드 참고)
approvalNoString100Byte결제수단 승인번호
approvalDateString14Byte결제수단의 승인일시 (yyyyMMddHHmmss)
cpCodeString4Byte서비스 제공 기관코드(제휴 서비스사 코드 참고)로 간편결제, 포인트 결제 시 응답
cardInfoObject신용카드 결제결과 정보 (아래 cardInfo 참조)

paymentInfo > cardInfo(신용카드 결제결과)​

필드명타입길이설명
cardNoString20Byte카드번호(마스킹 *)
issuerCodeString3Byte발급사 코드 (카드사 코드 참고)
issuerNameString50Byte발급사 명
acquirerCodeString3Byte매입사 코드 (카드사 코드 참고)
acquirerNameString50Byte매입사 명
installmentMonthNumber할부개월
freeInstallmentTypeCodeString2Byte할부구분 (일반: "00", 상점분담 무이자: "02", 카드사 무이자: "03")
cardGubunString1Byte카드종류 (신용: “N”, 체크: “Y”, 기프트: “G”)
cardBizGubunString1Byte카드주체 (개인: “P”, 법인: “C”, 기타: “N”)
partCancelUsedString1Byte부분취소 가능여부(Y/N)
vanSnoString12ByteVAN 거래일련번호
응답 예시
{
"resCd": "0000",
"resMsg": "결제 정상",
"mallId": "{요청한 상점ID}",
"pgCno": "{PG 거래고유번호}",
"shopTransactionId": "{요청한 API 멱등성 키}",
"shopOrderNo": "{상점 주문번호}",
"amount": "51004",
"transactionDate": "20210326090200",
"statusCode": "TS03",
"statusMessage": "매입요청",
"msgAuthValue": "e06540df5ac28ac877fb4f063d06d5f9c3ee2a3a8820a888bfc8db1577a7fe",
"escrowUsed": "N",
"paymentInfo": {
"payMethodTypeCode": "11",
"approvalNo": "00017177",
"approvalDate": "20210326090200",
"cardInfo": {
"cardNo": "45184211******81",
"issuerCode": "029",
"issuerName": "신한카드",
"acquirerCode": "029",
"acquirerName": "신한카드",
"installmentMonth": 0,
"freeInstallmentTypeCode": "00",
"cardGubun": "N",
"cardBizGubun": "P",
"partCancelUsed": "Y"
}
}
}

메시지 인증값​

메시지 인증값 구성은 아래와 같이 조합하고 해당값을 HmacSHA256으로 해시한다. 메시지 인증 참조

pgCno(PG 거래고유번호) + “|” + amount(결제금액) + “|” + transactionDate(거래일시)