send-kakao-brand-message
curl --request POST \
--url https://api.notifly.tech/messages/kakao-brand-message \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"projectId": "example_project_1234567890abcdef",
"templateId": "template-id",
"brandMessageTarget": "M",
"recipientList": [
{
"recipientNo": "01012345678",
"templateParameter": {
"customer_name": "홍길동"
},
"failoverTextMessageTemplateParameter": {
"coupon_name": "8월 할인 쿠폰"
}
}
]
}
'import requests
url = "https://api.notifly.tech/messages/kakao-brand-message"
payload = {
"projectId": "example_project_1234567890abcdef",
"templateId": "template-id",
"brandMessageTarget": "M",
"recipientList": [
{
"recipientNo": "01012345678",
"templateParameter": { "customer_name": "홍길동" },
"failoverTextMessageTemplateParameter": { "coupon_name": "8월 할인 쿠폰" }
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
projectId: 'example_project_1234567890abcdef',
templateId: 'template-id',
brandMessageTarget: 'M',
recipientList: [
{
recipientNo: '01012345678',
templateParameter: {customer_name: '홍길동'},
failoverTextMessageTemplateParameter: {coupon_name: '8월 할인 쿠폰'}
}
]
})
};
fetch('https://api.notifly.tech/messages/kakao-brand-message', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.notifly.tech/messages/kakao-brand-message",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'projectId' => 'example_project_1234567890abcdef',
'templateId' => 'template-id',
'brandMessageTarget' => 'M',
'recipientList' => [
[
'recipientNo' => '01012345678',
'templateParameter' => [
'customer_name' => '홍길동'
],
'failoverTextMessageTemplateParameter' => [
'coupon_name' => '8월 할인 쿠폰'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.notifly.tech/messages/kakao-brand-message"
payload := strings.NewReader("{\n \"projectId\": \"example_project_1234567890abcdef\",\n \"templateId\": \"template-id\",\n \"brandMessageTarget\": \"M\",\n \"recipientList\": [\n {\n \"recipientNo\": \"01012345678\",\n \"templateParameter\": {\n \"customer_name\": \"홍길동\"\n },\n \"failoverTextMessageTemplateParameter\": {\n \"coupon_name\": \"8월 할인 쿠폰\"\n }\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.notifly.tech/messages/kakao-brand-message")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"projectId\": \"example_project_1234567890abcdef\",\n \"templateId\": \"template-id\",\n \"brandMessageTarget\": \"M\",\n \"recipientList\": [\n {\n \"recipientNo\": \"01012345678\",\n \"templateParameter\": {\n \"customer_name\": \"홍길동\"\n },\n \"failoverTextMessageTemplateParameter\": {\n \"coupon_name\": \"8월 할인 쿠폰\"\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.notifly.tech/messages/kakao-brand-message")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"projectId\": \"example_project_1234567890abcdef\",\n \"templateId\": \"template-id\",\n \"brandMessageTarget\": \"M\",\n \"recipientList\": [\n {\n \"recipientNo\": \"01012345678\",\n \"templateParameter\": {\n \"customer_name\": \"홍길동\"\n },\n \"failoverTextMessageTemplateParameter\": {\n \"coupon_name\": \"8월 할인 쿠폰\"\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true
}{
"success": false,
"error": "Sender info is not registered."
}{
"success": false,
"error": "Internal Server Error"
}메시징
카카오 브랜드 메시지 발송
브랜드 메시지 템플릿을 이용해 카카오 브랜드 메시지를 발송합니다.
POST
/
messages
/
kakao-brand-message
send-kakao-brand-message
curl --request POST \
--url https://api.notifly.tech/messages/kakao-brand-message \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"projectId": "example_project_1234567890abcdef",
"templateId": "template-id",
"brandMessageTarget": "M",
"recipientList": [
{
"recipientNo": "01012345678",
"templateParameter": {
"customer_name": "홍길동"
},
"failoverTextMessageTemplateParameter": {
"coupon_name": "8월 할인 쿠폰"
}
}
]
}
'import requests
url = "https://api.notifly.tech/messages/kakao-brand-message"
payload = {
"projectId": "example_project_1234567890abcdef",
"templateId": "template-id",
"brandMessageTarget": "M",
"recipientList": [
{
"recipientNo": "01012345678",
"templateParameter": { "customer_name": "홍길동" },
"failoverTextMessageTemplateParameter": { "coupon_name": "8월 할인 쿠폰" }
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
projectId: 'example_project_1234567890abcdef',
templateId: 'template-id',
brandMessageTarget: 'M',
recipientList: [
{
recipientNo: '01012345678',
templateParameter: {customer_name: '홍길동'},
failoverTextMessageTemplateParameter: {coupon_name: '8월 할인 쿠폰'}
}
]
})
};
fetch('https://api.notifly.tech/messages/kakao-brand-message', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.notifly.tech/messages/kakao-brand-message",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'projectId' => 'example_project_1234567890abcdef',
'templateId' => 'template-id',
'brandMessageTarget' => 'M',
'recipientList' => [
[
'recipientNo' => '01012345678',
'templateParameter' => [
'customer_name' => '홍길동'
],
'failoverTextMessageTemplateParameter' => [
'coupon_name' => '8월 할인 쿠폰'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.notifly.tech/messages/kakao-brand-message"
payload := strings.NewReader("{\n \"projectId\": \"example_project_1234567890abcdef\",\n \"templateId\": \"template-id\",\n \"brandMessageTarget\": \"M\",\n \"recipientList\": [\n {\n \"recipientNo\": \"01012345678\",\n \"templateParameter\": {\n \"customer_name\": \"홍길동\"\n },\n \"failoverTextMessageTemplateParameter\": {\n \"coupon_name\": \"8월 할인 쿠폰\"\n }\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.notifly.tech/messages/kakao-brand-message")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"projectId\": \"example_project_1234567890abcdef\",\n \"templateId\": \"template-id\",\n \"brandMessageTarget\": \"M\",\n \"recipientList\": [\n {\n \"recipientNo\": \"01012345678\",\n \"templateParameter\": {\n \"customer_name\": \"홍길동\"\n },\n \"failoverTextMessageTemplateParameter\": {\n \"coupon_name\": \"8월 할인 쿠폰\"\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.notifly.tech/messages/kakao-brand-message")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"projectId\": \"example_project_1234567890abcdef\",\n \"templateId\": \"template-id\",\n \"brandMessageTarget\": \"M\",\n \"recipientList\": [\n {\n \"recipientNo\": \"01012345678\",\n \"templateParameter\": {\n \"customer_name\": \"홍길동\"\n },\n \"failoverTextMessageTemplateParameter\": {\n \"coupon_name\": \"8월 할인 쿠폰\"\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true
}{
"success": false,
"error": "Sender info is not registered."
}{
"success": false,
"error": "Internal Server Error"
}주의 사항
- HTTP API 발송은 카카오톡 발송 플랫폼이
Notifly인 경우만 지원합니다.Notifly (Legacy)는 사용할 수 없습니다. - 아직 API를 이용한 발송 결과에 대한 통계는 UI로 제공되지 않습니다. 정보가 필요하실 경우 contact@notifly.tech으로 문의해주세요.
인증
POST /authenticate로 발급받은 인증 토큰을 Bearer 형식으로 전달합니다.
본문
application/json
노티플라이 설정 페이지에서 확인 가능
등록한 발송 템플릿 ID
발송 타겟. 허용값: M(마케팅 동의), N(비친구), I(채널 친구), I+N(채널 친구 우선 발송: I로 먼저 발송하고 비친구 실패분은 N으로 재발송)
사용 가능한 옵션:
M, N, I, I+N 수신자 목록 (최대 1,000명)
Show child attributes
Show child attributes
발신 그룹핑 키 (최대 100자)
응답
성공적인 메시지 발송입니다
⌘I
