본문으로 건너뛰기

결제 취소

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

참고

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

요청

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

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

주의사항

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

파라미터

필드명타입길이필수여부설명
mallIdString8ByteKICC에서 부여한 상점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(상점 거래고유번호)