Available in Classic and VPC
Send a message. It supports message types such as text, image, wide image, wide item list, commerce, carousel commerce, carousel feed, premium video, and default templates.
- You can specify the group of message recipients by defining targeting codes.
- M: Users who have consented to receive promotional information from customers (Kakao Talk consent)
- N: Users who have consented to receive promotional information from customers (Kakao Talk consent) - Channel friend
- I: Customer's delivery request target ∩ Channel friend
- Targeting codes M and N can only be used for channels where the Brand Message subscription has been completed.
- When sending group messages to targeting codes M and N, use the 080 call block number designated for the channel.
- Free-type sending
- The AC (Add channel) button is unavailable.
- Send default type
- The BC and BT buttons are unavailable.
- Nighttime delivery restrictions apply. (8:50 PM to 8:00 AM KST next day)
Text type message
Send a text type message.
Request
This section describes the request format. The method and URI are as follows:
| Method | URI |
|---|---|
| POST | /brandmessage/v2/services/{serviceId}/messages |
Request headers
For information about the headers common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service request headers.
Request path parameters
You can use the following path parameters with your request:
| Field | Type | Required | Description |
|---|---|---|---|
serviceId |
String | Required | Biz Message service ID
|
Request body
You can include the following data in the body of your request:
| Field | Type | Required | Description |
|---|---|---|---|
plusFriendId |
String | Required | Channel ID
|
messageType |
String | Required | Message type
|
targeting |
String | Optional | Targeting code
|
isAdult |
Boolean | Optional | Target age
|
messages |
Array | Required | Message information |
reserveTime |
String | Optional | Reserved date and time
|
reserveTimeZone |
String | Optional | Reserved time zone
|
messages
The following describes messages.
| Field | Type | Required | Description |
|---|---|---|---|
countryCode |
String | Optional | Country code
|
to |
String | Required | Recipient number
|
content |
String | Required | Message content
|
buttons |
Array | Optional | Button information
|
coupon |
Object | Optional | Coupon information |
coupon.title |
String | Required | Coupon title
|
coupon.description |
String | Required | Coupon description
|
coupon.linkMobile |
String | Conditional | Mobile web link
|
coupon.linkPc |
String | Optional | PC web link
|
coupon.schemeAndroid |
String | Conditional | Android app link
|
coupon.schemeIos |
String | Conditional | iOS app link
|
useSmsFailover |
Boolean | Optional | SMS alternative delivery usage
|
failoverConfig |
Object | Optional | Alternate delivery settings |
failoverConfig.type |
String | Optional | Message type
|
failoverConfig.from |
String | Optional | Caller ID
|
failoverConfig.subject |
String | Optional | Message subject
|
failoverConfig.content |
String | Optional | Message content
|
buttons
The following describes buttons.
| Field | Type | Required | Description |
|---|---|---|---|
type |
Array | Required | Button type information |
name |
String | Required | Button name
|
linkMobile |
String | Conditional | Mobile web link
|
linkPc |
String | Optional | PC web link
|
schemeIos |
String | Conditional | iOS app link
|
schemeAndroid |
String | Conditional | Android app link
|
bizFormId |
String | Optional | Business form ID |
Button type
The following describes the button types.
| Field | Type | Description |
|---|---|---|
WL |
String | Web link
|
AL |
String | App link
|
BF |
String | Business form
|
AC |
String | Add channel
|
BK |
String | Bot keyword |
MD |
String | Send message |
BC |
String | Switch to Consultation Talk
|
BT |
String | Switch to chatbot
|
Request example
The request example is as follows:
curl --location --request POST 'https://sens.apigw.ntruss.com/brandmessage/v2/services/ncp:kkobizmsg:kr:27*********6:sens/messages' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'Content-Type: application/json' \
--data '{
"plusFriendId": "@******",
"messageType":"TEXT",
"targeting":"I",
"isAdult":"false",
"messages": [
{
"countryCode": "82",
"to": "010********",
"content": "Congratulation card",
"buttons": [
{
"type": "WL",
"name": "Website",
"linkMobile": "https://******.com/ko/",
"linkPc": "https://******.com/ko/"
},
{
"type": "WL",
"name": "Blog",
"linkMobile": "https://******.com/ko/blog/",
"linkPc": "https://******.com/ko/blog/"
}
]
}
]
}'
Response
This section describes the response format.
Response body
The response body includes the following data:
| Field | Type | Required | Description |
|---|---|---|---|
requestId |
String | Required | Request ID |
requestTime |
DateTime | Required | Request date and time
|
statusCode |
String | Required | Request status code
|
statusName |
String | Required | Status
|
messages |
Array | Optional | Message information |
messages
The following describes messages.
| Field | Type | Required | Description |
|---|---|---|---|
messageId |
String | Required | Message ID |
countryCode |
String | Optional | Country code |
to |
String | Required | Recipient number |
requestStatusCode |
String | Required | Request status code
|
requestStatusName |
String | Required | Request status
|
requestStatusDesc |
String | Required | Request status description |
useSmsFailover |
Boolean | Required | Use of SMS alternative delivery
|
Response status codes
For information about the HTTP status codes common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service response status codes.
Response example
The response example is as follows:
{
"requestId": "RBBA-*************-****-********-dDYJgYGe",
"requestTime": "2025-12-01T17:00:42.572",
"statusCode": "202",
"statusName": "processing",
"messages": [
{
"messageId": "f38c01be-****-****-****-3bddf7615aef",
"countryCode": "82",
"to": "010********",
"requestStatusCode": "A000",
"requestStatusName": "success",
"requestStatusDesc": "Succeeded",
"useSmsFailover": false
}
]
}
Image type message
Send an image type message.
Request
This section describes the request format. The method and URI are as follows:
| Method | URI |
|---|---|
| POST | /brandmessage/v2/services/{serviceId}/messages |
Request headers
For information about the headers common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service request headers.
Request path parameters
You can use the following path parameters with your request:
| Field | Type | Required | Description |
|---|---|---|---|
serviceId |
String | Required | Biz Message service ID
|
Request body
You can include the following data in the body of your request:
| Field | Type | Required | Description |
|---|---|---|---|
plusFriendId |
String | Required | Channel ID
|
messageType |
String | Required | Message type
|
targeting |
String | Optional | Targeting code
|
isAdult |
Boolean | Optional | Target age
|
messages |
Array | Required | Message information |
reserveTime |
String | Optional | Reserved date and time
|
reserveTimeZone |
String | Optional | Reserved time zone
|
messages
The following describes messages.
| Field | Type | Required | Description |
|---|---|---|---|
countryCode |
String | Optional | Country code
|
to |
String | Required | Recipient number
|
content |
String | Required | Message content
|
buttons |
Array | Optional | Button information
|
image |
Object | Optional | Image information
|
image.imageId |
String | Conditional | Image ID
|
image.imageLink |
String | Conditional | Image URL
|
coupon |
Object | Optional | Coupon information
|
coupon.title |
String | Required | Coupon title
|
coupon.description |
String | Required | Coupon description
|
coupon.linkMobile |
String | Conditional | Mobile web link
|
coupon.linkPc |
String | Optional | PC web link
|
coupon.schemeAndroid |
String | Conditional | Android app link
|
coupon.schemeIos |
String | Conditional | iOS app link
|
useSmsFailover |
Boolean | Optional | SMS alternative delivery usage
|
failoverConfig |
Object | Optional | Alternate delivery settings |
failoverConfig.type |
String | Optional | Message type
|
failoverConfig.from |
String | Optional | Caller ID
|
failoverConfig.subject |
String | Optional | Message subject
|
failoverConfig.content |
String | Optional | Message content
|
buttons
The following describes buttons.
| Field | Type | Required | Description |
|---|---|---|---|
type |
Array | Required | Button type information |
name |
String | Required | Button name
|
linkMobile |
String | Conditional | Mobile web link
|
linkPc |
String | Optional | PC web link
|
schemeIos |
String | Conditional | iOS app link
|
schemeAndroid |
String | Conditional | Android app link
|
bizFormId |
String | Optional | Business form ID |
Request example
The request example is as follows:
curl --location --request POST 'https://sens.apigw.ntruss.com/brandmessage/v2/services/ncp:kkobizmsg:kr:27*********6:sens/messages' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'Content-Type: application/json' \
--data '{
"plusFriendId": "@******",
"messageType":"IMAGE",
"targeting":"I",
"isAdult":"false",
"messages": [
{
"countryCode": "82",
"to": "010********",
"content": "Congratulation card",
"buttons": [
{
"type": "WL",
"name": "Website",
"linkMobile": "https://******.com/ko/",
"linkPc": "https://******.com/ko/"
},
{
"type": "WL",
"name": "Blog",
"linkMobile": "https://******.com/ko/blog/",
"linkPc": "https://******.com/ko/blog/"
}
],
"image": {
"imageId": "88903684-****-****-****-5d6eb410bf30",
"imageLink": "https://mud-kage.kakao.com/dn/zNW4l/***********/**********************/img_l.jpg"
}
}
]
}'
Response
This section describes the response format.
Response body
The response body includes the following data:
| Field | Type | Required | Description |
|---|---|---|---|
requestId |
String | Required | Request ID |
requestTime |
DateTime | Required | Request date and time
|
statusCode |
String | Required | Request status code
|
statusName |
String | Required | Status
|
messages |
Array | Optional | Message information |
Response status codes
For information about the HTTP status codes common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service response status codes.
Response example
The response example is as follows:
{
"requestId": "RBBA-*************-****-********-zVDPjteh",
"requestTime": "2025-12-01T17:45:40.047",
"statusCode": "202",
"statusName": "processing",
"messages": [
{
"messageId": "5ba5a7a8-****-****-****-55a76b65f7ec",
"countryCode": "82",
"to": "010********",
"content": "Congratulation card",
"requestStatusCode": "A000",
"requestStatusName": "success",
"requestStatusDesc": "Succeeded",
"useSmsFailover": false
}
]
}
Wide image type message
Send a wide image type message.
Request
This section describes the request format. The method and URI are as follows:
| Method | URI |
|---|---|
| POST | /brandmessage/v2/services/{serviceId}/messages |
Request headers
For information about the headers common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service request headers.
Request path parameters
You can use the following path parameters with your request:
| Field | Type | Required | Description |
|---|---|---|---|
serviceId |
String | Required | Biz Message service ID
|
Request body
You can include the following data in the body of your request:
| Field | Type | Required | Description |
|---|---|---|---|
plusFriendId |
String | Required | Channel ID
|
messageType |
String | Required | Message type
|
targeting |
String | Optional | Targeting code
|
isAdult |
Boolean | Optional | Target age
|
messages |
Array | Required | Message information |
reserveTime |
String | Optional | Reserved date and time
|
reserveTimeZone |
String | Optional | Reserved time zone
|
messages
The following describes messages.
| Field | Type | Required | Description |
|---|---|---|---|
countryCode |
String | Optional | Country code
|
to |
String | Required | Recipient number
|
content |
String | Required | Message content
|
buttons |
Array | Optional | Button information
|
image |
Object | Optional | Image information
|
image.imageId |
String | Conditional | Image ID
|
image.imageLink |
String | Conditional | Image URL
|
coupon |
Object | Optional | Coupon information
|
coupon.title |
String | Required | Coupon title
|
coupon.description |
String | Required | Coupon description
|
coupon.linkMobile |
String | Conditional | Mobile web link
|
coupon.linkPc |
String | Optional | PC web link
|
coupon.schemeAndroid |
String | Conditional | Android app link
|
coupon.schemeIos |
String | Conditional | iOS app link
|
useSmsFailover |
Boolean | Optional | SMS alternative delivery usage
|
failoverConfig |
Object | Optional | Alternate delivery settings |
failoverConfig.type |
String | Optional | Message type
|
failoverConfig.from |
String | Optional | Caller ID
|
failoverConfig.subject |
String | Optional | Message subject
|
failoverConfig.content |
String | Optional | Message content
|
buttons
The following describes buttons.
| Field | Type | Required | Description |
|---|---|---|---|
type |
Array | Required | Button type information |
name |
String | Required | Button name
|
linkMobile |
String | Conditional | Mobile web link
|
linkPc |
String | Optional | PC web link
|
schemeIos |
String | Conditional | iOS app link
|
schemeAndroid |
String | Conditional | Android app link
|
bizFormId |
String | Optional | Business form ID |
Request example
The request example is as follows:
curl --location --request POST 'https://sens.apigw.ntruss.com/brandmessage/v2/services/ncp:kkobizmsg:kr:27*********6:sens/messages' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'Content-Type: application/json' \
--data '{
"plusFriendId": "@******",
"messageType":"WIDE_IMAGE",
"targeting":"I",
"isAdult":"false",
"messages": [
{
"countryCode": "82",
"to": "010********",
"content": "Congratulation card",
"buttons": [
{
"type": "WL",
"name": "Website",
"linkMobile": "https://******.com/ko/",
"linkPc": "https://******.com/ko/"
},
{
"type": "WL",
"name": "Blog",
"linkMobile": "https://******.com/ko/blog/",
"linkPc": "https://******.com/ko/blog/"
}
],
"image": {
"imageId": "4983629b-****-****-****-8546230fc8f2",
"imageLink": "https://mud-kage.kakao.com/dn/JR45M/***********/**********************/img_l.jpg"
}
}
]
}'
Response
This section describes the response format.
Response body
The response body includes the following data:
| Field | Type | Required | Description |
|---|---|---|---|
requestId |
String | Required | Request ID |
requestTime |
DateTime | Required | Request date and time
|
statusCode |
String | Required | Request status code
|
statusName |
String | Required | Status
|
messages |
Array | Optional | Message information |
Response status codes
For information about the HTTP status codes common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service response status codes.
Response example
The response example is as follows:
{
"requestId": "RBBA-*************-****-********-zVDPjteh",
"requestTime": "2025-12-02T11:54:21.776",
"statusCode": "202",
"statusName": "processing",
"messages": [
{
"messageId": "d8dedd42-****-****-****-2f7b08d080da",
"countryCode": "82",
"to": "010********",
"content": "Congratulation card",
"requestStatusCode": "A000",
"requestStatusName": "success",
"requestStatusDesc": "Succeeded",
"useSmsFailover": false
}
]
}
Wide item list type message
Send a wide item list type message.
Request
This section describes the request format. The method and URI are as follows:
| Method | URI |
|---|---|
| POST | /brandmessage/v2/services/{serviceId}/messages |
Request headers
For information about the headers common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service request headers.
Request path parameters
You can use the following path parameters with your request:
| Field | Type | Required | Description |
|---|---|---|---|
serviceId |
String | Required | Biz Message service ID
|
Request body
You can include the following data in the body of your request:
| Field | Type | Required | Description |
|---|---|---|---|
plusFriendId |
String | Required | Channel ID
|
messageType |
String | Required | Message type
|
targeting |
String | Optional | Targeting code
|
isAdult |
Boolean | Optional | Target age
|
messages |
Array | Required | Message information |
reserveTime |
String | Optional | Reserved date and time
|
reserveTimeZone |
String | Optional | Reserved time zone
|
messages
The following describes messages.
| Field | Type | Required | Description |
|---|---|---|---|
countryCode |
String | Optional | Country code
|
to |
String | Required | Recipient number
|
headerContent |
String | Required | Header (subject)
|
buttons |
Array | Optional | Button information
|
item |
Object | Required | Wide list information |
item.list |
Array | Required | Wide list |
coupon |
Object | Optional | Coupon information
|
coupon.title |
String | Required | Coupon title
|
coupon.description |
String | Required | Coupon description
|
coupon.linkMobile |
String | Conditional | Mobile web link
|
coupon.linkPc |
String | Optional | PC web link
|
coupon.schemeAndroid |
String | Conditional | Android app link
|
coupon.schemeIos |
String | Conditional | iOS app link
|
useSmsFailover |
Boolean | Optional | SMS alternative delivery usage
|
failoverConfig |
Object | Optional | Alternate delivery settings |
failoverConfig.type |
String | Optional | Message type
|
failoverConfig.from |
String | Optional | Caller ID
|
failoverConfig.subject |
String | Optional | Message subject
|
failoverConfig.content |
String | Optional | Message content
|
buttons
The following describes buttons.
| Field | Type | Required | Description |
|---|---|---|---|
type |
Array | Required | Button type information |
name |
String | Required | Button name
|
linkMobile |
String | Conditional | Mobile web link
|
linkPc |
String | Optional | PC web link
|
schemeIos |
String | Conditional | iOS app link
|
schemeAndroid |
String | Conditional | Android app link
|
bizFormId |
String | Optional | Business form ID |
item.list
The following describes item.list.
| Field | Type | Required | Description |
|---|---|---|---|
title |
String | Required | Item title
|
imageId |
String | Required | Image ID
|
linkMobile |
String | Required | Mobile web link
|
linPc |
String | Optional | PC web link
|
schemeAndroid |
String | Optional | Android app link
|
schemeIos |
String | Optional | iOS app link
|
Request example
The request example is as follows:
curl --location --request POST 'https://sens.apigw.ntruss.com/brandmessage/v2/services/ncp:kkobizmsg:kr:27*********6:sens/messages' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'Content-Type: application/json' \
--data '{
"plusFriendId": "@******",
"messageType": "WIDE_ITEM_LIST",
"targeting":"I",
"isAdult": "false",
"messages": [
{
"countryCode": "82",
"to": "010********",
"headerContent": "Congratulation card",
"buttons": [
{
"type": "WL",
"name": "Website",
"linkMobile": "https://******.com/ko/",
"linkPc": "https://******.com/ko/"
},
{
"type": "WL",
"name": "Blog",
"linkMobile": "https://******.com/ko/blog/",
"linkPc": "https://******.com/ko/blog/"
}
],
"item": {
"list": [
{
"title": "Main",
"imageId": "34ba283e-****-****-****-db59803ae7eb",
"linkMobile": "https://******.com/ko/"
},
{
"title": "Item 1",
"imageId": "67828a69-****-****-****-9026147fe5ee",
"linkMobile": "https://******.com/ko/"
},
{
"title": "Item 2",
"imageId": "67828a69-****-****-****-9026147fe5ee",
"linkMobile": "https://******.com/ko/"
}
]
}
}
]
}
Response
This section describes the response format.
Response body
The response body includes the following data:
| Field | Type | Required | Description |
|---|---|---|---|
requestId |
String | Required | Request ID |
requestTime |
DateTime | Required | Request date and time
|
statusCode |
String | Required | Request status code
|
statusName |
String | Required | Status
|
messages |
Array | Optional | Message information |
Response status codes
For information about the HTTP status codes common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service response status codes.
Response example
The response example is as follows:
{
"requestId": "RBBA-*************-****-********-zVDPjteh",
"requestTime": "2025-12-02T13:54:05.618",
"statusCode": "202",
"statusName": "processing",
"messages": [
{
"messageId": "a5e6541c-****-****-****-57ab20c82f9e",
"countryCode": "82",
"to": "010********",
"content": null,
"requestStatusCode": "A000",
"requestStatusName": "success",
"requestStatusDesc": "Succeeded",
"useSmsFailover": false
}
]
}
Commerce type message
Send a commerce type message.
Request
This section describes the request format. The method and URI are as follows:
| Method | URI |
|---|---|
| POST | /brandmessage/v2/services/{serviceId}/messages |
Request headers
For information about the headers common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service request headers.
Request path parameters
You can use the following path parameters with your request:
| Field | Type | Required | Description |
|---|---|---|---|
serviceId |
String | Required | Biz Message service ID
|
Request body
You can include the following data in the body of your request:
| Field | Type | Required | Description |
|---|---|---|---|
plusFriendId |
String | Required | Channel ID
|
messageType |
String | Required | Message type
|
targeting |
String | Optional | Targeting code
|
isAdult |
Boolean | Optional | Target age
|
messages |
Array | Required | Message information |
reserveTime |
String | Optional | Reserved date and time
|
reserveTimeZone |
String | Optional | Reserved time zone
|
messages
The following describes messages.
| Field | Type | Required | Description |
|---|---|---|---|
countryCode |
String | Optional | Country code
|
to |
String | Required | Recipient number
|
additionalContent |
String | Optional | Additional information
|
buttons |
Array | Required | buttons information
|
image |
Object | Optional | Image information
|
image.imageId |
String | Conditional | Image ID
|
image.imageLink |
String | Conditional | Image URL
|
commerce |
Object | Required | Commerce information |
commerce.title |
String | Required | Product name
|
commerce.regularPrice |
String | Required | Regular price (KRW)
|
commerce.discountPrice |
String | Conditional | Price after discount (KRW)
|
commerce.discountRate |
String | Conditional | Discount rate (%)
|
commerce.discountFixed |
String | Conditional | Fixed discount price (KRW)
|
coupon |
Object | Optional | Coupon information
|
coupon.title |
String | Required | Coupon title
|
coupon.description |
String | Required | Coupon description
|
coupon.linkMobile |
String | Conditional | Mobile web link
|
coupon.linkPc |
String | Optional | PC web link
|
coupon.schemeAndroid |
String | Conditional | Android app link
|
coupon.schemeIos |
String | Conditional | iOS app link
|
useSmsFailover |
Boolean | Optional | SMS alternative delivery usage
|
failoverConfig |
Object | Optional | Alternate delivery settings |
failoverConfig.type |
String | Optional | Message type
|
failoverConfig.from |
String | Optional | Caller ID
|
failoverConfig.subject |
String | Optional | Message subject
|
failoverConfig.content |
String | Optional | Message content
|
buttons
The following describes buttons.
| Field | Type | Required | Description |
|---|---|---|---|
type |
Array | Required | Button type information |
name |
String | Required | Button name
|
linkMobile |
String | Conditional | Mobile web link
|
linkPc |
String | Optional | PC web link
|
schemeIos |
String | Conditional | iOS app link
|
schemeAndroid |
String | Conditional | Android app link
|
bizFormId |
String | Optional | Business form ID |
Request example
The request example is as follows:
curl --location --request POST 'https://sens.apigw.ntruss.com/brandmessage/v2/services/ncp:kkobizmsg:kr:27*********6:sens/messages' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'Content-Type: application/json' \
--data '{
"plusFriendId": "@******",
"messageType": "COMMERCE",
"targeting":"I",
"isAdult": "false",
"messages": [
{
"countryCode": "82",
"to": "010********",
"additionalContent": "Congratulation card - 10% discount",
"buttons": [
{
"type": "WL",
"name": "Website",
"linkMobile": "https://******.com/ko/",
"linkPc": "https://******.com/ko/"
},
{
"type": "WL",
"name": "Blog",
"linkMobile": "https://******.com/ko/blog/",
"linkPc": "https://******.com/ko/blog/"
}
],
"image": {
"imageId": "88903684-****-****-****-5d6eb410bf30",
"imageLink": "https://mud-kage.kakao.com/dn/zNW4l/***********/**********************/img_l.jpg"
},
"commerce": {
"title":"10% discount",
"regularPrice":"10000",
"discountPrice":"9000",
"discountRate":"10"
}
}
]
}'
Response
This section describes the response format.
Response body
The response body includes the following data:
| Field | Type | Required | Description |
|---|---|---|---|
requestId |
String | Required | Request ID |
requestTime |
DateTime | Required | Request date and time
|
statusCode |
String | Required | Request status code
|
statusName |
String | Required | Status
|
messages |
Array | Optional | Message information |
Response status codes
For information about the HTTP status codes common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service response status codes.
Response example
The response example is as follows:
{
"requestId": "RBBA-*************-****-********-dDYJgYGe",
"requestTime": "2025-12-02T14:53:14.350",
"statusCode": "202",
"statusName": "processing",
"messages": [
{
"messageId": "601df2a9-****-****-****-d5c1b178447e",
"countryCode": "82",
"to": "010********",
"content": null,
"requestStatusCode": "A000",
"requestStatusName": "success",
"requestStatusDesc": "Succeeded",
"useSmsFailover": false
}
]
}
Carousel commerce type message
Send a carousel commerce type message.
Request
This section describes the request format. The method and URI are as follows:
| Method | URI |
|---|---|
| POST | /brandmessage/v2/services/{serviceId}/messages |
Request headers
For information about the headers common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service request headers.
Request path parameters
You can use the following path parameters with your request:
| Field | Type | Required | Description |
|---|---|---|---|
serviceId |
String | Required | Biz Message service ID
|
Request body
You can include the following data in the body of your request:
| Field | Type | Required | Description |
|---|---|---|---|
plusFriendId |
String | Required | Channel ID
|
messageType |
String | Required | Message type
|
targeting |
String | Optional | Targeting code
|
isAdult |
Boolean | Optional | Target age
|
messages |
Array | Required | Message information |
reserveTime |
String | Optional | Reserved date and time
|
reserveTimeZone |
String | Optional | Reserved time zone
|
messages
The following describes messages.
| Field | Type | Required | Description |
|---|---|---|---|
countryCode |
String | Optional | Country code
|
to |
String | Required | Recipient number
|
carousel |
Object | Required | Carousel information |
carousel.head |
Object | Optional | Carousel intro information |
carousel.head.headerContent |
String | Required | Header (subject)
|
carousel.head.content |
String | Required | Content
|
carousel.head.imageId |
String | Required | Image ID
|
carousel.head.linkMobile |
String | Conditional | Mobile web link
|
carousel.head.linkPc |
String | Optional | PC web link
|
carousel.head.schemeAndroid |
String | Optional | Android app link
|
carousel.head.schemeIos |
String | Optional | iOS app link
|
carousel.list |
Array | Required | Carousel list
|
carousel.tail |
Object | Optional | Carousel details information |
carousel.tail.linkMobile |
String | Required | Mobile web link
|
carousel.tail.linkPc |
String | Optional | PC web link
|
carousel.tail.schemeAndroid |
String | Optional | Android app link
|
carousel.tail.schemeIos |
String | Optional | iOS app link
|
useSmsFailover |
Boolean | Optional | SMS alternative delivery usage
|
failoverConfig |
Object | Optional | Alternate delivery settings |
failoverConfig.type |
String | Optional | Message type
|
failoverConfig.from |
String | Optional | Caller ID
|
failoverConfig.subject |
String | Optional | Message subject
|
failoverConfig.content |
String | Optional | Message content
|
carousel.list
The following describes carousel.list.
| Field | Type | Required | Description |
|---|---|---|---|
additionalContent |
String | Optional | Additional information
|
buttons |
Array | Required | Button information: buttons
|
image |
Object | Optional | Image information
|
image.imageId |
String | Conditional | Image ID
|
image.imageLink |
String | Conditional | Image URL
|
coupon |
Object | Optional | Coupon information
|
coupon.title |
String | Required | Coupon title
|
coupon.description |
String | Required | Coupon description
|
coupon.linkMobile |
String | Conditional | Mobile web link
|
coupon.linkPc |
String | Optional | PC web link
|
coupon.schemeAndroid |
String | Conditional | Android app link
|
coupon.schemeIos |
String | Conditional | iOS app link
|
commerce |
Object | Required | Commerce information |
commerce.title |
String | Required | Product name
|
commerce.regularPrice |
Integer | Required | Regular price (KRW)
|
commerce.discountPrice |
Integer | Conditional | Price after discount (KRW)
|
commerce.discountRate |
Integer | Conditional | Discount rate (%)
|
commerce.discountFixed |
Integer | Conditional | Fixed discount price (KRW)
|
buttons
The following describes buttons.
| Field | Type | Required | Description |
|---|---|---|---|
type |
Array | Required | Button type information |
name |
String | Required | Button name
|
linkMobile |
String | Conditional | Mobile web link
|
linkPc |
String | Optional | PC web link
|
schemeIos |
String | Conditional | iOS app link
|
schemeAndroid |
String | Conditional | Android app link
|
bizFormId |
String | Optional | Business form ID |
Request example
The request example is as follows:
curl --location --request POST 'https://sens.apigw.ntruss.com/brandmessage/v2/services/ncp:kkobizmsg:kr:27*********6:sens/messages' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'Content-Type: application/json' \
--data '{
"plusFriendId": "@******",
"messageType": "CAROUSEL_COMMERCE",
"targeting":"I",
"isAdult": "false",
"messages": [
{
"countryCode": "82",
"to": "010********",
"carousel": {
"head": {
"headerContent":"Congratulation card",
"content":"Congratulation card discount promotion",
"imageId":"cde370b6-****-****-****-6a122739e51f",
"linkMobile":"https://******.com/ko/"
},
"list": [
{
"image": {
"imageId": "cde370b6-****-****-****-6a122739e51f",
"imageLink": "https://mud-kage.kakao.com/dn/hIaN2/***********/**********************/img_l.jpg"
},
"buttons": [
{
"type": "WL",
"name": "Website",
"linkMobile": "https://******.com/ko/",
"linkPc": "https://******.com/ko/"
},
{
"type": "WL",
"name": "Blog",
"linkMobile": "https://******.com/ko/blog/",
"linkPc": "https://******.com/ko/blog/"
}
],
"commerce": {
"title": "10% discount",
"regularPrice": "10000",
"discountPrice": "9000",
"discountRate": "10"
}
},
{
"image": {
"imageId": "cde370b6-****-****-****-6a122739e51f",
"imageLink": "https://mud-kage.kakao.com/dn/***********/**********************/img_l.jpg"
},
"buttons": [
{
"type": "WL",
"name": "Website",
"linkMobile": "https://******.com/ko/",
"linkPc": "https://******.com/ko/"
},
{
"type": "WL",
"name": "Blog",
"linkMobile": "https://******.com/ko/blog/",
"linkPc": "https://******.com/ko/blog/"
}
],
"commerce": {
"title": "10% discount",
"regularPrice": "10000",
"discountPrice": "9000",
"discountRate": "10"
}
}
],
"tail": {
"linkMobile": "https://hansem.com/ko/"
}
}
}
]
}'
Response
This section describes the response format.
Response body
The response body includes the following data:
| Field | Type | Required | Description |
|---|---|---|---|
requestId |
String | Required | Request ID |
requestTime |
DateTime | Required | Request date and time
|
statusCode |
String | Required | Request status code
|
statusName |
String | Required | Status
|
messages |
Array | Optional | Message information |
Response status codes
For information about the HTTP status codes common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service response status codes.
Response example
The response example is as follows:
{
"requestId": "RBBA-*************-****-********-zVDPjteh",
"requestTime": "2025-12-02T15:56:08.336",
"statusCode": "202",
"statusName": "processing",
"messages": [
{
"messageId": "89e11238-****-****-****-a400627816af",
"countryCode": "82",
"to": "010********",
"content": null,
"requestStatusCode": "A000",
"requestStatusName": "success",
"requestStatusDesc": "Succeeded",
"useSmsFailover": false
}
]
}
Carousel feed type message
Send a carousel feed type message.
Request
This section describes the request format. The method and URI are as follows:
| Method | URI |
|---|---|
| POST | /brandmessage/v2/services/{serviceId}/messages |
Request headers
For information about the headers common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service request headers.
Request path parameters
You can use the following path parameters with your request:
| Field | Type | Required | Description |
|---|---|---|---|
serviceId |
String | Required | Biz Message service ID
|
Request body
You can include the following data in the body of your request:
| Field | Type | Required | Description |
|---|---|---|---|
plusFriendId |
String | Required | Channel ID
|
messageType |
String | Required | Message type
|
targeting |
String | Optional | Targeting code
|
isAdult |
Boolean | Optional | Target age
|
messages |
Array | Required | Message information |
reserveTime |
String | Optional | Reserved date and time
|
reserveTimeZone |
String | Optional | Reserved time zone
|
messages
The following describes messages.
| Field | Type | Required | Description |
|---|---|---|---|
countryCode |
String | Optional | Country code
|
to |
String | Required | Recipient number
|
carousel |
Object | Required | Carousel information |
carousel.list |
Array | Required | Carousel list
|
carousel.tail |
Object | Optional | Carousel details information |
carousel.tail.linkMobile |
String | Required | Mobile web link
|
carousel.tail.linkPc |
String | Optional | PC web link
|
carousel.tail.schemeAndroid |
String | Optional | Android app link
|
carousel.tail.schemeIos |
String | Optional | iOS app link
|
useSmsFailover |
Boolean | Optional | SMS alternative delivery usage
|
failoverConfig |
Object | Optional | Alternate delivery settings |
failoverConfig.type |
String | Optional | Message type
|
failoverConfig.from |
String | Optional | Caller ID
|
failoverConfig.subject |
String | Optional | Message subject
|
failoverConfig.content |
String | Optional | Message content
|
carousel.list
The following describes carousel.list.
| Field | Type | Required | Description |
|---|---|---|---|
headerContent |
String | Required | Header (subject)
|
message |
String | Required | Content
|
buttons |
Array | Required | Button information
|
image |
Object | Optional | Image information
|
image.imageId |
String | Conditional | Image ID
|
image.imageLink |
String | Conditional | Image URL
|
coupon |
Object | Optional | Coupon information
|
coupon.title |
String | Required | Coupon title
|
coupon.description |
String | Required | Coupon description
|
coupon.linkMobile |
String | Conditional | Mobile web link
|
coupon.linkPc |
String | Optional | PC web link
|
coupon.schemeAndroid |
String | Conditional | Android app link
|
coupon.schemeIos |
String | Conditional | iOS app link
|
buttons
The following describes buttons.
| Field | Type | Required | Description |
|---|---|---|---|
type |
Array | Required | Button type information |
name |
String | Required | Button name
|
linkMobile |
String | Conditional | Mobile web link
|
linkPc |
String | Optional | PC web link
|
schemeIos |
String | Conditional | iOS app link
|
schemeAndroid |
String | Conditional | Android app link
|
bizFormId |
String | Optional | Business form ID |
Request example
The request example is as follows:
curl --location --request POST 'https://sens.apigw.ntruss.com/brandmessage/v2/services/ncp:kkobizmsg:kr:27*********6:sens/messages' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'Content-Type: application/json' \
--data '{
"plusFriendId": @******",
"messageType": "CAROUSEL_FEED",
"targeting":"I",
"isAdult": "false",
"messages": [
{
"countryCode": "82",
"to": "010********",
"carousel": {
"list": [
{
"headerContent":"Congratulation card 1",
"message":"Congratulation card discount promotion 1",
"image": {
"imageId":"6c4b9ceb-****-****-****-cf550dd5f2e8",
"imageLink": "https://mud-kage.kakao.com/dn/C2Ft0/***********/**********************/img_l.jpg"
},
"buttons": [
{
"type": "WL",
"name": "Website",
"linkMobile": "https://******.com/ko/",
"linkPc": "https://******.com/ko/"
},
{
"type": "WL",
"name": "Blog",
"linkMobile": "https://******.com/ko/blog/",
"linkPc": "https://******.com/ko/blog/"
}
],
"coupon": {
"title": "10% discount",
"description": "10% discount",
"linkMobile": "https://******.com/ko/blog/"
}
},
{
"headerContent":"Congratulation card 2",
"message":"Congratulation card discount promotion 2",
"image": {
"imageId":"6c4b9ceb-****-****-****-cf550dd5f2e8",
"imageLink": "https://mud-kage.kakao.com/dn/C2Ft0/***********/**********************/img_l.jpg"
},
"buttons": [
{
"type": "WL",
"name": "Website",
"linkMobile": "https://******.com/ko/",
"linkPc": "https://******.com/ko/"
},
{
"type": "WL",
"name": "Blog",
"linkMobile": "https://******.com/ko/blog/",
"linkPc": "https://******.com/ko/blog/"
}
],
"coupon": {
"title": "10% discount",
"description": "10% discount",
"linkMobile": "https://******.com/ko/blog/"
}
}
],
"tail": {
"linkMobile": "https://******.com/ko/"
}
}
}
]
}'
Response
This section describes the response format.
Response body
The response body includes the following data:
| Field | Type | Required | Description |
|---|---|---|---|
requestId |
String | Required | Request ID |
requestTime |
DateTime | Required | Request date and time
|
statusCode |
String | Required | Request status code
|
statusName |
String | Required | Status
|
messages |
Array | Optional | Message information |
Response status codes
For information about the HTTP status codes common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service response status codes.
Response example
The response example is as follows:
{
"requestId": "RBBA-*************-****-********-zVDPjteh",
"requestTime": "2025-12-02T16:43:08.144",
"statusCode": "202",
"statusName": "processing",
"messages": [
{
"messageId": "a357721f-****-****-****-6b03cd053dbb",
"countryCode": "82",
"to": "010********",
"content": null,
"requestStatusCode": "A000",
"requestStatusName": "success",
"requestStatusDesc": "Succeeded",
"useSmsFailover": false
}
]
}
Premium video type message
Send a premium video type message.
Request
This section describes the request format. The method and URI are as follows:
| Method | URI |
|---|---|
| POST | /brandmessage/v2/services/{serviceId}/messages |
Request headers
For information about the headers common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service request headers.
Request path parameters
You can use the following path parameters with your request:
| Field | Type | Required | Description |
|---|---|---|---|
serviceId |
String | Required | Biz Message service ID
|
Request body
You can include the following data in the body of your request:
| Field | Type | Required | Description |
|---|---|---|---|
plusFriendId |
String | Required | Channel ID
|
messageType |
String | Required | Message type
|
targeting |
String | Optional | Targeting code
|
isAdult |
Boolean | Optional | Target age
|
messages |
Array | Required | Message information |
reserveTime |
String | Optional | Reserved date and time
|
reserveTimeZone |
String | Optional | Reserved time zone
|
messages
The following describes messages.
| Field | Type | Required | Description |
|---|---|---|---|
countryCode |
String | Optional | Country code
|
to |
String | Required | Recipient number
|
headerContent |
String | Optional | Header (subject)
|
content |
String | Optional | Content
|
video |
Object | Required | Video information |
video.thumbnailId |
String | Required | Image ID for video thumbnail
|
video.videoUrl |
String | Required | KakaoTV video URL
|
buttons |
Array | Optional | Button information: buttons
|
coupon |
Object | Optional | Coupon information
|
coupon.title |
String | Required | Coupon title
|
coupon.description |
String | Required | Coupon description
|
coupon.linkMobile |
String | Conditional | Mobile web link
|
coupon.linkPc |
String | Optional | PC web link
|
coupon.schemeAndroid |
String | Conditional | Android app link
|
coupon.schemeIos |
String | Conditional | iOS app link
|
useSmsFailover |
Boolean | Optional | SMS alternative delivery usage
|
failoverConfig |
Object | Optional | Alternate delivery settings |
failoverConfig.type |
String | Optional | Message type
|
failoverConfig.from |
String | Optional | Caller ID
|
failoverConfig.subject |
String | Optional | Message subject
|
failoverConfig.content |
String | Optional | Message content
|
buttons
The following describes buttons.
| Field | Type | Required | Description |
|---|---|---|---|
type |
Array | Required | Button type information |
name |
String | Required | Button name
|
linkMobile |
String | Conditional | Mobile web link
|
linkPc |
String | Optional | PC web link
|
schemeIos |
String | Conditional | iOS app link
|
schemeAndroid |
String | Conditional | Android app link
|
bizFormId |
String | Optional | Business form ID |
Request example
The request example is as follows:
curl --location --request POST 'https://sens.apigw.ntruss.com/brandmessage/v2/services/ncp:kkobizmsg:kr:27*********6:sens/messages' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'Content-Type: application/json' \
--data '{
"plusFriendId":"@******",
"messageType":"PREMIUM_VIDEO",
"targeting":"I",
"isAdult":false,
"messages":[
{
"countryCode":"82",
"to":"010********",
"headerContent":"Congratulation card",
"content":"Congratulation card",
"video": {
"thumbnailId":"7b8101c8-****-****-****-ad384cb8e215",
"videoUrl":"https://tv.kakao.com/v/********"
},
"buttons":[
{
"type":"WL",
"name":"Website",
"linkMobile":"https://******.com/ko/"
}
],
"coupon": {
"title":"Congratulation card - 10% discount",
"description":"Congratulation card 10% discount promotion",
"linkMobile":"https://******.com/ko/"
}
}
]
}'
Response
This section describes the response format.
Response body
The response body includes the following data:
| Field | Type | Required | Description |
|---|---|---|---|
requestId |
String | Required | Request ID |
requestTime |
DateTime | Required | Request date and time
|
statusCode |
String | Required | Request status code
|
statusName |
String | Required | Status
|
messages |
Array | Optional | Message information |
Response status codes
For information about the HTTP status codes common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service response status codes.
Response example
The response example is as follows:
{
"requestId": "RBBA-*************-****-********-dDYJgYGe",
"requestTime": "2025-12-02T17:18:16.512",
"statusCode": "202",
"statusName": "processing",
"messages": [
{
"messageId": "9c5063e5-****-****-****-fd10d1aab9c4",
"countryCode": "82",
"to": "010********",
"content": "Congratulation card",
"requestStatusCode": "A000",
"requestStatusName": "success",
"requestStatusDesc": "Succeeded",
"useSmsFailover": false
}
]
}
Template (default type) message
Send a message with Brand Message template (default type).
Request
This section describes the request format. The method and URI are as follows:
| Method | URI |
|---|---|
| POST | /brandmessage/v2/services/{serviceId}/messages |
Request headers
For information about the headers common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service request headers.
Request path parameters
You can use the following path parameters with your request:
| Field | Type | Required | Description |
|---|---|---|---|
serviceId |
String | Required | Biz Message service ID
|
Request body
You can include the following data in the body of your request:
| Field | Type | Required | Description |
|---|---|---|---|
plusFriendId |
String | Required | Channel ID
|
messageType |
String | Required | Message type
|
templateCode |
String | Required | Message template code
|
targeting |
String | Optional | Targeting code
|
messages |
Array | Required | Message information |
reserveTime |
String | Optional | Reserved date and time
|
reserveTimeZone |
String | Optional | Reserved time zone
|
messages
The following describes messages.
| Field | Type | Required | Description |
|---|---|---|---|
countryCode |
String | Optional | Country code
|
to |
String | Required | Recipient number
|
templateParameters |
Object | Required | Template parameter
|
useSmsFailover |
Boolean | Optional | SMS alternative delivery usage
|
failoverConfig |
Object | Optional | Alternate delivery settings |
failoverConfig.type |
String | Optional | Message type
|
failoverConfig.from |
String | Optional | Caller ID
|
failoverConfig.subject |
String | Optional | Message subject
|
failoverConfig.content |
String | Optional | Message content
|
Request example
The request example is as follows:
curl --location --request POST 'https://sens.apigw.ntruss.com/brandmessage/v2/services/ncp:kkobizmsg:kr:27*********6:sens/messages' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'Content-Type: application/json' \
--data '{
"plusFriendId":"@hckang",
"messageType":"TEXT",
"templateCode":"**********7fe153599b210d9e865a**********",
"targeting":"I",
"messages":[
{
"countryCode":"82",
"to":"010********",
"templateParameters": {
"Name": "Gildong Hong",
"Discount amount": "10000"
}
}
]
}'
Response
This section describes the response format.
Response body
The response body includes the following data:
| Field | Type | Required | Description |
|---|---|---|---|
requestId |
String | Required | Request ID |
requestTime |
DateTime | Required | Request date and time
|
statusCode |
String | Required | Request status code
|
statusName |
String | Required | Status
|
messages |
Array | Optional | Message information |
Response status codes
For information about the HTTP status codes common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service response status codes.
Response example
The response example is as follows:
{
"requestId": "RBBA-*************-****-********-zVDPjteh",
"requestTime": "2025-12-03T11:44:27.774",
"statusCode": "202",
"statusName": "processing",
"messages": [
{
"messageId": "789e27ff-****-****-****-fc50656fe511",
"countryCode": "82",
"to": "010********",
"content": null,
"requestStatusCode": "A000",
"requestStatusName": "success",
"requestStatusDesc": "Succeeded",
"useSmsFailover": false
}
]
}