가상계좌 입금통보

가상계좌 결제수단의 경우 가상계좌번호 채번과 입금이 분리되어 있는 결제 방식입니다.

고객이 채번된 가상계좌번호로 입금하는 경우, 채번 시 전달된 요청파라미터 "vactNotiUrl"로 결제 관련 파라미터가 전달됩니다.

서비스 흐름

가상계좌 결제 흐름
  1. 계좌 발급: 결제 승인 시 가상계좌번호가 발급됩니다.
  2. 입금 대기: 사용자에게 가상계좌 정보를 안내합니다.
  3. 사용자 입금: 사용자가 은행 앱, ATM 등을 통해 직접 입금합니다. (시스템 외부)
  4. 입금 통보: 입금이 확인되면 KPN이 vactNotiUrl로 통보합니다.
  5. 주문 처리: 가맹점은 통보를 받고 주문을 완료 처리합니다.

입금 통보 상세

입금 통보 프로세스

고객이 채번된 가상계좌번호로 입금하는 경우, 채번 시 전달된 요청 파라미터 vactNotiUrl로 결제 관련 파라미터가 전달됩니다.

응답 필수

가맹점에서 정상적으로 처리된 후 응답 값으로 "ACK=200OKOK" (String) 를 반드시 반환해야 합니다.

다른 결제수단도 웹훅을 받고 싶다면?

결제 결과 통보 서비스를 이용하세요. 단, 해당 서비스 사용 시 응답 형식이 다르므로 별도 연동이 필요합니다.


응답(전달) 파라미터

가상계좌에 입금이 완료되면 다음 파라미터가 vactNotiUrl로 전달됩니다.

POST
가맹점 도메인/{vactNotiUrl}
Base URL가맹점 도메인
Content-Typeapplication/x-www-form-urlencoded
필수
조건부 필수
key타입최대크기필수설명
MxIDString12가맹점 ID
String2서비스종류
CurrencyString3통화코드
MxIssueNOString32주문번호 (가맹점 자체 주문번호)
MxIssueDateString14주문시간 (YYYYMMDDHHMMSS)
AmountString12결제금액
String8응답코드
ReplyMessageString--응답 메세지
MxHASH256String64Hash 검증: SHA256(MxID + passKey + MxIssueNO + MxIssueDate + Amount + Currency)
VactNoString32가상계좌번호
CashYNString1-현금영수증 발급여부
CashCardNOString20-현금영수증 발급번호
RemitterString10-송금인
TIDString40거래 ID
CashAuthNOString12-현금영수증 승인번호
String1-현금영수증 발행구분
AuthDateString14-입금완료 시: 입금 시간 (YYYYMMDDHHMMSS), 입금취소 시: 입금 취소시간 (YYYYMMDDHHMMSS)
중요 사항
  • 입금 통보 URL(vactNotiUrl)은 외부에서 접근 가능한 공개 URL이어야 합니다.
  • 반드시 ACK=200OKOK 응답을 반환해야 합니다.
  • Hash 검증을 통해 요청의 무결성을 확인하세요.
  • 입금 완료(00003000)와 입금 취소(00003100) 모두 처리해야 합니다.
입금 완료 후 취소 불가

가상계좌는 입금 완료 후 결제 취소가 불가능합니다. 환불이 필요한 경우 환불 서비스를 이용하세요.


입금통보 테스트 API

테스트 환경에서는 실 입금이 불가능합니다. 따라서 개발계에서 입금 시, 통보가 정상적으로 처리되는지 확인하기 위하여, 테스트용 API를 공유드리고 있습니다.

주의사항

해당 API는 실제 입금 처리 로직을 거치지 않습니다. 입금 통보가 나갈 수 있도록 상태 값을 업데이트하는 테스트용 API입니다.

요청 파라미터

POST
https://dev.firstpay.co.kr/api/v1/test/vact/deposit
Base URLhttps://dev.firstpay.co.kr
Content-Typeapplication/json
필수
조건부 필수
key타입최대크기필수설명
mxIdString12가맹점 ID
mxIssueNoString32주문번호 (유니크한 값 권장)

요청 예시

json
{ "mxId": "testcorp", "mxIssueNo": "testcorpYYYYMMDD00001" }

응답 파라미터

API 응답은 서비스 API 공통 형식을 따릅니다. data 필드 상세는 아래와 같습니다.

필수
조건부 필수
key타입최대크기필수설명
mxIdString12가맹점 ID
mxIssueNoString32주문번호
referenceNoString14참조번호
acctNoString32가상계좌번호

응답 예시

json
{ "code": "0000", "message": "성공", "data": { "mxId": "testcorp", "mxIssueNo": "testcorp_20260304023744", "referenceNo": "260304V3000001", "acctNo": "0041111222200013" }, "status": "OK", "requestId": "c5a089ef-10ba-4a9c-b9d2-aabe166132a3", "requestAt": "2026-03-04T14:38:12.508791497", "responseAt": "2026-03-04T14:38:13.199389018" }