간편결제 노티 전문
거래가 정상적으로 완료되면, 헥토파이낸셜에서 가맹점으로 노티(결과통보) 메세지가 전송됩니다. 자세한 설명은 결과통보 URL 가이드를 참고하세요.
이 문서는 다음 간편결제 수단의 노티에 적용됩니다:
| 간편결제 | 코드 | 노티 문서 |
|---|---|---|
| 카카오페이 | KKP | 이 문서 |
| 네이버페이 | NVP | 이 문서 |
| 페이코 | PAC | 이 문서 |
| 토스페이 | TOS | 이 문서 |
| 삼성페이 | SPP | 신용카드 노티 전문 |
NOTE
notiUrl이란?
notiUrl은 PG사 서버에서 가맹점 서버로 직접 결제 결과를 전송하는 Server-to-Server 방식의 웹훅입니다. 브라우저를 거치지 않아 안정적으로 결과를 수신할 수 있습니다.
통신 규격
| 구분 | 내용 |
|---|---|
| 전송 방식 | POST |
| Content-Type | application/x-www-form-urlencoded; charset=UTF-8 |
| 응답 형식 | Plain Text (OK 또는 FAIL) |
취소 노티 안내
취소 노티는 기본 미제공
간편결제 취소는 API 응답으로 결과를 확인하므로, 기본적으로 취소 노티가 전송되지 않습니다. 취소 노티가 필요한 경우 영업 담당자 또는 기술지원 이메일(pgsupport@hecto.co.kr)로 요청하세요.
노티 파라미터
타입 표기법
N숫자A영문H한글AN영문+숫자AHN영문+한글+숫자예: AN(10) = 영문+숫자, 최대 10byte
└outStatCdAN(4)영문+숫자, 최대 4byte*거래상태
0021거래상태
0021: 성공└trdNoAN(40)영문+숫자, 최대 40byte*헥토파이낸셜에서 부여하는 고유 거래번호
STFP_PGPZhecto_test0211129135810M1494620헥토파이낸셜에서 부여하는 고유 거래번호
└methodA(2)영문, 최대 2byte*결제수단
PZ결제수단
PZ: 간편결제└bizTypeAN(2)영문+숫자, 최대 2byte*업무구분
B0업무구분
B0: 승인 (카카오페이·페이코·토스페이 및 네이버페이 포인트/머니) B1: 승인 (네이버페이 카드 전용) B3: 정기결제 승인 C0: 취소 (기본 미제공, 요청 시 수신 가능)└mchtIdAN(10)영문+숫자, 최대 10byte*헥토파이낸셜에서 부여하는 상점아이디
hecto_test헥토파이낸셜에서 부여하는 상점아이디
└mchtTrdNoAN(100)영문+숫자, 최대 100byte*상점에서 생성하는 고유 주문 번호
ORDER20211231100000상점에서 생성하는 고유 주문 번호
└ezpDivCdA(3)영문, 최대 3byte*간편결제사 구분코드
KKP간편결제사 구분코드
KKP: 카카오페이 NVP: 네이버페이 PAC: 페이코 TOS: 토스페이└mchtNameAHN(20)영문+한글+숫자, 최대 20byte상점한글명
헥토파이낸셜상점한글명
└pmtprdNmAHN(128)영문+한글+숫자, 최대 128byte고객이 주문한 결제 상품명
테스트상품고객이 주문한 결제 상품명
└trdDtmN(14)숫자, 최대 14byte*거래일시. 형식: YYYYMMDDhhmmss
20211231100000거래일시. 형식: YYYYMMDDhhmmss
└trdAmtN(12)숫자, 최대 12byte거래금액
1000거래금액
└cardCdAN(10)영문+숫자, 최대 10byte카드사 코드 (카드 결제 시)
NHC카드사 코드 (카드 결제 시)
└cardNmAHN(20)영문+한글+숫자, 최대 20byte카드사 명
NH 체크카드사 명
└emailAN(60)영문+숫자, 최대 60byte상점 고객 이메일
HongGilDong@example.com상점 고객 이메일
└mchtCustIdAN(50)영문+숫자, 최대 50byte상점 고객 아이디
HongGilDong상점 고객 아이디
└cardNoAN(20)영문+숫자, 최대 20byte마스킹된 카드번호
123456******7890마스킹된 카드번호
*카카오페이의 경우 BIN 번호만 전달됩니다.
네이버페이의 경우 OTC(One Time Card, 일회용 카드번호)로 승인될 수 있어 실제 카드번호와 다를 수 있습니다.
네이버페이의 경우 OTC(One Time Card, 일회용 카드번호)로 승인될 수 있어 실제 카드번호와 다를 수 있습니다.
└cardApprNoAN(15)영문+숫자, 최대 15byte카드 승인 번호
30001234카드 승인 번호
└instmtMonN(2)숫자, 최대 2byte할부 개월 수
00할부 개월 수
└instmtTypeA(1)영문, 최대 1byte할부 개월이 카드사 이벤트에 속하는 경우 Y (상점 설정 정보에 따른 옵션값)
N할부 개월이 카드사 이벤트에 속하는 경우 Y (상점 설정 정보에 따른 옵션값)
└orgTrdNoAN(40)영문+숫자, 최대 40byte취소 시, 원거래 번호
STFP_PGPZhecto_test0211129135810M1494620취소 시, 원거래 번호
└orgTrdDtN(8)숫자, 최대 8byte취소 시, 원거래 일자
20211231취소 시, 원거래 일자
└pntAmtN(13)숫자, 최대 13byte*전체금액 중 포인트/머니 결제 금액
0전체금액 중 포인트/머니 결제 금액
*네이버페이의 경우 포인트와 머니를 구분하지 않고 합산하여 제공
└cardAmtN(13)숫자, 최대 13byte*전체금액 중 신용카드 금액
3000전체금액 중 신용카드 금액
└coupAmtN(13)숫자, 최대 13byte*전체금액 중 쿠폰 금액
1000전체금액 중 쿠폰 금액
└kkmAmtN(13)숫자, 최대 13byte카카오머니 금액
5000카카오머니 금액
└mnyAmtN(13)숫자, 최대 13byte토스페이 머니 금액
5000토스페이 머니 금액
*토스페이(TOS) 결제 시, 전체금액 중 토스페이 머니로 결제된 금액
└csrcIssAmtN(13)숫자, 최대 13byte현금영수증 발행대상금액
3000현금영수증 발행대상금액
*네이버페이 결제에만 전달됩니다. 네이버페이 외 간편결제(카카오페이·페이코·토스페이 등)는 현금영수증을 각 간편결제사에서 직접 처리하므로 이 파라미터가 전달되지 않습니다.
네이버페이의 경우 포인트/머니 결제 금액 중 무상 지급(이벤트·프로모션 등) 포인트는 제외됩니다.
네이버페이의 경우 포인트/머니 결제 금액 중 무상 지급(이벤트·프로모션 등) 포인트는 제외됩니다.
└cnclTypeN(2)숫자, 최대 2byte취소거래타입
00취소거래타입
00: 전체 취소 10: 부분 취소└csrcIssNoAN(30)영문+숫자, 최대 30byte현금영수증 승인번호
0123456789현금영수증 승인번호
*네이버페이 결제에만 전달됩니다. 네이버페이 외 간편결제(카카오페이·페이코·토스페이 등)는 현금영수증을 각 간편결제사에서 직접 처리하므로 이 파라미터가 전달되지 않습니다.
└mchtParamAHN(4000)영문+한글+숫자, 최대 4000byte상점에서 이용하는 추가 정보 필드로 전달한 값이 그대로 반환됩니다.
name=HongGilDong&age=25상점에서 이용하는 추가 정보 필드로 전달한 값이 그대로 반환됩니다.
└pktHashAN(64)영문+숫자, 최대 64byte*SHA256 해쉬값
a2d6d597d55d7c9b689baa2e08c1ddf0ce71f4248c5b9b59fe61bfbf949543e1SHA256 해쉬값
NOTE
해쉬 생성 조합
outStatCd + 거래일자(trdDtm 앞 8자리) + 거래시간(trdDtm 뒤 6자리) + mchtId + mchtTrdNo + trdAmt(평문) + hashKey
노티 응답 (가맹점 → 헥토파이낸셜)
가맹점에서 헥토파이낸셜로 응답을 전송합니다.
| 응답 | 설명 |
|---|---|
OK | 성공 (대문자). 노티 수신 완료로 처리됩니다. |
FAIL 또는 그 외 | 실패로 인식하여 상점별 설정된 횟수까지 재전송합니다. 재전송 기준일 초과 시 전송이 중단됩니다. |
응답 형식 주의
응답은 Plain Text로 'OK'만 보내야 합니다. 공백이나 다른 문자가 포함되면 실패로 간주되어 재전송이 발생할 수 있습니다.
해쉬 검증
해쉬 검증 필수
데이터 위변조를 체크하기 위해 notiUrl로 수신받은 해시데이터를 반드시 검증해야 합니다. 일치하는 경우에만 서비스를 제공하세요.
| 항목 | 조합 필드 |
|---|---|
| pktHash | outStatCd + 거래일자(trdDtm 앞 8자리) + 거래시간(trdDtm 뒤 6자리) + mchtId + mchtTrdNo + trdAmt(평문) + hashKey |
노티 예시
결제 노티 (헥토파이낸셜 → 가맹점)
POST /your-noti-url HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
outStatCd=0021
&trdNo=STFP_PGPZhecto_test0211231100000M1234567
&method=PZ
&bizType=B0
&mchtId=hecto_test
&mchtTrdNo=ORDER20211231100000
&ezpDivCd=KKP
&mchtName=헥토파이낸셜
&pmtprdNm=테스트상품
&trdDtm=20211231100000
&trdAmt=50000
&cardCd=NHC
&cardNm=NH 체크
&cardNo=123456******7890
&cardApprNo=30001234
&instmtMon=00
&pntAmt=0
&cardAmt=50000
&coupAmt=0
&email=test@example.com
&mchtCustId=customer123
&mchtParam=
&pktHash=a2d6d597d55d7c9b689baa2e08c1ddf0ce71f4248c5b9b59fe61bfbf949543e1
응답 (가맹점 → 헥토파이낸셜)
OK
