결제 API

가맹점 서버에서 헥토파이낸셜 서버로 오픈뱅킹 결제를 요청합니다. 계좌등록(출금이체 등록)을 통해 등록된 계좌를 결제(고객 계좌에서 출금이체)를 진행 할 수 있습니다. 본 API 수행 결과로 고객의 계좌에서 가맹점의 오픈뱅킹 모계좌로 현금이 이동 됩니다.

API 정보

POST/v2/api/pay/confirm
Content-Typeapplication/json
테스트https://tbnpay.settlebank.co.kr/v2/api/pay/confirm
운영https://npay.settlebank.co.kr/v2/api/pay/confirm

요청 파라미터

타입 표기법
N숫자A영문H한글AN영문+숫자AHN영문+한글+숫자
예: AN(10) = 영문+숫자, 최대 10byte
hdInfoAN(50)영문+숫자, 최대 50byte*
전문정보 코드
*고정값
mchtIdAN(8)영문+숫자, 최대 8byte*
헥토파이낸셜에서 부여하는 고유 상점아이디
mchtTrdNoAN(100)영문+숫자, 최대 100byte*
상점주문번호
*한글제외
mchtCustIdAN(100)영문+숫자, 최대 100byte*AES-256AES-256/ECB/PKCS5Padding + Base64 (Standard)
상점에서 보내주는 고유 고객아이디 혹은 Unique 한 Key
reqDtN(8)숫자, 최대 8byte*
요청일자
*yyyyMMdd
reqTmN(6)숫자, 최대 6byte*
요청시간
*HH24MISS
trdAmtN(13)숫자, 최대 13byte*
거래금액
*출금할 금액(거래금액)
bankCdN(3)숫자, 최대 3byte*
출금은행코드
*등록된 고객 출금은행 코드
custAcntKeyAN(50)영문+숫자, 최대 50byte
계좌번호키
*출금이체 등록된 계좌의 일련번호
splAmtN(13)숫자, 최대 13byte
공급가액
vatN(13)숫자, 최대 13byte
부가세
svcAmtN(13)숫자, 최대 13byte
봉사료
pmtPrdtNmAN(50)영문+숫자, 최대 50byte
결제상품명
*결제한 상품명을 설정
custAcntSumryAN(7)영문+숫자, 최대 7byte
통장인자내용
*고객의 통장에 찍힐 인자명
csrcIssReqYnA(1)영문, 최대 1byte
현금영수증 발행여부
Y: 현금영수증 발행 N: 현금영수증 미발행
csrcIssPsblYnA(1)영문, 최대 1byte
현금영수증 발행가능 여부
Y: 현금영수증 발행 가능 거래 N: 현금영수증 발행 불가 거래
taxTypeCdA(1)영문, 최대 1byte
면세여부
Y: 면세 N: 과세
*csrcIssReqYn Y 발행일 경우 필수
csrcRegPrposYnN(1)숫자, 최대 1byte
용도구분
0: 소득공제 1: 지출증빙
*csrcIssReqYn Y 발행일 경우 필수
csrcRegNoDivCdN(1)숫자, 최대 1byte
발행정보 구분
1: 카드 2: 주민등록번호 3: 사업자등록 번호 4: 휴대폰번호
*csrcIssReqYn Y 발행일 경우 필수
csrcRegNoAN(20)영문+숫자, 최대 20byteAES-256AES-256/ECB/PKCS5Padding + Base64 (Standard)
발행정보
*csrcRegNoDivCd 값에 따른 실제값. csrcIssReqYn Y 발행일 경우 필수
addDdtTypeCdA(1)영문, 최대 1byte
추가공제구분
Y: 대중교통 C: 도서, 공연비
custIpAN(15)영문+숫자, 최대 15byte
고객 IP 주소
*가맹점 서버의 IP가 아닌 고객 기기의 IP 주소
pktHashAN(200)영문+숫자, 최대 200byte*SHA-256(실시간 생성)
SHA256 방식으로 생성한 해쉬값
*상점아이디 + 고객아이디(평문) + 주문일자 + 주문시간 + 거래금액 + 출금은행코드 + 인증키
subCpnNmAN(40)영문+숫자, 최대 40byte
하위가맹점명
*거래가 발생한 하위가맹점명
subCpnNoAN(20)영문+숫자, 최대 20byte
하위가맹점번호
*거래가 발생한 하위가맹점번호
subCpnBizRegNoAN(10)영문+숫자, 최대 10byte
하위가맹점 사업자등록번호
*거래가 발생한 하위가맹점사업자등록번호
lastStlAcntDprNmAN(20)영문+숫자, 최대 20byte
최종정산계좌 예금주명
*하위가맹점 정산계좌에 찍힐 통장 인자명 설정
lastStlAcntBankCdAN(3)영문+숫자, 최대 3byte
최종정산계좌 은행코드
*하위가맹점 정산계좌 은행코드
lastStlAcntNoAN(15)영문+숫자, 최대 15byteAES-256AES-256/ECB/PKCS5Padding + Base64 (Standard)
최종정산계좌 번호
*하위가맹점 정산계좌번호. 계좌번호 "-" 제외

요청 전문 해쉬 코드

항목조합 필드
pktHash 값상점아이디 + 고객아이디(평문) + 주문일자 + 주문시간 + 거래금액 + 출금은행코드 + 인증키

응답 파라미터

타입 표기법
N숫자A영문H한글AN영문+숫자AHN영문+한글+숫자
예: AN(10) = 영문+숫자, 최대 10byte
outStatCdAN(4)영문+숫자, 최대 4byte*
거래상태코드 (성공/실패)
0021: 성공 0031: 실패
outRsltCdAN(4)영문+숫자, 최대 4byte*
거절코드
*거절코드 테이블 참조
outRsltMsgAN(200)영문+숫자, 최대 200byte*정상처리되었습니다.
결과메시지
*오류가 발생시 오류에 대한 메시지 전달
trdNoAN(50)영문+숫자, 최대 50byte*STFP_FIRM12345678901234567890
헥토파이낸셜 거래번호
trdAmtN(13)숫자, 최대 13byte*1000
거래금액
*출금한 금액 (거래금액)
mchtTrdNoAN(100)영문+숫자, 최대 100byte*OID201902210001
상점 주문번호
*한글제외
svcDivCdN(4)숫자, 최대 4byte*
결제시 사용된 서비스
1: 펌뱅킹 2: 오픈뱅킹
*결제(출금이체)된 서비스
obPsblYnAN(1)영문+숫자, 최대 1byte
오픈뱅킹 사용가능여부
Y: 사용 N: 미사용
*출금은행 오픈뱅킹 사용가능 여부
macntNoAN(24)영문+숫자, 최대 24byteAES-256AES-256/ECB/PKCS5Padding
모계좌 계좌번호
*모계좌 계좌번호 "-" 제외
*실제 응답값은 AES-256 암호화된 값입니다. 복호화 후 사용하세요.

요청 예시

{
  "hdInfo": "SPAY_RP0W_1.0",
  "mchtId": "midtest",
  "mchtTrdNo": "OID201902210001",
  "mchtCustId": "AES암호화된고객아이디",
  "reqDt": "20191231",
  "reqTm": "120000",
  "trdAmt": "1000",
  "bankCd": "004",
  "custAcntKey": "d894kjd93kd9",
  "splAmt": "0",
  "vat": "0",
  "svcAmt": "0",
  "pmtPrdtNm": "상품명",
  "custAcntSumry": "김헥토",
  "csrcIssReqYn": "N",
  "csrcIssPsblYn": "N",
  "custIp": "127.0.0.1",
  "pktHash": "해시값"
}

응답 예시

{
  "outStatCd": "0021",
  "outRsltCd": "0000",
  "outRsltMsg": "정상처리되었습니다.",
  "trdNo": "STFP_FIRM12345678901234567890",
  "trdAmt": "1000",
  "mchtTrdNo": "OID201902210001",
  "svcDivCd": "2",
  "obPsblYn": "Y"
}
❓

더 궁금한 내용이 있나요?

FAQ
💬

기술지원이 필요한가요?