Notification > Notification Hub > API v1.0 사용 가이드 > 템플릿
요청
POST /template/v1.0/{messageChannel}/templates
Content-Type: application/json
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: {accessToken}
요청 파라미터
이름 | 구분 | 타입 | 필수 | 설명 |
---|---|---|---|---|
appKey | Header | String | Y | 앱키 |
accessToken | Header | String | Y | 인증 토큰 |
요청 본문
{
"templateName": "템플릿_이름",
"categoryId": "템플릿_카테고리_아이디",
"messagePurpose": "NORMAL",
"templateLanguage": "PLAIN_TEXT",
"sender": {
"senderPhoneNumber": "01012341234"
},
"content": {
"messageType": "MMS",
"title": "[NHN Cloud Notification Hub] 공지사항",
"body": "안녕하세요. NHN Cloud Notification Hub 입니다.",
"attachmentIds": [
"첨부_파일_아이디"
]
}
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
templateName | String | Y | 템플릿 이름 |
categoryId | String | Y | 템플릿 카테고리 아이디 |
messagePurpose | String | Y | 메시지 목적 |
templateLanguage | String | Y | 템플릿 언어 PLAIN_TEXT, FREE_MARKER |
sender | Object | Y | 발신자 |
content | Object | Y | 내용 |
메시지 채널 | 필드 | 설명 |
---|---|---|
SMS | sender.senderPhoneNumber | 발신자 번호 |
RCS | sender.brandId | 브랜드 아이디 |
RCS | sender.chatbotId | 대화방 아이디 |
sender.senderMailAddress | 발신자 이메일 주소 | |
ALIMTALK, FRIENDTALK | sender.senderKey | 발신키 |
ALIMTALK | sender.senderProfileType | 발신프로필 유형 GROUP, NORMAL |
{
"templateName": "템플릿 이름",
"categoryId": "카테고리_아이디",
"messagePurpose": "NORMAL",
"templateLanguage": "PLAIN_TEXT",
"sender": {
"senderKey": "발신_키",
"senderProfileType": "GROUP"
},
"content": {
"templateMessageType": "BA",
"templateEmphasizeType": "NONE",
"templateContent": "#{이름}님의 주문이 완료되었습니다.",
"templateAd": "채널 추가하고 이 채널의 마케팅 메시지 등을 카카오톡으로 받기",
"templateExtra": "* 실시간 예약 특성상 중복 예약이 발생할 수 있으며, 입실이 불가할 경우 예약이 취소될 수 있습니다.\\n* 문의전화: 1234-1234",
"templateTitle": "123,450원",
"templateSubtitle": "승인 내역",
"templateHeader": "주문이 체결되었습니다.",
"templateItem": {
"list": [],
"summary": {
"title": "string",
"description": "string"
}
},
"templateItemHighlight": {
"title": "string",
"description": "string",
"attachmentId": "YaX2DA4Weab2",
"imageUrl": "string"
},
"templateRepresentLink": {
"linkMo": "string",
"linkPc": "string",
"schemeIos": "string",
"schemeAndroid": "string"
},
"attachmentId": "YaX2DA4Weab2",
"templateImageName": "image.png",
"templateImageUrl": "https://mud-kage.kakao.com/dn/hAtIc/btshc5wAvF0/sA8gjabh4J34IMqCk0hkBK/img_l.jpg",
"securityFlag": false,
"categoryCode": "999999",
"buttons": [],
"quickReplies": []
},
"additionalProperty": {
"templateCode": "templateCode",
"kakaoTemplateCode": "kakaoTemplateCode",
"comments": [],
"status": "APR",
"templateModificationStatus": "APR",
"block": false,
"dormant": false
}
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
응답 본문
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"templateId": "템플릿_아이디"
}
요청 예시
### 템플릿 생성
POST {{endpoint}}/template/v1.0/{{messageChannel}}/templates
Content-Type: application/json
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{authorization}}
{
"templateName": "템플릿_이름",
"categoryId": "템플릿_카테고리_아이디",
"messagePurpose": "NORMAL",
"templateLanguage": "PLAIN_TEXT",
"sender": {
"senderPhoneNumber": "01012341234"
},
"content": {
"messageType": "MMS",
"title": "[NHN Cloud Notification Hub] 공지사항",
"body": "안녕하세요. NHN Cloud Notification Hub 입니다.",
"attachmentIds": [
"첨부_파일_아이디"
]
}
}
curl -X POST "${ENDPOINT}/template/v1.0/${MESSAGE_CHANNEL}/templates" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}" \
-d '{
"templateName": "템플릿_이름",
"categoryId": "템플릿_카테고리_아이디",
"messagePurpose": "NORMAL",
"templateLanguage": "PLAIN_TEXT",
"sender": {
"senderPhoneNumber": "01012341234"
},
"content": {
"messageType": "MMS",
"title": "[NHN Cloud Notification Hub] 공지사항",
"body": "안녕하세요. NHN Cloud Notification Hub 입니다.",
"attachmentIds": [
"첨부_파일_아이디"
]
}
}'
요청
GET /template/v1.0/{messageChannel}/templates
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: {accessToken}
요청 파라미터
이름 | 구분 | 타입 | 필수 | 설명 |
---|---|---|---|---|
appKey | Header | String | Y | 앱키 |
accessToken | Header | String | Y | 인증 토큰 |
templateName | Query | String | N | 템플릿 이름, 접두사(Prefix) 검색 가능 |
limit | Query | Integer | N | 조회 개수(기본값: 20) |
offset | Query | Integer | N | 조회 시작 위치(기본값: 0) |
요청 본문
이 API는 요청 본문을 요구하지 않습니다.
응답 본문
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"templates": [
{
"templateId": "템플릿_아이디",
"templateName": "템플릿_이름",
"categoryId": "템플릿_카테고리_아이디",
"messagePurpose": "NORMAL",
"templateLanguage": "PLAIN_TEXT",
"sender": {
"senderPhoneNumber": "01012341234"
},
"content": {
"messageType": "MMS",
"title": "[NHN Cloud Notification Hub] 공지사항",
"body": "안녕하세요. NHN Cloud Notification Hub 입니다.",
"attachmentIds": [
"첨부_파일_아이디"
]
},
"createdDateTime": "2023-01-01T00:00:00Z",
"updatedDateTime": "2023-01-01T00:00:00Z"
}
],
"totalCount": 1
}
요청 예시
### 템플릿 목록 조회
GET {{endpoint}}/template/v1.0/{{messageChannel}}/templates
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{authorizationToken}}
curl -X GET "${ENDPOINT}/template/v1.0/${MESSAGE_CHANNEL}/templates" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}"
요청
GET /template/v1.0/{messageChannel}/templates/{templateId}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: {accessToken}
요청 파라미터
이름 | 구분 | 타입 | 필수 | 설명 |
---|---|---|---|---|
appKey | Header | String | Y | 앱키 |
accessToken | Header | String | Y | 인증 토큰 |
templateId | Path | String | Y | 템플릿 아이디 |
요청 본문
이 API는 요청 본문을 요구하지 않습니다.
응답 본문
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"template": {
"templateId": "템플릿_아이디",
"templateName": "템플릿_이름",
"categoryId": "템플릿_카테고리_아이디",
"messagePurpose": "NORMAL",
"templateLanguage": "PLAIN_TEXT",
"sender": {
"senderPhoneNumber": "01012341234"
},
"content": {
"messageType": "MMS",
"title": "[NHN Cloud Notification Hub] 공지사항",
"body": "안녕하세요. NHN Cloud Notification Hub 입니다.",
"attachmentIds": [
"첨부_파일_아이디"
]
},
"createdDateTime": "2023-01-01T00:00:00Z",
"updatedDateTime": "2023-01-01T00:00:00Z"
}
}
요청 예시
### 템플릿 조회
GET {{endpoint}}/template/v1.0/{{messageChannel}}/templates/{templateId}
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{authorizationToken}}
curl -X GET "${ENDPOINT}/template/v1.0/${MESSAGE_CHANNEL}/templates/${TEMPLATE_ID}" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}"
요청
PUT /template/v1.0/{messageChannel}/templates/{templateId}
Content-Type: application/json
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: {accessToken}
요청 파라미터
이름 | 구분 | 타입 | 필수 | 설명 |
---|---|---|---|---|
appKey | Header | String | Y | 앱키 |
accessToken | Header | String | Y | 인증 토큰 |
templateId | Path | String | Y | 템플릿 아이디 |
요청 본문
{
"templateName": "템플릿_이름",
"categoryId": "템플릿_카테고리_아이디",
"messagePurpose": "NORMAL",
"templateLanguage": "PLAIN_TEXT",
"sender": {
"senderPhoneNumber": "01012341234"
},
"content": {
"messageType": "MMS",
"title": "[NHN Cloud Notification Hub] 공지사항",
"body": "안녕하세요. NHN Cloud Notification Hub 입니다.",
"attachmentIds": [
"첨부_파일_아이디"
]
}
}
응답 본문
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
요청 예시
### 템플릿 수정
PUT {{endpoint}}/template/v1.0/{{messageChannel}}/templates/{templateId}
Content-Type: application/json
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{authorization}}
{
"templateName": "템플릿_이름",
"categoryId": "템플릿_카테고리_아이디",
"messagePurpose": "NORMAL",
"templateLanguage": "PLAIN_TEXT",
"sender": {
"senderPhoneNumber": "01012341234"
},
"content": {
"messageType": "MMS",
"title": "[NHN Cloud Notification Hub] 공지사항",
"body": "안녕하세요. NHN Cloud Notification Hub 입니다.",
"attachmentIds": [
"첨부_파일_아이디"
]
}
}
curl -X PUT "${ENDPOINT}/template/v1.0/${MESSAGE_CHANNEL}/templates/${TEMPLATE_ID}" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}" \
-d '{
"templateName": "템플릿_이름",
"categoryId": "템플릿_카테고리_아이디",
"messagePurpose": "NORMAL",
"templateLanguage": "PLAIN_TEXT",
"sender": {
"senderPhoneNumber": "01012341234"
},
"content": {
"messageType": "MMS",
"title": "[NHN Cloud Notification Hub] 공지사항",
"body": "안녕하세요. NHN Cloud Notification Hub 입니다.",
"attachmentIds": [
"첨부_파일_아이디"
]
}
}'
요청
DELETE /template/v1.0/{messageChannel}/templates/{templateId}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: {accessToken}
요청 파라미터
이름 | 구분 | 타입 | 필수 | 설명 |
---|---|---|---|---|
appKey | Header | String | Y | 앱키 |
accessToken | Header | String | Y | 인증 토큰 |
templateId | Path | String | Y | 템플릿 아이디 |
요청 본문
이 API는 요청 본문을 요구하지 않습니다.
응답 본문
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
요청 예시
### 템플릿 삭제
DELETE {{endpoint}}/template/v1.0/{{messageChannel}}/templates/{templateId}
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{authorizationToken}}
curl -X DELETE "${ENDPOINT}/template/v1.0/${MESSAGE_CHANNEL}/templates/${TEMPLATE_ID}" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}"
요청
POST /template/v1.0/ALIMTALK/templates/{templateId}/inquiries
Content-Type: application/json
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: {accessToken}
요청 파라미터
이름 | 구분 | 타입 | 필수 | 설명 |
---|---|---|---|---|
appKey | Header | String | Y | 앱키 |
accessToken | Header | String | Y | 인증 토큰 |
templateId | Path | String | Y | 템플릿 아이디 |
요청 본문
{
"comment": "문의 내용"
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
comment | String | Y | 문의 내용(최대 길이: 500) |
응답 본문
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
요청 예시
### 알림톡 템플릿 문의하기
POST {{endpoint}}/template/v1.0/ALIMTALK/templates/{templateId}/inquiries
Content-Type: application/json
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{authorization}}
{
"comment": "문의 내용"
}
curl -X POST "${ENDPOINT}/template/v1.0/ALIMTALK/templates/${TEMPLATE_ID}/inquiries" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}" \
-d '{
"comment": "문의 내용"
}'
요청
POST /template/v1.0/ALIMTALK/templates/${TEMPLATE_ID}/inquiries/do-with-file
Content-Type: multipart/form-data
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: {accessToken}
요청 파라미터
이름 | 구분 | 타입 | 필수 | 설명 |
---|---|---|---|---|
appKey | Header | String | Y | 앱키 |
accessToken | Header | String | Y | 인증 토큰 |
templateId | Path | String | Y | 템플릿 아이디 |
comment | Query | String | Y | 문의 내용(최대 길이: 500) |
요청 본문
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="attachment.xlsx"
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
<파일 데이터>
------WebKitFormBoundary7MA4YWxkTrZu0gW--
응답 본문
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
요청 예시
### 알림톡 템플릿 파일 첨부 문의하기
POST {{endpoint}}/template/v1.0/ALIMTALK/templates/{templateId}/inquiries/do-with-file?fileName=attachment.xlsx
Content-Type: multipart/form-data
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{authorization}}
--boundary
Content-Disposition: form-data; name="file"; fileName="attachment.xlsx"
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
< ./file/attachment.xlsx
--boundary--
curl -X POST "${ENDPOINT}/template/v1.0/ALIMTALK/templates/${TEMPLATE_ID}/inquiries/do-with-file?fileName=attachment.xlsx" \
-H "Content-Type: multipart/form-data" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}" \
-F "file=@./file/attachment.xlsx"
요청
GET /template/v1.0/ALIMTALK/templates/{templateId}/modifications
Content-Type: application/json
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: {accessToken}
요청 파라미터
이름 | 구분 | 타입 | 필수 | 설명 |
---|---|---|---|---|
appKey | Header | String | Y | 앱키 |
accessToken | Header | String | Y | 인증 토큰 |
templateId | Path | String | Y | 템플릿 아이디 |
요청 본문
이 API는 요청 본문을 요구하지 않습니다.
응답 본문
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"templates": [
{
"templateId": "템플릿_아이디",
"templateName": "템플릿_이름",
"categoryId": "템플릿_카테고리_아이디",
"messageChannel": "ALIMTALK",
"messagePurpose": "NORMAL",
"templateLanguage": "PLAIN_TEXT",
"sender": {
"senderKey": "발신자_키",
"senderProfileId": "발신자_프로필_아이디",
"senderProfileType": "GROUP"
},
"content": {
"templateMessageType": "BA",
"templateEmphasizeType": "NONE",
"templateContent": "#{이름}님의 주문이 완료되었습니다.",
"templateAd": "채널 추가하고 이 채널의 마케팅 메시지 등을 카카오톡으로 받기",
"templateExtra": "* 실시간 예약 특성상 중복 예약이 발생할 수 있으며, 입실이 불가할 경우 예약이 취소될 수 있습니다.\\n* 문의전화: 1234-1234",
"templateTitle": "123,450원",
"templateSubtitle": "승인 내역",
"templateHeader": "주문이 체결되었습니다.",
"templateItem": {
"list": [
{
"title": "제목",
"description": "설명"
}
],
"summary": {
"title": "제목",
"description": "설명"
}
},
"templateItemHighlight": {
"title": "제목",
"description": "설명",
"attachmentId": "하이라이트_이미_첨부파일_아이디",
"imageUrl": "하이라이트_이미지_링크"
},
"templateRepresentLink": {
"linkMo": "모바일_링크",
"linkPc": "PC_링크",
"schemeIos": "iOS_링크",
"schemeAndroid": "안드로이드_링크"
},
"attachmentId": "첨부_파일_아이디",
"templateImageName": "이미지_파일_이름",
"templateImageUrl": "이미지_링크",
"securityFlag": false,
"categoryCode": "999999",
"buttons": [
{
"ordering": 1,
"type": "WL",
"name": "버튼_이름",
"linkMo": "모바일_링크",
"linkPc": "PC_링크",
"schemeIos": "iOS_링크",
"schemeAndroid": "안드로이드_링크",
"bizFormId": 1
}
],
"quickReplies": [
{
"ordering": 1,
"type": "WL",
"name": "버튼_이름",
"linkMo": "모바일_링크",
"linkPc": "PC_링크",
"schemeIos": "iOS_링크",
"schemeAndroid": "안드로이드_링크",
"bizFormId": 1
}
]
},
"createdDateTime": "2023-01-01T00:00:00Z",
"updatedDateTime": "2023-01-01T00:00:00Z"
}
],
"totalCount": 1
}
이름 | 타입 | 설명 |
---|---|---|
templateCode | String | 템플릿 코드(최대 20자) |
templateName | String | 템플릿명(최대 150자) |
templateContent | String | 템플릿 본문(최대 1000자) |
templateMessageType | String | 템플릿 메시지 유형 BA: 기본형, EX: 부가 정보형, AD: 채널 추가형, MI: 복합형 (기본값: BA) |
templateEmphasizeType | String | 템플릿 강조 표시 타입 NONE: 기본, TEXT: 강조 표시, IMAGE: 이미지형, ITEM_LIST: 아이템리스트형 (기본값: NONE) - TEXT 선택 시: templateTitle, templateSubtitle 필수 - IMAGE 선택 시: templateImageName, templateImageUrl 필수 - ITEM_LIST 선택 시: 이미지, 헤더, 아이템 하이라이트, 아이템 리스트 중 1개 이상 필수 |
templateExtra | String | 템플릿 부가 정보 템플릿 메시지 유형이 부가 정보형 또는 복합형일 경우 필수 |
templateTitle | String | 템플릿 제목(최대 50자) Android: 2줄, 23자 이상일 때 말줄임 처리 iOS: 2줄, 27자 이상일 때 말줄임 처리 |
templateSubtitle | String | 템플릿 보조 문구(최대 50자) Android: 18자 이상일 때 말줄임 처리 iOS: 21자 이상일 때 말줄임 처리 |
templateHeader | String | 템플릿 헤더(최대 16자) |
templateItem | Object | 아이템 |
templateItem.list | Object Array | 아이템 리스트(최소 2개, 최대 10개) |
templateItem.list.title | String | 타이틀(최대 6자) |
templateItem.list.description | String | 디스크립션(최대 23자) |
templateItem.summary | Object | 아이템 요약 정보 |
templateItem.summary.title | String | 타이틀(최대 6자) |
templateItem.summary.description | String | 디스크립션(변수 및 화폐 단위, 숫자, 쉼표, 마침표만 사용 가능, 최대 14자) |
templateItemHighlight | Object | 아이템 하이라이트 |
templateItemHighlight.title | String | 타이틀(최대 30자, 섬네일 이미지가 있을 경우 21자) |
templateItemHighlight.description | String | 디스크립션(최대 19자, 섬네일 이미지가 있을 경우 13자) |
templateItemHighlight.imageUrl | String | 섬네일 이미지 주소 |
templateRepresentLink | Object | 대표 링크 |
templateRepresentLink.linkMo | String | 모바일 웹 링크(최대 500자) |
templateRepresentLink.linkPc | String | PC 웹 링크(최대 500자) |
templateRepresentLink.schemeIos | String | iOS 앱 링크(최대 500자) |
templateRepresentLink.schemeAndroid | String | 안드로이드 앱 링크(최대 500자) |
templateImageName | String | 이미지명(업로드한 파일명) |
templateImageUrl | String | 이미지 URL |
securityFlag | Boolean | 보안 템플릿 여부 OTP 등 보안 메시지일 경우 설정 발신 당시 메인 디바이스 외 다른 디바이스에 메시지 텍스트 미노출 (기본값: false) |
categoryCode | String | 템플릿 카테고리 코드 (템플릿 카테고리 조회 API 참고, 기본값: 999999) 카테고리 기타일 경우 최하위 우선순위로 심사 |
buttons | Object Array | 버튼 리스트(최대 5개) |
buttons[].ordering | Integer | 버튼 순서(1~5) |
buttons[].type | String | 버튼 타입 WL: 웹 링크, AL: 앱 링크, DS: 배송 조회, BK: 봇 키워드, MD: 메시지 전달, BC: 상담톡 전환, BT: 봇 전환, AC: 채널 추가, BF: 비즈니스폼, P1: 이미지 보안 전송 플러그인 ID, P2: 개인정보이용 플러그인 ID, P3: 원클릭 결제 플러그인 ID |
buttons[].name | String | 버튼 이름 (버튼이 있는 경우 필수, 최대 14자) |
buttons[].linkMo | String | 모바일 웹 링크 (WL 타입일 경우 필수 필드, 최대 500자) |
buttons[].linkPc | String | PC 웹 링크 (WL 타입일 경우 선택 필드, 최대 500자) |
buttons[].schemeIos | String | iOS 앱 링크 (AL 타입일 경우 필수 필드, 최대 500자) |
buttons[].schemeAndroid | String | 안드로이드 앱 링크 (AL 타입일 경우 필수 필드, 최대 500자) |
buttons[].bizFormId | Integer | 비즈니스폼 ID (BF 타입일 경우 필수) |
buttons[].pluginId | String | 플러그인 ID (최대 24자) |
quickReplies | Object Array | 바로연결 리스트 (최대 5개) |
quickReplies[].ordering | Integer | 바로연결 순서 (바로연결이 있는 경우 필수) |
quickReplies[].type | String | 바로연결 타입 WL: 웹 링크, AL: 앱 링크, BK: 봇 키워드, BC: 상담톡 전환, BT: 봇 전환, BF: 비즈니스폼 |
quickReplies[].name | String | 바로연결 이름 (바로연결이 있는 경우 필수, 최대 14자) |
quickReplies[].linkMo | String | 모바일 웹 링크 (WL 타입일 경우 필수 필드, 최대 500자) |
quickReplies[].linkPc | String | PC 웹 링크 (WL 타입일 경우 선택 필드, 최대 500자) |
quickReplies[].schemeIos | String | iOS 앱 링크 (AL 타입일 경우 필수 필드, 최대 500자) |
quickReplies[].schemeAndroid | String | 안드로이드 앱 링크 (AL 타입일 경우 필수 필드, 최대 500자) |
quickReplies[].bizFormId | Integer | 비즈니스폼 ID (BF 타입일 경우 필수) |
요청 예시
### 알림톡 템플릿 수정 내역 조회
GET {{endpoint}}/template/v1.0/ALIMTALK/templates/{templateId}/modifications
Content-Type: application/json
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{authorization}}
curl -X GET "${ENDPOINT}/template/v1.0/ALIMTALK/templates/${TEMPLATE_ID}/modifications" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}"
요청
POST /template/v1.0/{messageChannel}/categories
Content-Type: application/json
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: {accessToken}
요청 파라미터
이름 | 구분 | 타입 | 필수 | 설명 |
---|---|---|---|---|
appKey | Header | String | Y | 앱키 |
accessToken | Header | String | Y | 인증 토큰 |
messageChannel | Path | String | Y | 메시지 채널 SMS, RCS, ALIMTALK, FRIENDTALK, EMAIL, PUSH |
요청 본문
{
"parentCategoryId": "상위_카테고리_아이디",
"name": "카테고리_이름"
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
parentCategoryId | String | 선택 | 상위 카테고리 아이디 |
name | String | 필수 | 카테고리 이름(최대 50자) |
응답 본문
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"categoryId": "카테고리_아이디"
}
요청 예시
### 카테고리 생성
POST {{endpoint}}/template/v1.0/{{messageChannel}}/categories
Content-Type: application/json
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{authorization}}
{
"parentCategoryId": "상위_카테고리_아이디",
"name": "카테고리_이름"
}
curl -X POST "${ENDPOINT}/template/v1.0/${MESSAGE_CHANNEL}/categories" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}"
-d '{
"parentCategoryId": "상위_카테고리_아이디",
"name": "카테고리_이름"
}'
요청
GET /template/v1.0/{messageChannel}/categories
Content-Type: application/json
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: {accessToken}
요청 파라미터
이름 | 구분 | 타입 | 필수 | 설명 |
---|---|---|---|---|
appKey | Header | String | Y | 앱키 |
accessToken | Header | String | Y | 인증 토큰 |
messageChannel | Path | String | Y | 메시지 채널 SMS, RCS, ALIMTALK, FRIENDTALK, EMAIL, PUSH |
요청 본문
이 API는 요청 본문을 요구하지 않습니다.
응답 본문
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"categories": [
{
"categoryId": "카테고리_아이디",
"name": "카테고리_이름",
"parentCategoryId": "상위_카테고리_아이디",
"categoryIds": [
"하위_카테고리_아이디"
],
"templateIds": [
"카테고리에 속한 템플릿_아이디"
]
}
]
}
요청 예시
### 카테고리 목록 조회
GET {{endpoint}}/template/v1.0/{{messageChannel}}/categories
Content-Type: application/json
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{authorization}}
curl -X GET "${ENDPOINT}/template/v1.0/${MESSAGE_CHANNEL}/categories" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}"
요청
GET /template/v1.0/{messageChannel}/category-tree
Content-Type: application/json
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: {accessToken}
요청 파라미터
이름 | 구분 | 타입 | 필수 | 설명 |
---|---|---|---|---|
appKey | Header | String | Y | 앱키 |
accessToken | Header | String | Y | 인증 토큰 |
messageChannel | Path | String | Y | 메시지 채널 SMS, RCS, ALIMTALK, FRIENDTALK, EMAIL, PUSH |
categoryTemplateName | Query | String | N | 카테고리 또는 템플릿 이름, 접두사(Prefix) 검색 가능 |
senderProfileType | Query | String | N | 발신자 프로필 타입 (GROUP, USER), 알림톡과 친구톡만 해당됨 |
senderKey | Query | String | N | 발신자 키, 알림톡과 친구톡만 해당됨 |
요청 본문
이 API는 요청 본문을 요구하지 않습니다.
응답 본문
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"categories": [
{
"categoryId": "ROOT",
"categoryName": "Root Category",
"parentCategoryId": null,
"messageChannel": "SMS",
"categories": [
{
"categoryId": "카테고리_아이디",
"categoryName": "카테고리_이름",
"parentCategoryId": "ROOT",
"messageChannel": "SMS",
"categories": [
{
"categoryId": "카테고리_아이디",
"categoryName": "카테고리_이름",
"parentCategoryId": "6XAeH2yo",
"messageChannel": "SMS",
"categories": [],
"templates": [
{
"templateId": "템플릿_아이디",
"templateName": "템플릿_이름"
},
{
"templateId": "템플릿_아이디",
"templateName": "템플릿_이름"
}
]
}
],
"templates": []
}
],
"templates": []
}
]
}
이름 | 타입 | 설명 |
---|---|---|
categories.[]categoryId | String | 카테고리 아이디 |
categories.[]categoryName | String | 카테고리 이름 |
categories.[]parentCategoryId | String | 상위 카테고리 아이디 |
categories.[]messageChannel | String | 메시지 채널 SMS, RCS, ALIMTALK, FRIENDTALK, EMAIL, PUSH |
categories.[]categories | Object Array | 하위 카테고리 목록 |
categories.[]templates | Object Array | 템플릿 목록 |
categories.[]templates.[]templateId | String | 템플릿 아이디 |
categories.[]templates.[]templateName | String | 템플릿 이름 |
요청 예시
### 카테고리 트리 조회
GET {{endpoint}}/template/v1.0/{{messageChannel}}/category-tree
Content-Type: application/json
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{authorization}}
curl -X GET "${ENDPOINT}/template/v1.0/${MESSAGE_CHANNEL}/category-tree" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}"
요청
GET /template/v1.0/{messageChannel}/categories/{categoryId}
Content-Type: application/json
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: {accessToken}
요청 파라미터
이름 | 구분 | 타입 | 필수 | 설명 |
---|---|---|---|---|
appKey | Header | String | Y | 앱키 |
accessToken | Header | String | Y | 인증 토큰 |
messageChannel | Path | String | Y | 메시지 채널 SMS, RCS, ALIMTALK, FRIENDTALK, EMAIL, PUSH |
categoryId | Path | String | Y | 카테고리 아이디 |
요청 본문
이 API는 요청 본문을 요구하지 않습니다.
응답 본문
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"category": {
"categoryId": "카테고리_아이디",
"categoryName": "카테고리_이름",
"parentCategoryId": "상위_카테고리_아이디",
"messageChannel": "SMS",
"categoryIds": [
"하위_카테고리_아이디"
],
"templateIds": [
"카테고리에_속한_템플릿_아이디"
]
}
}
요청 예시
### 메시지 채널별 카테고리 조회
GET {{endpoint}}/template/v1.0/{{messageChannel}}/categories/{{categoryId}}
Content-Type: application/json
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{authorization}}
curl -X GET "${ENDPOINT}/template/v1.0/${MESSAGE_CHANNEL}/categories/{categoryId}" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}"
요청
PUT /template/v1.0/{messageChannel}/categories/{categoryId}
Content-Type: application/json
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: {accessToken}
요청 파라미터
이름 | 구분 | 타입 | 필수 | 설명 |
---|---|---|---|---|
appKey | Header | String | Y | 앱키 |
accessToken | Header | String | Y | 인증 토큰 |
messageChannel | Path | String | Y | 메시지 채널 SMS, RCS, ALIMTALK, FRIENDTALK, EMAIL, PUSH |
categoryId | Path | String | Y | 카테고리 아이디 |
요청 본문
{
"parentCategoryId": "상위_카테고리_아이디",
"name": "카테고리_이름"
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
parentCategoryId | String | 선택 | 상위 카테고리 아이디 |
name | String | 필수 | 카테고리 이름(최대 50자) |
응답 본문
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
요청 예시
### 카테고리 수정
PUT {{endpoint}}/template/v1.0/{{messageChannel}}/categories/{{categoryId}}
Content-Type: application/json
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{authorization}}
{
"parentCategoryId": "상위_카테고리_아이디",
"name": "카테고리_이름"
}
curl -X PUT "${ENDPOINT}/template/v1.0/${MESSAGE_CHANNEL}/categories/{categoryId}" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}" \
-d '{
"parentCategoryId": "상위_카테고리_아이디",
"name": "카테고리_이름"
}'
요청
POST /template/v1.0/${MESSAGE_CHANNEL}/categories/${CATEGORY_ID}/templates
Content-Type: application/json
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: {accessToken}
요청 파라미터
이름 | 구분 | 타입 | 필수 | 설명 |
---|---|---|---|---|
appKey | Header | String | Y | 앱키 |
accessToken | Header | String | Y | 인증 토큰 |
messageChannel | Path | String | Y | 메시지 채널 SMS, RCS, ALIMTALK, FRIENDTALK, EMAIL, PUSH |
요청 본문
{
"templateId": "템플릿_아이디"
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
templateId | String | 필수 | 템플릿 아이디 |
응답 본문
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
요청 예시
### 템플릿 카테고리에 템플릿 추가
POST {{endpoint}}/template/v1.0/{{messageChannel}}/categories/{{categoryId}}/templates
Content-Type: application/json
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{authorization}}
{
"templateId": "템플릿_아이디"
}
curl -X POST "${ENDPOINT}/template/v1.0/${MESSAGE_CHANNEL}/categories/${CATEGORY_ID}/templates" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}" \
-d '{
"templateId": "템플릿_아이디"
}'
요청
DELETE /template/v1.0/{messageChannel}/categories/{categoryId}
Content-Type: application/json
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: {accessToken}
요청 파라미터
이름 | 구분 | 타입 | 필수 | 설명 |
---|---|---|---|---|
appKey | Header | String | Y | 앱키 |
accessToken | Header | String | Y | 인증 토큰 |
messageChannel | Path | String | Y | 메시지 채널 SMS, RCS, ALIMTALK, FRIENDTALK, EMAIL, PUSH |
categoryId | Path | String | Y | 카테고리 아이디 |
요청 본문
이 API는 요청 본문을 요구하지 않습니다.
응답 본문
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
요청 예시
### 카테고리 삭제
DELETE {{endpoint}}/template/v1.0/{{messageChannel}}/categories/{{categoryId}}
Content-Type: application/json
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{authorization}}
curl -X DELETE "${ENDPOINT}/template/v1.0/${MESSAGE_CHANNEL}/categories/${CATEGORY_ID}" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}"