본문으로 건너뛰기

승인 API 연동하기

1. 승인 API Flow​


2. 설명 (Description)​

  • 인증 응답 데이터를 기반으로 PG사로 승인 요청을 진행하는 API입니다.
  • 인증 응답 시 받은 AuthToken과 TxTid 파라미터는 승인 요청 시 변조 없이 그대로 사용하셔야 합니다.
  • 해당 API로 승인 요청 후 정상 응답을 받아야만 결제가 완료됩니다.
    (단, 가상계좌의 경우 응답받은 가상계좌로 입금을 완료해야만 실제 결제가 완료됩니다.)

3. 요청 (Request)​

3.1. HTTP Request​

  • Method: POST
  • URL: 인증 응답 시 NextAppURL 파라미터로 응답된 URL
  • Content-Type: application/x-www-form-urlencoded
  • Encoding: EUC-KR

3.2. 요청 파라미터​

필드명크기(byte)필수설명
TID30O승인 요청할 거래 아이디 (인증 응답으로 받은 TxTid 사용)
AuthToken40O인증 토큰 (인증 응답으로 받은 AuthToken 사용)
MID10O가맹점 아이디
Amt12O결제 요청 금액 (인증 요청 시 금액과 동일한 값으로 설정)
EdiDate14O요청 전문 생성 일시(YYYYMMDDHHMISS)
SignData256O위변조 검증 데이터, 생성규칙: hex(sha256(AuthToken + MID + Amt + EdiDate + MerchantKey))
CharSet10인증 응답 인코딩 (euc-kr(default) / utf-8)
EdiType10응답전문 유형 (JSON(default) / KV) *KV:Key=value
MallReserved500가맹점 여분필드 (나이스페이 가공 없음)

4. 응답 (Response)​

4.1. 공통 응답 파라미터​

PG사의 기능 추가 및 서비스 개선에 따라 응답 필드는 사전 고지 없이 추가될 수 있습니다.
가맹점에서는 아래 표에 기재되지 않은 응답 필드가 추가될 수 있음을 고려하여 연동해야 하며, 추가 필드로 인해 파싱 오류 또는 결과 처리 오류가 발생하지 않도록 구현해야 합니다.

필드명크기(byte)설명
ResultCode4결과코드 (결제수단 별 성공코드: 3001 CARD / 4000 BANK / 4100 VBANK / A000 CELLPHONE)
ResultMsg100결과 메세지
Amt12결제 금액
MID10가맹점 아이디
Moid64가맹점 주문번호
Signature500위변조 검증 데이터, 생성 규칙: hex(sha256(TID + MID + Amt + MerchantKey))
BuyerEmail60구매자 이메일 주소
BuyerTel20구매자 연락처
BuyerName30구매자명
GoodsName40상품명
TID30거래 아이디
AuthCode30승인번호 (신용카드, 계좌이체, 휴대폰)
AuthDate12승인일시 (YYMMDDHHMISS)
PayMethod10결제수단 (신용카드: CARD, 계좌이체: BANK, 가상계좌: VBANK, 휴대폰: CELLPHONE)
MallReserved500가맹점 여분필드 (요청 시 Data 그대로 전달)
승인 응답 관련 참고 사항
  • 결제수단 별 추가 응답되는 파라미터가 있으므로 아래 결제수단 별 추가 파라미터 항목들을 참고하시기 바랍니다.
  • 금액 관련 필드는 12 byte 고정 길이로, 부족한 자릿수는 좌측을 ‘0’으로 채웁니다.
    (예시: 1,000원 → 000000001000)
  • 결제수단 별로 응답되는 제휴사 코드(CardCode, BankCode, VbankBankCode 등)에 대해서는
    각각 카드사 코드, 은행 코드 페이지를 참고해주세요.

4.2. 신용카드 승인 응답 추가 파라미터​

필드명크기(byte)설명
CardCode3카드 발급사 코드
CardName100카드 발급사 이름
CardNo20카드 번호 (일부 마스킹 처리)
CardQuota2할부개월 (00: 일시불, 02: 2개월, 03: 3개월, ...)
CardInterest1가맹점 분담 무이자 적용 여부 (0: 미적용, 1: 적용)
AcquCardCode3매입 카드사 코드
AcquCardName100매입 카드사 이름
CardCl1카드 구분 (0: 신용, 1: 체크)
CcPartCl1부분취소 가능 여부 (0: 불가능, 1: 가능)
CardType2카드 형태 (01: 개인, 02: 법인, 03: 해외)
ClickpayCl2간편결제 구분
CouponAmt12쿠폰 금액
CouponMinAmt12쿠폰 최소 금액
PointAppAmt12카드사 포인트 승인금액
MultiCl1옵션: 페이코/카카오/토스 간편결제 복합결제 여부 (0: 복합결제 미사용, 1: 복합결제 사용)
MultiCardAcquAmt12옵션: 페이코/카카오/토스 간편결제 간편결제 신용카드 금액
MultiPointAmt12옵션: 페이코/카카오/토스 간편결제 간편결제 포인트(페이코 포인트, 카카오머니, 토스머니) 금액
MultiCouponAmt32옵션: 페이코/카카오/토스 간편결제 간편결제 쿠폰(페이코 쿠폰, 카카오 포인트, 토스 포인트) 금액
MultiRcptAmt12옵션: 페이코 간편결제 페이코 머니 거래건 현금영수증 발급 대상 금액
RcptType10옵션: 네이버페이-포인트 결제 현금영수증 타입 (0:발행안함,1:소득공제,2:지출증빙)
RcptTID30옵션: 네이버페이-포인트 결제 현금영수증 TID
RcptAuthCode30옵션: 네이버페이-포인트 결제 현금영수증 승인번호

4.3. 계좌이체 승인 응답 추가 파라미터​

필드명크기(byte)설명
BankCode3결제 은행 코드
BankName20결제 은행명
RcptType10현금영수증 타입 (0:발행안함,1:소득공제,2:지출증빙)
RcptTID30현금영수증 TID
RcptAuthCode30현금영수증 승인번호

4.4. 가상계좌 승인 응답 추가 파라미터​

필드명크기(byte)설명
VbankBankCode3가상계좌 은행 코드
VbankBankName20가상계좌 은행명
VbankNum20가상계좌 번호
VbankExpDate8가상계좌 입금만료일 (YYYYMMDD)
VbankExpTime6가상계좌 입금만료 시간 (HHMISS)

5. 예시​

아래 예시는 테스트 시 이해를 돕기 위해 임의로 만든 데이터로 요청 및 응답 규격을 확인하기 위한 용도입니다.
예시 데이터를 실제 API 요청에 사용하지 않도록 주의해주세요.

5.1. 요청 예시​

POST /webapi/pay_process.jsp HTTP/1.1
Host: dc1-api.nicepay.co.kr or dc2-api.nicepay.co.kr
Content-Type: application/x-www-form-urlencoded

TID=nictest00m01012608131607041648&AuthToken=NICETOKN5AC64335B5407F799C440DEECE7A3ED5&MID=nictest00m&Amt=1004&EdiDate=20260813090704&SignData=736e9785673a70563b7c385607380b064694782b2dd553e7d5bc9cbcdcd8fb3f

5.2. 응답 예시​

{
"CardCode": "02",
"CardName": "KB국민",
"CardNo": "12345678****9012",
"CardQuota": "00",
"CardInterest": "0",
"AcquCardCode": "02",
"AcquCardName": "KB국민",
"CardCl": "0",
"CcPartCl": "1",
"CouponAmt": "000000000000",
"CouponMinAmt": "000000000000",
"PointAppAmt": "000000000000",
"ClickpayCl": "",
"MultiCl": "",
"MultiCardAcquAmt": "",
"MultiPointAmt": "",
"MultiCouponAmt": "",
"MultiDiscountAmt": "",
"RcptType": "",
"RcptTID": "",
"RcptAuthCode": "",
"CardType": "01",
"ApproveCardQuota": "00",
"PointCl": "0",
"ResultCode": "3001",
"ResultMsg": "카드 결제 성공",
"MsgSource": "PG",
"Amt": "000000001004",
"MID": "nictest00m",
"Moid": "testRequest1",
"BuyerEmail": "test@abc.com",
"BuyerTel": "01012345678",
"BuyerName": "홍길동",
"GoodsName": "나이스페이",
"TID": "nictest00m01012608131607041648",
"AuthCode": "30042052",
"AuthDate": "260813160705",
"PayMethod": "CARD",
"CartData": "",
"Signature": "16b738caa1bc9e213395a78f5b09b5f9b96bf22ab2b4e5867de1f8029c6d3dfd",
"MallReserved": ""
}