결제 완료된 거래 전체 또는 부분 취소 처리를 하는 서비스 입니다. HTTP POST 방식으로 호출하시기 바랍니다.
주의사항
✔ 에스크로, 다중정산은 관련 첨부파일을 참고해주시기 바랍니다.
요청
URL 정보
테스트 | https://testpgapi.easypay.co.kr/api/trades/revise |
운영 | https://pgapi.easypay.co.kr/api/trades/revise |
파라미터
필드명 | 타입 | 최대크기 | 필수여부 | 설명 |
---|---|---|---|---|
mallId | String | 8 Byte | 필수 | KICC에서 부여한 상점ID |
shopTransactionId | String | 60 Byte | 필수 | 가맹점 트랜젝션ID 중복요청을 방지를 위해 일별로 Unique 보장 |
pgCno | String | 20 Byte | 필수 | PG 거래번호 원거래 PG 거래번호 |
cancelPgCno | String | 20 Byte | 필수 | 취소거래번호 매입취소원복시 필수 |
reviseTypeCode | String | 2 Byte | 필수 | 변경구분 전체취소 : "40" 부분취소 : "32" 변경구분 코드표 참조 |
reviseSubTypeCode | String | 4 Byte | 필수 | 변경 세부구분 변경세부구분 코드표 참조 |
amount | Number | 취소금액 부분취소 시 필수 |
||
remainAmount | Number | 취소가능금액 부분취소 시 취소 가능잔액 검증용 |
||
clientIp | String | 20 Byte | 요청자 IP | |
clientId | String | 32 Byte | 요청자 ID 가맹점 관리자 로그인용 ID |
|
cancelReqDate | String | 8 Byte | 필수 | 취소 요청일자(yyyyMMdd) 반드시 현재일자로 처리 |
msgAuthValue | String | 200 Byte | 필수 | 메시지 인증값(무결성 검증) 각주 1) Secret Key는 영업담당자에게 문의 |
reviseMessage | String | 100 Byte | 취소사유 | |
refundQueryFlag | String | 1 Byte | 환불결과 조회플래그('Y' : 조회) 즉시환불 타임아웃 발생 시 필수 환불응답이 "VTIM", "VT00"일 경우 재요청 필요 |
|
basketUsed | String | 1 Byte | 장바구니 결제여부(Y/N) 다중정산 거래일 경우 필수 |
|
taxInfo | Object | 복합과세 정보 {taxInfo} 참조 |
각주 1)
메시지 인증값 구성은 PG승인거래번호, 가맹점 트랜젝션ID로 아래와 같이 조합하고 해당값을 HmacSHA256으로 해시한다.(HmacSHA256 해시함수 참조)
pgCno(PG거래번호) + “|” + shopTransactionId (가맹점 트랜젝션ID)
taxInfo(복합과세 정보)
필드명 | 타입 | 최대크기 | 필수여부 | 설명 |
---|---|---|---|---|
taxationAmount | Number | 필수 | 취소 과세 금액 | |
taxFreeAmount | Number | 필수 | 취소 비과세 금액 | |
vatAmount | Number | 필수 | 취소 부가세 금액 |
요청 예
{
"mallId ": "T5102001",
"shopTransactionId": "qwer1234202201231516",
"pgCno": "21032609005610816914",
"reviseTypeCode": "40",
"clientIp": "10.123.1.12",
"clientId": "x-man",
"cancelReqDate": "20231225",
"msgAuthValue": "e06540df5ac28ac877fb4f063d06d5f9c3ee2a3a8820a888bfc8db1577a7fe",
"reviseMessage": "고객변심"
}
응답
Body
필드명 | 타입 | 최대크기 | 필수여부 | 설명 |
---|---|---|---|---|
resCd | String | 4 Byte | 필수 | 결과코드(정상 : "0000") |
resMsg | String | 100 Byte | 필수 | 결과 메시지 |
mallId | String | 8 Byte | KICC에서 부여한 상점ID | |
shopTransactionId | String | 60 Byte | 필수 | 가맹점 트랜젝션ID 취소(환불)요청 시 전송한 값 노티(웹훅) 전송 시 미전송 대상 |
shopOrderNo | String | 40 Byte | 상점 주문번호 | |
oriPgCno | String | 20 Byte | 원 승인 PG거래번호 | |
cancelPgCno | String | 20 Byte | 취소(환불) 거래번호 | |
transactionDate | String | 14 Byte | 거래일시(yyyyMMddHHmmss) | |
cancelAmount | Number | 취소(환불)금액 | ||
remainAmount | Number | 취소(환불) 후 잔액 | ||
statusCode | String | 4 Byte | 거래상태 코드표 참조 | |
statusMessage | String | 50 Byte | 거래상태 메시지 | |
escrowUsed | String | 1 Byte | 에스크로 사용여부(Y/N) | |
multiCardAmount | String | 12 Byte | 페이코 카드 취소금액 | |
multiPntAmount | String | 12 Byte | 페이코 포인트 취소금액 | |
multiCponAmount | String | 12 Byte | 페이코 쿠폰 취소금액 | |
reviseInfo | Object | 취소(환불) 상세정보 {reviseInfo} 참조 |
reviseInfo(취소 상세정보)
필드명 | 타입 | 최대크기 | 필수여부 | 설명 |
---|---|---|---|---|
payMethodTypeCode | String | 2 Byte | 필수 | 결제수단 코드표 참조 |
approvalNo | String | 50 Byte | 필수 | 취소(환불) 승인번호 |
approvalDate | String | 14 Byte | 필수 | 취소일시(yyyyMMddHHmmss) |
cardInfo | Object | 신용카드 취소정보 {cardInfo} 참조 |
||
cashReceiotInfo | Object | 현금영수증 취소정보 {cashReceiptInfo} 참조 |
cardInfo(신용카드 취소정보)
필드명 | 타입 | 최대크기 | 필수여부 | 설명 |
---|---|---|---|---|
couponAmount | Number | 즉시할인 취소금액 |
cashReceiptInfo(연금영수증 취소정보)
필드명 | 타입 | 최대크기 | 필수여부 | 설명 |
---|---|---|---|---|
resCd | String | 4 Byte | 필수 | 결과코드 |
regMsg | String | 100 Byte | 필수 | 결과메시지 |
approvalNo | String | 50 Byte | 취소 승인번호 | |
cancelDate | String | 14 Byte | 취소일시(yyyyMMddHHmmss) |
응답 예
{
"resCd": "0000",
"resMsg": "정상처리",
"mallId": "T5102001",
"shopTransactionId": "qwer1234202201231516",
"shopOrderNo": "123123123123",
"oriPgCno": "21032609005610816914",
"cancelPgCno": "21032609005610816916",
"transactionDate": "20210326090706",
"cancelAmount": 51000,
"remainAmount": 0,
"statusCode": "TS02",
"statusMessage": "승인취소",
"reviseInfo": {
"payMethodTypeCode": "11",
"approvalNo": "60211250",
"approvalDate": "20210326090706"
}
}