We are making changes to the WhatsApp Business Platform pricing model. See Pricing Updates on the WhatsApp Business Platform.
/PHONE_NUMBER_ID/messages
エンドポイントを使って、テキストメッセージ、メディアメッセージ、連絡先メッセージ、位置情報メッセージ、インタラクティブメッセージ、ならびにメッセージテンプレートをカスタマーに送信します。送信できるメッセージについて詳しくは、こちらをご覧ください。
エンドポイント | 認証 |
---|---|
(電話番号IDの取得をご覧ください) | Developers can authenticate their API calls with the access token generated in the App Dashboard > WhatsApp > API Setup.
Solution Partners must authenticate themselves with an access token with the |
メッセージは固有のID(WAMID)によって識別されます。WAMIDでWebhooksのメッセージステータスを追跡できます。受信メッセージをメッセージエンドポイントで既読にすることもできます。このWAMIDでは最大128文字まで使用することができます。
クラウドAPIによって、電話番号にWhatsApp IDがあるかどうかを明示的に確認する手段はなくなりました。クラウドAPIを使ってメッセージを送信する場合は、お客様の電話番号に直接送信するだけです。ただしそれは、お客様が事前にオプトインしていることが条件です。その例については、リファレンス、メッセージをご覧ください。
メッセージを送信するには、まず送信する内容を含むメッセージオブジェクトを編成する必要があります。message
オブジェクトで使用されるパラメーターです。
名前 | 説明(指定できるオプションについては、左側の列の矢印をクリックしてください。) |
---|---|
|
オーディオを含む |
| 任意。 トラッキングに便利な任意の文字列。 例えば、このフィールドにメッセージテンプレートIDを渡して、最初に顧客に送信したメッセージから始まるカスタマージャーニーを追跡できます。その後、様々なメッセージテンプレートタイプのROIを追跡して、最も効果的なタイプを決定できます。 WhatsApp Business Accountの クラウドAPIはこのフィールドを処理するのではなく、送信/配信/読み取りメッセージWebhookの一部として返します。 最大512文字。 クラウドAPIのみ。 |
|
|
| 会話中のいずれかのメッセージに返信する場合、必須。 返信先の以前のメッセージのIDを含むオブジェクト。以下はその例です。
クラウドAPIのみ。 |
|
ドキュメントを含む |
|
オンプレミスAPIのみ。 |
|
画像を含む |
|
|
|
|
| 必須 リクエストに使用されたメッセージサービス。 クラウドAPIのみ。 |
|
テキストメッセージでURLのプレビューを許可 — テキストメッセージでURLを送信するをご覧ください。メッセージにURLを含めない場合は、このフィールドは任意です。値: オンプレミスAPIのみ。クラウドAPIユーザーは、テキストオブジェクト内の |
| 任意。 現在、個人にしかメッセージを送信できません。これは デフォルト: |
| メッセージのステータス。このフィールドを使用してメッセージを
|
|
スタンプを含む クラウドAPI: あらゆる種類のインバウンドスタンプに加えて、静的およびアニメーション付きサードパーティアウトバウンドスタンプに対応しています。静的スタンプは512x512ピクセルである必要があり、100 KBを超えることはできません。アニメーション付きスタンプは512x512ピクセルである必要があり、500 KBを超えることはできません。 オンプレミスAPI: あらゆる種類のインバウンドスタンプに加えて、静的なサードパーティアウトバウンドスタンプのみに対応しています。静的スタンプは512x512ピクセルである必要があり、100 KBを超えることはできません。アニメーション付きスタンプはサポートされていません。 |
|
|
| テキストメッセージに必要。 |
| 必須。 メッセージを送信したい顧客のWhatsApp IDまたは電話番号。電話番号のフォーマットをご覧ください。 必要に応じて、オンプレミスAPIユーザーは、 |
| 任意。 送りたいメッセージのタイプ。省略すると、デフォルトで |
以下のオブジェクトがメッセージオブジェクト内にネストされています。
Name | Description |
---|---|
| Optional. Full contact address(es) formatted as an
|
| Optional.
|
| Optional. Contact email address(es) formatted as an
|
| Required. Full contact name formatted as a
*At least one of the optional parameters needs to be included along with the |
| Optional. Contact organization information formatted as an
|
| Optional. Contact phone number(s) formatted as a
|
| Optional. Contact URL(s) formatted as a
|
名前 | 説明 |
---|---|
| 必須。 メッセージを読んだ後にユーザーに実行してほしいアクション。 |
| タイプが メッセージ本文を持つオブジェクト。
|
| 任意。メッセージのフッターを持つオブジェクト。
|
| タイプが メッセージ上部に表示されるヘッダーの内容。インタラクティブオブジェクトのタイプが |
| 必須。 送信するインタラクティブメッセージのタイプ。使用できる値は次のとおりです。
|
以下のオブジェクトがinteractive
オブジェクト内にネストされています。
名前 | 説明 |
---|---|
| リストメッセージの場合に必須。 ボタンの内容。これを空の文字列にすることはできません。また、メッセージ内で固有でなければなりません。絵文字がサポートされています。マークダウンはサポートされていません。 最大長: 20文字。 |
| 返信ボタンの場合に必須。 ボタンオブジェクトには、以下のパラメーターを含めることができます。
ボタンは3つまでです。IDを設定する際、先頭または末尾のスペースは使用できません。 |
| 単一商品メッセージと複数商品メッセージの場合に必須。 自分のWhatsApp BusinessアカウントにリンクされているFacebookカタログの固有ID。このIDはMetaコマースマネージャで取得できます。 |
| 単一商品メッセージと複数商品メッセージの場合に必須。 カタログの商品の一意のID。 このIDを取得するには、Metaコマースマネージャに移動し、Metaビジネスアカウントを選択してください。アカウントに関連付けられているショップのリストが表示されます。使用するショップをクリックします。左側のパネルで、[カタログ] > [アイテム]をクリックし、メンションしたいアイテムを見つけます。そのアイテムのIDが、アイテム名の下に表示されています。 |
| リストメッセージと複数商品メッセージの場合に必須。
|
| Flowsメッセージの場合に任意。 Flowの現在のモードは、 デフォルト: |
| Flowsメッセージの場合に必須。
|
| Flowsメッセージの場合に必須。 識別子として機能するようビジネスによって生成されるトークン。 |
| Flowsメッセージの場合に必須。 WhatsAppが提供するFlowの一意の識別子。 |
| Flowsメッセージの場合に必須。 CTAボタンのテキストの例「登録」 最大文字: 20文字(絵文字なし)。 |
| Flowsメッセージの場合に任意。
デフォルト: |
| Flowsメッセージの場合に任意。
|
名前 | 説明 |
---|---|
|
そのドキュメントのメディアオブジェクトが入ります。 |
|
その画像のメディアオブジェクトが入ります。 |
|
ヘッダーのテキスト。書式設定で絵文字は使用できますが、マークダウンは使用できません。 最大長: 60文字。 |
| 任意。 ヘッダーのテキスト。書式設定で絵文字は使用できますが、マークダウンは使用できません。 最大長: 60文字。 |
| 必須。 使用するヘッダーのタイプ。使用できる値は次のとおりです。
|
|
その動画のメディアオブジェクトが入ります。 |
名前 | 説明 |
---|---|
| 複数商品メッセージの場合に必須。
各
|
| リストメッセージの場合に必須。 行のリストが入ります。セクション全体に合計10行を含めることができます。 各行にはタイトル(最大長: 24文字)とID(最大長: 200文字)が必要です。説明(最大長: 72文字)を追加することができますが、これは任意です。 例: "rows": [ { "id":"unique-row-identifier-here", "title": "row-title-content-here", "description": "row-description-content-here", } ] |
| メッセージに複数のセクションがある場合に必須。 セクションのタイトル。 最大長: 24文字。 |
Name | Description |
---|---|
| Required. Location latitude in decimal degrees. |
| Required. Location longitude in decimal degrees. |
| Required. Name of the location. |
| Required. Address of the location. |
メディアオブジェクトのIDを取得する方法については、メディアIDを取得をご覧ください。クラウドAPIのサポートされるメディアタイプについては、サポートされるメディアタイプをご覧ください。
Name | Description |
---|---|
| Required when The media object ID. Do not use this field when message |
| Required when The protocol and URL of the media to be sent. Use only with HTTP/HTTPS URLs. Do not use this field when message Cloud API users only:
|
| Optional. Media asset caption. Do not use with On-Premises API users:
|
| Optional. Describes the filename for the specific document. Use only with The extension of the filename will specify what format the document is displayed as in WhatsApp. |
| Optional. On-Premises API only. This path is optionally used with a |
名前 | 説明 |
---|---|
| 必須。 テンプレートのネームスペース。
|
| 必須。 テンプレートの名前。 |
| 必須。 テンプレートがレンダリングされる言語を指定します。メディアテンプレートメッセージでは、 |
| 任意。 メッセージのパラメーターを含む配列。 |
以下のオブジェクトがtemplate
オブジェクト内にネストされています。
名前 | 説明 (指定できるオプションについては、左側の列の矢印をクリックしてください。) |
---|---|
| 必須。 ボタンのパラメーターの型を示します。 |
|
ボタンがクリックされると、ボタンの表示テキストに加えて返される、開発者が定義したペイロード。 例については、クイック返信ボタンのクリックによるコールバックをご覧ください。 |
| URLボタンの場合に必須。 テンプレート内の事前定義済みのプレフィックスURLに追加される、開発者が提供するサフィックス。 |
名前 | 説明 |
---|---|
| 必須。
|
| 任意。 メッセージのコンテンツを含む配列。 |
名前 | 説明 |
---|---|
| 必須。 ローカライズが失敗した場合のデフォルトテキスト。 |
| 必須。
|
| 必須。 金額に1000を掛けた値。 |
名前 | 説明 |
---|---|
| 必須。 デフォルトのテキスト。クラウドAPIの場合は、常にフォールバック値を使用し、他のオプションのフィールドを使用してローカライズしようとはしません。 |
名前 | 説明 |
---|---|
| 必須。 パラメーターの型を説明します。使用できる値は次のとおりです。
テキストベースのテンプレートでは、サポートされるパラメーターの型は |
|
メッセージのテキスト。文字数制限は、含まれる以下のコンポーネントの型によって異なります。
|
|
|
|
|
|
|
|
|
|
|
名前 | 説明 |
---|---|
| テキストメッセージの場合に必須。 http://またはhttps://で始まるURLとフォーマットを含めることができるテキストメッセージのテキスト。利用可能なフォーマットオプションについては、こちらをご覧ください。 テキストにURLを含めて、テキストメッセージ( 最大文字: 4096文字 |
| 任意。クラウドAPIのみ。
オンプレミスAPIユーザーは、代わりにトップレベルのメッセージペイロードで |
名前 | 説明 |
---|---|
| 必須。 リアクションが表示されるメッセージのWhatsAppメッセージID(wamid)。次の場合、リアクションは送信されません:
削除されたメッセージのIDの場合、メッセージは配信されません。 |
| 必須。 メッセージに表示される絵文字
|
/messages
エンドポイントを使用してメッセージを送信する方法についての完全な情報については、次のガイドを参照してください。
curl -X POST \
'https://graph.facebook.com/v21.0
/FROM_PHONE_NUMBER_ID/messages' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '
{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "PHONE_NUMBER",
"type": "text",
"text": { // the text object
"preview_url": false,
"body": "MESSAGE_CONTENT"
}
}'
curl -X POST \
'https://graph.facebook.com/v21.0
/FROM_PHONE_NUMBER_ID/messages' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "PHONE_NUMBER",
"type": "reaction",
"reaction": {
"message_id": "wamid.HBgLM...",
"emoji": "\uD83D\uDE00"
}
}'
curl -X POST \
'https://graph.facebook.com/v21.0
/FROM-PHONE-NUMBER-ID/messages' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "PHONE-NUMBER",
"type": "image",
"image": {
"id" : "MEDIA-OBJECT-ID"
}
}'
curl -X POST \
'https://graph.facebook.com/v21.0
/FROM_PHONE_NUMBER_ID/messages' \
-H 'Authorization: ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"messaging_product": "whatsapp",
"to": "PHONE_NUMBER",
"type": "location",
"location": {
"longitude": LONG_NUMBER,
"latitude": LAT_NUMBER,
"name": LOCATION_NAME,
"address": LOCATION_ADDRESS
}
}'
curl -X POST \
'https://graph.facebook.com/v21.0
/FROM_PHONE_NUMBER_ID/messages' \
-H 'Authorization: ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"messaging_product": "whatsapp",
"to": "PHONE_NUMBER",
"type": "contacts",
"contacts": [{
"addresses": [{
"street": "STREET",
"city": "CITY",
"state": "STATE",
"zip": "ZIP",
"country": "COUNTRY",
"country_code": "COUNTRY_CODE",
"type": "HOME"
},
{
"street": "STREET",
"city": "CITY",
"state": "STATE",
"zip": "ZIP",
"country": "COUNTRY",
"country_code": "COUNTRY_CODE",
"type": "WORK"
}],
"birthday": "YEAR_MONTH_DAY",
"emails": [{
"email": "EMAIL",
"type": "WORK"
},
{
"email": "EMAIL",
"type": "HOME"
}],
"name": {
"formatted_name": "NAME",
"first_name": "FIRST_NAME",
"last_name": "LAST_NAME",
"middle_name": "MIDDLE_NAME",
"suffix": "SUFFIX",
"prefix": "PREFIX"
},
"org": {
"company": "COMPANY",
"department": "DEPARTMENT",
"title": "TITLE"
},
"phones": [{
"phone": "PHONE_NUMBER",
"type": "HOME"
},
{
"phone": "PHONE_NUMBER",
"type": "WORK",
"wa_id": "PHONE_OR_WA_ID"
}],
"urls": [{
"url": "URL",
"type": "WORK"
},
{
"url": "URL",
"type": "HOME"
}]
}]
}'
curl -X POST \
'https://graph.facebook.com/v21.0
/FROM_PHONE_NUMBER/messages' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "PHONE_NUMBER",
"type": "interactive",
"interactive": {
"type": "product",
"body": {
"text": "optional body text"
},
"footer": {
"text": "optional footer text"
},
"action": {
"catalog_id": "CATALOG_ID",
"product_retailer_id": "ID_TEST_ITEM_1"
}
}
}'
curl -X POST \
'https://graph.facebook.com/v21.0
/FROM_PHONE_NUMBER/messages' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "PHONE_NUMBER",
"type": "interactive",
"interactive": {
"type": "product_list",
"header":{
"type": "text",
"text": "header-content"
},
"body": {
"text": "body-content"
},
"footer": {
"text": "footer-content"
},
"action": {
"catalog_id": "CATALOG_ID",
"sections": [
{
"title": "section-title",
"product_items": [
{ "product_retailer_id": "product-SKU-in-catalog" },
{ "product_retailer_id": "product-SKU-in-catalog" },
...
]
},
{
"title": "section-title",
"product_items": [
{ "product_retailer_id": "product-SKU-in-catalog" },
{ "product_retailer_id": "product-SKU-in-catalog" },
...
]
}
]
}
}
}
curl -X POST \
'https://graph.facebook.com/v21.0
/FROM_PHONE_NUMBER/messages' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "PHONE_NUMBER",
"type": "interactive",
"interactive" : {
"type" : "catalog_message",
"body" : {
"text": "Thanks for your order! Tell us what address you’d like this order delivered to."
},
"action": {
"name": "catalog_message",
"parameters": {
"thumbnail_product_retailer_id": "<Product-retailer-id>"
}
}
}
}'
curl -X POST \
'https://graph.facebook.com/v21.0
/FROM_PHONE_NUMBER/messages' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "PHONE_NUMBER",
"type": "interactive",
"interactive" : {
"type": "flow",
"header": {
"type": "text",
"text": "Flow message header"
},
"body": {
"text": "Flow message body"
},
"footer": {
"text": "Flow message footer"
},
"action": {
"name": "flow",
"parameters": {
"flow_message_version": "3",
"flow_token": "AQAAAAACS5FpgQ_cAAAAAD0QI3s",
"flow_id": "<FLOW_ID>",
"flow_cta": "Book!",
"flow_action": "navigate",
"flow_action_payload": {
"screen": "<SCREEN_ID>",
"data": {
"user_name": "name",
"user_age": 25
}
}
}
}
}
}'
curl -X POST \
'https://graph.facebook.com/v21.0
/FROM_PHONE_NUMBER_ID/messages' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "PHONE_NUMBER",
"type": "interactive",
"interactive": {
"type": "list",
"header": {
"type": "text",
"text": "HEADER_TEXT"
},
"body": {
"text": "BODY_TEXT"
},
"footer": {
"text": "FOOTER_TEXT"
},
"action": {
"button": "BUTTON_TEXT",
"sections": [
{
"title": "SECTION_1_TITLE",
"rows": [
{
"id": "SECTION_1_ROW_1_ID",
"title": "SECTION_1_ROW_1_TITLE",
"description": "SECTION_1_ROW_1_DESCRIPTION"
},
{
"id": "SECTION_1_ROW_2_ID",
"title": "SECTION_1_ROW_2_TITLE",
"description": "SECTION_1_ROW_2_DESCRIPTION"
}
]
},
{
"title": "SECTION_2_TITLE",
"rows": [
{
"id": "SECTION_2_ROW_1_ID",
"title": "SECTION_2_ROW_1_TITLE",
"description": "SECTION_2_ROW_1_DESCRIPTION"
},
{
"id": "SECTION_2_ROW_2_ID",
"title": "SECTION_2_ROW_2_TITLE",
"description": "SECTION_2_ROW_2_DESCRIPTION"
}
]
}
]
}
}
}'
curl -X POST \
'https://graph.facebook.com/v21.0
/FROM_PHONE_NUMBER_ID/messages' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "PHONE_NUMBER",
"type": "interactive",
"interactive": {
"type": "button",
"body": {
"text": "BUTTON_TEXT"
},
"action": {
"buttons": [
{
"type": "reply",
"reply": {
"id": "UNIQUE_BUTTON_ID_1",
"title": "BUTTON_TITLE_1"
}
},
{
"type": "reply",
"reply": {
"id": "UNIQUE_BUTTON_ID_2",
"title": "BUTTON_TITLE_2"
}
}
]
}
}
}'
curl -X POST \
'https://graph.facebook.com/v21.0
/FROM_PHONE_NUMBER_ID/messages' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "PHONE_NUMBER",
"type": "interactive",
"interactive": {
"type": "form_message",
"header": {
"type": "text",
"text": "Rate your experience?",
"sub_text": "Select star to rate your experience"
},
"parameters": {
"version": "1",
"layout": [
{
"type": "Rating",
"rating_type": "STAR_RATING",
"id": "rating-id-1"
}
]
},
"action": {
"name": "form_message"
}
}
}'
curl -X POST \
'https://graph.facebook.com/v21.0
/FROM_PHONE_NUMBER_ID/messages' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "PHONE_NUMBER",
"type": "template",
"template": {
"name": "TEMPLATE_NAME",
"language": {
"code": "LANGUAGE_AND_LOCALE_CODE"
},
"components": [
{
"type": "header",
"parameters": [
{
"type": "image",
"image": {
"link": "http(s)://URL"
}
}
]
},
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "TEXT_STRING"
},
{
"type": "currency",
"currency": {
"fallback_value": "VALUE",
"code": "USD",
"amount_1000": NUMBER
}
},
{
"type": "date_time",
"date_time": {
"fallback_value": "MONTH DAY, YEAR"
}
}
]
},
{
"type": "button",
"sub_type": "quick_reply",
"index": "0",
"parameters": [
{
"type": "payload",
"payload": "PAYLOAD"
}
]
},
{
"type": "button",
"sub_type": "quick_reply",
"index": "1",
"parameters": [
{
"type": "payload",
"payload": "PAYLOAD"
}
]
}
]
}
}'
curl -X POST \
'https://graph.facebook.com/v21.0
/FROM_PHONE_NUMBER/messages' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"messaging_product": "whatsapp",
"context": {
"message_id": "MESSAGE_ID"
},
"to": "PHONE_NUMBER",
"type": "text",
"text": {
"preview_url": false,
"body": "your-text-message-content"
}
}’
{ "messaging_product": "whatsapp", "contacts": [ { "input": "16505555555", "wa_id": "16505555555" } ], "messages": [ { "id": "wamid.HBgLMTY1MDUwNzY1MjAVAgARGBI5QTNDQTVCM0Q0Q0Q2RTY3RTcA" } ] }
Applies to businesses in Brazil, Colombia, and Singapore, starting September 12, 2023. Applies to all businesses starting October 12, 2023.
Messages will have one of the following statuses which will be returned in each of the messages
objects
"message_status":"accepted"
: means the message was sent to the intended recipient"message_status":"held_for_quality_assessment"
: means the message send was delayed until quality can be validated and it will either be sent or dropped at this point{ "messaging_product": "whatsapp", "contacts": [ { "input": "16505555555", "wa_id": "16505555555" } ], "messages": [ { "id": "wamid.HBgLMTY1MDUwNzY1MjAVAgARGBI5QTNDQTVCM0Q0Q0Q2RTY3RTcA", "message_status": "accepted", } ] }