본문으로 건너뛰기

결제 환불

결제 완료된 거래 전체 또는 부분 환불 처리를 하는 API 입니다.

참고
  • 에스크로 승인거래에 대한 취소는 에스크로 상태변경 참조 바랍니다.
  • 환불 서비스의 경우 지결환불과 즉시환불 두가지 서비스가 제공되고 있으니, 서비스 신청 시 영업담당자와 협의하여 주시기 바랍니다.

실시간 환불​

환불 요청 즉시 고객의 환불계좌로 실시간 환불 처리되는 서비스 입니다.

지결 환불​

환불 요청 D+1에 고객의 환불계좌로 환불 처리되는 서비스 입니다. 환불완료 시 노티(웹훅)을 통해 처리결과를 받을 수 있습니다. 반드시 노티(웹훅) URL을 등록해야 합니다.

요청​

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

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

주의사항

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

파라미터​

필드명타입길이필수여부설명
mallIdString8Byte✅KICC에서 부여한 상점ID
shopTransactionIdString60Byte✅상점 거래고유번호 (API 멱등성 키)
pgCnoString20Byte✅원 거래 PG 거래고유번호
reviseTypeCodeString2Byte✅변경구분 (변경 구분 코드표 바로가기)
지결 전체환불: “60” 지결 부분환불: “62”
reviseSubTypeCodeString4Byte변경 세부구분 (변경 세부구분 코드표 바로가기)
amountNumber취소금액 부분환불 시 필수
remainAmountNumber환불가능금액(환불 시 가능잔액 검증용)
clientIpString20Byte요청자 IP
clientIdString32Byte요청자 ID 가맹점 관리자 로그인용 ID
cancelReqDateString8Byte✅취소 요청일자(yyyyMMdd)
msgAuthValueString200Byte✅요청값의 무결성을 검증 (메시지 인증값 바로가기)
reviseMessageString100Byte환불사유
refundQueryFlagString1Byte환불결과 조회플래그(‘Y’ : 조회) 즉시환불 타임아웃 발생 시 필수 환불응답이 “VTIM”, “VT00”일 경우 재요청 필요
refundInfoObject✅환불요청 정보 아래 refundInfo 참조
taxInfoObject복합과세 정보(복합과세 사용 시 필수) 아래 taxInfo 참조
basketUsedString1Byte다중정산 장바구니 결제여부(Y/N)
basketInfoObject장바구니 정보(다중정산 사용 시 필수) 아래 basketInfo 참조

refundInfo(환불요청 정보)​

필드명타입길이필수여부설명
refundBankCodeString3Byte✅환불계좌 은행코드 (은행 코드 참고)
refundAccountNoString14Byte✅환불계좌 계좌번호
refundDepositNameString50Byte✅환불계좌 예금주명
depositPgCnoString20Byte입금거래번호(다회입금계좌 환불 시 필수)

taxInfo(복합과세 정보)​

필드명타입길이필수여부설명
taxationAmountNumber✅취소 과세 금액
taxFreeAmountNumber✅취소 비과세 금액
vatAmountNumber✅취소 부가세 금액

basketInfo(장바구니 정보)​

필드명타입길이필수여부설명
productPgCnoString20Byte✅개별상품 PG 거래고유번호
sellerIdString50Byte✅셀러ID
요청 예시
{
"mallId": "{상점ID}",
"shopTransactionId": "{API 멱등성 키}",
"pgCno": "{PG 거래고유번호}",
"reviseTypeCode": "40",
"cancelReqDate": "{요청 일자}",
"msgAuthValue": "{메시지 인증값}",
"reviseMessage": "고객 변심",
"refundInfo": {
"refundBankCode": "003",
"refundAccountNo": "{환불 계좌번호}",
"refundDepositName": "홍길동",
"depositPgCno": "{입금 거래번호}"
}
}

응답​

파라미터​

필드명타입길이설명
resCdString4Byte결과코드(정상 : “0000”)
resMsgString1000Byte결과 메시지
shopTransactionIdString60Byte취소요청 시 전송한 값 그대로 사용
mallIdString8ByteKICC에서 부여한 상점ID
oriPgCnoString20Byte원 거래 PG 거래고유번호
cancelPgCnoString20Byte환불 PG 거래고유번호
transactionDateString14Byte거래일시(yyyyMMddHHmmss)
cancelAmountNumber취소금액
remainAmountNumber취소 후 잔액(요청 시 remainAmount 항목이 있을 시 응답)
statusCodeString4Byte거래상태 코드 (거래상태 코드 참고)
statusMessageString50Byte거래상태 메시지
escrowUsedString1Byte에스크로 사용여부(Y/N)
reviseInfoObject환불 응답 정보
아래 reviseInfo 참조

reviseInfo(환불응답 정보)​

필드명타입길이설명
payMethodTypeCodeString2Byte결제수단 코드 (결제수단 코드 참고)
approvalDateString14Byte환불일시(yyyyMMddHHmmss)
refundInfoObject환불 상세정보
아래 refundInfo 참조
cashReceiptInfoObject현금영수증 취소상세정보
아래 cashReceiptInfo 참조

reviseInfo > refundInfo(환불 상세정보)​

필드명타입길이설명
refundDateString14Byte환불예정일시(yyMMddHHmmss)
depositPgCnoString20Byte가상계좌 입금 거래번호(가상계좌일 경우 응답)

reviseInfo > cashReceiptInfo(현금영수증 취소 상세정보)​

필드명타입길이설명
resCdString4Byte결과코드
resMsgString1000Byte결과 메시지
approvalNoString50Byte현금영수증 취소 승인번호
cancelDateString14Byte현금영수증 취소일시(yyyyMMddHHmmss)
응답 예시
{
"resCd": "0000",
"resMsg": "정상취소",
"mallId": "{요청한 상점ID}",
"shopTransactionId": "{요청한 API 멱등성 키}",
"oriPgCno": "{PG 거래고유번호}",
"cancelPgCno": "{취소 PG 거래고유번호}",
"shopOrderNo": "{상점 주문번호}",
"cancelAmount": "51004",
"remainAmount": "0",
"transactionDate": "20210326090200",
"statusCode": "RF01",
"statusMessage": "환불요청",
"reviseInfo": {
"payMethodTypeCode": "21",
"approvalDate": "20210326090200",
"refundInfo": {
"refundDate": "20210326090200",
"depositPgCno": "{입금 거래번호}"
}
}
}

변경 구분 코드(reviseTypeCode)​

코드서비스명설명
60지결 전체환불가상계좌, 휴대폰 거래 환불
62지결 부분환불가상계좌, 휴대폰 거래 환불
63실시간 환불가상계좌, 휴대폰 거래 환불
전체/부분 환불 구분은 변경 세부구분 코드로 처리

변경 세부구분 코드(reviseSubTypeCode)​

구분코드서비스명설명
지결환불RF01환불요청전체 또는 부분환불 모두 동일한 코드 적용
실시간 환불10전체환불(계좌인증)KICC에서 계좌인증 후 환불
11부분환불(계좌인증)KICC에서 계좌인증 후 환불
20전체환불(계좌미인증)상점에서 계좌인증 후 환불
21부분환불(계좌미인증)상점에서 계좌인증 후 환불

메시지 인증값​

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

pgCno(PG 거래고유번호) + “|” + shopTransactionId (상점 거래고유번호)