NAPIv1.0.0

비즈뿌리오 NAPI

공통 사항

네이버 톡톡 관리 API (NAPI) — 네이버 톡톡 발송에 필요한 파트너·그룹·이미지·템플릿을 등록·조회·수정·삭제하는 관리 API.

NOTE: NAPI 는 네이버 톡톡 메시지를 발송하지 않습니다. 발송은 메시지 APIcontent.ntalk 을 사용합니다. (BIZCLIENT 미지원, NTALK 은 API 전용)

연동 규격

항목
프로토콜 HTTPS
도메인 https://napi.bizppurio.com/
메서드 POST 전용
인코딩 UTF-8
Content-Type application/json; charset=utf-8
인증 Bearer 토큰 (Authorization: Bearer {accessToken})
권장 응답 대기 시간 30초

인증 흐름

고객사비즈뿌리오 서버(napi.bizppurio.com)① POST /token/refresh — bizId + apiKey (IP 10 r/m)② refreshToken (1주)③ POST /token/access — refreshToken④ accessToken (4시간)⑤ 후속 호출 — Authorization: Bearer {accessToken}만료 시 ③단계부터 재발급 (refreshToken 유효하면 재로그인 불필요)

자세한 토큰 발급은 토큰 API 를 참고하세요.

공통 응답 형식

성공·실패 모두 다음 형식. 429 외 검증·인증 실패는 HTTP 200 + 본문 code 로 결과 전달.

{ "code": "200", "message": "요청 성공", "data": { ... } }
필드 설명
code 결과 코드 (200 = 성공, 그 외 코드 정의 참고)
message 결과 메시지
data 성공 시 응답 본문 (엔드포인트별 상이)
errors 필드 검증 실패 시 { field, value, reason } 배열

Rate Limit

구분 제한
토큰 API (/token/*) IP 기준 10 r/m
그 외 자원 API 계정 기준 100 r/m

초과 시 HTTP 429 + 응답 헤더 X-Rate-Limit-Limit / X-Rate-Limit-Remaining / X-Rate-Limit-Retry-After-Seconds.

자원 ↔ 발송 연결

NAPI 로 등록·관리하는 자원은 다음과 같이 메시지 API content.ntalk 에서 사용됩니다.

NAPI 에서 등록·관리 네이버 톡톡 발송에서 사용
파트너 키 (naverPartnerKey) content.ntalk.partnerkey
템플릿 코드 (templateCode) content.ntalk.templatecode
이미지 해시 ID (imageHashId) content.ntalk.extra.attachment.imageHashId
템플릿 그룹 키 (templateGroupKey) content.ntalk.groupkey

추가 사항

템플릿 상태 변화:

  • templateStatusType (검수): REGISTEREDPENDINGAPPROVED | REJECTED
  • templateSendingStatusType (발송): WAITINGSENDING | BLOCKED
  • WAITING 이 아닌 상태에서는 수정/삭제 불가

토큰

refreshToken (1주) · accessToken (4시간) 발급 (2개 엔드포인트, 인증 헤더 없음, IP 단위 10 r/m)

post/token/refresh

Refresh-Token 발행

accessToken 발행에 사용하는 장기 토큰입니다. 유효 기간 1주.

  • 비즈뿌리오 사이트에 등록된 모듈 계정(bizId) + 발급받은 apiKey 필요
  • 토큰 발급 API는 IP 단위 10 r/m Rate Limit 적용
  • 응답으로 refreshToken과 즉시 사용 가능한 accessToken 한 쌍을 함께 반환
요청 본문
파라미터타입필수설명
bizIdstring필수
비즈뿌리오 사용자 ID
apiKeystring필수
발급받은 API Key
curl -X POST "https://napi.bizppurio.com/token/refresh" \
  -H "Content-Type: application/json" \
  -d '{
  "bizId": "bizUserId001",
  "apiKey": "123cr0wSXXXXXXXX"
}'
응답
200토큰 발급 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject
refreshTokenstring
리프레시 토큰 (1주 유효)
accessTokenstring
인증 토큰 (4시간 유효)
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "data": {
    "refreshToken": "...",
    "accessToken": "..."
  }
}
429요청 한도 초과 (IP 단위 10 r/m)
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
응답 · 429
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ]
}
post/token/access

Access-Token 발행

API 인증에 사용하는 단기 토큰입니다. 유효 기간 4시간.

  • refreshToken만으로 호출
  • 만료 시 다시 발급하여 Authorization: Bearer {accessToken} 헤더에 사용
요청 본문
파라미터타입필수설명
refreshTokenstring필수
리프레시 토큰
curl -X POST "https://napi.bizppurio.com/token/access" \
  -H "Content-Type: application/json" \
  -d '{
  "refreshToken": "..."
}'
응답
200토큰 발급 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject
accessTokenstring
인증 토큰 (4시간 유효)
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "data": {
    "accessToken": "..."
  }
}

파트너

네이버 톡톡 파트너(발송 계정) 정보 조회 (1개 엔드포인트).

파트너 등록은 NAPI에서 불가 — 비즈뿌리오 웹에서만 가능. 사전에 네이버 톡톡 파트너센터에서 파트너 계정 생성·승인 후 대행사(다우기술)를 등록해야 naverPartnerKey 가 발급됩니다.

post/v1/partner/get

파트너 조회

네이버 톡톡에 등록된 파트너(발송 계정) 정보를 조회합니다.

ℹ️ 파트너 등록은 NAPI에서 불가하며 비즈뿌리오 웹에서만 가능합니다. 사전에 네이버 톡톡 파트너센터에서 파트너 계정 생성·승인 후 대행사(다우기술) 등록이 완료되어 있어야 합니다.

응답에는 소속 그룹 정보(templateGroups[]), 템플릿 상태별 개수(templateCount), 계정 정보(account)가 포함됩니다. accountStatusType 코드는 NORMAL · PAUSE · SYSPAUSE · PREBLOCK · BLOCK · DELETED.

요청 본문
파라미터타입필수설명
naverPartnerKeystring필수
네이버 톡톡 파트너 키 (파트너센터에서 파트너 계정 생성·승인 후 대행사 등록 완료된 파트너의 키)
curl -X POST "https://napi.bizppurio.com/v1/partner/get" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "naverPartnerKey": "fAO8bJKWXXXXXXXX"
}'
응답
200파트너 조회 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject
templateGroupsarray<object>
소속된 그룹 정보 배열
namestring
그룹명
templateGroupKeystring
그룹키
templateCountobject
템플릿 상태별 개수
approvedinteger
검수완료 템플릿 수
rejectedinteger
검수반려 템플릿 수
pendinginteger
검수요청 템플릿 수
registeredinteger
등록 템플릿 수
accountobject
파트너 계정 정보
profileNamestring
프로필명
accountStatusstring
계정상태 (한글 라벨)
accountStatusTypestring
계정상태 코드
= NORMAL | PAUSE | SYSPAUSE | PREBLOCK | BLOCK | DELETED
accountIdstring
톡톡계정 ID
partnerKeystring
파트너키
chatYnboolean
상담 기능 사용 여부
businessTypeCategoryNamestring
업종분류
registerDatestring
등록일
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "data": {
    "templateGroups": [
      {
        "name": "그룹 1",
        "templateGroupKey": "..."
      },
      {
        "name": "비즈뿌리오",
        "templateGroupKey": "..."
      }
    ],
    "templateCount": {
      "approved": 260,
      "rejected": 260,
      "pending": 260,
      "registered": 260
    },
    "account": {
      "profileName": "다우기술",
      "accountStatus": "사용중",
      "accountStatusType": "NORMAL",
      "accountId": "...",
      "partnerKey": "...",
      "chatYn": true,
      "businessTypeCategoryName": "인터넷/통신 > 인터넷서비스",
      "registerDate": "2024.05.17. 14:09:27"
    }
  }
}

그룹

파트너 그룹 생성 · 구성원 추가/제거 (3개 엔드포인트). 그룹의 템플릿은 파트너 개별 템플릿과 별도로 관리됩니다.

post/v1/group/register

파트너 그룹 추가

파트너 그룹을 생성합니다. 생성된 그룹의 templateGroupKey를 이용해 파트너 추가 및 그룹 템플릿 관리에 사용합니다.

요청 본문
파라미터타입필수설명
groupNamestring필수
그룹명
curl -X POST "https://napi.bizppurio.com/v1/group/register" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "groupName": "TP-GROUP-TEST"
}'
응답
200그룹 생성 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject
namestring
그룹명
templateGroupKeystring
그룹키
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": {
    "name": "string",
    "templateGroupKey": "string"
  }
}
post/v1/group/add/partner

파트너 그룹에 파트너 추가

파트너 그룹에 파트너를 추가합니다. 추가된 파트너는 해당 그룹의 그룹 템플릿을 사용할 수 있습니다.

요청 본문
파라미터타입필수설명
templateGroupKeystring필수
그룹 키
naverPartnerIdstring필수
파트너 ID
curl -X POST "https://napi.bizppurio.com/v1/group/add/partner" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "templateGroupKey": "dOn5qlguXXXXXXXX",
  "naverPartnerId": "w4tXXXXXXXX"
}'
응답
200추가 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject
namestring
그룹명
templateGroupKeystring
그룹키
naverPartnersarray<string>
그룹에 속한 파트너 ID 리스트
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": {
    "name": "string",
    "templateGroupKey": "string",
    "naverPartners": [
      "string"
    ]
  }
}
post/v1/group/remove/partner

파트너 그룹에서 파트너 제거

파트너 그룹에 존재하는 네이버 파트너를 제거합니다. 요청·응답 구조는 파트너 추가와 동일합니다.

요청 본문
파라미터타입필수설명
templateGroupKeystring필수
그룹 키
naverPartnerIdstring필수
파트너 ID
curl -X POST "https://napi.bizppurio.com/v1/group/remove/partner" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "templateGroupKey": "string",
  "naverPartnerId": "string"
}'
응답
200제거 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject
namestring
그룹명
templateGroupKeystring
그룹키
naverPartnersarray<string>
그룹에 속한 파트너 ID 리스트
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": {
    "name": "string",
    "templateGroupKey": "string",
    "naverPartners": [
      "string"
    ]
  }
}

이미지

파트너 / 그룹 이미지 URL · 파일 업로드 (4개 엔드포인트).

  • 포맷 JPG / JPEG / PNG / GIF, 300 KB 이하
  • imageType: content 권장 552×552 / imageType: feed 598×300 고정 (혜택 피드용)
  • 반환된 imageHashId 를 템플릿의 sampleImageHashId · feedDisplayImageHashId · thumbnailImageHashId 등에 사용
post/v1/image/upload/url

이미지 URL 업로드

원격 URL의 이미지를 업로드하여 imageHashId를 발급받습니다.

  • 포맷 JPG / JPEG / PNG / GIF, 300 KB 이하
  • imageType: content 권장 552×552, imageType: feed 598×300 고정

📖 상세 규격은 버튼·이미지 규격 참고.

요청 본문
파라미터타입필수설명
naverPartnerKeystring필수
파트너 키
imageUrlstring필수
업로드할 이미지 URL
imageTypestring
content(기본 552×552 권장) / feed(598×300 고정)
= content | feed
curl -X POST "https://napi.bizppurio.com/v1/image/upload/url" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "imageUrl": "https://...",
  "naverPartnerKey": "fAO8bJKWXXXXXXXX",
  "imageType": "content"
}'
응답
200업로드 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject
imageHashIdstring
이미지 해시 ID — 템플릿에서 참조
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "data": {
    "imageHashId": "..."
  }
}
post/v1/image/upload/file

이미지 파일 업로드

로컬 이미지 파일(multipart/form-data)을 업로드합니다.

요청 본문
파라미터타입필수설명
naverPartnerKeystring필수
파트너 키
filestring <binary>필수
업로드할 이미지 파일
imageTypestring
content(기본) 또는 feed
= content | feed
curl -X POST "https://napi.bizppurio.com/v1/image/upload/file" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "naverPartnerKey": "string",
  "file": "{binary}",
  "imageType": "content"
}'
응답
200업로드 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject
imageHashIdstring
이미지 해시 ID — 템플릿에서 참조
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": {
    "imageHashId": "string"
  }
}
post/v1/image/group/upload/url

발송 그룹 이미지 URL 업로드

파트너 그룹 단위로 사용할 이미지를 URL로 업로드합니다. 응답 구조는 이미지 URL 업로드와 동일합니다.

요청 본문
파라미터타입필수설명
templateGroupKeystring필수
그룹 키
imageUrlstring필수
업로드할 이미지의 URL
imageTypestring
= content | feed
curl -X POST "https://napi.bizppurio.com/v1/image/group/upload/url" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "templateGroupKey": "string",
  "imageUrl": "string",
  "imageType": "content"
}'
응답
200업로드 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject
imageHashIdstring
이미지 해시 ID — 템플릿에서 참조
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": {
    "imageHashId": "string"
  }
}
post/v1/image/group/upload/file

발송 그룹 이미지 파일 업로드

파트너 그룹 단위로 사용할 이미지를 파일(multipart/form-data)로 업로드합니다.

요청 본문
파라미터타입필수설명
templateGroupKeystring필수
그룹 키
filestring <binary>필수
업로드할 이미지 파일
imageTypestring
= content | feed
curl -X POST "https://napi.bizppurio.com/v1/image/group/upload/file" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "templateGroupKey": "string",
  "file": "{binary}",
  "imageType": "content"
}'
응답
200업로드 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject
imageHashIdstring
이미지 해시 ID — 템플릿에서 참조
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": {
    "imageHashId": "string"
  }
}

템플릿

정보성 · 광고성(혜택) 네이버 톡톡 템플릿 CRUD · 검수 요청 · 이력 (9개 엔드포인트).

상품 종류 (productCode)

  • INFORMATION — 정보성 (알림 / 선물 전달)
  • BENEFIT — 마케팅/광고성 (혜택)

템플릿 타입 (templateType)

  • 정보성: BASIC · GIFT · TABLE
  • 혜택: BENEFIT · BENEFIT_LMS · BENEFIT_CAROUSEL_COMMERCE · BENEFIT_CAROUSEL_FEED · BENEFIT_LIST_COMMERCE · BENEFIT_LIST_FEED

발송 메시지 API 의 네이버 톡톡 ContentNtalk 의 템플릿 타입 코드(ID/IG/IT/BD/BM/BC/BL/CT)와 일관성 있게 매핑되며, NAPI 는 자원 등록 / 관리 단에서 위 풀네임을 사용합니다.

검색 노출 동작 (searchResultExposure)

  • true: 버튼 URL 개인화 불가. 변수(#{}) 사용 시 등록 실패.
  • false: 발송 시점 URL 포함 가능.

카테고리 B005 (소식) 제약

categoryType · benefitTypes · discountInfo · feedDisplayEndedAt · feedDisplayImageHashId · validityInfo 사용 불가, searchResultExposure 는 항상 false.

post/v1/template/get

템플릿 조회

등록된 템플릿의 상세 정보를 조회합니다.

📖 templateType별 구성은 템플릿 타입·노출 예시 참고.

템플릿 타입별 추가 필드:

  • GIFT: sampleCoupon
  • TABLE: tableElements[] + pushNotice
  • BENEFIT*: benefit 객체 (title, feedDisplayImageHashId, categoryType, benefitTypes, discountInfo, validityInfo 등)
요청 본문
파라미터타입필수설명
naverPartnerKeystring필수
파트너 키
templateCodestring필수
템플릿 코드
curl -X POST "https://napi.bizppurio.com/v1/template/get" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "naverPartnerKey": "string",
  "templateCode": "string"
}'
응답
200템플릿 상세
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject

템플릿 상세 데이터. templateType에 따라 일부 필드가 추가/생략됩니다.

  • 정보성-BASIC: 공통 필드만
  • 정보성-GIFT: sampleCoupon
  • 정보성-TABLE: tableElements[] + pushNotice
  • 광고성-BENEFIT*: benefit 객체
idstring
templateTypestring
CARD_PAYMENT(productCode=CARDINFO)는 카드결제 알림 템플릿으로, 별도 채널에서 등록되며 NAPI 등록 엔드포인트로는 생성하지 않습니다.
= BASIC | IMAGE | GIFT | TABLE | CARD_PAYMENT | BENEFIT | BENEFIT_LMS | BENEFIT_CAROUSEL_COMMERCE | BENEFIT_CAROUSEL_FEED | BENEFIT_LIST_COMMERCE | BENEFIT_LIST_FEED
productCodestring
= INFORMATION | BENEFIT | CARDINFO
codestring
템플릿 코드
textstring
partnerIdstring
templateGroupKeystring
그룹 템플릿일 때만 포함
categoryCodestring
templateStatusTypestring
검수 상태 — REGISTERED(등록) / PENDING(검수요청) / APPROVED(검수완료) / REJECTED(반려)
= REGISTERED | PENDING | APPROVED | REJECTED
templateSendingStatusTypestring
발송 상태 — WAITING(발송대기) / SENDING(발송중) / BLOCKED(차단). 발송대기 외 상태는 수정/삭제 불가.
= WAITING | SENDING | BLOCKED
freeOfChargeboolean
buttonsarray<object>
sampleCouponallOf
codestring(100)필수
쿠폰 코드 (한글/영문/숫자/-)
namestring(20)필수
쿠폰 이름
endDatestring필수
쿠폰 만료일 (YYYY-MM-DD)
publisherstring
쿠폰 발행처 (생략 시 파트너 프로필명)
imageUrlstring
쿠폰 바코드 이미지 URL (300KB, 552×552 권장)
pushNoticestring
tableElementsarray<object>
benefitobject
createdAtstring
modifiedAtstring
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": {
    "id": "string",
    "templateType": "BASIC",
    "productCode": "INFORMATION",
    "code": "string",
    "text": "string",
    "partnerId": "string",
    "templateGroupKey": "string",
    "categoryCode": "string",
    "templateStatusType": "REGISTERED",
    "templateSendingStatusType": "WAITING",
    "freeOfCharge": true,
    "buttons": [
      {}
    ],
    "sampleCoupon": {
      "code": "string",
      "name": "string",
      "endDate": "string",
      "publisher": "string",
      "imageUrl": "string"
    },
    "pushNotice": "string",
    "tableElements": [
      {}
    ],
    "benefit": {},
    "createdAt": "string",
    "modifiedAt": "string"
  }
}
post/v1/template/register/information

정보성 템플릿 생성

정보성(productCode: INFORMATION) 템플릿을 신규 등록합니다.

📖 타입별 노출 예시·필드는 템플릿 타입·노출 예시, 버튼·이미지 규격은 버튼·이미지 규격 참고.

templateType 별 필드:

  • BASIC — 텍스트 + 버튼 (이미지 없음)
  • IMAGE — 텍스트 + 이미지(sampleImageHashId) + 버튼
  • GIFTsampleCoupon 객체 사용 (쿠폰 첨부 시 이미지 첨부 불가)
  • TABLEtext 대신 pushNotice, tableInfo.elementList[] 필수 (1~6개)

등록 직후 템플릿 상태는 templateStatusType: REGISTERED / templateSendingStatusType: WAITING.

요청 본문
파라미터타입필수설명
naverPartnerKeystring(64)필수
네이버 파트너 키
templateCodestring(64)필수
관리 템플릿 코드 — 영문/숫자/- 구성, 파트너별 유니크
templateTypestring
BASIC(기본형) · IMAGE(이미지형) · GIFT(선물) · TABLE(테이블)
= BASIC | IMAGE | GIFT | TABLE
textstring(2048)
발송 텍스트 — 변수(#{name}) 사용 가능, 알파벳·숫자·한글·/-_~ 허용. 변수 치환 결과 150자 이내
pushNoticestring(2048)
TABLE 형에서 text 대신 사용하는 푸시 알림 메시지
categoryCodestring(8)필수
템플릿 카테고리 코드 — G/C/F/D/P/S/T/R 시리즈
buttonsarray<object>(~5)
버튼 배열 (최대 5개)
typestring필수
= WEB_LINK | APP_LINK
buttonCodestring(64)필수
템플릿 내 유니크 코드
buttonNamestring(20)필수
버튼 표시 문구 (기본형 20자, 커머스형 8자)
mobileUrlstring
WEB_LINK 모바일 URL
pcUrlstring
WEB_LINK PC URL
iOsAppSchemestring
APP_LINK iOS 스킴
aOsAppSchemestring
APP_LINK Android 스킴
sampleImageHashIdstring
이미지 API로 발급받은 해시 ID (쿠폰 첨부 시 이미지 첨부 불가)
sampleCouponobject
쿠폰 정보 (정보성-GIFT 형에서 사용)
codestring(100)필수
쿠폰 코드 (한글/영문/숫자/-)
namestring(20)필수
쿠폰 이름
endDatestring필수
쿠폰 만료일 (YYYY-MM-DD)
publisherstring
쿠폰 발행처 (생략 시 파트너 프로필명)
imageUrlstring
쿠폰 바코드 이미지 URL (300KB, 552×552 권장)
couponDescriptionarray<object>(~10)
쿠폰 설명 {title, content} 쌍 배열 (최대 10개)
titlestring
contentstring
tableInfoobject
테이블 정보 (TABLE 형 필수)
elementListarray<object>(1~6)
테이블 요소 배열 (1~6개)
subtitlestring(30)
서브 타이틀
titlestring(30)
타이틀
strikeTitleboolean
타이틀 취소선
thumbnailImageUrlstring
썸네일 이미지 URL
thumbnailImageHashIdstring
썸네일 이미지 해시 ID
tablearray<object>(~10)
테이블 항목 — {title(7자), content(20자)} × 최대 10개 (본문 없으면 필수)
titlestring(7)
contentstring(20)
textstring(1000)
본문 — table이 없으면 필수
additionalContentstring(500)
부가정보
buttonsarray<object>(~5)
typestring필수
= WEB_LINK | APP_LINK
buttonCodestring(64)필수
템플릿 내 유니크 코드
buttonNamestring(20)필수
버튼 표시 문구 (기본형 20자, 커머스형 8자)
mobileUrlstring
WEB_LINK 모바일 URL
pcUrlstring
WEB_LINK PC URL
iOsAppSchemestring
APP_LINK iOS 스킴
aOsAppSchemestring
APP_LINK Android 스킴
updateModestring
수정 시 항목별 동작 (그룹 템플릿 수정에서 사용)
= delete | update | add
curl -X POST "https://napi.bizppurio.com/v1/template/register/information" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "naverPartnerKey": "fAO8bJKWXXXXXXXX",
  "templateCode": "TP-INFORMATION-BASIC-XXXXXXXX",
  "text": "템플릿 등록 테스트입니다.",
  "categoryCode": "R006",
  "templateType": "BASIC",
  "buttons": [
    {
      "type": "WEB_LINK",
      "buttonCode": "BTN-CODE-1",
      "buttonName": "웹 링크 버튼"
    }
  ]
}'
응답
200등록 성공 — 응답 구조는 [템플릿 조회](#operation/napiGetTemplate)와 동일
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject

템플릿 상세 데이터. templateType에 따라 일부 필드가 추가/생략됩니다.

  • 정보성-BASIC: 공통 필드만
  • 정보성-GIFT: sampleCoupon
  • 정보성-TABLE: tableElements[] + pushNotice
  • 광고성-BENEFIT*: benefit 객체
idstring
templateTypestring
CARD_PAYMENT(productCode=CARDINFO)는 카드결제 알림 템플릿으로, 별도 채널에서 등록되며 NAPI 등록 엔드포인트로는 생성하지 않습니다.
= BASIC | IMAGE | GIFT | TABLE | CARD_PAYMENT | BENEFIT | BENEFIT_LMS | BENEFIT_CAROUSEL_COMMERCE | BENEFIT_CAROUSEL_FEED | BENEFIT_LIST_COMMERCE | BENEFIT_LIST_FEED
productCodestring
= INFORMATION | BENEFIT | CARDINFO
codestring
템플릿 코드
textstring
partnerIdstring
templateGroupKeystring
그룹 템플릿일 때만 포함
categoryCodestring
templateStatusTypestring
검수 상태 — REGISTERED(등록) / PENDING(검수요청) / APPROVED(검수완료) / REJECTED(반려)
= REGISTERED | PENDING | APPROVED | REJECTED
templateSendingStatusTypestring
발송 상태 — WAITING(발송대기) / SENDING(발송중) / BLOCKED(차단). 발송대기 외 상태는 수정/삭제 불가.
= WAITING | SENDING | BLOCKED
freeOfChargeboolean
buttonsarray<object>
sampleCouponallOf
codestring(100)필수
쿠폰 코드 (한글/영문/숫자/-)
namestring(20)필수
쿠폰 이름
endDatestring필수
쿠폰 만료일 (YYYY-MM-DD)
publisherstring
쿠폰 발행처 (생략 시 파트너 프로필명)
imageUrlstring
쿠폰 바코드 이미지 URL (300KB, 552×552 권장)
pushNoticestring
tableElementsarray<object>
benefitobject
createdAtstring
modifiedAtstring
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": {
    "id": "string",
    "templateType": "BASIC",
    "productCode": "INFORMATION",
    "code": "string",
    "text": "string",
    "partnerId": "string",
    "templateGroupKey": "string",
    "categoryCode": "string",
    "templateStatusType": "REGISTERED",
    "templateSendingStatusType": "WAITING",
    "freeOfCharge": true,
    "buttons": [
      {}
    ],
    "sampleCoupon": {
      "code": "string",
      "name": "string",
      "endDate": "string",
      "publisher": "string",
      "imageUrl": "string"
    },
    "pushNotice": "string",
    "tableElements": [
      {}
    ],
    "benefit": {},
    "createdAt": "string",
    "modifiedAt": "string"
  }
}
post/v1/template/register/benefit

광고성(혜택) 템플릿 생성

광고성·혜택 템플릿을 신규 등록합니다. templateType 은 6종입니다.

templateType 설명
BENEFIT 기본형
BENEFIT_LMS LMS형(장문)
BENEFIT_CAROUSEL_COMMERCE 캐러셀 커머스형
BENEFIT_CAROUSEL_FEED 캐러셀 피드형
BENEFIT_LIST_COMMERCE 리스트 커머스형
BENEFIT_LIST_FEED 리스트 피드형

혜택 소재는 모두 benefit 객체 안에 담습니다.

구분 필드
필수 title · feedDisplayImageHashId(598×300) · categoryType · benefitTypes · validityInfo · searchResultExposure
둘 중 하나 필수 blockCallNumber / blockMessageUrl
캐러셀·리스트형 추가 introduction · products[] · moreButton*

제약

  • 검색 노출(searchResultExposure: true) 시 버튼 URL 개인화 불가
  • categoryCode: B005(소식) 선택 시 categoryType·benefitTypes·discountInfo·feedDisplayEndedAt·feedDisplayImageHashId·validityInfo 사용 불가, searchResultExposure는 항상 false

📖 타입별 노출 예시는 템플릿 타입·노출 예시, benefit 구성·할인·유효기간·소식 제약은 혜택 메시지 구성 참고.

요청 본문
파라미터타입필수설명
naverPartnerKeystring(64)필수
templateTypestring필수
= BENEFIT | BENEFIT_LMS | BENEFIT_CAROUSEL_COMMERCE | BENEFIT_CAROUSEL_FEED | BENEFIT_LIST_COMMERCE | BENEFIT_LIST_FEED
templateCodestring(64)필수
영문/숫자, 파트너별 유니크
categoryCodestring필수
혜택 카테고리 코드 — B001 쿠폰 · B002 적립금 · B003 추가 증정 · B004 기타 이벤트 · B005 소식
textstring
발송 텍스트 (기본형 360자, LMS형 2000자)
sampleImageHashIdstring
톡톡 말풍선용 이미지 해시 ID (기본형 필수, LMS형 선택)
buttonsarray<object>
typestring필수
= WEB_LINK | APP_LINK
buttonCodestring(64)필수
템플릿 내 유니크 코드
buttonNamestring(20)필수
버튼 표시 문구 (기본형 20자, 커머스형 8자)
mobileUrlstring
WEB_LINK 모바일 URL
pcUrlstring
WEB_LINK PC URL
iOsAppSchemestring
APP_LINK iOS 스킴
aOsAppSchemestring
APP_LINK Android 스킴
benefitobject필수

혜택 소재 정보. blockCallNumber(080 광고수신거부 번호)와 blockMessageUrl(https URL) 중 하나는 반드시 입력.

titlestring
혜택 제목 (한글 20자 내 권장)
categoryTypestring
혜택 카테고리 — 피드 [인기] 탭 분류
= FASHION | BEAUTY | DIGITAL_APPLIANCE | LIVING | FOOD | KIDS | SPORTS_LEISURE | NECESSITIES | BOOK_HOBBY | FINANCE | ETC
benefitTypesarray<string>(~2)
혜택 유형 1~2개. LMS형은 EVENT 고정
feedDisplayEndedAtstring
피드 표시용 만료일 (YYYY-MM-DD, 최대 2주)
feedDisplayImageHashIdstring
피드 노출 이미지 해시 ID — 598×300 고정 (imageType: feed로 업로드)
searchResultExposureboolean
검색결과 노출 여부 (미입력 시 false). true 시 버튼 URL 개인화 불가 — 등록 시점에 URL 확정 필요
blockCallNumberstring(13)
080 광고수신거부 전화번호 (080-123-1234 형식). blockMessageUrl과 둘 중 하나 필수
blockMessageUrlstring
https 광고수신거부 URL. blockCallNumber와 둘 중 하나 필수
blockContactTypestring
광고수신거부 연락 유형 — TELEPHONE(전화번호) / LINK(링크)
= TELEPHONE | LINK
moreButtonTypestring
더보기 버튼 타입 (캐러셀형) — WEB_LINK / APP_LINK
= WEB_LINK | APP_LINK
moreButtonUrlstring
더보기 버튼 URL (캐러셀형). 미입력 시 더보기 버튼 미표시
moreButtonMobileUrlstring
더보기 버튼 모바일 URL. 미입력 시 moreButtonUrl 값 사용
moreButtoniOsAppSchemestring
더보기 버튼 iOS 앱 스킴 (moreButtonType=APP_LINK)
moreButtonaOsAppSchemestring
더보기 버튼 Android 앱 스킴 (moreButtonType=APP_LINK)
introductionobject
캐러셀 / 리스트형 인트로 (캐러셀 커머스 · 리스트 커머스 · 리스트 피드 필수)
headerImageHashIdstring
헤더 이미지 해시 ID (headerImageUrl과 둘 중 하나 필수)
headerImageUrlstring
헤더 이미지 URL (headerImageHashId와 둘 중 하나 필수)
titlestring필수
인트로 제목 (한글 20자 이내)
descriptionstring
인트로 내용 (캐러셀 커머스 60자 · 리스트 커머스/피드 70자)
buttonTypestring
인트로 버튼 타입 — WEB_LINK / APP_LINK
= WEB_LINK | APP_LINK
buttonCodestring(64)
인트로 버튼 코드
buttonTitlestring
캐러셀 커머스 필수 버튼 제목 (8자)
pcUrlstring
mobileUrlstring
iOsAppSchemestring
aOsAppSchemestring
productsarray<object>(~6)
상품 배열 (캐러셀/리스트형) — 캐러셀 커머스 2~5 · 캐러셀 피드 2~6 · 리스트 커머스 3~6 · 리스트 피드 2~3
imageHashIdstring
상품 이미지 해시 ID (imageUrl과 둘 중 하나 필수)
imageUrlstring
상품 이미지 URL (imageHashId와 둘 중 하나 필수)
titlestring
상품명 (한글 20자 이내)
descriptionstring
상품 설명 (캐러셀 피드 100자 필수)
originalPricenumber
할인 전 가격
currentPricenumber
할인 후 가격 (originalPrice 이하)
buttonTypestring
상품 버튼 타입 — WEB_LINK / APP_LINK
= WEB_LINK | APP_LINK
buttonCodestring(64)
상품 버튼 코드
pcUrlstring
mobileUrlstring
iOsAppSchemestring
aOsAppSchemestring
buttonsarray<object>
typestring필수
= WEB_LINK | APP_LINK
buttonCodestring(64)필수
템플릿 내 유니크 코드
buttonNamestring(20)필수
버튼 표시 문구 (기본형 20자, 커머스형 8자)
mobileUrlstring
WEB_LINK 모바일 URL
pcUrlstring
WEB_LINK PC URL
iOsAppSchemestring
APP_LINK iOS 스킴
aOsAppSchemestring
APP_LINK Android 스킴
discountInfoobject
할인 정보
discountTypestring
AMOUNT(할인금액) / RATE(할인률) / POINT(적립금)
= AMOUNT | RATE | POINT
discountAmountnumber
할인금액 — discountType=AMOUNT
discountRatenumber
할인률 — discountType=RATE
maxDiscountAmountnumber
최대 할인금액 — discountType=RATE
minimumOrderAmountnumber
최소 주문금액 (POINT/PRODUCT/DELIVERY/ORDER 포함 시 1,000원 이상)
accumulateAmountnumber
적립금액 — discountType=POINT
landingPageUrlstring
혜택 클릭 시 이동 페이지 (POINT/PRODUCT/DELIVERY/ORDER 필수)
benefitContentstring
혜택 본문 (예 "3,000원 할인 쿠폰")
benefitKindTypestring
혜택 종류 — COUPON(쿠폰) / POINT(적립금)
= COUPON | POINT
couponPublicationTypestring
쿠폰 발급 방식 — DOWNLOAD(다운로드) / IMMEDIATE(즉시발급)
= DOWNLOAD | IMMEDIATE
validityInfoobject
혜택 유효 기간
validTypestring필수
PERIOD(기간 설정) / EXPIRATION(발급일 기준 N일)
= PERIOD | EXPIRATION
validDaysnumber
EXPIRATION 유형 — 다운로드 후 N일간 유효
validStartedAtstring
PERIOD 유형 시작일 (YYYY-MM-DD)
validEndedAtstring
PERIOD 유형 종료일 (YYYY-MM-DD)
curl -X POST "https://napi.bizppurio.com/v1/template/register/benefit" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "naverPartnerKey": "fAO8bJKWXXXXXXXX",
  "templateType": "BENEFIT",
  "templateCode": "TP-BENEFIT-BASIC-XXXXXXXX",
  "categoryCode": "B002",
  "text": "역대급 할인 오늘 단 하루만 진행! 패션 PICK 5시간 후 종료!",
  "sampleImageHashId": "om_TcC1RXXXXXXXX",
  "buttons": [
    {
      "type": "WEB_LINK",
      "buttonName": "구매하기",
      "buttonCode": "POPUP_BUTTON1",
      "mobileUrl": "https://m.naver.com",
      "pcUrl": "https://www.naver.com"
    }
  ],
  "benefit": {
    "title": "곧 종료 시즌 막바지 ~70% 대박할인!",
    "feedDisplayImageHashId": "om_TcC1RXXXXXXXX",
    "feedDisplayEndedAt": "2024-12-30",
    "categoryType": "LIVING",
    "benefitTypes": [
      "TIMESALE",
      "PRODUCT"
    ],
    "discountInfo": {
      "discountType": "AMOUNT",
      "discountAmount": 3000,
      "minimumOrderAmount": 10000,
      "landingPageUrl": "https://www.naver.com"
    },
    "validityInfo": {
      "validType": "PERIOD",
      "validStartedAt": "2024-12-30",
      "validEndedAt": "2024-12-30"
    },
    "blockCallNumber": "080-123-1234"
  }
}'
응답
200등록 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject

템플릿 상세 데이터. templateType에 따라 일부 필드가 추가/생략됩니다.

  • 정보성-BASIC: 공통 필드만
  • 정보성-GIFT: sampleCoupon
  • 정보성-TABLE: tableElements[] + pushNotice
  • 광고성-BENEFIT*: benefit 객체
idstring
templateTypestring
CARD_PAYMENT(productCode=CARDINFO)는 카드결제 알림 템플릿으로, 별도 채널에서 등록되며 NAPI 등록 엔드포인트로는 생성하지 않습니다.
= BASIC | IMAGE | GIFT | TABLE | CARD_PAYMENT | BENEFIT | BENEFIT_LMS | BENEFIT_CAROUSEL_COMMERCE | BENEFIT_CAROUSEL_FEED | BENEFIT_LIST_COMMERCE | BENEFIT_LIST_FEED
productCodestring
= INFORMATION | BENEFIT | CARDINFO
codestring
템플릿 코드
textstring
partnerIdstring
templateGroupKeystring
그룹 템플릿일 때만 포함
categoryCodestring
templateStatusTypestring
검수 상태 — REGISTERED(등록) / PENDING(검수요청) / APPROVED(검수완료) / REJECTED(반려)
= REGISTERED | PENDING | APPROVED | REJECTED
templateSendingStatusTypestring
발송 상태 — WAITING(발송대기) / SENDING(발송중) / BLOCKED(차단). 발송대기 외 상태는 수정/삭제 불가.
= WAITING | SENDING | BLOCKED
freeOfChargeboolean
buttonsarray<object>
sampleCouponallOf
codestring(100)필수
쿠폰 코드 (한글/영문/숫자/-)
namestring(20)필수
쿠폰 이름
endDatestring필수
쿠폰 만료일 (YYYY-MM-DD)
publisherstring
쿠폰 발행처 (생략 시 파트너 프로필명)
imageUrlstring
쿠폰 바코드 이미지 URL (300KB, 552×552 권장)
pushNoticestring
tableElementsarray<object>
benefitobject
createdAtstring
modifiedAtstring
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": {
    "id": "string",
    "templateType": "BASIC",
    "productCode": "INFORMATION",
    "code": "string",
    "text": "string",
    "partnerId": "string",
    "templateGroupKey": "string",
    "categoryCode": "string",
    "templateStatusType": "REGISTERED",
    "templateSendingStatusType": "WAITING",
    "freeOfCharge": true,
    "buttons": [
      {}
    ],
    "sampleCoupon": {
      "code": "string",
      "name": "string",
      "endDate": "string",
      "publisher": "string",
      "imageUrl": "string"
    },
    "pushNotice": "string",
    "tableElements": [
      {}
    ],
    "benefit": {},
    "createdAt": "string",
    "modifiedAt": "string"
  }
}
post/v1/template/modify

템플릿 수정

등록 또는 검수 반려된 템플릿을 수정합니다. 수정된 템플릿은 templateStatusType: REGISTERED로 업데이트됩니다.

  • 수정이 필요한 필드만 요청. 변경 불가: productCode · templateCode · naverPartnerKey · templateType · createdAt · modifiedAt.
  • buttons·couponDescription 등 목록형은 입력 전체로 교체. 모두 제거하려면 "buttons": [].

배열형태의 데이터 수정 (테이블형, 혜택 캐러셀/리스트)

각 항목별로 updateMode를 사용하여 삭제·수정·추가를 진행합니다. updateMode는 소문자로 입력하며 다음과 같습니다.

  • delete : 해당 순서의 항목을 삭제합니다.
  • update : 해당 순서의 항목에 입력된 필드를 수정합니다. 일반 수정처럼 필요 항목만 입력 가능합니다.
  • add : 입력한 페이로드를 이용하여 목록의 마지막에 항목을 추가합니다.

⚠️ 발송대기(WAITING)가 아닌 템플릿은 수정/삭제 불가.

요청 본문
object
수정할 필드 + naverPartnerKey + templateCode (정보성/광고성 페이로드 동일 구조)
curl -X POST "https://napi.bizppurio.com/v1/template/modify" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "naverPartnerKey": "fAO8bJKWXXXXXXXX",
  "productCode": "INFORMATION",
  "templateCode": "TP-INFORMATION-BASIC-XXXXXXXX",
  "text": "템플릿 수정 테스트입니다.",
  "categoryCode": "S001",
  "templateType": "BASIC",
  "buttons": []
}'
응답
200수정 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject

템플릿 상세 데이터. templateType에 따라 일부 필드가 추가/생략됩니다.

  • 정보성-BASIC: 공통 필드만
  • 정보성-GIFT: sampleCoupon
  • 정보성-TABLE: tableElements[] + pushNotice
  • 광고성-BENEFIT*: benefit 객체
idstring
templateTypestring
CARD_PAYMENT(productCode=CARDINFO)는 카드결제 알림 템플릿으로, 별도 채널에서 등록되며 NAPI 등록 엔드포인트로는 생성하지 않습니다.
= BASIC | IMAGE | GIFT | TABLE | CARD_PAYMENT | BENEFIT | BENEFIT_LMS | BENEFIT_CAROUSEL_COMMERCE | BENEFIT_CAROUSEL_FEED | BENEFIT_LIST_COMMERCE | BENEFIT_LIST_FEED
productCodestring
= INFORMATION | BENEFIT | CARDINFO
codestring
템플릿 코드
textstring
partnerIdstring
templateGroupKeystring
그룹 템플릿일 때만 포함
categoryCodestring
templateStatusTypestring
검수 상태 — REGISTERED(등록) / PENDING(검수요청) / APPROVED(검수완료) / REJECTED(반려)
= REGISTERED | PENDING | APPROVED | REJECTED
templateSendingStatusTypestring
발송 상태 — WAITING(발송대기) / SENDING(발송중) / BLOCKED(차단). 발송대기 외 상태는 수정/삭제 불가.
= WAITING | SENDING | BLOCKED
freeOfChargeboolean
buttonsarray<object>
sampleCouponallOf
codestring(100)필수
쿠폰 코드 (한글/영문/숫자/-)
namestring(20)필수
쿠폰 이름
endDatestring필수
쿠폰 만료일 (YYYY-MM-DD)
publisherstring
쿠폰 발행처 (생략 시 파트너 프로필명)
imageUrlstring
쿠폰 바코드 이미지 URL (300KB, 552×552 권장)
pushNoticestring
tableElementsarray<object>
benefitobject
createdAtstring
modifiedAtstring
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": {
    "id": "string",
    "templateType": "BASIC",
    "productCode": "INFORMATION",
    "code": "string",
    "text": "string",
    "partnerId": "string",
    "templateGroupKey": "string",
    "categoryCode": "string",
    "templateStatusType": "REGISTERED",
    "templateSendingStatusType": "WAITING",
    "freeOfCharge": true,
    "buttons": [
      {}
    ],
    "sampleCoupon": {
      "code": "string",
      "name": "string",
      "endDate": "string",
      "publisher": "string",
      "imageUrl": "string"
    },
    "pushNotice": "string",
    "tableElements": [
      {}
    ],
    "benefit": {},
    "createdAt": "string",
    "modifiedAt": "string"
  }
}
post/v1/template/inspect

템플릿 검수 요청

등록·수정된 템플릿을 검수 요청합니다. 검수 요청 시 templateStatusTypePENDING으로 변경됩니다.

요청 본문
파라미터타입필수설명
naverPartnerKeystring필수
파트너 키
templateCodestring필수
템플릿 코드
commentstring
검수 요청 메모
curl -X POST "https://napi.bizppurio.com/v1/template/inspect" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "naverPartnerKey": "string",
  "templateCode": "string",
  "comment": "string"
}'
응답
200검수 요청 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject
templateCodestring
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "data": {
    "templateCode": "TP-INFORMATION-TABLE-XXXXXXXX"
  }
}
post/v1/template/inspect/cancel

템플릿 검수 요청 취소

검수 요청 상태의 템플릿을 취소합니다. 요청 파라미터는 검수 요청과 동일합니다.

요청 본문
파라미터타입필수설명
naverPartnerKeystring필수
파트너 키
templateCodestring필수
템플릿 코드
commentstring
검수 요청 메모
curl -X POST "https://napi.bizppurio.com/v1/template/inspect/cancel" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "naverPartnerKey": "string",
  "templateCode": "string",
  "comment": "string"
}'
응답
200취소 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ]
}
post/v1/template/inspect/history

템플릿 검수 요청 이력

템플릿의 검수 요청·취소·반려 이력을 시간 순으로 조회합니다.

요청 본문
파라미터타입필수설명
naverPartnerKeystring필수
파트너 키
templateCodestring필수
템플릿 코드
curl -X POST "https://napi.bizppurio.com/v1/template/inspect/history" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "naverPartnerKey": "string",
  "templateCode": "string"
}'
응답
200이력 조회 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataarray<object>
이력 배열
contentstring
이력 내용 (검수 요청 / 취소 / 반려 등)
createdAtstring
발생 시점
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "data": [
    {
      "content": "검수 요청",
      "createdAt": "2024-12-26 15:40:39"
    },
    {
      "content": "취소",
      "createdAt": "2024-12-26 15:41:06"
    }
  ]
}
post/v1/template/remove

템플릿 삭제

템플릿을 삭제합니다.

⚠️ 발송대기(WAITING)가 아닌 템플릿은 삭제 불가.

요청 본문
파라미터타입필수설명
naverPartnerKeystring필수
파트너 키
templateCodestring필수
템플릿 코드
curl -X POST "https://napi.bizppurio.com/v1/template/remove" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "naverPartnerKey": "string",
  "templateCode": "string"
}'
응답
200삭제 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject
templateCodestring
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": {
    "templateCode": "string"
  }
}
post/v1/template/search

최근 변경된 템플릿 조회

지정 기간 내 변경된 템플릿을 페이지네이션으로 조회합니다. modifiedOnly: false로 호출하면 미수정 템플릿도 포함됩니다.

요청 본문
파라미터타입필수설명
naverPartnerKeystring필수
파트너 키
fromDatestring필수
조회 시작 일자 (yyyyMMdd 또는 YYYY-MM-DD)
toDatestring
조회 종료 일자 — 미입력 시 현재 일자
pageinteger
countinteger
modifiedOnlyboolean
수정된 값만 조회 (false 시 미수정 템플릿도 포함)
curl -X POST "https://napi.bizppurio.com/v1/template/search" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "naverPartnerKey": "fAO8bJKWXXXXXXXX",
  "fromDate": "2024-12-25",
  "toDate": "2024-12-30",
  "page": 1,
  "count": 3
}'
응답
200검색 결과
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataarray<object>
검색 결과 배열
idstring
codestring
템플릿 코드
partnerIdstring
freeOfChargeboolean
createdAtstring
modifiedAtstring
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": [
    {
      "id": "string",
      "code": "string",
      "partnerId": "string",
      "freeOfCharge": true,
      "createdAt": "string",
      "modifiedAt": "string"
    }
  ]
}

그룹 템플릿

파트너 그룹에 속한 여러 파트너가 공유하는 그룹 템플릿 CRUD · 검수 (8개 엔드포인트).

요청·응답 페이로드는 템플릿 관리와 동일하며, 식별자만 naverPartnerKeytemplateGroupKey 로 대체됩니다. 경로 패턴도 /v1/template/*/v1/template/group/*.

post/v1/template/group/get

그룹 템플릿 조회

파트너 그룹에 등록된 그룹 템플릿을 조회합니다.

요청·응답 구조는 템플릿 조회와 동일하며 naverPartnerKey 대신 templateGroupKey 를 사용합니다.

요청 본문
파라미터타입필수설명
templateGroupKeystring필수
그룹 키
templateCodestring필수
템플릿 코드
curl -X POST "https://napi.bizppurio.com/v1/template/group/get" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "templateGroupKey": "YT1EN2VAXXXXXXXX",
  "templateCode": "TP-GROUP-BASIC-XXXXXXXX"
}'
응답
200그룹 템플릿 상세
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject

템플릿 상세 데이터. templateType에 따라 일부 필드가 추가/생략됩니다.

  • 정보성-BASIC: 공통 필드만
  • 정보성-GIFT: sampleCoupon
  • 정보성-TABLE: tableElements[] + pushNotice
  • 광고성-BENEFIT*: benefit 객체
idstring
templateTypestring
CARD_PAYMENT(productCode=CARDINFO)는 카드결제 알림 템플릿으로, 별도 채널에서 등록되며 NAPI 등록 엔드포인트로는 생성하지 않습니다.
= BASIC | IMAGE | GIFT | TABLE | CARD_PAYMENT | BENEFIT | BENEFIT_LMS | BENEFIT_CAROUSEL_COMMERCE | BENEFIT_CAROUSEL_FEED | BENEFIT_LIST_COMMERCE | BENEFIT_LIST_FEED
productCodestring
= INFORMATION | BENEFIT | CARDINFO
codestring
템플릿 코드
textstring
partnerIdstring
templateGroupKeystring
그룹 템플릿일 때만 포함
categoryCodestring
templateStatusTypestring
검수 상태 — REGISTERED(등록) / PENDING(검수요청) / APPROVED(검수완료) / REJECTED(반려)
= REGISTERED | PENDING | APPROVED | REJECTED
templateSendingStatusTypestring
발송 상태 — WAITING(발송대기) / SENDING(발송중) / BLOCKED(차단). 발송대기 외 상태는 수정/삭제 불가.
= WAITING | SENDING | BLOCKED
freeOfChargeboolean
buttonsarray<object>
sampleCouponallOf
codestring(100)필수
쿠폰 코드 (한글/영문/숫자/-)
namestring(20)필수
쿠폰 이름
endDatestring필수
쿠폰 만료일 (YYYY-MM-DD)
publisherstring
쿠폰 발행처 (생략 시 파트너 프로필명)
imageUrlstring
쿠폰 바코드 이미지 URL (300KB, 552×552 권장)
pushNoticestring
tableElementsarray<object>
benefitobject
createdAtstring
modifiedAtstring
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": {
    "id": "string",
    "templateType": "BASIC",
    "productCode": "INFORMATION",
    "code": "string",
    "text": "string",
    "partnerId": "string",
    "templateGroupKey": "string",
    "categoryCode": "string",
    "templateStatusType": "REGISTERED",
    "templateSendingStatusType": "WAITING",
    "freeOfCharge": true,
    "buttons": [
      {}
    ],
    "sampleCoupon": {
      "code": "string",
      "name": "string",
      "endDate": "string",
      "publisher": "string",
      "imageUrl": "string"
    },
    "pushNotice": "string",
    "tableElements": [
      {}
    ],
    "benefit": {},
    "createdAt": "string",
    "modifiedAt": "string"
  }
}
post/v1/template/group/register

그룹 템플릿 생성

파트너 그룹용 템플릿을 신규 등록합니다. 페이로드는 정보성 템플릿 생성 / 광고성 템플릿 생성과 동일하며, naverPartnerKey 대신 templateGroupKey를 사용합니다.

요청 본문
object
정보성/광고성 페이로드 + templateGroupKey
curl -X POST "https://napi.bizppurio.com/v1/template/group/register" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "templateGroupKey": "YT1EN2VAXXXXXXXX",
  "templateCode": "TP-GROUP-BASIC-XXXXXXXX",
  "text": "템플릿 등록 테스트입니다.",
  "categoryCode": "S001",
  "buttons": [
    {
      "type": "WEB_LINK",
      "buttonCode": "BTN-CODE-1",
      "buttonName": "웹 링크 버튼"
    }
  ]
}'
응답
200등록 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject

템플릿 상세 데이터. templateType에 따라 일부 필드가 추가/생략됩니다.

  • 정보성-BASIC: 공통 필드만
  • 정보성-GIFT: sampleCoupon
  • 정보성-TABLE: tableElements[] + pushNotice
  • 광고성-BENEFIT*: benefit 객체
idstring
templateTypestring
CARD_PAYMENT(productCode=CARDINFO)는 카드결제 알림 템플릿으로, 별도 채널에서 등록되며 NAPI 등록 엔드포인트로는 생성하지 않습니다.
= BASIC | IMAGE | GIFT | TABLE | CARD_PAYMENT | BENEFIT | BENEFIT_LMS | BENEFIT_CAROUSEL_COMMERCE | BENEFIT_CAROUSEL_FEED | BENEFIT_LIST_COMMERCE | BENEFIT_LIST_FEED
productCodestring
= INFORMATION | BENEFIT | CARDINFO
codestring
템플릿 코드
textstring
partnerIdstring
templateGroupKeystring
그룹 템플릿일 때만 포함
categoryCodestring
templateStatusTypestring
검수 상태 — REGISTERED(등록) / PENDING(검수요청) / APPROVED(검수완료) / REJECTED(반려)
= REGISTERED | PENDING | APPROVED | REJECTED
templateSendingStatusTypestring
발송 상태 — WAITING(발송대기) / SENDING(발송중) / BLOCKED(차단). 발송대기 외 상태는 수정/삭제 불가.
= WAITING | SENDING | BLOCKED
freeOfChargeboolean
buttonsarray<object>
sampleCouponallOf
codestring(100)필수
쿠폰 코드 (한글/영문/숫자/-)
namestring(20)필수
쿠폰 이름
endDatestring필수
쿠폰 만료일 (YYYY-MM-DD)
publisherstring
쿠폰 발행처 (생략 시 파트너 프로필명)
imageUrlstring
쿠폰 바코드 이미지 URL (300KB, 552×552 권장)
pushNoticestring
tableElementsarray<object>
benefitobject
createdAtstring
modifiedAtstring
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": {
    "id": "string",
    "templateType": "BASIC",
    "productCode": "INFORMATION",
    "code": "string",
    "text": "string",
    "partnerId": "string",
    "templateGroupKey": "string",
    "categoryCode": "string",
    "templateStatusType": "REGISTERED",
    "templateSendingStatusType": "WAITING",
    "freeOfCharge": true,
    "buttons": [
      {}
    ],
    "sampleCoupon": {
      "code": "string",
      "name": "string",
      "endDate": "string",
      "publisher": "string",
      "imageUrl": "string"
    },
    "pushNotice": "string",
    "tableElements": [
      {}
    ],
    "benefit": {},
    "createdAt": "string",
    "modifiedAt": "string"
  }
}
post/v1/template/group/modify

그룹 템플릿 수정

그룹 템플릿을 수정합니다. 동작 규칙은 템플릿 수정과 동일하며, 식별자만 templateGroupKey로 대체됩니다.

요청 본문
object
수정할 필드 + templateGroupKey + templateCode (정보성/광고성 페이로드 동일 구조)
curl -X POST "https://napi.bizppurio.com/v1/template/group/modify" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "templateGroupKey": "dOn5qlguXXXXXXXX",
  "productCode": "INFORMATION",
  "templateCode": "TP-GROUP-BASIC-XXXXXXXX",
  "text": "템플릿 수정 테스트입니다.",
  "categoryCode": "S001",
  "templateType": "BASIC",
  "buttons": []
}'
응답
200수정 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject

템플릿 상세 데이터. templateType에 따라 일부 필드가 추가/생략됩니다.

  • 정보성-BASIC: 공통 필드만
  • 정보성-GIFT: sampleCoupon
  • 정보성-TABLE: tableElements[] + pushNotice
  • 광고성-BENEFIT*: benefit 객체
idstring
templateTypestring
CARD_PAYMENT(productCode=CARDINFO)는 카드결제 알림 템플릿으로, 별도 채널에서 등록되며 NAPI 등록 엔드포인트로는 생성하지 않습니다.
= BASIC | IMAGE | GIFT | TABLE | CARD_PAYMENT | BENEFIT | BENEFIT_LMS | BENEFIT_CAROUSEL_COMMERCE | BENEFIT_CAROUSEL_FEED | BENEFIT_LIST_COMMERCE | BENEFIT_LIST_FEED
productCodestring
= INFORMATION | BENEFIT | CARDINFO
codestring
템플릿 코드
textstring
partnerIdstring
templateGroupKeystring
그룹 템플릿일 때만 포함
categoryCodestring
templateStatusTypestring
검수 상태 — REGISTERED(등록) / PENDING(검수요청) / APPROVED(검수완료) / REJECTED(반려)
= REGISTERED | PENDING | APPROVED | REJECTED
templateSendingStatusTypestring
발송 상태 — WAITING(발송대기) / SENDING(발송중) / BLOCKED(차단). 발송대기 외 상태는 수정/삭제 불가.
= WAITING | SENDING | BLOCKED
freeOfChargeboolean
buttonsarray<object>
sampleCouponallOf
codestring(100)필수
쿠폰 코드 (한글/영문/숫자/-)
namestring(20)필수
쿠폰 이름
endDatestring필수
쿠폰 만료일 (YYYY-MM-DD)
publisherstring
쿠폰 발행처 (생략 시 파트너 프로필명)
imageUrlstring
쿠폰 바코드 이미지 URL (300KB, 552×552 권장)
pushNoticestring
tableElementsarray<object>
benefitobject
createdAtstring
modifiedAtstring
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": {
    "id": "string",
    "templateType": "BASIC",
    "productCode": "INFORMATION",
    "code": "string",
    "text": "string",
    "partnerId": "string",
    "templateGroupKey": "string",
    "categoryCode": "string",
    "templateStatusType": "REGISTERED",
    "templateSendingStatusType": "WAITING",
    "freeOfCharge": true,
    "buttons": [
      {}
    ],
    "sampleCoupon": {
      "code": "string",
      "name": "string",
      "endDate": "string",
      "publisher": "string",
      "imageUrl": "string"
    },
    "pushNotice": "string",
    "tableElements": [
      {}
    ],
    "benefit": {},
    "createdAt": "string",
    "modifiedAt": "string"
  }
}
post/v1/template/group/remove

그룹 템플릿 삭제

그룹 템플릿을 삭제합니다. 발송대기(WAITING) 상태에서만 가능합니다.

요청 본문
파라미터타입필수설명
templateGroupKeystring필수
그룹 키
templateCodestring필수
템플릿 코드
curl -X POST "https://napi.bizppurio.com/v1/template/group/remove" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "templateGroupKey": "string",
  "templateCode": "string"
}'
응답
200삭제 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject
templateCodestring
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": {
    "templateCode": "string"
  }
}
post/v1/template/group/inspect

그룹 템플릿 검수 요청

그룹 템플릿의 검수를 요청합니다.

요청 본문
파라미터타입필수설명
templateGroupKeystring필수
그룹 키
templateCodestring필수
템플릿 코드
commentstring
검수 요청 메모
curl -X POST "https://napi.bizppurio.com/v1/template/group/inspect" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "templateGroupKey": "string",
  "templateCode": "string",
  "comment": "string"
}'
응답
200검수 요청 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataobject
templateCodestring
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": {
    "templateCode": "string"
  }
}
post/v1/template/group/inspect/cancel

그룹 템플릿 검수 요청 취소

그룹 템플릿 검수 요청을 취소합니다. 파라미터는 그룹 템플릿 검수 요청과 동일.

요청 본문
파라미터타입필수설명
templateGroupKeystring필수
그룹 키
templateCodestring필수
템플릿 코드
commentstring
검수 요청 메모
curl -X POST "https://napi.bizppurio.com/v1/template/group/inspect/cancel" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "templateGroupKey": "string",
  "templateCode": "string",
  "comment": "string"
}'
응답
200취소 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ]
}
post/v1/template/group/inspect/history

그룹 템플릿 검수 요청 이력

그룹 템플릿의 검수 요청·취소·반려 이력을 조회합니다.

요청 본문
파라미터타입필수설명
templateGroupKeystring필수
그룹 키
templateCodestring필수
템플릿 코드
curl -X POST "https://napi.bizppurio.com/v1/template/group/inspect/history" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "templateGroupKey": "string",
  "templateCode": "string"
}'
응답
200이력 조회 성공
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataarray<object>
이력 배열
contentstring
이력 내용 (검수 요청 / 취소 / 반려 등)
createdAtstring
발생 시점
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": [
    {
      "content": "string",
      "createdAt": "string"
    }
  ]
}
post/v1/template/group/search

최근 변경된 그룹 템플릿 조회

지정 기간 내 변경된 그룹 템플릿을 페이지네이션으로 조회합니다.

요청 본문
파라미터타입필수설명
templateGroupKeystring필수
그룹 키
fromDatestring필수
조회 시작 일자 (YYYY-MM-DD)
toDatestring
조회 종료 일자 — 미입력 시 현재
pageinteger
countinteger
modifiedOnlyboolean
curl -X POST "https://napi.bizppurio.com/v1/template/group/search" \
  -H "Authorization: Bearer {accessToken}" \
  -H "Content-Type: application/json" \
  -d '{
  "templateGroupKey": "dOn5qlguXXXXXXXX",
  "fromDate": "2024-11-05",
  "toDate": "2024-11-11",
  "page": 1,
  "count": 5
}'
응답
200검색 결과
파라미터타입필수설명
codestring필수
결과 코드 (200=성공 · 400=잘못된 요청 · 401=인증 없음 · 403=접근 권한 없음 · 404=없는 페이지 · 429=요청 한도 초과 · 500=내부 에러)
messagestring필수
errorsarray<object>
필드 검증 실패 시 상세 오류 배열
fieldstring
valuestring
reasonstring
dataarray<object>
검색 결과 배열
idstring
codestring
템플릿 코드
partnerIdstring
freeOfChargeboolean
createdAtstring
modifiedAtstring
응답 · 200
{
  "code": "200",
  "message": "요청 성공",
  "errors": [
    {
      "field": "string",
      "value": "string",
      "reason": "string"
    }
  ],
  "data": [
    {
      "id": "string",
      "code": "string",
      "partnerId": "string",
      "freeOfCharge": true,
      "createdAt": "string",
      "modifiedAt": "string"
    }
  ]
}

템플릿 타입·노출 예시

네이버 톡톡 템플릿은 정보성(productCode: INFORMATION) 4종광고성·혜택(productCode: BENEFIT) 6종으로 나뉩니다. 등록 시 productCodetemplateType에 따라 자동 고정되므로 요청에 포함하지 않습니다. 코드값 목록은 코드 정의를 참고하세요.

정보성 템플릿

templateType 설명 핵심 필드 톡톡 말풍선
BASIC 텍스트 기본형 text, buttons 텍스트 + 버튼
IMAGE 이미지형 text, sampleImageHashId, buttons 상단 이미지 + 텍스트 + 버튼
GIFT 선물(쿠폰) text, sampleCoupon, couponDescription 쿠폰 카드 + 본문
TABLE 테이블형 pushNotice, tableInfo.elementList[] 썸네일 + 표/본문 + 버튼 (요소 1~6개)

기본선물알림테이블N고객센터: 010-1234-5678'네이버톡톡'에서 문자 대신 톡톡으로발송된 정보성 메시지입니다.정보성 메시지 종류의 템플릿입니다. 이미지를 첨부할 수있고, 버튼도 추가 가능합니다.링크 바로가기1링크 바로가기2수신거부: 채팅창 설정 > 알림받기 관리톡톡 소식받기 취소P고객센터: 010-1234-5678'네이버톡톡'에서 문자 대신 톡톡으로발송된 정보성 메시지입니다.1234-5678-9012-3456교환권 유효기간: 2023.01.26.까지교환권 저장쿠폰 번호복사N고객센터: 010-1234-5678● 스마트톡톡 ⓘ그린편의점13,000원카드종류그린톡톡 카드승인취소 일시06/03 15:00자세한 포인트 적립 내역은그린톡톡 앱에서 확인 가능합니다.

TABLE형 — 필드 → 화면 노출 위치

테이블형은 tableInfo.elementList[]의 각 필드가 톡톡 말풍선의 정해진 위치에 노출됩니다.

스마트톡톡승인 취소30,000원그린카드김*린님취소일시24.11.18적립 포인트도 함께 취소※ 카드별 이용내역 안내포인트 확인하기 title — 타이틀 subtitle — 서브 타이틀 strikeTitle — 타이틀 취소선 thumbnailImageHashId / Url — 썸네일 table[].title · content — 표 항목(1~10) text — 본문(테이블 미사용 시) additionalContent — 부가정보 buttons — 버튼(요소당 최대 5)

광고성 혜택 템플릿

혜택 소재는 모두 benefit 객체 안에 담습니다. 타입별 introduction·products 요건, 할인·유효기간 규칙은 혜택 메시지 구성 에서 다룹니다.

templateType 설명
BENEFIT 기본형 — 단일 말풍선(이미지 + 본문 + 쿠폰칩 + 버튼)
BENEFIT_LMS LMS형 — 장문 본문(최대 2,000자), 이미지·캐러셀 없음
BENEFIT_CAROUSEL_COMMERCE 캐러셀 커머스형 — 가로 상품 카드, 가격(원가·할인가·할인율) 노출 + 인트로 필수
BENEFIT_CAROUSEL_FEED 캐러셀 피드형 — 가로 상품 카드, 설명·버튼 노출(가격 없음)
BENEFIT_LIST_COMMERCE 리스트 커머스형 — 세로 상품 리스트, 가격 노출 + 인트로 필수
BENEFIT_LIST_FEED 리스트 피드형 — 세로 상품 리스트, 가격 없음 + 인트로 필수

💡 커머스형 ↔ 피드형 구분: 커머스형은 상품 가격을 노출(쇼핑 중심), 피드형은 가격 대신 상품 설명·버튼을 노출합니다. 캐러셀은 가로 스크롤, 리스트는 세로 나열입니다.

기본형BENEFITSEASON SALE 80%곧 종료 시즌 막바지 ~70% 할인역대급 할인 오늘 단 하루만!5시간 후 종료, 오늘 출발 상품바로가기2,000원 할인쿠폰10,000원 이상 결제 시 사용가능사용기간 21.10.12 ~ 21.12.1COUPONLMS형BENEFIT_LMS[안내] 보이스피싱 예방 수칙안녕하세요, 고객님.진화하는 신종 보이스피싱·스미싱,예방이 최우선입니다!① 출처 불명 문자·링크 클릭 금지② 앱 설치 시 권한 꼭 확인하기③ 휴대폰 백신 프로그램 설치④ 소액결제 차단 기능 설정⑤ 명의도용방지 서비스 가입⑥ 의심 시 경찰(112)에 신고▶ 문의 : 모바일 고객센터 114(무료)펼쳐서 더보기 ∨캐러셀 커머스형BENEFIT_CAROUSEL_COMMERCE‹ 1/5 ›니트 가디건69,000원 30%구매하기2,000원 할인쿠폰10,000원 이상신상 바지78,000원구매2,000원캐러셀 피드형BENEFIT_CAROUSEL_FEED‹ 1/6 ›가을 신상 코트멋진 가을 보내세요구매하기니트 가디건아웃핏구매리스트 커머스형BENEFIT_LIST_COMMERCE메인 이미지지금부터 시즌 세일!특별한 아웃핏으로 멋진 가을니트 가디건69,000원 30%127,000신상 바지78,000원신상 코트129,000원리스트 피드형BENEFIT_LIST_FEED메인 이미지2023 F/W 신상품 이벤트특별한 추가 할인 이벤트Monthly Event - August아이들과 함께 특별한 시간가을 신상 코트 특가

ℹ️ 위 목업은 레이아웃 구조 이해용입니다. 실제 노출은 기기 해상도·네이버 톡톡 정책에 따라 달라질 수 있습니다.

혜택 탭 · 검색 피드 노출

네이버 앱 푸시·알림으로 도착한 메시지는 발송 후 7일간 알림 목록·혜택 추천, 혜택 피드, 톡톡 메시지 등 여러 지면에 노출됩니다. 각 지면에는 feedDisplayImageHashId(598×300)·benefit.title·benefitTypes·discountInfo가 함께 표시됩니다.

알림 목록·혜택 추천혜택 피드톡톡 메시지오늘 받은 알림D자주 구매한 DaouStore 소식 알림 ›[1,000원 할인 쿠폰]DaouStore의 혜택을 확인해보세요!N네이버 · 4시간 전네플스앱 오픈 위크, 오전 10시[~1만원] 선착순 쿠폰 받기 ▶이전 알림전체혜택·이벤트금융·자산활동·소식네이버여행상품 · 어제 04:58(광고) 연말 출발 비행기표까지1인당 1만원 할인 + 적립네이버페이 · 어제 12:00(광고) 새 카드 이벤트 최대 49만원상당 돌려드려요우리집 · 어제 10:02(광고) 이번 달 관리비 안내곧 끝나요! 놓치면 아쉬운 혜택최근 자주 찾은DaouStore5번 구매16일 전 구매비즈뿌리오몰5번 구매3개월 전 구매브랜드스토어3,000원 쿠폰7개 더보기 ∨최근 5번 구매한SEASON OFF상품 최대 50% 세일DaouStore놓치면 후회 시즌오프 ✨스토어에서 1,000원 할인 쿠폰으로특가에 추가 할인까지 놓치지 마세요!🎟 1,000원 할인 쿠폰받기 ↓DaouStore상담가능보통 25분 내 응답, 응답률 99%🔔 ☰수신거부: 알림설정 > 알림받기 취소3.17.(월)광고 02-0000-0000SEASON OFF놓치면 후회! DaouStore 시즌오프 ✨스토어에서 1,000원 할인 쿠폰으로특가에 추가 할인까지 놓치지 마세요!대형 수하물 캐리어 77cm250,000원300,000원기내용 여행 캐리어 57cm200,000원250,000원여행용 파우치 풀세트45,000원60,000원시즌오프기획베스트셀러

템플릿 상태

templateStatusType (검수) 의미
REGISTERED 등록
PENDING 검수요청
APPROVED 검수완료
REJECTED 반려
templateSendingStatusType (발송) 의미
WAITING 발송대기
SENDING 발송중
BLOCKED 차단

검수 완료 후 발송 전까지 WAITING, 발송 시작 시 SENDING 으로 전환됩니다. WAITING 외 상태는 수정·삭제 불가.

파트너 계정 상태

파트너 조회 응답의 accountStatusType 값입니다.

코드 설명
NORMAL 사용중
PAUSE 사용중지
SYSPAUSE 시스템사용중지
PREBLOCK 사용보류
BLOCK 사용제재
DELETED 삭제

템플릿 카테고리 코드

등록 시 발송 상황에 맞는 categoryCode 를 입력합니다. 혜택(B) 코드는 productCode: BENEFIT 전용입니다.

게임 (G)

코드 중분류 코드 중분류
G001 취소예정 G007 입금확인(삽니다)
G002 종료예정 G008 판매신청
G003 취소 G009 흥정신청
G004 즉시구매 G010 흥정수락
G005 종료 G011 재흥정
G006 입금확인(팝니다)

고객 (C)

코드 중분류
C001 방문완료
C002 방문 담당자안내
C003 A/S 완료안내
C004 필수고지안내

금융 (F)

코드 중분류 코드 중분류
F001 입금알림 F005 종가 알림
F002 출금알림 F006 체결내역알림
F003 목표가 도달 F007 정기적 수신동의
F004 수익률 도달 F009 금융 일반

배송 (D)

코드 중분류 코드 중분류
D001 택배사 도착 D006 대리수령완료
D002 배송중 D007 위탁배송지 배송완료
D003 도착예정 D008 반품수거방문
D004 배송완료 D009 배송 일반
D005 배송시간안내

선물 (P)

코드 중분류
P001 선물도착알림

쇼핑 (S)

코드 중분류 코드 중분류
S001 입금안내 S020 배송지연
S002 입금요청 S021 상품유의사항
S003 주문결제완료 S022 회원그룹변경
S004 무통장입금완료 S023 주문완료
S005 배송대기 S024 상품준비중
S006 발송조치 S025 반품완료
S007 배송완료 S026 교환완료
S008 취소접수 S027 결제취소
S009 반품접수 S028 부분취소
S010 문의답변완료 S029 픽업상품 미수령
S011 교환접수 S030 쿠폰 만료 안내
S012 환불완료 S031 수신거부 처리
S013 회원가입 S032 정기결제 신청
S014 회원인증 안내 S033 정기결제 취소
S015 비밀번호 안내 S034 정기결제상품 품절
S016 회원탈퇴 S035 정기결제 건너뛰기
S017 재입고 안내 S036 정기결제 예정일
S018 적립금 소멸 안내 S037 정기결제 완료
S019 본인확인 인증번호 발송 S038 정기결제 실패

여행 (T)

코드 중분류 코드 중분류
T001 예약확정 T004 결제 요청
T002 예약취소 T005 맞춤여행
T003 바우처발송 T006 여행안내

카드이용알림 (R)

코드 중분류
R006 가입완료
R007 가입실패
R014 가입확인알림
R018 카드이용관련안내

혜택 (B) — productCode: BENEFIT 전용

코드 중분류
B001 쿠폰
B002 적립금
B003 추가 증정
B004 기타 이벤트
B005 소식

혜택 메시지 구성

광고성(productCode: BENEFIT) 템플릿의 benefit 객체 구성 규칙입니다. 타입별 레이아웃은 템플릿 타입·노출 예시를 참고하세요.

타입별 구성 요건

templateType introduction products 개수 비고
BENEFIT (기본형) text(360자) + sampleImageHashId
BENEFIT_LMS text(2,000자), benefitTypes=EVENT 고정
BENEFIT_CAROUSEL_COMMERCE 필수 (description 60자) 2~5 상품 originalPrice/currentPrice
BENEFIT_CAROUSEL_FEED 2~6 상품 description(100자)·버튼 1개 필수
BENEFIT_LIST_COMMERCE 필수 (description 70자) 3~6 상품 가격 노출
BENEFIT_LIST_FEED 필수 (description 70자) 2~3

할인 정보

benefitTypesPRODUCT·DELIVERY·ORDER·POINT가 포함되면 discountInfo 객체가 필수입니다.

discountType 필수 필드 설명
AMOUNT discountAmount 정액 할인
RATE discountRate, maxDiscountAmount 정률 할인(최대 할인액 동반)
POINT accumulateAmount 적립
  • minimumOrderAmountPOINT/PRODUCT/DELIVERY/ORDER 포함 시 1,000원 이상.
  • landingPageUrl — 동일 조건에서 필수(혜택 클릭 시 이동 페이지).
  • benefitKindType COUPON/POINT, couponPublicationType DOWNLOAD/IMMEDIATE.

유효기간

validityInfo 객체로 혜택 유효기간을 지정합니다.

  • PERIODvalidStartedAt ~ validEndedAt (YYYY-MM-DD).
  • EXPIRATION — 발급일 기준 validDays 일간.

검색결과 노출

benefit.searchResultExposure 값:

  • true — 검색결과 노출. 단 개인화 변수(#{}) 사용 불가 — 등록 시 버튼 URL을 확정해야 하며, #{} 포함 시 등록 실패.
  • false(기본) — 정보성 알림처럼 타이틀·기본형/LMS형 본문에 #{} 개인화 변수 사용 가능.

소식 카테고리 제약

categoryCode: B005(소식) 선택 시 혜택탭 관련 파라미터(categoryType·benefitTypes·discountInfo·validityInfo·feedDisplayImageHashId·feedDisplayEndedAt)를 넣으면 등록 실패하며, searchResultExposure는 항상 false로 고정됩니다.

광고 수신거부

blockCallNumber(080 번호, 080-123-1234 형식)와 blockMessageUrl(https URL) 둘 중 하나는 반드시 입력합니다.

혜택 카테고리

혜택 탭 [인기] 분류에 활용되는 categoryType 값입니다.

코드 분류 코드 분류
FASHION 패션 SPORTS_LEISURE 스포츠·레저
BEAUTY 뷰티 NECESSITIES 생활용품
DIGITAL_APPLIANCE 디지털·가전 BOOK_HOBBY 도서·취미
LIVING 리빙 FINANCE 금융
FOOD 식품 ETC 기타
KIDS 출산·육아

혜택 유형

benefitTypes 는 최소 1개·최대 2개 선택하며, LMS형은 EVENT 로 고정됩니다.

코드 설명 discountInfo 필수
TIMESALE 타임 세일 N
GIFT 사은품 증정 N
BONUS 1+1 N
BRANDDAY 브랜드 데이 N
EVENT 이벤트 N
PRODUCT 상품 할인 Y
DELIVERY 배송비 할인 Y
ORDER 장바구니 할인 Y
POINT 적립 Y

버튼·이미지 규격

버튼 타입

모든 버튼은 type·buttonName(기본형 20자/커머스형 8자)을 가지며, searchResultExposure: false일 때 buttonCode로 URL 개인화가 가능합니다.

type 설명 필수 파라미터
WEB_LINK 웹페이지로 이동 mobileUrl (또는 pcUrl 중 1개 이상)
APP_LINK 앱 스킴/웹링크로 이동 iOsAppScheme·aOsAppScheme (발송 시 모두)
  • 한 버튼에서 WEB_LINKAPP_LINK를 중복 사용할 수 없습니다.
  • 발송(보내기) API로 발송 시 WEB_LINKmobileUrl·pcUrl 모두, APP_LINKiOsAppScheme·aOsAppScheme 모두 필수입니다.

템플릿 타입별 버튼 규칙

혜택 템플릿은 타입별로 버튼 사용 규칙이 다릅니다.

항목 기본형 LMS형 캐러셀 커머스 캐러셀 피드 리스트 커머스 리스트 피드
버튼 사용 선택 없음 필수 필수 필수 필수
버튼명 수정 가능 구매하기 고정 가능 구매하기 고정 가능
버튼 개수 최대 2 카드당 최대 1 카드당 최대 2 3~6 2~3
앱 링크(APP_LINK) 가능 가능 가능 가능 가능

리스트형의 버튼 개수는 상품(products) 항목 수와 같습니다(각 상품이 링크 1개). 정보성 템플릿의 버튼은 최대 5개입니다.

이미지 규격

이미지 업로드 API(URL / 파일)로 imageHashId를 발급받아 템플릿에 첨부합니다.

imageType 용도 해상도 최대 크기 포맷
content(기본) 일반 이미지 (말풍선·썸네일) 552×552 권장(제한 없음, 미달 시 크롭) 300 KB JPG·JPEG·PNG·GIF
feed 혜택 피드 노출 이미지 598×300 고정 (그 외 업로드 에러) 300 KB JPG·JPEG·PNG·GIF
  • 혜택 템플릿의 benefit.feedDisplayImageHashId는 반드시 feed(598×300)로 업로드한 해시를 사용합니다.
  • 쿠폰(GIFT)이 첨부된 경우 이미지 첨부는 불가합니다.