본문으로 건너뛰기

결제 취소

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

참고

에스크로 승인거래에 대한 취소는 에스크로 상태변경 참조 바랍니다.

요청​

요청 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✅변경구분 코드
amountNumber취소금액 부분취소 시 필수
remainAmountNumber취소가능금액 부분취소 시 취소 가능잔액 검증용
clientIpString20Byte요청자 IP
clientIdString32Byte요청자 ID 가맹점 관리자 로그인용 ID
cancelReqDateString8Byte✅취소 요청일자(yyyyMMdd)
msgAuthValueString200Byte✅요청값의 무결성을 검증 (메시지 인증값 바로가기)
reviseMessageString100Byte취소사유
taxInfoObject복합과세 정보(복합과세 사용 시 필수)
아래 taxInfo 참조
basketUsedString1Byte다중정산 장바구니 결제여부(Y/N)
basketInfoObject장바구니 정보(다중정산 사용 시 필수)
아래 basketInfo 참조

taxInfo(복합과세 정보)​

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

basketInfo(장바구니 정보)​

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

응답​

파라미터​

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

reviseInfo(취소응답 정보)​

필드명타입길이설명
payMethodTypeCodeString2Byte결제수단 코드 (결제수단 코드 참고)
approvalNoString50Byte승인번호
approvalDateString14Byte취소일시(yyyyMMddHHmmss)
cardInfoObject신용카드 취소 상세정보
아래 cardInfo 참조
cashReceiptInfoObject현금영수증 취소 상세정보
아래 cashReceiptInfo 참조

reviseInfo > cardInfo(신용카드 취소 상세정보)​

필드명타입길이설명
couponAmountNumber즉시할인 취소금액

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": "TS02",
"statusMessage": "승인취소",
"reviseInfo": {
"payMethodTypeCode": "11",
"approvalNo": "00017177",
"approvalDate": "20210326090200",
"cardInfo": {
"couponAmount": 0
}
}
}

변경 구분 코드(reviseTypeCode)​

코드서비스명설명
20매입수동매입 가맹점 매입처리
32부분취소신용카드(간편결제 포함) 부분취소
33부분취소계좌이체, 휴대폰 결제거래 부분취소
40전체 취소결제 승인거래(가상계좌 채번취소 포함)를 전체 취소
51현금영수증 취소현금영수증 단독거래 취소
52현금영수증 부분취소현금영수증 단독거래 부분취소

메시지 인증값​

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

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