본문으로 건너뛰기

결제 링크 활용하기

NICE링크결제 서비스는 가맹점에서 고객의 정보를 나이스정보통신으로 전달하면 나이스페이 결제 모듈이 적용된 링크를 고객에게 문자(SMS), 이메일, 카카오톡 등으로 전송하는 서비스입니다. 필요 시, 링크를 가맹점에서 받은 후 고객에게 직접 전송하는 방법도 가능합니다.


1. 전체 Flow

  • 고객께서 원하는 방법에 따라 결제 링크를 문자, 이메일, 카카오톡으로 발송하는 API와 발송된 결제 링크의 결과를 조회하는 API로 구성되어 있습니다.
  • 결제 링크를 통해 고객이 결제하는 시점(가상계좌의 경우 입금 시)에 결과를 받고자 하는 경우 결제통보 페이지를 참고하시기 바랍니다.

2. 연동 전 준비 사항

2.1. 방화벽 설정

  • 프로토콜: HTTPS
  • 연결대상(IP): 121.133.126.56
  • 포트(PORT): 443
  • 연결방향: OUTBOUND
  • 도메인 허용 목록: webapi.nicepay.co.kr

2.2. 주의 사항

  • NICE링크결제는 테스트 계정을 제공하지 않으며, 영업담당자와 협의된 이후 사용 가능합니다.
  • 인코딩은 utf-8로 설정하여 요청하되 euc-kr에서 지원하지 않는 문자를 보내는 경우 해당 문자가 깨질 수 있습니다.
  • 모든 API호출은 server-side에서 처리 될 수 있도록 하고 민감정보가 외부에 노출되지 않도록 주의해야 합니다. API 로깅에 따른 정보 노출의 모든 책임은 가맹점에 있습니다.
  • PG사의 기능 추가 및 서비스 개선에 따라 응답 필드는 사전 고지 없이 추가될 수 있습니다.
    가맹점에서는 아래 표에 기재되지 않은 응답 필드가 추가될 수 있음을 고려하여 연동해야 하며, 추가 필드로 인해 파싱 오류 또는 결과 처리 오류가 발생하지 않도록 구현해야 합니다.

3. API 목록 및 구성

3.1. HTTP Request

  • Method: POST
  • URL: https://webapi.nicepay.co.kr/webapi/smslink/api.jsp
  • Content-Type: application/json
  • Encoding: UTF-8

3.2. 요청 전문 구성

  • API 데이터 포맷은 요청 전문을 정의한 header와 전달 파라미터를 정의한 body를 조합한 JSON 데이터입니다.
  • header는 요청 전문ID(sid) 및 결과 코드를 정의합니다.
    • 서비스별 sid는 아래 "전문ID(sid) 목록"을 참고하시기 바랍니다.
  • body는 각 전문ID에 대한 요청/응답 값을 정의합니다.
    • body 전문 내에는 가맹점 검증 및 요청 데이터 위변조 방지를 위한 encKey 값이 필수로 존재합니다.
      (encKey 생성 규칙은 아래 "가맹점 인증키(encKey) 생성 규칙" 항목을 참고하시기 바랍니다.)

header 파라미터 명세

필드명크기(byte)필수설명
sid10O전문 ID, 업무별 정의된 ID 입력
trDtm14O요청 전문 생성 일시(YYYYMMDDHHMISS)
gubun1O전문 구분 (S: 요청, R: 응답)
resCode4O결과 코드, 빈 값으로 요청 후 결과 코드 반환 (0000: 성공 / 이외 실패)
resMsg255O결과 메세지, 빈 값으로 요청 후 결과 메세지 반환

전문ID(sid) 목록

sidAPI
0501001NICE링크결제 등록
0501002NICE링크결제 내역 조회

가맹점 인증키(encKey) 생성 규칙

  • 규칙: hex(sha256(sid + usrId + trDtm + 가맹점 Key))
    • sid: 전문ID (7자리)
    • usrId: 상점 로그인 ID (최대 20자리)
    • trDtm: 요청 전문 생성 일시 (14자리)
    • 가맹점 Key: 가맹점관리자페이지(https://npg.nicepay.co.kr) 접속 후 가맹점정보->Key관리 매뉴를 통해 확인하실 수 있습니다.

4. NICE링크결제 등록 (0501001)

4.1. 요청 파라미터

필드명크기(byte)필수설명
usrId20O상점 로그인 ID
encKey255O암호화 Key, 생성 규칙: hex(sha256(sid + usrId + trDtm + MerchantKey))
mid10O가맹점 ID
goodsNm100O상품명
goodsAmt14O상품가격
moid64O상품 주문번호
ordNm30O구매자명
ordEmail60구매자 이메일 (sendType1인 경우 필수)
ordHpNo15O구매자 휴대폰 번호 (- 기호 없이 입력)
type1O발송 내용 구분 (0: 기본, 1: 추가). sendType=2이거나 09~21시 외 시간대에 등록 요청하는 경우 반드시 0으로 설정
logoImageUrl200NICE링크결제 페이지 내 로고 CI 이미지 URL (https 프로토콜만 허용, 최대 길이 255)
skinType10NICE링크결제 페이지 색상 타입 (blue(default), green, purple, darkgray, red)
ordBusType1사업자 유형 (0: 개인, 1: 법인)
ordBusNo10사업자 유형에 따른 구매자 정보 (개인: 생년월일 YYMMDD, 법인: 사업자번호 10자리)
sendType2결제 링크 발송 수단 (0: SMS(default), 1: Email, 2: KAKAO, 4: 가맹점 결제 URL 응답)
payLimitDt8결제링크 유효기간 (YYYYMMDD). 요청 당일부터 최대 7일까지 설정 가능하며, 미입력 시 요청 당일로 설정
payMethod10결제수단 (CARD: 신용카드, BANK: 계좌이체, VBANK: 가상계좌, CELLPHONE: 휴대폰)
multiSelectQuota2카드 할부개월 (00: 일시불, 02: 2개월, 03: 3개월 등). 사용 시 결제수단은 카드로 고정되므로 payMethodCARD로 설정
transType1에스크로 결제 여부 (0: 일반 결제(default), 1: 에스크로 결제)
langType1언어 설정 (1: 국문(default), 2: 영문)
mallReserved400가맹점 여분필드 (결제통보 응답 시 MallReserved 필드로 값 변경 없이 전달)

기능별 옵션 파라미터

아래 내용은 가맹점 MID 설정에 따라 추가로 사용 가능한 파라미터들을 항목별로 정리하였습니다. 영업담당자와 사전 협의 후 사용하시기 바랍니다. (사전협의 없이 사용하는 경우 결제 혹은 취소 시 실패가 발생할 수 있습니다.)

  • 과세 및 면세 지정 옵션 (사용 시 4개 필드의 합이 Amt 값과 일치해야 합니다.)
필드명크기(byte)설명
supplyAmt12공급가액
goodsVat12부가세
serviceAmt12봉사료
taxFreeAmt12면세 금액

4.2. 응답 파라미터

필드명크기(byte)설명
reqDt14요청일시 (YYYYMMDDHHMISS)
authCl2사용자 ID별 조회 권한 (2: MID, 3: GID, 4: AID)
dataCnt-데이터 Count
data-조회 데이터 (data 하위 파라미터 상세 항목 참조)

data 하위 파라미터 상세

필드명크기(byte)설명
reqId30요청 ID (NICE링크결제 내역 조회 시 사용)
payUrl74결제 요청 URL (요청 시 sendType4인 경우에만 응답)

4.3. 예시

요청 예시

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

POST /webapi/smslink/api.jsp HTTP/1.1
Host: webapi.nicepay.co.kr
Content-Type: application/json

{
"header": {
"sid": "0501001",
"trDtm": "20200602142641",
"gubun": "S",
"resCode": "",
"resMsg": ""
},
"body": {
"usrId": "nictest00",
"encKey": "4fed0e11d260344ebb15021701a47a83c8030755edd6c6ba772835cfd1f8059c",
"type": "0",
"mid": "nictest00m",
"goodsNm": "테스트 상품",
"goodsAmt": "1004",
"moid": "TEST000001",
"ordNm": "홍길동",
"ordEmail": "test@test.co.kr",
"ordHpNo": "01012341234"
}
}

응답 예시

{
"header": {
"sid": "0501001",
"trDtm": "20200602144636",
"gubun": "R",
"resCode": "0000",
"resMsg": "SUCCESS"
},
"body": {
"reqDt": "20200602144636",
"authCl": "3",
"dataCnt": 1,
"data": [
{
"reqId": "gyooqn5o"
}
],
"reqInfo": {
"header": {
"sid": "0501001",
"trDtm": "20200602142641",
"gubun": "S",
"resCode": "",
"resMsg": ""
},
"body": {
"usrId": "nictest00",
"encKey": "4fed0e11d260344ebb15021701a47a83c8030755edd6c6ba772835cfd1f8059c",
"type": "0",
"mid": "nictest00m",
"goodsNm": "테스트 상품",
"goodsAmt": "1004",
"moid": "TEST000001",
"ordNm": "홍길동",
"ordEmail": "test@test.co.kr",
"ordHpNo": "01012341234"
}
}
}
}

5. NICE링크결제 내역 조회 (0501002)

5.1. 요청 파라미터

필드명크기(byte)필수설명
usrId20O가맹점관리자페이지 로그인 ID
encKey255O암호화 Key, 생성 규칙: hex(sha256(sid + usrId + trDtm + MerchantKey))
mid10O가맹점 ID
reqId30ONICE링크결제 등록 시 응답으로 받은 reqId

5.2. 응답 파라미터

필드명크기(byte)설명
reqDt14요청일시 (YYYYMMDDHHMISS)
authCl2사용자 ID별 조회 권한 (2: MID, 3: GID, 4: AID)
dataCnt-데이터 Count
data-조회 데이터 (data 하위 파라미터 상세 항목 참조)

data 하위 파라미터 상세

필드명크기(byte)설명
coNm30가맹점 상호
mid10가맹점 ID
svcNm30결제수단 (신용카드, 계좌이체, 가상계좌, 휴대폰)
payStatus10결제내역 (미완료, 결제완료, 결제실패, 결제중지)
sendDt8발송일자 (YYYYMMDD)
payDt8결제일자 (YYYYMMDD)
amt14거래금액
ordNm30구매자명
moid64상품 주문번호
ordEmail60구매자 이메일
ordHpNo15구매자 전화번호
sendStatus10전송 결과 (성공, 실패)
tid30거래 아이디 (Transaction ID)
goodsNm100상품명

5.3. 예시

요청 예시

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

POST /webapi/smslink/api.jsp HTTP/1.1
Host: webapi.nicepay.co.kr
Content-Type: application/json

{
"header": {
"sid": "0501002",
"trDtm": "20200602142641",
"gubun": "S",
"resCode": "",
"resMsg": ""
},
"body": {
"usrId": "nictest00",
"encKey": "5431a36e6eb963f73ef2f8fa8202f29f2edbd4595c4751ed7ef4064e78dbb547",
"mid": "nictest00m",
"reqId": "gyooqn5o"
}
}

응답 예시

{
"header": {
"sid": "0501002",
"trDtm": "20200602145003",
"gubun": "R",
"resCode": "0000",
"resMsg": "SUCCESS"
},
"body": {
"reqDt": "20200602145003",
"authCl": "3",
"dataCnt": 1,
"data": [
{
"coNm": "나이스정보통신(주)",
"mid": "nictest00m",
"svcNm": "",
"payStatus": "미완료",
"sendDt": "20200602",
"payDt": "",
"amt": 1004,
"ordNm": "홍길동",
"moid": "TEST000001",
"ordEmail": "te**@test.co.kr",
"ordHpNo": "0101234****",
"sendStatus": "성공",
"tid": "",
"goodsNm": "테스트 상품"
}
],
"reqInfo": {
"header": {
"sid": "0501002",
"trDtm": "20200602142641",
"gubun": "S",
"resCode": "",
"resMsg": ""
},
"body": {
"usrId": "nictest00",
"encKey": "5431a36e6eb963f73ef2f8fa8202f29f2edbd4595c4751ed7ef4064e78dbb547",
"mid": "nictest00m",
"reqId": "gyooqn5o"
}
}
}
}

6. NICE링크결제 비활성화

6.1. HTTP Request

  • Method: POST
  • URL: https://webapi.nicepay.co.kr/webapi/smslink/link_deactivate.jsp
  • Content-Type: application/x-www-form-urlencoded
  • Encoding: EUC-KR

6.2. 요청 파라미터

필드명크기(byte)필수설명
ReqId14ONICE링크결제 등록 시 응답으로 받은 reqId
MID10O가맹점 아이디
EdiDate14O요청 전문 생성 일시(YYYYMMDDHHMISS)
SignData256O위변조 검증 데이터, 생성규칙: hex(sha256(ReqId + EdiDate + MerchantKey))
CharSet10응답 인코딩 (euc-kr(default) / utf-8)

6.3. 응답 파라미터

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

필드명크기(byte)설명
ResultCode4결과코드 (0000: 성공, 이외 실패)
ResultMsg100결과 메세지
ReqId14가맹점이 요청 시 입력한 ReqId 값 그대로 전달
MID10가맹점 아이디
EdiDate14요청 전문 생성 일시(YYYYMMDDHHMISS)
Signature500위변조 검증 데이터, 생성 규칙: hex(sha256(ReqId + MID + MerchantKey))

6.4. 예시

요청 예시

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

POST /webapi/smslink/link_deactivate.jsp HTTP/1.1
Host: webapi.nicepay.co.kr
Content-Type: application/x-www-form-urlencoded

ReqId=urix2609039271&MID=nictest00m&EdiDate=20260903200529&SignData=ba511c2828c4538508eacb2e5bb7a5058699b2e669a1f477035cfd944782753c&CharSet=utf-8

응답 예시


{
"ResultCode": "0000",
"ResultMsg": "정상 처리되었습니다.",
"ReqId": "urix2609039271",
"MID": "nictest00m",
"EdiDate": "20260903200529",
"Signature": "f225a56735ac4003908693e998070e065693808b3aba0c5e9e8944c777901297"
}