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)로 식별됩니다. 메시지 상태는 Webhooks에서 WAMID를 통해 추적할 수 있습니다. 수신되는 메시지는 메시지 엔드포인트를 통해 읽음으로 표시할 수도 있습니다. 이 WAMID의 최대 길이는 128자입니다.
클라우드 API를 사용하는 경우 전화번호에 WhatsApp ID가 있는지 명시적으로 확인할 방법을 더 이상 제공하지 않습니다. 클라우드 API를 사용하여 누군가에게 메시지를 보내려면 고객이 옵트인한 후 고객의 전화번호로 직접 메시지를 전송하면 됩니다. 관련 예시는 참고 자료, 메시지를 참조하세요.
메시지를 전송하려면 먼저 전송하고자 하는 콘텐츠로 메시지 개체를 구성해야 합니다. message
개체에서 사용한 매개변수는 다음과 같습니다.
이름 | 설명 (왼쪽 열의 화살표를 클릭하여 지원되는 옵션을 확인하세요.) |
---|---|
|
오디오를 포함하는 |
| 선택 사항. 임의의 문자열이며, 추적에 사용합니다. 예를 들어 이 필드에 메시지 템플릿 ID를 전달하여 비즈니스가 전송한 첫 메시지부터 고객의 여정을 추적할 수 있습니다. 그런 다음, 다양한 메시지 템플릿 유형의 ROI를 추적하여 가장 효과적인 템플릿을 확인할 수 있습니다. 이 문자열은 Webhooks 페이로드 내의 클라우드 API는 이 필드를 처리하지 않고 메시지 전송됨/전달됨/읽음 Webhooks에서 반환합니다. 최대 512자입니다. 클라우드 API 전용. |
|
|
| 대화 중 메시지에 답장하는 경우 필수 항목. 답장하려는 이전 메시지의 ID를 포함하는 개체. 예를 들면 다음과 같습니다.
클라우드 API 전용. |
|
문서를 포함하는 |
|
온프레미스 API 전용. |
|
이미지를 포함하는 |
|
|
|
|
| 필수 항목. 요청에 사용된 메시지 서비스. 클라우드 API 전용. |
|
문자 메시지에서 URL 미리 보기 허용 — 문자 메시지에서 URL 전송을 참조하세요. 메시지에 URL을 포함하지 않는 경우 이 필드는 선택 사항입니다. 값: 온프레미스 API 전용. 클라우드 API 사용자는 텍스트 개체 내의 |
| 선택 사항. 현재는 개인에게만 메시지를 보낼 수 있습니다. 이 필드를 기본값: |
| 메시지 상태. 이 필드를 사용하여 메시지를
|
|
스티커를 포함하는 클라우드 API: 모든 유형의 인바운드 스티커 외에 고정 및 애니메이션 타사 아웃바운드 스티커도 지원됩니다. 고정 스티커는 512x512픽셀이어야 하고 100KB를 초과할 수 없습니다. 애니메이션 스티커는 512x512픽셀이어야 하고 500KB를 초과할 수 없습니다. 온프레미스 API: 모든 유형의 인바운드 스티커 외에 고정 타사 아웃바운드 스티커만 지원됩니다. 고정 스티커는 512x512픽셀이어야 하고 100KB를 초과할 수 없습니다. 애니메이션 스티커는 지원되지 않습니다. |
|
|
| 문자 메시지에 필수 항목. |
| 필수 항목. 메시지를 보낼 대상인 고객의 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는 Meta 커머스 관리자를 통해 가져올 수 있습니다. |
| 단일 제품 메시지와 다중 제품 메시지에 필수 항목. 카탈로그 내 제품의 고유 식별자입니다. 이 ID를 가져오려면 Meta 커머스 관리자로 이동하여 Meta Business 계정을 선택하세요. 계정에 연결된 Shop 리스트가 표시됩니다. 사용하고자 하는 Shop을 클릭합니다. 왼쪽 창에서 카탈로그 > 항목을 클릭하고 언급하고 싶은 항목을 찾습니다. 이 항목의 ID는 항목 이름에 표시됩니다. |
| 리스트 메시지와 다중 제품 메시지에 필수 항목.
|
| 플로 메시지에 선택 사항. 플로의 현재 모드입니다( 기본값: |
| 플로 메시지에 필수 항목.
|
| 플로 메시지에 필수 항목. 비즈니스가 식별자 역할을 하도록 생성한 토큰입니다. |
| 플로 메시지에 필수 항목. WhatsApp에서 제공한 플로의 고유 식별자입니다. |
| 플로 메시지에 필수 항목. CTA 버튼 텍스트입니다(예: '가입하기'). 최대 길이: 20자(이모티콘 불포함). |
| 플로 메시지에 선택 사항.
기본값: |
| 플로 메시지에 선택 사항.
|
이름 | 설명 |
---|---|
|
이 문서의 미디어 개체를 포함합니다. |
|
이 이미지의 미디어 개체를 포함합니다. |
|
헤더 텍스트입니다. 서식에서 이모티콘은 허용되지만 마크다운은 허용되지 않습니다. 최대 길이: 60자입니다. |
| 선택 사항. 헤더 텍스트입니다. 서식에서 이모티콘은 허용되지만 마크다운은 허용되지 않습니다. 최대 길이: 60자입니다. |
| 필수 항목. 사용하려는 헤더 유형입니다. 지원되는 값:
|
|
이 동영상의 미디어 개체를 포함합니다. |
이름 | 설명 |
---|---|
| 다중 제품 메시지에 필수 항목.
각
|
| 리스트 메시지에 필수 항목. 행 리스트를 포함합니다. 섹션 전체에 총 10개의 행을 둘 수 있습니다. 각 행에는 제목(최대 길이: 24자)과 ID(최대 길이: 200자)가 있어야 합니다. 설명(최대 길이: 72자)을 추가할 수도 있지만 이는 선택 사항. 예: "rows": [ { "id":"unique-row-identifier-here", "title": "row-title-content-here", "description": "row-description-content-here", } ] |
| 메시지에 섹션이 2개 이상인 경우 필수 항목. 섹션 제목입니다. 최대 길이: 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에 추가되는 개발자 제공 서픽스입니다. |
이름 | 설명 |
---|---|
| 필수 항목.
|
| 선택 사항. 메시지 콘텐츠가 포함된 배열입니다. |
이름 | 설명 |
---|---|
| 필수 항목. 현지화 실패 여부를 나타내는 기본 텍스트입니다. |
| 필수 항목.
|
| 필수 항목. 1,000을 곱한 금액입니다. |
이름 | 설명 |
---|---|
| 필수 항목. 기본 텍스트입니다. 클라우드 API에서는 언제나 폴백 값을 사용하며, 다른 선택 필드를 사용하여 현지화를 시도하지 않습니다. |
이름 | 설명 |
---|---|
| 필수 항목. 매개변수 유형을 설명합니다. 지원되는 값:
텍스트 기반 템플릿의 경우 |
|
메시지 텍스트입니다. 글자 수 제한은 다음과 같이 포함된 구성 요소 유형에 따라 달라집니다.
|
|
|
|
|
|
|
|
|
|
|
이름 | 설명 |
---|---|
| 문자 메시지에 필수 항목. http:// 또는 https://로 시작하는 URL과 서식을 포함할 수 있는 문자 메시지의 텍스트입니다. 사용 가능한 서식 옵션은 여기를 참조하세요. 텍스트에 URL을 포함하고 문자 메시지에 미리보기 상자( 최대 길이: 4,096자 |
| 선택 사항. 클라우드 API만 해당.
온프레미스 API 사용자는 대신 최상위 수준 메시지 페이로드에서 |
이름 | 설명 |
---|---|
| 필수 항목. 공감을 표시해야 하는 메시지의 WhatsApp 메시지 ID(wamid). 공감은 다음과 같은 경우에 전송되지 않습니다.
삭제된 메시지의 ID인 경우 해당 메시지는 전달되지 않습니다. |
| 필수 항목. 메시지에 표시할 이모티콘입니다.
|
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": "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", } ] }