본문으로 건너뛰기

결제 승인

결제창으로부터 받은 인증 거래번호(authorizationId)으로 승인 요청하는 API 입니다.

주의사항
  • 응답 대기시간 초과 및 네트워크 오류로 응답을 받지 못한 경우 반드시 거래상태 조회를 통해 PG 거래고유번호를 조회 후 취소처리 바랍니다.
  • 승인결과의 결제금액과 상점의 결제금액이 상이할 시 반드시 취소처리 바랍니다.
  • 승인결과에 대한 상점 DB 처리 실패 시 반드시 취소처리 바랍니다
  • 은련결제의 경우, 상점 returnUrl로 인증완료가 전달된 이후 30분 이내에 승인요청을 하지 않으면 결제사에서 강제로 취소처리 합니다.
  • 카카오페이, 토스페이 테스트거래는 실 승인이 발생할 수 있으므로 테스트 후 반드시 취소하셔야합니다.

요청

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

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

주의

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

파라미터

필드명타입길이필수여부설명
mallIdString8ByteKICC에서 부여한 상점ID
shopTransactionIdString60Byte상점 거래고유번호 (API 멱등성 키)
authorizationIdString60Byte인증 거래번호 결제창 호출 후 받은 값 그대로 사용
shopOrderNoString40Byte상점 주문번호(거래등록 시 요청한 값 그대로 응답)
approvalReqDateString8Byte승인요청일자(yyyyMMdd)
요청 예시
{  
"mallId": "T5102001",
"shopOrderNo": "{상점 주문번호}",
"shopTransactionId": "{API 멱등성 키}",
"authorizationId": "{인증 거래번호}",
"approvalReqDate": "{결제 승인요청 일자}"
}

응답

파라미터

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

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

필드명타입길이설명
payMethodTypeCodeString2Byte결제수단 코드 (결제수단 코드 참고)
approvalNoString100Byte결제수단 승인번호
approvalDateString14Byte결제수단의 승인일시 (yyyyMMddHHmmss)
cpCodeString4Byte간편결제/포인트 서비스 제공 기관코드 (제휴 서비스사 코드 참고)
multiCardAmountNumber페이코/카카오페이/네이버페이 카드금액
multiPntAmountNumber페이코/카카오페이/네이버페이 포인트금액
multiCponAmountNumber페이코/카카오페이/네이버페이 쿠폰금액
cardInfoObject신용카드 결제결과 정보
아래 cardInfo 참조
bankInfoObject계좌이체 결제결과 정보
아래 bankInfo 참조
virtualAccountInfoObject가상계좌 채번결과 정보
아래 virtualAccountInfo 참조
mobInfoObject휴대폰 결제결과 정보
아래 mobInfo 참조
cashReceiptInfoObject현금영수증 발행 정보
아래 cashReceiptInfo 참조

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

필드명타입길이설명
cardNoString20Byte카드번호(마스킹 *)
issuerCodeString3Byte발급사 코드 (카드사 코드 참고)
issuerNameString50Byte발급사 명
acquirerCodeString3Byte매입사 코드 (카드사 코드 참고)
acquirerNameString50Byte매입사 명
installmentMonthNumber할부개월
freeInstallmentTypeCodeString2Byte할부구분 (일반: "00", 상점분담 무잊자: "02", 카드사 무이자: "03")
cardGubunString1Byte카드종류 (신용: “N”, 체크: “Y”, 기프트: “G”)
cardBizGubunString1Byte카드주체 (개인: “P”, 법인: “C”, 기타: “N”)
partCancelUsedString1Byte부분취소 가능여부(Y/N)
subCardCdString3ByteBC제휴사 카드코드 빌키발급 시 응답
couponAmountNumber즉시할인 금액
vanSnoString12ByteVAN거래일련번호

paymentInfo > bankInfo(계좌이체 결제결과)

필드명타입길이설명
bankCodeString3Byte은행코드 (은행 코드 참고)
bankNameString20Byte은행명

paymentInfo > virtualAccountInfo(가상계좌 채번결과)

필드명타입길이설명
bankCodeString3Byte은행코드 (은행 코드 참고)
bankNameString20Byte은행명
accountNoString20Byte채번계좌번호
depositNameString20Byte예금주 성명
expiryDateString14Byte계좌사용만료일

paymentInfo > mobInfo(휴대폰 결제결과)

필드명타입길이설명
authIdString20Byte인증ID
billIdString20Byte인증번호
mobileNoString11Byte휴대폰번호
mobileCdString3Byte이통사 코드

paymentInfo > cashReceiptInfo(현금영수증 발행결과)

필드명타입길이설명
resCdString4Byte결과코드
resMsgString1000Byte결과 메시지
approvalNoString50Byte승인번호
approvalDateString14Byte승인일시(yyyyMMddHHmmss)

basketInfoList(장바구니 목록)

필드명타입길이설명
productNoString20Byte개별 상품 고유번호 거래등록 시 요청한 값 그대로 사용
sellerIdString50Byte셀러ID
productPgCnoString20Byte개별 상품 PG 거래고유번호
개별 상품 취소(환불) 시 필수
응답 예시
{
// 신용카드 결제 승인응답
"resCd": "0000",
"resMsg": "MPI결제 정상",
"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",
"couponAmount": 0
}
}
}

메시지 인증값

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

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