We are making changes to the WhatsApp Business Platform pricing model. See Pricing Updates on the WhatsApp Business Platform.
Utilisez le point de terminaison /PHONE_NUMBER_ID/messages
pour envoyer du texte, du contenu multimédia, des contacts, des lieux, des messages interactifs, ainsi que des modèles de message à votre clientèle. En savoir plus sur les messages que vous pouvez envoyer.
Point de terminaison | Authentification |
---|---|
(Consultez la section Obtenir l’ID du numéro de téléphone) | 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 |
Les messages sont identifiés par un ID unique (WAMID). Vous pouvez suivre le statut des messages dans les webhooks grâce à leur WAMID. Vous pouvez également marquer un message entrant comme lu grâce au point de terminaison « messages ». Ce WAMID peut contenir jusqu’à 128 caractères.
Avec l’API Cloud, il n’est plus possible de vérifier de manière explicite si un numéro de téléphone possède un ID WhatsApp. Pour envoyer un message à un client ou une cliente avec l’API Cloud, envoyez-le directement au numéro de téléphone de cette personne après qu’elle a choisi de recevoir des messages. Pour des exemples, consultez la section Référence, Messages.
Pour envoyer un message, vous devez d’abord composer l’objet du message avec le contenu que vous souhaitez envoyer. Voici les paramètres que vous pouvez utiliser dans un objet message
:
Nom | Description (Cliquez sur la flèche de la colonne de gauche pour connaître les options prises en charge.) |
---|---|
| Obligatoire quand Objet |
| Facultatif. Chaîne de caractères arbitraire, utile pour le suivi. Par exemple, vous pouvez passer l’ID du modèle de message dans ce champ pour suivre le parcours du client ou de la cliente à partir du premier message que vous envoyez. Vous pouvez ensuite suivre le ROI de différents types de modèles de message pour déterminer le plus efficace. Les applications abonnées à ce champ de webhook L’API Cloud ne traite pas ce champ, elle le renvoie simplement dans le cadre des webhooks de messages envoyés/livrés/lus. 512 caractères maximum. API Cloud uniquement. |
| Obligatoire quand |
| Obligatoire en cas de réponse à un message de la conversation. Objet contenant l’ID d’un message précédent auquel vous répondez. Par exemple :
API Cloud uniquement. |
| Obligatoire quand Objet |
| Contient un objet API On-Premises uniquement. |
| Obligatoire quand Objet |
| Obligatoire quand Objet |
| Obligatoire quand |
| Obligatoire Service de messagerie utilisé pour la requête. Utilisez API Cloud uniquement. |
| Obligatoire si Autorise les aperçus d’URL dans les textos : voir Envoi d’URL dans les textos. Ce champ est facultatif si vous n’incluez pas d’URL dans votre message. Valeurs : API On-Premises uniquement. Les utilisateur·ices de l’API Cloud peuvent utiliser la même fonctionnalité avec le champ |
| Facultatif. Actuellement, vous pouvez uniquement envoyer des messages à des individus. Définissez ce paramètre sur Valeur par défaut : |
| Statut d’un message. Vous pouvez utiliser ce champ pour marquer un message comme
|
| Obligatoire quand Objet API Cloud : les stickers tiers statiques et animés sont pris en charge en plus de tous les types de stickers entrants. Un sticker statique doit être de 512 x 512 pixels et ne pas dépasser 100 Ko. Un sticker animé doit être de 512 x 512 pixels et ne pas dépasser 500 Ko. API On-Premises : seuls les stickers entrants tiers statiques sont pris en charge en plus de tous les types de stickers entrants. Un sticker statique doit être de 512 x 512 pixels et ne pas dépasser 100 Ko. Les stickers animés ne sont pas pris en charge. |
| Obligatoire quand |
| Obligatoire pour les textos. |
| Obligatoire. ID WhatsApp ou numéro de téléphone du client ou de la cliente à qui vous voulez envoyer un message. Voir Formats d’affichage des numéros de téléphone. Si nécessaire, les utilisateur·ices de l’API On-Premises peuvent obtenir ce numéro en appelant le point de terminaison |
| Facultatif. Type de message que vous souhaitez envoyer. Si vous ne l’avez pas défini, la valeur par défaut est |
Les objets suivants sont imbriqués à l’intérieur de l’objet « message » :
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
|
Nom | Description |
---|---|
| Obligatoire. Action que vous souhaitez que l’utilisateur ou l’utilisatrice réalise après avoir lu le message. |
| Facultatif pour le type Objet contenant le corps du message. L’objet
|
| Facultatif. Objet contenant le pied de page du message. L’objet
|
| Obligatoire pour le type Contenu de l’en-tête affiché en haut d’un message. Vous ne pouvez définir d’en-tête si votre objet « interactive » est de type |
| Obligatoire. Type du message interactif que vous souhaitez envoyer. Valeurs acceptées :
|
Les objets suivants sont imbriqués dans l’objet interactive
:
Nom | Description |
---|---|
| Obligatoire pour les messages liste. Contenu du bouton. Le champ ne doit pas être vide et la valeur doit être unique dans le message. Les emojis sont pris en charge, pas le format markdown. Longueur maximale : 20 caractères. |
| Obligatoire pour les messages contenant des boutons de réponse. Un objet « buttons » peut contenir les paramètres suivants :
Vous pouvez avoir jusqu’à 3 boutons. L’identifiant ne peut pas contenir d’espace au début ou à la fin. |
| Obligatoire pour les messages concernant un seul produit et les messages concernant plusieurs produits. Identifiant unique du catalogue Facebook associé à votre compte WhatsApp Business. Cet ID peut être récupéré via le Gestionnaire des ventes Meta. |
| Obligatoire pour les messages concernant un seul produit et les messages concernant plusieurs produits. Identifiant unique du produit dans un catalogue. Pour obtenir cet ID, allez dans le Gestionnaire des ventes Meta et sélectionnez votre compte business Meta. Vous verrez une liste des boutiques connectées à votre compte. Cliquez sur la boutique de votre choix. Dans le panneau de gauche, cliquez sur Catalogue > Éléments, et recherchez l’élément que vous voulez mentionner. L’ID de l’élément est indiqué sous son nom. |
| Obligatoire pour les messages de type liste et les messages concernant plusieurs produits. Tableau d’objets |
| Facultatif pour les messages Flows. Mode actuel du message Flows, Par défaut : |
| Obligatoire pour les messages Flows. Doit être |
| Obligatoire pour les messages Flows. Token généré par l’entreprise pour servir d’identifiant. |
| Obligatoire pour les messages Flows. Identifiant unique du parcours WhatsApp Flows. |
| Obligatoire pour les messages Flows. Texte sur le bouton CTA, comme « S’inscrire ». Longueur maximale : 20 caractères (emojis non pris en charge). |
| Facultatif pour les messages Flows.
Par défaut : |
| Facultatif pour les messages Flows. Obligatoire uniquement si
|
Nom | Description |
---|---|
| Obligatoire si le Contient l’objet « media » pour ce document. |
| Obligatoire si le Contient l’objet « media » pour cette image. |
| Obligatoire quand le Texte de l’en-tête. Emojis acceptés, format markdown refusé. Longueur maximale : 60 caractères. |
| Facultatif. Texte de l’en-tête. Emojis acceptés, format markdown refusé. Longueur maximale : 60 caractères. |
| Obligatoire. Type d’en-tête que vous souhaitez utiliser. Valeurs acceptées :
|
| Obligatoire si le Contient l’objet « media » pour cette vidéo. |
Nom | Description |
---|---|
| Obligatoire pour les messages concernant plusieurs produits. Tableau d’objets Chaque objet
|
| Obligatoire pour les messages liste. Contient une liste de lignes. Vos sections peuvent contenir jusqu’à 10 lignes. Chaque ligne doit comporter un titre (longueur maximale : 24 caractères) et un identifiant (longueur maximale : 200 caractères). Vous pouvez ajouter une description (longueur maximale : 72 caractères), mais elle est facultative. Exemple : "rows": [ { "id":"unique-row-identifier-here", "title": "row-title-content-here", "description": "row-description-content-here", } ] |
| Obligatoire si le message comporte plus d’une section. Titre de la section. Longueur maximale : 24 caractères |
Name | Description |
---|---|
| Required. Location latitude in decimal degrees. |
| Required. Location longitude in decimal degrees. |
| Required. Name of the location. |
| Required. Address of the location. |
Consultez la section Obtenir l’ID d’un contenu multimédia pour savoir comment obtenir l’ID d’un objet « media ». Pour en savoir plus sur les types de contenus multimédias pris en charge pour l’API Cloud, consultez Types de contenus multimédias pris en charge.
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 |
Nom | Description |
---|---|
| Obligatoire. Espace de nom du modèle. À partir de la |
| Obligatoire. Nom du modèle. |
| Obligatoire. Indique la langue dans laquelle le modèle peut s’afficher. Seule la politique en matière de langue |
| Facultatif. Tableau comportant les paramètres du message. |
Les objets suivants sont imbriqués dans l’objet template
:
Nom | Description (Cliquez sur la flèche de la colonne de gauche pour connaître les options prises en charge.) |
---|---|
| Obligatoire. Type de paramètre pour le bouton. |
| Obligatoire pour les boutons Charge utile définie par le développeur ou la développeuse qui est renvoyée lorsqu’une personne clique sur le bouton, en plus du texte affiché sur le bouton. Pour voir un exemple, consultez la section Rappel d’un clic sur un bouton de réponse rapide. |
| Obligatoire pour les boutons d’URL. Suffixe fourni par le développeur ou la développeuse qui est ajouté à l’URL du préfixe prédéfinie dans le modèle. |
Nom | Description |
---|---|
| Obligatoire. Décrit le type de |
| Facultatif. Tableau comportant le contenu du message. |
Nom | Description |
---|---|
| Obligatoire. Texte par défaut en cas d’échec de la localisation. |
| Obligatoire. Code de devise conforme à la norme |
| Obligatoire. Montant multiplié par 1 000. |
Nom | Description |
---|---|
| Obligatoire. Texte par défaut. Pour l’API Cloud, nous utilisons toujours cette valeur, et nous n’essayons pas de localiser la date et l’heure en utilisant d’autres champs facultatifs. |
Nom | Description |
---|---|
| Obligatoire. Décrit le type de paramètre. Valeurs acceptées :
Pour les modèles basés sur du texte, les seuls types de paramètres pris en charge sont |
| Obligatoire quand Texte du message. La limite de caractères varie selon le type de composant inclus, parmi les types ci-dessous. Pour le type de composant
Pour le type de composant
|
| Obligatoire quand Un objet |
| Obligatoire quand Un objet |
| Obligatoire quand Un objet |
| Obligatoire quand Un objet |
| Obligatoire quand Un objet |
Nom | Description |
---|---|
| Obligatoire pour les messages de type texte. Texte du message qui peut contenir des URL commençant par http:// ou https:// et des options de mise en page. Consultez cette page pour connaître les options de mise en page disponibles. Si votre texte contient des URL et que vous souhaitez intégrer un aperçu de la page de destination dans vos messages ( Longueur maximale : 4 096 caractères |
| Facultatif. API Cloud uniquement. Utilisez Si vous n’utilisez pas Dans l’API On-Premises, utilisez plutôt |
Nom | Description |
---|---|
| Obligatoire. ID WhatsApp (WAMID) du message sur lequel la réaction doit apparaître. La réaction ne sera pas envoyée dans les conditions suivantes :
Si l’ID correspond à un message qui a été supprimé, le message ne sera pas distribué. |
| Obligatoire. Emoji à afficher sur le message.
|
Consultez ces guides pour connaître les autres cas d’utilisation du point de terminaison /messages
pour envoyer des 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": "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", } ] }