결제 취소 API

결제 완료된 거래를 취소합니다. 간편현금결제는 출금된 계좌로 환불됩니다.


테스트용 키 정보


주의 사항

orgTrdNo 필수

결제 응답의 trdNo(거래번호)를 orgTrdNo 파라미터에 전달해야 합니다.
NOTE

부분취소

신용카드 부분취소 시 cnclOrd를 001부터 순차적으로 증가시켜야 합니다.

API 정보

POST/whitelabel/v1/pay_cancel.do
Content-Typeapplication/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)
└trdTmN(6)숫자, 최대 6byte*
취소요청시간 (HHmmss)
└mobileYnA(1)영문, 최대 1byte
모바일 여부
Y: 모바일웹/앱 N: PC
└osTypeA(1)영문, 최대 1byte
OS 구분
A: Android I: iOS W: Windows M: Mac E: 기타

data 객체

└pktHashAN(200)영문+숫자, 최대 200byte*SHA-256(실시간 생성)
SHA256 방식으로 생성한 해시값
*trdDt + trdTm + mchtId + mchtTrdNo + trdAmt(평문) + 해시키
└mchtCustIdAN(100)영문+숫자, 최대 100byte*
상점 고객아이디
└orgTrdNoAN(40)영문+숫자, 최대 40byte*
결제 응답의 거래번호 (trdNo)
└trdAmtAN(12)영문+숫자, 최대 12byteAES-256AES-256/ECB/PKCS5Padding + Base64
취소금액 (부분취소 시 필수)
└taxTypeCdA(1)영문, 최대 1byte
면세여부
N: 과세 Y: 면세 G: 복합과세
└taxAmtAN(12)영문+숫자, 최대 12byteAES-256AES-256/ECB/PKCS5Padding + Base64
과세금액 (복합과세 시 필수)
└vatAmtAN(12)영문+숫자, 최대 12byteAES-256AES-256/ECB/PKCS5Padding + Base64
부가세금액 (복합과세 시 필수)
└taxFreeAmtAN(12)영문+숫자, 최대 12byteAES-256AES-256/ECB/PKCS5Padding + Base64
비과세금액 (복합과세 시 필수)
└svcAmtAN(12)영문+숫자, 최대 12byteAES-256AES-256/ECB/PKCS5Padding + Base64
봉사료
└crcCdA(3)영문, 최대 3byte
통화구분 (신용카드 필수)
└cnclOrdN(3)숫자, 최대 3byte
취소회차 (신용카드 필수, 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*
SHA256 방식으로 생성한 해쉬값
NOTE

해쉬 생성 조합

outStatCd + trdDt + trdTm + mchtId + mchtTrdNo + trdAmt(평문) + 해시키
└mchtCustIdAN(100)영문+숫자, 최대 100byte*honggildong
상점 고객아이디
└payMethodA(2)영문, 최대 2byte*CA
결제수단 코드
RT: 간편결제취소 CA: 신용카드취소
└orgTrdNoAN(40)영문+숫자, 최대 40byte*STFP_PGCApg_test0000260107143100M1234567
원거래번호
└taxTypeCdA(1)영문, 최대 1byte
면세여부
Y: 면세 N: 과세 G: 복합과세
└trdAmtAN(12)영문+숫자, 최대 12byteAES-256AES-256/ECB/PKCS5PaddingvqIWIiimsJ5efjSJpfnnTw==
거래금액
*실제 응답값은 AES-256 암호화된 값입니다. 복호화 후 사용하세요.
└taxAmtAN(12)영문+숫자, 최대 12byteAES-256AES-256/ECB/PKCS5Padding
취소금액 중 과세금액
*실제 응답값은 AES-256 암호화된 값입니다. 복호화 후 사용하세요.
└vatAmtAN(12)영문+숫자, 최대 12byteAES-256AES-256/ECB/PKCS5Padding
취소금액 중 부가세금액
*실제 응답값은 AES-256 암호화된 값입니다. 복호화 후 사용하세요.
└taxFreeAmtAN(12)영문+숫자, 최대 12byteAES-256AES-256/ECB/PKCS5Padding
취소금액 중 면세금액
*실제 응답값은 AES-256 암호화된 값입니다. 복호화 후 사용하세요.
└svcAmtAN(12)영문+숫자, 최대 12byteAES-256AES-256/ECB/PKCS5Padding
취소금액 중 봉사료
*실제 응답값은 AES-256 암호화된 값입니다. 복호화 후 사용하세요.
└crcCdA(3)영문, 최대 3byteKRW
통화 구분 값 (신용카드 전용)
└cnclOrdN(3)숫자, 최대 3byte001
취소회차 (001부터 시작, 신용카드 전용)
└cardCnclAmtAN(12)영문+숫자, 최대 12byteAES-256AES-256/ECB/PKCS5Padding
신용카드 거래금액 (신용카드 전용)
*실제 응답값은 AES-256 암호화된 값입니다. 복호화 후 사용하세요.
└blcAmtAN(12)영문+숫자, 최대 12byteAES-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=="
    }
}
❓

더 궁금한 내용이 있나요?

FAQ
💬

기술지원이 필요한가요?

무엇이든 물어보세요