--- title: "メッセージの送信" slug: "sens-brandmessage-send" updated: 2026-10-08T07:15:58Z published: 2026-10-08T07:15:58Z canonical: "api.ncloud-docs.com/sens-brandmessage-send" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # メッセージの送信 Classic/VPC環境で利用できます。 メッセージを送信します。テキスト、画像、ワイド画像、ワイドアイテムリスト、コマース、カルーセルコマース、カルーセルフィード、プレミアム動画、基本テンプレートなどのメッセージタイプをサポートします。 参考 - ターゲティングコードを指定することで、メッセージ対象のグループを指定できます。 - M: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意) - N: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意) - チャンネル友達 - I: 顧客の送信リクエスト対象 ∩ チャンネル友達 - ブランドメッセージの申し込みが完了したチャンネルに限り、ターゲティングコード M、Nグループ送信を利用できます。 - ターゲティングコード M、Nグループで送信する際は、チャンネルに指定された080無料受信拒否番号を使用します。 - 自由型送信 - AC(チャンネル追加)ボタンは使用できません。 - 基本型の送信 - BC、BTボタンは使用できません。 - 夜間の送信制限が適用されます (20:50~翌日8:00)。 ## テキスト型メッセージ テキスト型メッセージを送信します。 ### リクエスト リクエスト形式を説明します。リクエスト形式は次の通りです。 | メソッド | URI | | --- | --- | | POST | /brandmessage/v2/services/{serviceId}/messages | #### リクエストヘッダ Simple & Easy Notification Service APIで共通して使用されるヘッダの詳細は、[Simple & Easy Notification Serviceのリクエストヘッダ](/docs/ja/sens-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)をご参照ください。 #### リクエストパスパラメータ リクエストパスパラメータの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `serviceId` | String | Required | Biz Messageサービス ID - [プロジェクトリストの照会](/docs/ja/sens-project-list)を参照 | #### リクエストボディ リクエストボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `plusFriendId` | String | Required | チャンネル ID - NAVERクラウドプラットフォームコンソールの **Simple & Easy Notification Service** > **Biz MessageBrand** > **KakaoTalk Channel**で確認 | | `messageType` | String | Required | メッセージタイプ - `TEXT`(テキスト型)を入力 - `TEXT` \| `IMAGE` \| `WIDE_IMAGE` \| `WIDE_ITEM_LIST` \| `COMMERCE` \| `CAROUSEL_COMMERCE` \| `CAROUSEL_FEED` \| `PREMIUM_VIDEO` - `TEXT`: テキスト - `IMAGE`: 画像型 - `WIDE_IMAGE`: ワイド画像型 - `WIDE_ITEM_LIST`: ワイドリスト型 - `COMMERCE`: コマース型 - `CAROUSEL_COMMERCE`: カルーセルコマース型 - `CAROUSEL_FEED`: カルーセルフィード型 - `PREMIUM_VIDEO`: プレミアム動画型 | | `targeting` | String | Optional | ターゲティングコード - `M` \| `N` \| `I` (デフォルト) - `M`: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意) - `N`: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意)のうち、当該チャンネルの友達を除く - `I`: 情報提供型広告の受信に同意したユーザー(カカオトーク受信同意)であり、なおかつ当該チャンネルの友達 | | `isAdult` | Boolean | Optional | 対象の年齢 - `true` \| `false` (デフォルト) - `true`: 成人向け - `false`: 全年齢向け | | `messages` | Array | Required | メッセージ情報: [messages](/docs/ja/sens-brandmessage-send#messages) | | `reserveTime` | String | Optional | 予約日時 - YYYY-MM-DD HH:mm形式 - 予約送信する場合、入力 | | `reserveTimeZone` | String | Optional | 予約タイムゾーン - `Asia/Seoul` (デフォルト) - [タイムゾーンリスト](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)を参照 | 参考 - `reserveTime`現在の時刻から10分以内の場合、予約メッセージの登録はできません。 #### `messages` `messages`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `countryCode` | String | Optional | 国コード - `82` (デフォルト) - [国際 SMS送信国リスト](https://guide.ncloud-docs.com/docs/ja/sens-smspolicy)を参照 | | `to` | String | Required | 受信番号 - 数字のみ入力可能 | | `content` | String | Required | メッセージ内容 - ハングル/英字に関係なく変数および URLを含めて1,300文字以内で入力 - 改行は最大99回 - URL形式で入力可能 | | `buttons` | Array | Optional | ボタン情報: [buttons](/docs/ja/sens-brandmessage-send#buttons) - クーポン使用時は最大4個、それ以外は最大5個 | | `coupon` | Object | Optional | クーポン情報 | | `coupon.title` | String | Required | クーポンの件名 - 次の5つの形式のみ使用可能 - `${1~99,999,999以下の数字}ウォン割引クーポン` - `${1~100の数字}%割引クーポン` - `送料割引クーポン` - `${7文字以内}無料クーポン` - `${7文字以内} UPクーポン` | | `coupon.description` | String | Required | クーポンの説明 - 最大12文字 - 改行不可 | | `coupon.linkMobile` | String | Conditional | モバイルウェブリンク - 最大1,000文字 - ウェブ URL入力時、残りのフィールドは任意 | | `coupon.linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `coupon.schemeAndroid` | String | Conditional | Androidアプリリンク - 最大1,000文字 - チャンネルクーポン URL(形式: alimtalk=coupon://)入力時、残りのフィールドは任意 | | `coupon.schemeIos` | String | Conditional | iOSアプリリンク - 最大1,000文字 - チャンネルクーポン URL(形式: alimtalk=coupon://)入力時、残りのフィールドは任意 | | `useSmsFailover` | Boolean | Optional | SMS代替送信を使用するかどうか - `true` \| `false` - `true`: 使用 - `false`: 使用しない - デフォルト: カカオトークチャンネルの設定に準拠 - 代替送信が設定されたカカオトークチャンネルでのみ使用可能 | | `failoverConfig` | Object | Optional | 代替送信設定 | | `failoverConfig.type` | String | Optional | メッセージのタイプ - `SMS` \| `LMS` - `SMS`: SMSメッセージ - `LMS`: LMSメッセージ - 未入力時、メッセージ内容の長さに応じて自動適用 - 90bytes以下: SMS - 90bytes超過: LMS | | `failoverConfig.from` | String | Optional | 送信番号 - コンソールを通じて登録された番号のみ使用可能 | | `failoverConfig.subject` | String | Optional | メッセージの件名 - 未入力時、チャンネル名を適用 - LMSでのみ使用可能 | | `failoverConfig.content` | String | Optional | メッセージの内容 - 未入力時、`content`を適用 | #### `buttons` `buttons`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `type` | Array | Required | ボタンタイプ情報: [type](/docs/ja/sens-brandmessage-send#type) | | `name` | String | Required | ボタン名 - 最大14文字 | | `linkMobile` | String | Conditional | モバイルウェブリンク - 最大1,000文字 - `type`が`WL`の場合、必ず入力 | | `linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `schemeIos` | String | Conditional | iOSアプリリンク - 最大1,000文字 - `type`が`AL`の場合、必ず入力 | | `schemeAndroid` | String | Conditional | Androidアプリリンク - 最大1,000文字 - `type`が`AL`の場合、必ず入力 | | `bizFormId` | String | Optional | ビジネスフォーム ID | #### `type` `type`の説明は次の通りです。 | フィールド | タイプ | 説明 | | --- | --- | --- | | `WL` | String | ウェブリンク - http://または https://で始まる URL - `linkMobile`の場合、必ず入力 | | `AL` | String | アプリリンク - `linkMobile`、`schemeIos`、`schemeAndroid`のうち、2つは必ず入力 | | `BF` | String | ビジネスフォーム - ボタン名(name)に5つの形式のみ使用可能 - トークで説明 - トークで応募 - トークで予約 - `TEXT`、`IMAGE`テンプレートの場合は1番目、その他は最後のボタンとしてのみ使用可能 - ACボタンと併用する場合、ACの順序が優先され、最初のボタン位置では AC -> BFの順で、最後のボタン位置では BF -> ACの順で配置 - 最大1個のみ使用可能 | | `AC` | String | チャンネル追加 - `TEXT`、`IMAGE`テンプレートの場合は最初のボタン、それ以外は最後のボタンとしてのみ使用可能 | | `BK` | String | ボットキーワード | | `MD` | String | メッセージ伝達 | | `BC` | String | 相談トークに切り替え - 相談トークを利用するチャンネルのみ使用可能 | | `BT` | String | チャットボットに切り替え - カカオオープンビルダーのチャットボットを利用するチャンネルのみ使用可能 | #### リクエスト例 リクエストのサンプルコードは次の通りです。 ``` 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": "お祝いカード", "buttons": [ { "type": "WL", "name": "公式サイト", "linkMobile": "https://******.com/ko/", "linkPc": "https://******.com/ko/" }, { "type": "WL", "name": "ブログ", "linkMobile": "https://******.com/ko/blog/", "linkPc": "https://******.com/ko/blog/" } ] } ] }' ``` ### レスポンス レスポンス形式を説明します。 #### レスポンスボディ レスポンスボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `requestId` | String | - | リクエスト ID | | `requestTime` | DateTime | - | リクエスト日時 - YYYY-MM-DDTHH:mm:ss.sss形式 | | `statusCode` | String | - | リクエストの状態コード - `202`: 成功 - その他: 失敗 - HTTP Status規格に準拠 | | `statusName` | String | - | 状態 - `success` \| `processing` \| `fail` - `success`: 成功 - `processing`: 処理中 - `fail`: 失敗 | | `messages` | Array | - | メッセージ情報: [messages](/docs/ja/sens-brandmessage-send#messages1) | #### `messages` `messages`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `messageId` | String | - | メッセージ ID | | `countryCode` | String | - | 国コード | | `to` | String | - | 受信番号 | | `requestStatusCode` | String | - | リクエストの状態コード - `A000`: 成功 - その他: 失敗 | | `requestStatusName` | String | - | リクエスト状態 - `success` \| `fail` - `success`: 成功 - `fail`: 失敗 | | `requestStatusDesc` | String | - | リクエスト状態の説明 | | `useSmsFailover` | Boolean | - | SMS代替送信を使用するかどうか - `true` \| `false` - `true`: 使用 - `false`: 使用しない | #### レスポンスステータスコード Simple & Easy Notification Service APIで共通して使用されるレスポンスステータスコードの詳細は、[Simple & Easy Notification Serviceのレスポンスステータスコード](/docs/ja/sens-overview#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)をご参照ください。 #### レスポンス例 レスポンスのサンプルコードは次の通りです。 ``` { "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": "成功", "useSmsFailover": false } ] } ``` ## 画像型メッセージ 画像型メッセージを送信します。 ### リクエスト リクエスト形式を説明します。リクエスト形式は次の通りです。 | メソッド | URI | | --- | --- | | POST | /brandmessage/v2/services/{serviceId}/messages | #### リクエストヘッダ Simple & Easy Notification Service APIで共通して使用されるヘッダの詳細は、[Simple & Easy Notification Serviceのリクエストヘッダ](/docs/ja/sens-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)をご参照ください。 #### リクエストパスパラメータ リクエストパスパラメータの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `serviceId` | String | Required | Biz Messageサービス ID - [プロジェクトリストの照会](/docs/ja/sens-project-list)を参照 | #### リクエストボディ リクエストボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `plusFriendId` | String | Required | チャンネル ID - NAVERクラウドプラットフォームコンソールの **Simple & Easy Notification Service** > **Biz MessageBrand** > **KakaoTalk Channel**で確認 | | `messageType` | String | Required | メッセージタイプ - `IMAGE`(画像型)を入力 - `TEXT` \| `IMAGE` \| `WIDE_IMAGE` \| `WIDE_ITEM_LIST` \| `COMMERCE` \| `CAROUSEL_COMMERCE` \| `CAROUSEL_FEED` \| `PREMIUM_VIDEO` - `TEXT`: テキスト - `IMAGE`: 画像型 - `WIDE_IMAGE`: ワイド画像型 - `WIDE_ITEM_LIST`: ワイドリスト型 - `COMMERCE`: コマース型 - `CAROUSEL_COMMERCE`: カルーセルコマース型 - `CAROUSEL_FEED`: カルーセルフィード型 - `PREMIUM_VIDEO`: プレミアム動画型 | | `targeting` | String | Optional | ターゲティングコード - `M` \| `N` \| `I` (デフォルト) - `M`: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意) - `N`: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意)のうち、当該チャンネルの友達を除く - `I`: 情報提供型広告の受信に同意したユーザー(カカオトーク受信同意)であり、なおかつ当該チャンネルの友達 | | `isAdult` | Boolean | Optional | 対象の年齢 - `true` \| `false` (デフォルト) - `true`: 成人向け - `false`: 全年齢向け | | `messages` | Array | Required | [メッセージ](/docs/ja/sens-brandmessage-send#messages2)情報 | | `reserveTime` | String | Optional | 予約日時 - YYYY-MM-DD HH:mm形式 - 予約送信する場合、入力 | | `reserveTimeZone` | String | Optional | 予約タイムゾーン - `Asia/Seoul` (デフォルト) - [タイムゾーンリスト](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)を参照 | #### `messages` `messages`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `countryCode` | String | Optional | 国コード - `82` (デフォルト) - [国際 SMS送信国リスト](https://guide.ncloud-docs.com/docs/ja/sens-smspolicy)を参照 | | `to` | String | Required | 受信番号 - 数字のみ入力可能 | | `content` | String | Required | メッセージの内容 - 最大1,300文字 - 改行は最大99回 - URL形式を入力可能 | | `buttons` | Array | Optional | [ボタン](/docs/ja/sens-brandmessage-send#buttons1)情報 - 最大5個 - クーポン強調ボタンは最大1個まで作成可能 | | `image` | Object | Optional | 画像情報 - [画像リストの照会](/docs/ja/sens-brandmessage-image-list)を参照 | | `image.imageId` | String | Conditional | 画像 ID - 画像を追加する場合、必ず入力 | | `image.imageLink` | String | Conditional | 画像 URL - 画像を追加する場合、必ず入力 | | `coupon` | Object | Optional | クーポン情報 - 最大1個 | | `coupon.title` | String | Required | クーポンの件名 - 次の5つの形式のみ使用可能 - `${1~99,999,999以下の数字}ウォン割引クーポン` - `${1~100の数字}%割引クーポン` - `送料割引クーポン` - `${7文字以内}無料クーポン` - `${7文字以内} UPクーポン` | | `coupon.description` | String | Required | クーポンの説明 - 最大12文字 - 改行不可 | | `coupon.linkMobile` | String | Conditional | モバイルウェブリンク - 最大1,000文字 - ウェブ URL入力時、残りのフィールドは任意 | | `coupon.linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `coupon.schemeAndroid` | String | Conditional | Androidアプリリンク - 最大1,000文字 - チャンネルクーポン URL(形式: alimtalk=coupon://)入力時、残りのフィールドは任意 | | `coupon.schemeIos` | String | Conditional | iOSアプリリンク - 最大1,000文字 - チャンネルクーポン URL(形式: alimtalk=coupon://)入力時、残りのフィールドは任意 | | `useSmsFailover` | Boolean | Optional | SMS代替送信を使用するかどうか - `true` \| `false` - `true`: 使用 - `false`: 使用しない - デフォルト: カカオトークチャンネルの設定に準拠 - 代替送信が設定されたカカオトークチャンネルでのみ使用可能 | | `failoverConfig` | Object | Optional | 代替送信設定 | | `failoverConfig.type` | String | Optional | メッセージのタイプ - `SMS` \| `LMS` - `SMS`: SMSメッセージ - `LMS`: LMSメッセージ - 未入力時、メッセージ内容の長さに応じて自動適用 - 90bytes以下: SMS - 90bytes超過: LMS | | `failoverConfig.from` | String | Optional | 送信番号 - コンソールを通じて登録された番号のみ使用可能 | | `failoverConfig.subject` | String | Optional | メッセージの件名 - 未入力時、チャンネル名を適用 - LMSでのみ使用可能 | | `failoverConfig.content` | String | Optional | メッセージの内容 - 未入力時、`content`を適用 | #### `buttons` `buttons`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `type` | Array | Required | [ボタンタイプ](/docs/ja/sens-brandmessage-send#%EB%B2%84%ED%8A%BC%EC%9C%A0%ED%98%95)情報 | | `name` | String | Required | ボタン名 - 最大14文字 | | `linkMobile` | String | Conditional | モバイルウェブリンク - 最大1,000文字 - `type`が`WL`の場合、必ず入力 | | `linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `schemeIos` | String | Conditional | iOSアプリリンク - 最大1,000文字 - `type`が`AL`の場合、必ず入力 | | `schemeAndroid` | String | Conditional | Androidアプリリンク - 最大1,000文字 - `type`が`AL`の場合、必ず入力 | | `bizFormId` | String | Optional | ビジネスフォーム ID | #### リクエスト例 リクエストのサンプルコードは次の通りです。 ``` 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": "お祝いカード", "buttons": [ { "type": "WL", "name": "公式サイト", "linkMobile": "https://******.com/ko/", "linkPc": "https://******.com/ko/" }, { "type": "WL", "name": "ブログ", "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" } } ] }' ``` ### レスポンス レスポンス形式を説明します。 #### レスポンスボディ レスポンスボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `requestId` | String | - | リクエスト ID | | `requestTime` | DateTime | - | リクエスト日時 - YYYY-MM-DDTHH:mm:ss.sss形式 | | `statusCode` | String | - | リクエストの状態コード - `202`: 成功 - その他: 失敗 - HTTP Status規格に準拠 | | `statusName` | String | - | 状態 - `success` \| `processing` \| `fail` - `success`: 成功 - `processing`: 処理中 - `fail`: 失敗 | | `messages` | Array | - | [メッセージ](/docs/ja/sens-brandmessage-send#messages1)情報 | #### レスポンスステータスコード Simple & Easy Notification Service APIで共通して使用されるレスポンスステータスコードの詳細は、[Simple & Easy Notification Serviceのレスポンスステータスコード](/docs/ja/sens-overview#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)をご参照ください。 #### レスポンス例 レスポンスのサンプルコードは次の通りです。 ``` { "requestId": "RBBA-*************-****-********-zVDPjteh", "requestTime": "2025-12-01T17:45:40.047", "statusCode": "202", "statusName": "processing", "messages": [ { "messageId": "5ba5a7a8-****-****-****-55a76b65f7ec", "countryCode": "82", "to": "010********", "content": "お祝いカード", "requestStatusCode": "A000", "requestStatusName": "success", "requestStatusDesc": "成功", "useSmsFailover": false } ] } ``` ## ワイド画像型メッセージ ワイド画像型メッセージを送信します。 ### リクエスト リクエスト形式を説明します。リクエスト形式は次の通りです。 | メソッド | URI | | --- | --- | | POST | /brandmessage/v2/services/{serviceId}/messages | #### リクエストヘッダ Simple & Easy Notification Service APIで共通して使用されるヘッダの詳細は、[Simple & Easy Notification Serviceのリクエストヘッダ](/docs/ja/sens-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)をご参照ください。 #### リクエストパスパラメータ リクエストパスパラメータの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `serviceId` | String | Required | Biz Messageサービス ID - [プロジェクトリストの照会](/docs/ja/sens-project-list)を参照 | #### リクエストボディ リクエストボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `plusFriendId` | String | Required | チャンネル ID - NAVERクラウドプラットフォームコンソールの **Simple & Easy Notification Service** > **Biz MessageBrand** > **KakaoTalk Channel**で確認 | | `messageType` | String | Required | メッセージタイプ - `WIDE_IMAGE`(ワイド画像型)を入力 - `TEXT` \| `IMAGE` \| `WIDE_IMAGE` \| `WIDE_ITEM_LIST` \| `COMMERCE` \| `CAROUSEL_COMMERCE` \| `CAROUSEL_FEED` \| `PREMIUM_VIDEO` - `TEXT`: テキスト - `IMAGE`: 画像型 - `WIDE_IMAGE`: ワイド画像型 - `WIDE_ITEM_LIST`: ワイドリスト型 - `COMMERCE`: コマース型 - `CAROUSEL_COMMERCE`: カルーセルコマース型 - `CAROUSEL_FEED`: カルーセルフィード型 - `PREMIUM_VIDEO`: プレミアム動画型 | | `targeting` | String | Optional | ターゲティングコード - `M` \| `N` \| `I` (デフォルト) - `M`: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意) - `N`: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意)のうち、当該チャンネルの友達を除く - `I`: 情報提供型広告の受信に同意したユーザー(カカオトーク受信同意)であり、なおかつ当該チャンネルの友達 | | `isAdult` | Boolean | Optional | 対象の年齢 - `true` \| `false` (デフォルト) - `true`: 成人向け - `false`: 全年齢向け | | `messages` | Array | Required | [メッセージ](/docs/ja/sens-brandmessage-send#messages3)情報 | | `reserveTime` | String | Optional | 予約日時 - YYYY-MM-DD HH:mm形式 - 予約送信する場合、入力 | | `reserveTimeZone` | String | Optional | 予約タイムゾーン - `Asia/Seoul` (デフォルト) - [タイムゾーンリスト](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)を参照 | #### `messages` `messages`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `countryCode` | String | Optional | 国コード - `82` (デフォルト) - [国際 SMS送信国リスト](https://guide.ncloud-docs.com/docs/ja/sens-smspolicy)を参照 | | `to` | String | Required | 受信番号 - 数字のみ入力可能 | | `content` | String | Required | メッセージの内容 - 最大76文字 - 改行は最大5回 | | `buttons` | Array | Optional | [ボタン](/docs/ja/sens-brandmessage-send#buttons2)情報 - 最大2個 - クーポン強調ボタンは最大1個まで作成可能 | | `image` | Object | Optional | 画像情報 - [画像リストの照会](/docs/ja/sens-brandmessage-image-list)を参照 | | `image.imageId` | String | Conditional | 画像 ID - 画像を追加する場合、必ず入力 | | `image.imageLink` | String | Conditional | 画像 URL - 画像を追加する場合、必ず入力 | | `coupon` | Object | Optional | クーポン情報 - 最大1個 | | `coupon.title` | String | Required | クーポンの件名 - 次の5つの形式のみ使用可能 - `${1~99,999,999以下の数字}ウォン割引クーポン` - `${1~100の数字}%割引クーポン` - `送料割引クーポン` - `${7文字以内}無料クーポン` - `${7文字以内} UPクーポン` | | `coupon.description` | String | Required | クーポンの説明 - 最大8文字 - 改行不可 | | `coupon.linkMobile` | String | Conditional | モバイルウェブリンク - 最大1,000文字 - ウェブ URL入力時、残りのフィールドは任意 | | `coupon.linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `coupon.schemeAndroid` | String | Conditional | Androidアプリリンク - 最大1,000文字 - チャンネルクーポン URL(形式: alimtalk=coupon://)入力時、残りのフィールドは任意 | | `coupon.schemeIos` | String | Conditional | iOSアプリリンク - 最大1,000文字 - チャンネルクーポン URL(形式: alimtalk=coupon://)入力時、残りのフィールドは任意 | | `useSmsFailover` | Boolean | Optional | SMS代替送信を使用するかどうか - `true` \| `false` - `true`: 使用 - `false`: 使用しない - デフォルト: カカオトークチャンネルの設定に準拠 - 代替送信が設定されたカカオトークチャンネルでのみ使用可能 | | `failoverConfig` | Object | Optional | 代替送信設定 | | `failoverConfig.type` | String | Optional | メッセージのタイプ - `SMS` \| `LMS` - `SMS`: SMSメッセージ - `LMS`: LMSメッセージ - 未入力時、メッセージ内容の長さに応じて自動適用 - 90bytes以下: SMS - 90bytes超過: LMS | | `failoverConfig.from` | String | Optional | 送信番号 - コンソールを通じて登録された番号のみ使用可能 | | `failoverConfig.subject` | String | Optional | メッセージの件名 - 未入力時、チャンネル名を適用 - LMSでのみ使用可能 | | `failoverConfig.content` | String | Optional | メッセージの内容 - 未入力時、`content`を適用 | #### `buttons` `buttons`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `type` | Array | Required | [ボタンタイプ](/docs/ja/sens-brandmessage-send#%EB%B2%84%ED%8A%BC%EC%9C%A0%ED%98%95)情報 | | `name` | String | Required | ボタン名 - 最大8文字 | | `linkMobile` | String | Conditional | モバイルウェブリンク - 最大1,000文字 - `type`が`WL`の場合、必ず入力 | | `linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `schemeIos` | String | Conditional | iOSアプリリンク - 最大1,000文字 - `type`が`AL`の場合、必ず入力 | | `schemeAndroid` | String | Conditional | Androidアプリリンク - 最大1,000文字 - `type`が`AL`の場合、必ず入力 | | `bizFormId` | String | Optional | ビジネスフォーム ID | #### リクエスト例 リクエストのサンプルコードは次の通りです。 ``` 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": "お祝いカード", "buttons": [ { "type": "WL", "name": "公式サイト", "linkMobile": "https://******.com/ko/", "linkPc": "https://******.com/ko/" }, { "type": "WL", "name": "ブログ", "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" } } ] }' ``` ### レスポンス レスポンス形式を説明します。 #### レスポンスボディ レスポンスボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `requestId` | String | - | リクエスト ID | | `requestTime` | DateTime | - | リクエスト日時 - YYYY-MM-DDTHH:mm:ss.sss形式 | | `statusCode` | String | - | リクエストの状態コード - `202`: 成功 - その他: 失敗 - HTTP Status規格に準拠 | | `statusName` | String | - | 状態 - `success` \| `processing` \| `fail` - `success`: 成功 - `processing`: 処理中 - `fail`: 失敗 | | `messages` | Array | - | [メッセージ](/docs/ja/sens-brandmessage-send#messages1)情報 | #### レスポンスステータスコード Simple & Easy Notification Service APIで共通して使用されるレスポンスステータスコードの詳細は、[Simple & Easy Notification Serviceのレスポンスステータスコード](/docs/ja/sens-overview#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)をご参照ください。 #### レスポンス例 レスポンスのサンプルコードは次の通りです。 ``` { "requestId": "RBBA-*************-****-********-zVDPjteh", "requestTime": "2025-12-02T11:54:21.776", "statusCode": "202", "statusName": "processing", "messages": [ { "messageId": "d8dedd42-****-****-****-2f7b08d080da", "countryCode": "82", "to": "010********", "content": "お祝いカード", "requestStatusCode": "A000", "requestStatusName": "success", "requestStatusDesc": "成功", "useSmsFailover": false } ] } ``` ## ワイドアイテムリスト型メッセージ ワイドアイテムリスト型メッセージを送信します。 ### リクエスト リクエスト形式を説明します。リクエスト形式は次の通りです。 | メソッド | URI | | --- | --- | | POST | /brandmessage/v2/services/{serviceId}/messages | #### リクエストヘッダ Simple & Easy Notification Service APIで共通して使用されるヘッダの詳細は、[Simple & Easy Notification Serviceのリクエストヘッダ](/docs/ja/sens-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)をご参照ください。 #### リクエストパスパラメータ リクエストパスパラメータの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `serviceId` | String | Required | Biz Messageサービス ID - [プロジェクトリストの照会](/docs/ja/sens-project-list)を参照 | #### リクエストボディ リクエストボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `plusFriendId` | String | Required | チャンネル ID - NAVERクラウドプラットフォームコンソールの **Simple & Easy Notification Service** > **Biz MessageBrand** > **KakaoTalk Channel**で確認 | | `messageType` | String | Required | メッセージタイプ - `WIDE_ITEM_LIST`(ワイドアイテムリスト型)を入力 - `TEXT` \| `IMAGE` \| `WIDE_IMAGE` \| `WIDE_ITEM_LIST` \| `COMMERCE` \| `CAROUSEL_COMMERCE` \| `CAROUSEL_FEED` \| `PREMIUM_VIDEO` - `TEXT`: テキスト - `IMAGE`: 画像型 - `WIDE_IMAGE`: ワイド画像型 - `WIDE_ITEM_LIST`: ワイドリスト型 - `COMMERCE`: コマース型 - `CAROUSEL_COMMERCE`: カルーセルコマース型 - `CAROUSEL_FEED`: カルーセルフィード型 - `PREMIUM_VIDEO`: プレミアム動画型 | | `targeting` | String | Optional | ターゲティングコード - `M` \| `N` \| `I` (デフォルト) - `M`: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意) - `N`: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意)のうち、当該チャンネルの友達を除く - `I`: 情報提供型広告の受信に同意したユーザー(カカオトーク受信同意)であり、なおかつ当該チャンネルの友達 | | `isAdult` | Boolean | Optional | 対象の年齢 - `true` \| `false` (デフォルト) - `true`: 成人向け - `false`: 全年齢向け | | `messages` | Array | Required | [メッセージ](/docs/ja/sens-brandmessage-send#messages4)情報 | | `reserveTime` | String | Optional | 予約日時 - YYYY-MM-DD HH:mm形式 - 予約送信する場合、入力 | | `reserveTimeZone` | String | Optional | 予約タイムゾーン - `Asia/Seoul` (デフォルト) - [タイムゾーンリスト](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)を参照 | #### `messages` `messages`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `countryCode` | String | Optional | 国コード - `82` (デフォルト) - [国際 SMS送信国リスト](https://guide.ncloud-docs.com/docs/ja/sens-smspolicy)を参照 | | `to` | String | Required | 受信番号 - 数字のみ入力可能 | | `headerContent` | String | Required | ヘッダ(件名) - 最大20文字 - 改行不可 | | `buttons` | Array | Optional | [ボタン](/docs/ja/sens-brandmessage-send#buttons3)情報 - 最大2個(横並び) | | `item` | Object | Required | ワイドリスト情報 | | `item.list` | Array | Required | [ワイドリスト](/docs/ja/sens-brandmessage-send#itemlist) | | `coupon` | Object | Optional | クーポン情報 - 最大1個 | | `coupon.title` | String | Required | クーポンの件名 - 次の5つの形式のみ使用可能 - `${1~99,999,999以下の数字}ウォン割引クーポン` - `${1~100の数字}%割引クーポン` - `送料割引クーポン` - `${7文字以内}無料クーポン` - `${7文字以内} UPクーポン` | | `coupon.description` | String | Required | クーポンの説明 - 最大18文字 - 改行不可 | | `coupon.linkMobile` | String | Conditional | モバイルウェブリンク - 最大1,000文字 - ウェブ URL入力時、残りのフィールドは任意 | | `coupon.linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `coupon.schemeAndroid` | String | Conditional | Androidアプリリンク - 最大1,000文字 - チャンネルクーポン URL(形式: alimtalk=coupon://)入力時、残りのフィールドは任意 | | `coupon.schemeIos` | String | Conditional | iOSアプリリンク - 最大1,000文字 - チャンネルクーポン URL(形式: alimtalk=coupon://)入力時、残りのフィールドは任意 | | `useSmsFailover` | Boolean | Optional | SMS代替送信を使用するかどうか - `true` \| `false` - `true`: 使用 - `false`: 使用しない - デフォルト: カカオトークチャンネルの設定に準拠 - 代替送信が設定されたカカオトークチャンネルでのみ使用可能 | | `failoverConfig` | Object | Optional | 代替送信設定 | | `failoverConfig.type` | String | Optional | メッセージのタイプ - `SMS` \| `LMS` - `SMS`: SMSメッセージ - `LMS`: LMSメッセージ - 未入力時、メッセージ内容の長さに応じて自動適用 - 90bytes以下: SMS - 90bytes超過: LMS | | `failoverConfig.from` | String | Optional | 送信番号 - コンソールを通じて登録された番号のみ使用可能 | | `failoverConfig.subject` | String | Optional | メッセージの件名 - 未入力時、チャンネル名を適用 - LMSでのみ使用可能 | | `failoverConfig.content` | String | Optional | メッセージの内容 - 未入力時、`content`を適用 | #### `buttons` `buttons`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `type` | Array | Required | [ボタンタイプ](/docs/ja/sens-brandmessage-send#%EB%B2%84%ED%8A%BC%EC%9C%A0%ED%98%95)情報 | | `name` | String | Required | ボタン名 - 最大8文字 | | `linkMobile` | String | Conditional | モバイルウェブリンク - 最大1,000文字 - `type`が`WL`の場合、必ず入力 | | `linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `schemeIos` | String | Conditional | iOSアプリリンク - 最大1,000文字 - `type`が`AL`の場合、必ず入力 | | `schemeAndroid` | String | Conditional | Androidアプリリンク - 最大1,000文字 - `type`が`AL`の場合、必ず入力 | | `bizFormId` | String | Optional | ビジネスフォーム ID | #### `item.list` `item.list`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `title` | String | Required | アイテムの件名 - 1番目のアイテム - 使用時、任意(Optional)入力 - 最大25文字 - 改行は最大1回 - 2~4番目のアイテム - 使用時、必ず(Required)入力 - 最大30文字 - 改行は最大1回 | | `imageId` | String | Required | 画像 ID - 1番目のアイテム - メインワイドアイテムリスト画像 - 2~4番目のアイテム - サブワイドアイテムリスト画像 - [画像リストの照会](/docs/ja/sens-brandmessage-image-list)を参照 | | `linkMobile` | String | Required | モバイルウェブリンク - 最大1,000文字 | | `linPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `schemeAndroid` | String | Optional | Androidアプリリンク - 最大1,000文字 | | `schemeIos` | String | Optional | iOSアプリリンク - 最大1,000文字 | #### リクエスト例 リクエストのサンプルコードは次の通りです。 ``` 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": "お祝いカード", "buttons": [ { "type": "WL", "name": "公式サイト", "linkMobile": "https://******.com/ko/", "linkPc": "https://******.com/ko/" }, { "type": "WL", "name": "ブログ", "linkMobile": "https://******.com/ko/blog/", "linkPc": "https://******.com/ko/blog/" } ], "item": { "list": [ { "title": "メイン", "imageId": "34ba283e-****-****-****-db59803ae7eb", "linkMobile": "https://******.com/ko/" }, { "title": "アイテム1", "imageId": "67828a69-****-****-****-9026147fe5ee", "linkMobile": "https://******.com/ko/" }, { "title": "アイテム2", "imageId": "67828a69-****-****-****-9026147fe5ee", "linkMobile": "https://******.com/ko/" } ] } } ] } ``` ### レスポンス レスポンス形式を説明します。 #### レスポンスボディ レスポンスボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `requestId` | String | - | リクエスト ID | | `requestTime` | DateTime | - | リクエスト日時 - YYYY-MM-DDTHH:mm:ss.sss形式 | | `statusCode` | String | - | リクエストの状態コード - `202`: 成功 - その他: 失敗 - HTTP Status規格に準拠 | | `statusName` | String | - | 状態 - `success` \| `processing` \| `fail` - `success`: 成功 - `processing`: 処理中 - `fail`: 失敗 | | `messages` | Array | - | [メッセージ](/docs/ja/sens-brandmessage-send#messages1)情報 | #### レスポンスステータスコード Simple & Easy Notification Service APIで共通して使用されるレスポンスステータスコードの詳細は、[Simple & Easy Notification Serviceのレスポンスステータスコード](/docs/ja/sens-overview#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)をご参照ください。 #### レスポンス例 レスポンスのサンプルコードは次の通りです。 ``` { "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": "成功", "useSmsFailover": false } ] } ``` ## コマース型メッセージ コマース型(COMMERCE)メッセージを送信します。 ### リクエスト リクエスト形式を説明します。リクエスト形式は次の通りです。 | メソッド | URI | | --- | --- | | POST | /brandmessage/v2/services/{serviceId}/messages | #### リクエストヘッダ Simple & Easy Notification Service APIで共通して使用されるヘッダの詳細は、[Simple & Easy Notification Serviceのリクエストヘッダ](/docs/ja/sens-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)をご参照ください。 #### リクエストパスパラメータ リクエストパスパラメータの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `serviceId` | String | Required | Biz Messageサービス ID - [プロジェクトリストの照会](/docs/ja/sens-project-list)を参照 | #### リクエストボディ リクエストボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `plusFriendId` | String | Required | チャンネル ID - NAVERクラウドプラットフォームコンソールの **Simple & Easy Notification Service** > **Biz MessageBrand** > **KakaoTalk Channel**で確認 | | `messageType` | String | Required | メッセージタイプ - `COMMERCE`(コマース型)を入力 - `TEXT` \| `IMAGE` \| `WIDE_IMAGE` \| `WIDE_ITEM_LIST` \| `COMMERCE` \| `CAROUSEL_COMMERCE` \| `CAROUSEL_FEED` \| `PREMIUM_VIDEO` - `TEXT`: テキスト - `IMAGE`: 画像型 - `WIDE_IMAGE`: ワイド画像型 - `WIDE_ITEM_LIST`: ワイドリスト型 - `COMMERCE`: コマース型 - `CAROUSEL_COMMERCE`: カルーセルコマース型 - `CAROUSEL_FEED`: カルーセルフィード型 - `PREMIUM_VIDEO`: プレミアム動画型 | | `targeting` | String | Optional | ターゲティングコード - `M` \| `N` \| `I` (デフォルト) - `M`: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意) - `N`: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意)のうち、当該チャンネルの友達を除く - `I`: 情報提供型広告の受信に同意したユーザー(カカオトーク受信同意)であり、なおかつ当該チャンネルの友達 | | `isAdult` | Boolean | Optional | 対象の年齢 - `true` \| `false` (デフォルト) - `true`: 成人向け - `false`: 全年齢向け | | `messages` | Array | Required | [メッセージ](/docs/ja/sens-brandmessage-send#messages5)情報 | | `reserveTime` | String | Optional | 予約日時 - YYYY-MM-DD HH:mm形式 - 予約送信する場合、入力 | | `reserveTimeZone` | String | Optional | 予約タイムゾーン - `Asia/Seoul` (デフォルト) - [タイムゾーンリスト](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)を参照 | #### `messages` `messages`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `countryCode` | String | Optional | 国コード - `82` (デフォルト) - [国際 SMS送信国リスト](https://guide.ncloud-docs.com/docs/ja/sens-smspolicy)を参照 | | `to` | String | Required | 受信番号 - 数字のみ入力可能 | | `additionalContent` | String | Optional | 付加情報 - 最大34文字 - 改行は最大1回 | | `buttons` | Array | Required | [buttons](/docs/ja/sens-brandmessage-send#buttons4)情報 - 最小1個、最大2個 | | `image` | Object | Optional | 画像情報 - [画像リストの照会](/docs/ja/sens-brandmessage-image-list)を参照 | | `image.imageId` | String | Conditional | 画像 ID - 画像を追加する場合、必ず入力 | | `image.imageLink` | String | Conditional | 画像 URL - 画像を追加する場合、必ず入力 | | `commerce` | Object | Required | コマース情報 | | `commerce.title` | String | Required | 商品名 - 最大30文字 - 改行不可 | | `commerce.regularPrice` | String | Required | 通常価格(ウォン) - 0~99,999,999 | | `commerce.discountPrice` | String | Conditional | 割引価格(ウォン) - 0~99,999,999 | | `commerce.discountRate` | String | Conditional | 割引率(%) - 0~100 - 割引率適用時、必ず入力 - `commerce.discountFixed`は同時使用不可 | | `commerce.discountFixed` | String | Conditional | 定額割引価格(%) - 0~999,999 - 定額割引適用時、必ず入力 - `commerce.discountRate`は同時使用不可 | | `coupon` | Object | Optional | クーポン情報 - 最大1個 | | `coupon.title` | String | Required | クーポンの件名 - 次の5つの形式のみ使用可能 - `${1~99,999,999以下の数字}ウォン割引クーポン` - `${1~100の数字}%割引クーポン` - `送料割引クーポン` - `${7文字以内}無料クーポン` - `${7文字以内} UPクーポン` | | `coupon.description` | String | Required | クーポンの説明 - 最大12文字 - 改行不可 | | `coupon.linkMobile` | String | Conditional | モバイルウェブリンク - 最大1,000文字 - ウェブ URL入力時、残りのフィールドは任意 | | `coupon.linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `coupon.schemeAndroid` | String | Conditional | Androidアプリリンク - 最大1,000文字 - チャンネルクーポン URL(形式: alimtalk=coupon://)入力時、残りのフィールドは任意 | | `coupon.schemeIos` | String | Conditional | iOSアプリリンク - 最大1,000文字 - チャンネルクーポン URL(形式: alimtalk=coupon://)入力時、残りのフィールドは任意 | | `useSmsFailover` | Boolean | Optional | SMS代替送信を使用するかどうか - `true` \| `false` - `true`: 使用 - `false`: 使用しない - デフォルト: カカオトークチャンネルの設定に準拠 - 代替送信が設定されたカカオトークチャンネルでのみ使用可能 | | `failoverConfig` | Object | Optional | 代替送信設定 | | `failoverConfig.type` | String | Optional | メッセージのタイプ - `SMS` \| `LMS` - `SMS`: SMSメッセージ - `LMS`: LMSメッセージ - 未入力時、メッセージ内容の長さに応じて自動適用 - 90bytes以下: SMS - 90bytes超過: LMS | | `failoverConfig.from` | String | Optional | 送信番号 - コンソールを通じて登録された番号のみ使用可能 | | `failoverConfig.subject` | String | Optional | メッセージの件名 - 未入力時、チャンネル名を適用 - LMSでのみ使用可能 | | `failoverConfig.content` | String | Optional | メッセージの内容 - 未入力時、`content`を適用 | #### `buttons` `buttons`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `type` | Array | Required | [ボタンタイプ](/docs/ja/sens-brandmessage-send#%EB%B2%84%ED%8A%BC%EC%9C%A0%ED%98%95)情報 | | `name` | String | Required | ボタン名 - 最大8文字 | | `linkMobile` | String | Conditional | モバイルウェブリンク - 最大1,000文字 - `type`が`WL`の場合、必ず入力 | | `linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `schemeIos` | String | Conditional | iOSアプリリンク - 最大1,000文字 - `type`が`AL`の場合、必ず入力 | | `schemeAndroid` | String | Conditional | Androidアプリリンク - 最大1,000文字 - `type`が`AL`の場合、必ず入力 | | `bizFormId` | String | Optional | ビジネスフォーム ID | #### リクエスト例 リクエストのサンプルコードは次の通りです。 ``` 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": "お祝いカード10%割引", "buttons": [ { "type": "WL", "name": "公式サイト", "linkMobile": "https://******.com/ko/", "linkPc": "https://******.com/ko/" }, { "type": "WL", "name": "ブログ", "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%割引", "regularPrice":"10000", "discountPrice":"9000", "discountRate":"10" } } ] }' ``` ### レスポンス レスポンス形式を説明します。 #### レスポンスボディ レスポンスボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `requestId` | String | - | リクエスト ID | | `requestTime` | DateTime | - | リクエスト日時 - YYYY-MM-DDTHH:mm:ss.sss形式 | | `statusCode` | String | - | リクエストの状態コード - `202`: 成功 - その他: 失敗 - HTTP Status規格に準拠 | | `statusName` | String | - | 状態 - `success` \| `processing` \| `fail` - `success`: 成功 - `processing`: 処理中 - `fail`: 失敗 | | `messages` | Array | - | [メッセージ](/docs/ja/sens-brandmessage-send#messages1)情報 | #### レスポンスステータスコード Simple & Easy Notification Service APIで共通して使用されるレスポンスステータスコードの詳細は、[Simple & Easy Notification Serviceのレスポンスステータスコード](/docs/ja/sens-overview#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)をご参照ください。 #### レスポンス例 レスポンスのサンプルコードは次の通りです。 ``` { "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": "成功", "useSmsFailover": false } ] } ``` ## カルーセルコマース型メッセージ カルーセルコマース型メッセージを送信します。 ### リクエスト リクエスト形式を説明します。リクエスト形式は次の通りです。 | メソッド | URI | | --- | --- | | POST | /brandmessage/v2/services/{serviceId}/messages | #### リクエストヘッダ Simple & Easy Notification Service APIで共通して使用されるヘッダの詳細は、[Simple & Easy Notification Serviceのリクエストヘッダ](/docs/ja/sens-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)をご参照ください。 #### リクエストパスパラメータ リクエストパスパラメータの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `serviceId` | String | Required | Biz Messageサービス ID - [プロジェクトリストの照会](/docs/ja/sens-project-list)を参照 | #### リクエストボディ リクエストボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `plusFriendId` | String | Required | チャンネル ID - NAVERクラウドプラットフォームコンソールの **Simple & Easy Notification Service** > **Biz MessageBrand** > **KakaoTalk Channel**で確認 | | `messageType` | String | Required | メッセージタイプ - `CAROUSEL_COMMERCE`(カルーセルコマース)を入力 - `TEXT` \| `IMAGE` \| `WIDE_IMAGE` \| `WIDE_ITEM_LIST` \| `COMMERCE` \| `CAROUSEL_COMMERCE` \| `CAROUSEL_FEED` \| `PREMIUM_VIDEO` - `TEXT`: テキスト - `IMAGE`: 画像型 - `WIDE_IMAGE`: ワイド画像型 - `WIDE_ITEM_LIST`: ワイドリスト型 - `COMMERCE`: コマース型 - `CAROUSEL_COMMERCE`: カルーセルコマース型 - `CAROUSEL_FEED`: カルーセルフィード型 - `PREMIUM_VIDEO`: プレミアム動画型 | | `targeting` | String | Optional | ターゲティングコード - `M` \| `N` \| `I` (デフォルト) - `M`: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意) - `N`: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意)のうち、当該チャンネルの友達を除く - `I`: 情報提供型広告の受信に同意したユーザー(カカオトーク受信同意)であり、なおかつ当該チャンネルの友達 | | `isAdult` | Boolean | Optional | 対象の年齢 - `true` \| `false` (デフォルト) - `true`: 成人向け - `false`: 全年齢向け | | `messages` | Array | Required | [メッセージ](/docs/ja/sens-brandmessage-send#messages6)情報 | | `reserveTime` | String | Optional | 予約日時 - YYYY-MM-DD HH:mm形式 - 予約送信する場合、入力 | | `reserveTimeZone` | String | Optional | 予約タイムゾーン - `Asia/Seoul` (デフォルト) - [タイムゾーンリスト](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)を参照 | #### `messages` `messages`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `countryCode` | String | Optional | 国コード - `82` (デフォルト) - [国際 SMS送信国リスト](https://guide.ncloud-docs.com/docs/ja/sens-smspolicy)を参照 | | `to` | String | Required | 受信番号 - 数字のみ入力可能 | | `carousel` | Object | Required | カルーセル情報 | | `carousel.head` | Object | Optional | カルーセルイントロ情報 | | `carousel.head.headerContent` | String | Required | ヘッダ(件名) - 最大20文字 - 改行不可 | | `carousel.head.content` | String | Required | 内容 - 最大50文字 - 改行不可 | | `carousel.head.imageId` | String | Required | 画像 ID - `CAROUSEL_COMMERCE`タイプ画像のみ使用可能 - カルーセルリスト画像と同じ比率にすること | | `carousel.head.linkMobile` | String | Conditional | モバイルウェブリンク - 最大1,000文字 - `schemeAndroid`または`schemeIos`使用時、必ず入力 | | `carousel.head.linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `carousel.head.schemeAndroid` | String | Optional | Androidアプリリンク - 最大1,000文字 | | `carousel.head.schemeIos` | String | Optional | iOSアプリリンク - 最大1,000文字 | | `carousel.list` | Array | Required | [カルーセルリスト](/docs/ja/sens-brandmessage-send#carousellist) - 最小2個、最大6個(カルーセルイントロを含む) | | `carousel.tail` | Object | Optional | カルーセルのもっと見る情報 | | `carousel.tail.linkMobile` | String | Required | モバイルウェブリンク - 最大1,000文字 | | `carousel.tail.linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `carousel.tail.schemeAndroid` | String | Optional | Androidアプリリンク - 最大1,000文字 | | `carousel.tail.schemeIos` | String | Optional | iOSアプリリンク - 最大1,000文字 | | `useSmsFailover` | Boolean | Optional | SMS代替送信を使用するかどうか - `true` \| `false` - `true`: 使用 - `false`: 使用しない - デフォルト: カカオトークチャンネルの設定に準拠 - 代替送信が設定されたカカオトークチャンネルでのみ使用可能 | | `failoverConfig` | Object | Optional | 代替送信設定 | | `failoverConfig.type` | String | Optional | メッセージのタイプ - `SMS` \| `LMS` - `SMS`: SMSメッセージ - `LMS`: LMSメッセージ - 未入力時、メッセージ内容の長さに応じて自動適用 - 90bytes以下: SMS - 90bytes超過: LMS | | `failoverConfig.from` | String | Optional | 送信番号 - コンソールを通じて登録された番号のみ使用可能 | | `failoverConfig.subject` | String | Optional | メッセージの件名 - 未入力時、チャンネル名を適用 - LMSでのみ使用可能 | | `failoverConfig.content` | String | Optional | メッセージの内容 - 未入力時、`content`を適用 | #### `carousel.list` `carousel.list`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `additionalContent` | String | Optional | 付加情報 - 最大34文字 - 改行は最大1回 | | `buttons` | Array | Required | ボタン情報: [buttons](/docs/ja/sens-brandmessage-send#buttons5) - 最小1個、最大2個 | | `image` | Object | Optional | 画像情報 - [画像リストの照会](/docs/ja/sens-brandmessage-image-list)を参照 | | `image.imageId` | String | Conditional | 画像 ID - 画像を追加する場合、必ず入力 | | `image.imageLink` | String | Conditional | 画像 URL - 画像を追加する場合、必ず入力 | | `coupon` | Object | Optional | クーポン情報 - 最大1個 | | `coupon.title` | String | Required | クーポンの件名 - 次の5つの形式のみ使用可能 - `${1~99,999,999以下の数字}ウォン割引クーポン` - `${1~100の数字}%割引クーポン` - `送料割引クーポン` - `${7文字以内}無料クーポン` - `${7文字以内} UPクーポン` | | `coupon.description` | String | Required | クーポンの説明 - 最大12文字 - 改行不可 | | `coupon.linkMobile` | String | Conditional | モバイルウェブリンク - 最大1,000文字 - ウェブ URL入力時、残りのフィールドは任意 | | `coupon.linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `coupon.schemeAndroid` | String | Conditional | Androidアプリリンク - 最大1,000文字 - チャンネルクーポン URL(形式: alimtalk=coupon://)入力時、残りのフィールドは任意 | | `coupon.schemeIos` | String | Conditional | iOSアプリリンク - 最大1,000文字 - チャンネルクーポン URL(形式: alimtalk=coupon://)入力時、残りのフィールドは任意 | | `commerce` | Object | Required | コマース情報 | | `commerce.title` | String | Required | 商品名 - 最大30文字 - 改行不可 | | `commerce.regularPrice` | Integer | Required | 通常価格(ウォン) - 0~99,999,999 | | `commerce.discountPrice` | Integer | Conditional | 割引価格(ウォン) - 0~99,999,999 | | `commerce.discountRate` | Integer | Conditional | 割引率(%) - 0~100 - 割引率適用時、必ず入力 - `commerce.discountFixed`は同時使用不可 | | `commerce.discountFixed` | Integer | Conditional | 定額割引価格(%) - 0~999,999 - 定額割引適用時、必ず入力 - `commerce.discountRate`は同時使用不可 | #### `buttons` `buttons`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `type` | Array | Required | [ボタンタイプ](/docs/ja/sens-brandmessage-send#%EB%B2%84%ED%8A%BC%EC%9C%A0%ED%98%95)情報 | | `name` | String | Required | ボタン名 - 最大8文字 | | `linkMobile` | String | Conditional | モバイルウェブリンク - 最大1,000文字 - `type`が`WL`の場合、必ず入力 | | `linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `schemeIos` | String | Conditional | iOSアプリリンク - 最大1,000文字 - `type`が`AL`の場合、必ず入力 | | `schemeAndroid` | String | Conditional | Androidアプリリンク - 最大1,000文字 - `type`が`AL`の場合、必ず入力 | | `bizFormId` | String | Optional | ビジネスフォーム ID | #### リクエスト例 リクエストのサンプルコードは次の通りです。 ``` 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":"お祝いカード", "content":"お祝いカード割引イベント", "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": "公式サイト", "linkMobile": "https://******.com/ko/", "linkPc": "https://******.com/ko/" }, { "type": "WL", "name": "ブログ", "linkMobile": "https://******.com/ko/blog/", "linkPc": "https://******.com/ko/blog/" } ], "commerce": { "title": "10%割引", "regularPrice": "10000", "discountPrice": "9000", "discountRate": "10" } }, { "image": { "imageId": "cde370b6-****-****-****-6a122739e51f", "imageLink": "https://mud-kage.kakao.com/dn/***********/**********************/img_l.jpg" }, "buttons": [ { "type": "WL", "name": "公式サイト", "linkMobile": "https://******.com/ko/", "linkPc": "https://******.com/ko/" }, { "type": "WL", "name": "ブログ", "linkMobile": "https://******.com/ko/blog/", "linkPc": "https://******.com/ko/blog/" } ], "commerce": { "title": "10%割引", "regularPrice": "10000", "discountPrice": "9000", "discountRate": "10" } } ], "tail": { "linkMobile": "https://hansem.com/ko/" } } } ] }' ``` ### レスポンス レスポンス形式を説明します。 #### レスポンスボディ レスポンスボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `requestId` | String | - | リクエスト ID | | `requestTime` | DateTime | - | リクエスト日時 - YYYY-MM-DDTHH:mm:ss.sss形式 | | `statusCode` | String | - | リクエストの状態コード - `202`: 成功 - その他: 失敗 - HTTP Status規格に準拠 | | `statusName` | String | - | 状態 - `success` \| `processing` \| `fail` - `success`: 成功 - `processing`: 処理中 - `fail`: 失敗 | | `messages` | Array | - | [メッセージ](/docs/ja/sens-brandmessage-send#messages1)情報 | #### レスポンスステータスコード Simple & Easy Notification Service APIで共通して使用されるレスポンスステータスコードの詳細は、[Simple & Easy Notification Serviceのレスポンスステータスコード](/docs/ja/sens-overview#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)をご参照ください。 #### レスポンス例 レスポンスのサンプルコードは次の通りです。 ``` { "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": "成功", "useSmsFailover": false } ] } ``` ## カルーセルフィード型メッセージ カルーセルフィード型メッセージを送信します。 ### リクエスト リクエスト形式を説明します。リクエスト形式は次の通りです。 | メソッド | URI | | --- | --- | | POST | /brandmessage/v2/services/{serviceId}/messages | #### リクエストヘッダ Simple & Easy Notification Service APIで共通して使用されるヘッダの詳細は、[Simple & Easy Notification Serviceのリクエストヘッダ](/docs/ja/sens-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)をご参照ください。 #### リクエストパスパラメータ リクエストパスパラメータの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `serviceId` | String | Required | Biz Messageサービス ID - [プロジェクトリストの照会](/docs/ja/sens-project-list)を参照 | #### リクエストボディ リクエストボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `plusFriendId` | String | Required | チャンネル ID - NAVERクラウドプラットフォームコンソールの **Simple & Easy Notification Service** > **Biz MessageBrand** > **KakaoTalk Channel**で確認 | | `messageType` | String | Required | メッセージタイプ - `CAROUSEL_FEED`(カルーセルフィード型)を入力 - `TEXT` \| `IMAGE` \| `WIDE_IMAGE` \| `WIDE_ITEM_LIST` \| `COMMERCE` \| `CAROUSEL_COMMERCE` \| `CAROUSEL_FEED` \| `PREMIUM_VIDEO` - `TEXT`: テキスト - `IMAGE`: 画像型 - `WIDE_IMAGE`: ワイド画像型 - `WIDE_ITEM_LIST`: ワイドリスト型 - `COMMERCE`: コマース型 - `CAROUSEL_COMMERCE`: カルーセルコマース型 - `CAROUSEL_FEED`: カルーセルフィード型 - `PREMIUM_VIDEO`: プレミアム動画型 | | `targeting` | String | Optional | ターゲティングコード - `M` \| `N` \| `I` (デフォルト) - `M`: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意) - `N`: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意)のうち、当該チャンネルの友達を除く - `I`: 情報提供型広告の受信に同意したユーザー(カカオトーク受信同意)であり、なおかつ当該チャンネルの友達 | | `isAdult` | Boolean | Optional | 対象の年齢 - `true` \| `false` (デフォルト) - `true`: 成人向け - `false`: 全年齢向け | | `messages` | Array | Required | [メッセージ](/docs/ja/sens-brandmessage-send#messages7)情報 | | `reserveTime` | String | Optional | 予約日時 - YYYY-MM-DD HH:mm形式 - 予約送信する場合、入力 | | `reserveTimeZone` | String | Optional | 予約タイムゾーン - `Asia/Seoul` (デフォルト) - [タイムゾーンリスト](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)を参照 | #### `messages` `messages`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `countryCode` | String | Optional | 国コード - `82` (デフォルト) - [国際 SMS送信国リスト](https://guide.ncloud-docs.com/docs/ja/sens-smspolicy)を参照 | | `to` | String | Required | 受信番号 - 数字のみ入力可能 | | `carousel` | Object | Required | カルーセル情報 | | `carousel.list` | Array | Required | [カルーセルリスト](/docs/ja/sens-brandmessage-send#carousellist1) - 最小2個、最大6個 | | `carousel.tail` | Object | Optional | カルーセルのもっと見る情報 | | `carousel.tail.linkMobile` | String | Required | モバイルウェブリンク - 最大1,000文字 | | `carousel.tail.linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `carousel.tail.schemeAndroid` | String | Optional | Androidアプリリンク - 最大1,000文字 | | `carousel.tail.schemeIos` | String | Optional | iOSアプリリンク - 最大1,000文字 | | `useSmsFailover` | Boolean | Optional | SMS代替送信を使用するかどうか - `true` \| `false` - `true`: 使用 - `false`: 使用しない - デフォルト: カカオトークチャンネルの設定に準拠 - 代替送信が設定されたカカオトークチャンネルでのみ使用可能 | | `failoverConfig` | Object | Optional | 代替送信設定 | | `failoverConfig.type` | String | Optional | メッセージのタイプ - `SMS` \| `LMS` - `SMS`: SMSメッセージ - `LMS`: LMSメッセージ - 未入力時、メッセージ内容の長さに応じて自動適用 - 90bytes以下: SMS - 90bytes超過: LMS | | `failoverConfig.from` | String | Optional | 送信番号 - コンソールを通じて登録された番号のみ使用可能 | | `failoverConfig.subject` | String | Optional | メッセージの件名 - 未入力時、チャンネル名を適用 - LMSでのみ使用可能 | | `failoverConfig.content` | String | Optional | メッセージの内容 - 未入力時、`content`を適用 | #### `carousel.list` `carousel.list`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `headerContent` | String | Required | ヘッダ(件名) - 最大20文字 - 改行不可 | | `message` | String | Required | 内容 - 最大180文字 - 改行は最大10回 - 変数は#{変数名}の形式で、スペースなしで入力 | | `buttons` | Array | Required | [ボタン](/docs/ja/sens-brandmessage-send#buttons6)情報 - 最小1個、最大2個 | | `image` | Object | Optional | 画像情報 - [画像リストの照会](/docs/ja/sens-brandmessage-image-list)を参照 | | `image.imageId` | String | Conditional | 画像 ID - 画像を追加する場合、必ず入力 | | `image.imageLink` | String | Conditional | 画像 URL - 画像を追加する場合、必ず入力 | | `coupon` | Object | Optional | クーポン情報 - 最大1個 | | `coupon.title` | String | Required | クーポンの件名 - 次の5つの形式のみ使用可能 - `${1~99,999,999以下の数字}ウォン割引クーポン` - `${1~100の数字}%割引クーポン` - `送料割引クーポン` - `${7文字以内}無料クーポン` - `${7文字以内} UPクーポン` | | `coupon.description` | String | Required | クーポンの説明 - 最大12文字 - 改行不可 | | `coupon.linkMobile` | String | Conditional | モバイルウェブリンク - 最大1,000文字 - ウェブ URL入力時、残りのフィールドは任意 | | `coupon.linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `coupon.schemeAndroid` | String | Conditional | Androidアプリリンク - 最大1,000文字 - チャンネルクーポン URL(形式: alimtalk=coupon://)入力時、残りのフィールドは任意 | | `coupon.schemeIos` | String | Conditional | iOSアプリリンク - 最大1,000文字 - チャンネルクーポン URL(形式: alimtalk=coupon://)入力時、残りのフィールドは任意 | #### `buttons` `buttons`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `type` | Array | Required | [ボタンタイプ](/docs/ja/sens-brandmessage-send#%EB%B2%84%ED%8A%BC%EC%9C%A0%ED%98%95)情報 | | `name` | String | Required | ボタン名 - 最大8文字 | | `linkMobile` | String | Conditional | モバイルウェブリンク - 最大1,000文字 - `type`が`WL`の場合、必ず入力 | | `linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `schemeIos` | String | Conditional | iOSアプリリンク - 最大1,000文字 - `type`が`AL`の場合、必ず入力 | | `schemeAndroid` | String | Conditional | Androidアプリリンク - 最大1,000文字 - `type`が`AL`の場合、必ず入力 | | `bizFormId` | String | Optional | ビジネスフォーム ID | #### リクエスト例 リクエストのサンプルコードは次の通りです。 ``` 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":"お祝いカード1", "message":"お祝いカード割引イベント1", "image": { "imageId":"6c4b9ceb-****-****-****-cf550dd5f2e8", "imageLink": "https://mud-kage.kakao.com/dn/C2Ft0/***********/**********************/img_l.jpg" }, "buttons": [ { "type": "WL", "name": "公式サイト", "linkMobile": "https://******.com/ko/", "linkPc": "https://******.com/ko/" }, { "type": "WL", "name": "ブログ", "linkMobile": "https://******.com/ko/blog/", "linkPc": "https://******.com/ko/blog/" } ], "coupon": { "title": "10%割引", "description": "10%割引", "linkMobile": "https://******.com/ko/blog/" } }, { "headerContent":"お祝いカード2", "message":"お祝いカード割引イベント2", "image": { "imageId":"6c4b9ceb-****-****-****-cf550dd5f2e8", "imageLink": "https://mud-kage.kakao.com/dn/C2Ft0/***********/**********************/img_l.jpg" }, "buttons": [ { "type": "WL", "name": "公式サイト", "linkMobile": "https://******.com/ko/", "linkPc": "https://******.com/ko/" }, { "type": "WL", "name": "ブログ", "linkMobile": "https://******.com/ko/blog/", "linkPc": "https://******.com/ko/blog/" } ], "coupon": { "title": "10%割引", "description": "10%割引", "linkMobile": "https://******.com/ko/blog/" } } ], "tail": { "linkMobile": "https://******.com/ko/" } } } ] }' ``` ### レスポンス レスポンス形式を説明します。 #### レスポンスボディ レスポンスボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `requestId` | String | - | リクエスト ID | | `requestTime` | DateTime | - | リクエスト日時 - YYYY-MM-DDTHH:mm:ss.sss形式 | | `statusCode` | String | - | リクエストの状態コード - `202`: 成功 - その他: 失敗 - HTTP Status規格に準拠 | | `statusName` | String | - | 状態 - `success` \| `processing` \| `fail` - `success`: 成功 - `processing`: 処理中 - `fail`: 失敗 | | `messages` | Array | - | [メッセージ](/docs/ja/sens-brandmessage-send#messages1)情報 | #### レスポンスステータスコード Simple & Easy Notification Service APIで共通して使用されるレスポンスステータスコードの詳細は、[Simple & Easy Notification Serviceのレスポンスステータスコード](/docs/ja/sens-overview#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)をご参照ください。 #### レスポンス例 レスポンスのサンプルコードは次の通りです。 ``` { "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": "成功", "useSmsFailover": false } ] } ``` ## プレミアム動画型メッセージ プレミアム動画型メッセージを送信します。 ### リクエスト リクエスト形式を説明します。リクエスト形式は次の通りです。 | メソッド | URI | | --- | --- | | POST | /brandmessage/v2/services/{serviceId}/messages | #### リクエストヘッダ Simple & Easy Notification Service APIで共通して使用されるヘッダの詳細は、[Simple & Easy Notification Serviceのリクエストヘッダ](/docs/ja/sens-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)をご参照ください。 #### リクエストパスパラメータ リクエストパスパラメータの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `serviceId` | String | Required | Biz Messageサービス ID - [プロジェクトリストの照会](/docs/ja/sens-project-list)を参照 | #### リクエストボディ リクエストボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `plusFriendId` | String | Required | チャンネル ID - NAVERクラウドプラットフォームコンソールの **Simple & Easy Notification Service** > **Biz MessageBrand** > **KakaoTalk Channel**で確認 | | `messageType` | String | Required | メッセージタイプ - `PREMIUM_VIDEO`(プレミアム動画型)を入力 - `TEXT` \| `IMAGE` \| `WIDE_IMAGE` \| `WIDE_ITEM_LIST` \| `COMMERCE` \| `CAROUSEL_COMMERCE` \| `CAROUSEL_FEED` \| `PREMIUM_VIDEO` - `TEXT`: テキスト - `IMAGE`: 画像型 - `WIDE_IMAGE`: ワイド画像型 - `WIDE_ITEM_LIST`: ワイドリスト型 - `COMMERCE`: コマース型 - `CAROUSEL_COMMERCE`: カルーセルコマース型 - `CAROUSEL_FEED`: カルーセルフィード型 - `PREMIUM_VIDEO`: プレミアム動画型 | | `targeting` | String | Optional | ターゲティングコード - `M` \| `N` \| `I` (デフォルト) - `M`: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意) - `N`: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意)のうち、当該チャンネルの友達を除く - `I`: 情報提供型広告の受信に同意したユーザー(カカオトーク受信同意)であり、なおかつ当該チャンネルの友達 | | `isAdult` | Boolean | Optional | 対象の年齢 - `true` \| `false` (デフォルト) - `true`: 成人向け - `false`: 全年齢向け | | `messages` | Array | Required | [メッセージ](/docs/ja/sens-brandmessage-send#messages8)情報 | | `reserveTime` | String | Optional | 予約日時 - YYYY-MM-DD HH:mm形式 - 予約送信する場合、入力 | | `reserveTimeZone` | String | Optional | 予約タイムゾーン - `Asia/Seoul` (デフォルト) - [タイムゾーンリスト](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)を参照 | #### `messages` `messages`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `countryCode` | String | Optional | 国コード - `82` (デフォルト) - [国際 SMS送信国リスト](https://guide.ncloud-docs.com/docs/ja/sens-smspolicy)を参照 | | `to` | String | Required | 受信番号 - 数字のみ入力可能 | | `headerContent` | String | Optional | ヘッダ(件名) - 最大20文字 - 改行不可 | | `content` | String | Optional | 内容 - 最大76文字 - 改行は最大5回 | | `video` | Object | Required | 動画情報 | | `video.thumbnailId` | String | Required | 動画サムネイル用画像 ID - 最大500文字 | | `video.videoUrl` | String | Required | カカオ TV動画 URL - 最大500文字 - カカオ TVにアップロードされた動画のみ使用可能 | | `buttons` | Array | Optional | ボタン情報: [buttons](/docs/ja/sens-brandmessage-send#buttons7) - 最大1個 | | `coupon` | Object | Optional | クーポン情報 - 最大1個 | | `coupon.title` | String | Required | クーポンの件名 - 次の5つの形式のみ使用可能 - `${1~99,999,999以下の数字}ウォン割引クーポン` - `${1~100の数字}%割引クーポン` - `送料割引クーポン` - `${7文字以内}無料クーポン` - `${7文字以内} UPクーポン` | | `coupon.description` | String | Required | クーポンの説明 - 最大12文字 - 改行不可 | | `coupon.linkMobile` | String | Conditional | モバイルウェブリンク - 最大1,000文字 - ウェブ URL入力時、残りのフィールドは任意 | | `coupon.linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `coupon.schemeAndroid` | String | Conditional | Androidアプリリンク - 最大1,000文字 - チャンネルクーポン URL(形式: alimtalk=coupon://)入力時、残りのフィールドは任意 | | `coupon.schemeIos` | String | Conditional | iOSアプリリンク - 最大1,000文字 - チャンネルクーポン URL(形式: alimtalk=coupon://)入力時、残りのフィールドは任意 | | `useSmsFailover` | Boolean | Optional | SMS代替送信を使用するかどうか - `true` \| `false` - `true`: 使用 - `false`: 使用しない - デフォルト: カカオトークチャンネルの設定に準拠 - 代替送信が設定されたカカオトークチャンネルでのみ使用可能 | | `failoverConfig` | Object | Optional | 代替送信設定 | | `failoverConfig.type` | String | Optional | メッセージのタイプ - `SMS` \| `LMS` - `SMS`: SMSメッセージ - `LMS`: LMSメッセージ - 未入力時、メッセージ内容の長さに応じて自動適用 - 90bytes以下: SMS - 90bytes超過: LMS | | `failoverConfig.from` | String | Optional | 送信番号 - コンソールを通じて登録された番号のみ使用可能 | | `failoverConfig.subject` | String | Optional | メッセージの件名 - 未入力時、チャンネル名を適用 - LMSでのみ使用可能 | | `failoverConfig.content` | String | Optional | メッセージの内容 - 未入力時、`content`を適用 | #### `buttons` `buttons`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `type` | Array | Required | [ボタンタイプ](/docs/ja/sens-brandmessage-send#%EB%B2%84%ED%8A%BC%EC%9C%A0%ED%98%95)情報 | | `name` | String | Required | ボタン名 - 最大8文字 | | `linkMobile` | String | Conditional | モバイルウェブリンク - 最大1,000文字 - `type`が`WL`の場合、必ず入力 | | `linkPc` | String | Optional | PCウェブリンク - 最大1,000文字 | | `schemeIos` | String | Conditional | iOSアプリリンク - 最大1,000文字 - `type`が`AL`の場合、必ず入力 | | `schemeAndroid` | String | Conditional | Androidアプリリンク - 最大1,000文字 - `type`が`AL`の場合、必ず入力 | | `bizFormId` | String | Optional | ビジネスフォーム ID | #### リクエスト例 リクエストのサンプルコードは次の通りです。 ``` 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":"お祝いカード", "content":"お祝いカード", "video": { "thumbnailId":"7b8101c8-****-****-****-ad384cb8e215", "videoUrl":"https://tv.kakao.com/v/********" }, "buttons":[ { "type":"WL", "name":"公式サイト", "linkMobile":"https://******.com/ko/" } ], "coupon": { "title":"お祝いカード10%割引", "description":"お祝いカード10%割引イベント", "linkMobile":"https://******.com/ko/" } } ] }' ``` ### レスポンス レスポンス形式を説明します。 #### レスポンスボディ レスポンスボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `requestId` | String | - | リクエスト ID | | `requestTime` | DateTime | - | リクエスト日時 - YYYY-MM-DDTHH:mm:ss.sss形式 | | `statusCode` | String | - | リクエストの状態コード - `202`: 成功 - その他: 失敗 - HTTP Status規格に準拠 | | `statusName` | String | - | 状態 - `success` \| `processing` \| `fail` - `success`: 成功 - `processing`: 処理中 - `fail`: 失敗 | | `messages` | Array | - | [メッセージ](/docs/ja/sens-brandmessage-send#messages1)情報 | #### レスポンスステータスコード Simple & Easy Notification Service APIで共通して使用されるレスポンスステータスコードの詳細は、[Simple & Easy Notification Serviceのレスポンスステータスコード](/docs/ja/sens-overview#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)をご参照ください。 #### レスポンス例 レスポンスのサンプルコードは次の通りです。 ``` { "requestId": "RBBA-*************-****-********-dDYJgYGe", "requestTime": "2025-12-02T17:18:16.512", "statusCode": "202", "statusName": "processing", "messages": [ { "messageId": "9c5063e5-****-****-****-fd10d1aab9c4", "countryCode": "82", "to": "010********", "content": "お祝いカード", "requestStatusCode": "A000", "requestStatusName": "success", "requestStatusDesc": "成功", "useSmsFailover": false } ] } ``` ## テンプレート(基本型)メッセージ ブランドメッセージテンプレート(基本型)でメッセージを送信します。 ### リクエスト リクエスト形式を説明します。リクエスト形式は次の通りです。 | メソッド | URI | | --- | --- | | POST | /brandmessage/v2/services/{serviceId}/messages | #### リクエストヘッダ Simple & Easy Notification Service APIで共通して使用されるヘッダの詳細は、[Simple & Easy Notification Serviceのリクエストヘッダ](/docs/ja/sens-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)をご参照ください。 #### リクエストパスパラメータ リクエストパスパラメータの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `serviceId` | String | Required | Biz Messageサービス ID - [プロジェクトリストの照会](/docs/ja/sens-project-list)を参照 | #### リクエストボディ リクエストボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `plusFriendId` | String | Required | チャンネル ID - NAVERクラウドプラットフォームコンソールの **Simple & Easy Notification Service** > **Biz MessageBrand** > **KakaoTalk Channel**で確認 | | `messageType` | String | Required | メッセージタイプ - `TEXT` \| `IMAGE` \| `WIDE_IMAGE` \| `WIDE_ITEM_LIST` \| `COMMERCE` \| `CAROUSEL_COMMERCE` \| `CAROUSEL_FEED` \| `PREMIUM_VIDEO` - `TEXT`: テキスト - `IMAGE`: 画像型 - `WIDE_IMAGE`: ワイド画像型 - `WIDE_ITEM_LIST`: ワイドリスト型 - `COMMERCE`: コマース型 - `CAROUSEL_COMMERCE`: カルーセルコマース型 - `CAROUSEL_FEED`: カルーセルフィード型 - `PREMIUM_VIDEO`: プレミアム動画型 | | `templateCode` | String | Required | メッセージテンプレートコード - NAVERクラウドプラットフォームコンソールの **Simple & Easy Notification Service** > **Biz MessageBrand** > **Message Template**で確認 | | `targeting` | String | Optional | ターゲティングコード - `M` \| `N` \| `I` (デフォルト) - `M`: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意) - `N`: 顧客の情報提供型広告の受信に同意したユーザー(カカオトーク受信同意)のうち、当該チャンネルの友達を除く - `I`: 情報提供型広告の受信に同意したユーザー(カカオトーク受信同意)であり、なおかつ当該チャンネルの友達 | | `messages` | Array | Required | [メッセージ](/docs/ja/sens-brandmessage-send#messages9)情報 | | `reserveTime` | String | Optional | 予約日時 - YYYY-MM-DD HH:mm形式 - 予約送信する場合、入力 | | `reserveTimeZone` | String | Optional | 予約タイムゾーン - `Asia/Seoul` (デフォルト) - [タイムゾーンリスト](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)を参照 | #### `messages` `messages`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `countryCode` | String | Optional | 国コード - `82` (デフォルト) - [国際 SMS送信国リスト](https://guide.ncloud-docs.com/docs/ja/sens-smspolicy)を参照 | | `to` | String | Required | 受信番号 - 数字のみ入力可能 | | `templateParameters` | Object | Required | テンプレートパラメータ - テンプレート変数を含める場合、必ず入力 - 例) テンプレート変数名が`#{割引金額}`で、値が`10000`の場合、`"templateParameters": {"割引金額": "10000"}` | | `useSmsFailover` | Boolean | Optional | SMS代替送信を使用するかどうか - `true` \| `false` - `true`: 使用 - `false`: 使用しない - デフォルト: カカオトークチャンネルの設定に準拠 - 代替送信が設定されたカカオトークチャンネルでのみ使用可能 | | `failoverConfig` | Object | Optional | 代替送信設定 | | `failoverConfig.type` | String | Optional | メッセージのタイプ - `SMS` \| `LMS` - `SMS`: SMSメッセージ - `LMS`: LMSメッセージ - 未入力時、メッセージ内容の長さに応じて自動適用 - 90bytes以下: SMS - 90bytes超過: LMS | | `failoverConfig.from` | String | Optional | 送信番号 - コンソールを通じて登録された番号のみ使用可能 | | `failoverConfig.subject` | String | Optional | メッセージの件名 - 未入力時、チャンネル名を適用 - LMSでのみ使用可能 | | `failoverConfig.content` | String | Optional | メッセージの内容 - 未入力時、`content`を適用 | #### リクエスト例 リクエストのサンプルコードは次の通りです。 ``` 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": { "名前": "ホンギルドン", "割引金額": "10000" } } ] }' ``` ### レスポンス レスポンス形式を説明します。 #### レスポンスボディ レスポンスボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `requestId` | String | - | リクエスト ID | | `requestTime` | DateTime | - | リクエスト日時 - YYYY-MM-DDTHH:mm:ss.sss形式 | | `statusCode` | String | - | リクエストの状態コード - `202`: 成功 - その他: 失敗 - HTTP Status規格に準拠 | | `statusName` | String | - | 状態 - `success` \| `processing` \| `fail` - `success`: 成功 - `processing`: 処理中 - `fail`: 失敗 | | `messages` | Array | - | [メッセージ](/docs/ja/sens-brandmessage-send#messages1)情報 | #### レスポンスステータスコード Simple & Easy Notification Service APIで共通して使用されるレスポンスステータスコードの詳細は、[Simple & Easy Notification Serviceのレスポンスステータスコード](/docs/ja/sens-overview#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)をご参照ください。 #### レスポンス例 レスポンスのサンプルコードは次の通りです。 ``` { "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": "成功", "useSmsFailover": false } ] } ```