결제 취소 API
결제 완료된 거래를 취소합니다. 간편현금결제는 출금된 계좌로 환불됩니다.
테스트용 키 정보
주의 사항
orgTrdNo 필수
결제 응답의 trdNo(거래번호)를 orgTrdNo 파라미터에 전달해야 합니다.
NOTE
부분취소
신용카드 부분취소 시 cnclOrd를 001부터 순차적으로 증가시켜야 합니다.
API 정보
POST/whitelabel/v1/pay_cancel.do
Content-Type
application/json테스트
https://tbapi.settlebank.co.kr/whitelabel/v1/pay_cancel.do운영
https://api.settlebank.co.kr/whitelabel/v1/pay_cancel.do요청 파라미터
타입 표기법
N숫자A영문H한글AN영문+숫자AHN영문+한글+숫자예: AN(10) = 영문+숫자, 최대 10byte
params 객체
└mchtIdAN(12)영문+숫자, 최대 12byte*헥토파이낸셜에서 부여하는 고유 상점아이디
헥토파이낸셜에서 부여하는 고유 상점아이디
└verAN(4)영문+숫자, 최대 4byte*전문 버전
전문 버전
└methodA(2)영문, 최대 2byte*결제수단
결제수단
└bizTypeAN(2)영문+숫자, 최대 2byte*업무구분코드
업무구분코드
└encCdN(2)숫자, 최대 2byte*암호화 구분 코드
암호화 구분 코드
└mchtTrdNoAN(100)영문+숫자, 최대 100byte*취소용 고유 주문번호
취소용 고유 주문번호
└trdDtN(8)숫자, 최대 8byte*취소요청일자 (yyyyMMdd)
취소요청일자 (yyyyMMdd)
└trdTmN(6)숫자, 최대 6byte*취소요청시간 (HHmmss)
취소요청시간 (HHmmss)
└mobileYnA(1)영문, 최대 1byte모바일 여부
모바일 여부
Y: 모바일웹/앱 N: PC└osTypeA(1)영문, 최대 1byteOS 구분
OS 구분
A: Android I: iOS W: Windows M: Mac E: 기타data 객체
└pktHashAN(200)영문+숫자, 최대 200byte*
SHA-256SHA256 방식으로 생성한 해시값(실시간 생성)SHA256 방식으로 생성한 해시값
*trdDt + trdTm + mchtId + mchtTrdNo + trdAmt(평문) + 해시키
└mchtCustIdAN(100)영문+숫자, 최대 100byte*상점 고객아이디
상점 고객아이디
└orgTrdNoAN(40)영문+숫자, 최대 40byte*결제 응답의 거래번호 (trdNo)
결제 응답의 거래번호 (trdNo)
└trdAmtAN(12)영문+숫자, 최대 12byte
AES-256AES-256/ECB/PKCS5Padding + Base64취소금액 (부분취소 시 필수)취소금액 (부분취소 시 필수)
└taxTypeCdA(1)영문, 최대 1byte면세여부
면세여부
N: 과세 Y: 면세 G: 복합과세└taxAmtAN(12)영문+숫자, 최대 12byte
AES-256AES-256/ECB/PKCS5Padding + Base64과세금액 (복합과세 시 필수)과세금액 (복합과세 시 필수)
└vatAmtAN(12)영문+숫자, 최대 12byte
AES-256AES-256/ECB/PKCS5Padding + Base64부가세금액 (복합과세 시 필수)부가세금액 (복합과세 시 필수)
└taxFreeAmtAN(12)영문+숫자, 최대 12byte
AES-256AES-256/ECB/PKCS5Padding + Base64비과세금액 (복합과세 시 필수)비과세금액 (복합과세 시 필수)
└svcAmtAN(12)영문+숫자, 최대 12byte
AES-256AES-256/ECB/PKCS5Padding + Base64봉사료봉사료
└crcCdA(3)영문, 최대 3byte통화구분 (신용카드 필수)
통화구분 (신용카드 필수)
└cnclOrdN(3)숫자, 최대 3byte취소회차 (신용카드 필수, 001부터 시작)
취소회차 (신용카드 필수, 001부터 시작)
응답 파라미터
params 객체
└mchtIdAN(12)영문+숫자, 최대 12byte*상점아이디
pg_test상점아이디
└verAN(4)영문+숫자, 최대 4byte*전문 버전
0A18전문 버전
*고정값
└methodA(2)영문, 최대 2byte*결제수단
WL결제수단
*고정값
└bizTypeAN(2)영문+숫자, 최대 2byte*업무구분코드
C4업무구분코드
*고정값
└encCdN(2)숫자, 최대 2byte*암호화 구분 코드
23암호화 구분 코드
*고정값
└mchtTrdNoAN(100)영문+숫자, 최대 100byte*상점주문번호
CANCEL20260107150000상점주문번호
└outStatCdAN(4)영문+숫자, 최대 4byte*거래상태코드
0021거래상태코드
0021: 성공 0031: 실패└outRsltCdAN(4)영문+숫자, 최대 4byte*거절코드 (실패 시 상세코드)
0000거절코드 (실패 시 상세코드)
└outRsltMsgAHN(200)영문+한글+숫자, 최대 200byte*결과 메시지
정상적으로 처리되었습니다.결과 메시지
└trdNoAN(40)영문+숫자, 최대 40byte*취소 거래번호
STFP_PGCApg_test0000260107150000M7654321취소 거래번호
└trdDtN(8)숫자, 최대 8byte*취소응답일자
20260107취소응답일자
└trdTmN(6)숫자, 최대 6byte*취소응답시간
150000취소응답시간
data 객체
└pktHashAN(64)영문+숫자, 최대 64byte*요청시 hash 값 그대로 return. 데이터 위변조 체크를 위해 요청 시 생성한 해시값과 비교 검증하세요.
요청시 hash 값 그대로 return. 데이터 위변조 체크를 위해 요청 시 생성한 해시값과 비교 검증하세요.
NOTE
해시 검증
응답의 pktHash는 요청 시 전송한 해시값과 동일합니다. 요청 시 생성한 해시값(trdDt + trdTm + mchtId + mchtTrdNo + trdAmt(평문) + hashKey)과 비교하여 데이터 무결성을 검증하세요.
└mchtCustIdAN(100)영문+숫자, 최대 100byte*상점 고객아이디
honggildong상점 고객아이디
└payMethodA(2)영문, 최대 2byte*결제수단 코드
CA결제수단 코드
RT: 간편결제취소 CA: 신용카드취소└orgTrdNoAN(40)영문+숫자, 최대 40byte*원거래번호
STFP_PGCApg_test0000260107143100M1234567원거래번호
└taxTypeCdA(1)영문, 최대 1byte면세여부
면세여부
Y: 면세 N: 과세 G: 복합과세└trdAmtAN(12)영문+숫자, 최대 12byte
AES-256AES-256/ECB/PKCS5Padding거래금액vqIWIiimsJ5efjSJpfnnTw==거래금액
*실제 응답값은 AES-256 암호화된 값입니다. 복호화 후 사용하세요.
└taxAmtAN(12)영문+숫자, 최대 12byte
AES-256AES-256/ECB/PKCS5Padding취소금액 중 과세금액취소금액 중 과세금액
*실제 응답값은 AES-256 암호화된 값입니다. 복호화 후 사용하세요.
└vatAmtAN(12)영문+숫자, 최대 12byte
AES-256AES-256/ECB/PKCS5Padding취소금액 중 부가세금액취소금액 중 부가세금액
*실제 응답값은 AES-256 암호화된 값입니다. 복호화 후 사용하세요.
└taxFreeAmtAN(12)영문+숫자, 최대 12byte
AES-256AES-256/ECB/PKCS5Padding취소금액 중 면세금액취소금액 중 면세금액
*실제 응답값은 AES-256 암호화된 값입니다. 복호화 후 사용하세요.
└svcAmtAN(12)영문+숫자, 최대 12byte
AES-256AES-256/ECB/PKCS5Padding취소금액 중 봉사료취소금액 중 봉사료
*실제 응답값은 AES-256 암호화된 값입니다. 복호화 후 사용하세요.
└crcCdA(3)영문, 최대 3byte통화 구분 값 (신용카드 전용)
KRW통화 구분 값 (신용카드 전용)
└cnclOrdN(3)숫자, 최대 3byte취소회차 (001부터 시작, 신용카드 전용)
001취소회차 (001부터 시작, 신용카드 전용)
└cardCnclAmtAN(12)영문+숫자, 최대 12byte
AES-256AES-256/ECB/PKCS5Padding신용카드 거래금액 (신용카드 전용)신용카드 거래금액 (신용카드 전용)
*실제 응답값은 AES-256 암호화된 값입니다. 복호화 후 사용하세요.
└blcAmtAN(12)영문+숫자, 최대 12byte
AES-256AES-256/ECB/PKCS5Padding취소가능잔액취소가능잔액
*실제 응답값은 AES-256 암호화된 값입니다. 복호화 후 사용하세요.
└pktNoAN(20)영문+숫자, 최대 20byte전문번호 (간편현금결제 전용)
전문번호 (간편현금결제 전용)
요청 예시
{
"params": {
"mchtId": "pg_test",
"ver": "0A18",
"method": "WL",
"bizType": "C4",
"encCd": "23",
"mchtTrdNo": "CANCEL20260107150000",
"trdDt": "20260107",
"trdTm": "150000",
"mobileYn": "N",
"osType": "W"
},
"data": {
"pktHash": "197884af9f63bcd2d9792cd5cd39f7b1e7525e88888e2cee28f64fa23bf53312",
"mchtCustId": "honggildong",
"orgTrdNo": "STFP_PGCApg_test0000260107143100M1234567",
"trdAmt": "vqIWIiimsJ5efjSJpfnnTw==",
"crcCd": "KRW",
"cnclOrd": "001"
}
}
응답 예시
{
"params": {
"mchtId": "pg_test",
"ver": "0A18",
"method": "WL",
"bizType": "C4",
"encCd": "23",
"mchtTrdNo": "CANCEL20260107150000",
"trdNo": "STFP_PGCApg_test0000260107150000M7654321",
"trdDt": "20260107",
"trdTm": "150000",
"outStatCd": "0021",
"outRsltCd": "0000",
"outRsltMsg": "정상적으로 처리되었습니다."
},
"data": {
"pktHash": "197884af9f63bcd2d9792cd5cd39f7b1e7525e88888e2cee28f64fa23bf53312",
"mchtCustId": "honggildong",
"payMethod": "CA",
"orgTrdNo": "STFP_PGCApg_test0000260107143100M1234567",
"trdAmt": "vqIWIiimsJ5efjSJpfnnTw=="
}
}
