logoDocumentation
Rechercher

WhatsApp Send Message API Documentation - EngageLab

Utilisez l'API de messagerie pour intégrer les fonctionnalités de messagerie de WhatsApp à vos systèmes d'entreprise.
Avant d'appeler l'API, connectez-vous à la console et créez une clé API sur la page dédiée.

Adresse d'appel

POST https://wa.api.engagelab.cc/v1/messages

Validation de l'appel

L'API REST EngageLab utilise l'authentification HTTP Basic comme méthode d'authentification, en ajoutant Authorization dans l'en-tête HTTP.

Authorization: Basic ${base64_auth_string}
              
              Authorization: Basic ${base64_auth_string}

            
Afficher ce bloc de code dans la fenêtre flottante

L'algorithme de génération du base64_auth_string est le suivant : base64(dev_key:dev_secret)

  • Le nom de l'en-tête est "Authorization" et la valeur est une paire "nom d'utilisateur:mot de passe" convertie en base64 (avec deux-points au milieu).
  • Dans le scénario de l'API WhatsApp, le nom d'utilisateur est DevKey et le mot de passe est DevSecret. Dans la console, allez dans gestion de la configuration - clé API pour obtenir la page.

Exemples de requêtes

En-tête de la requête

POST /v1/messages HTTP/1.1 Content-Type: application/json Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
              
              POST /v1/messages  HTTP/1.1 
Content-Type: application/json  
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0

            
Afficher ce bloc de code dans la fenêtre flottante

Corps de la requête

{ "from": "+8613800138000", "to": [ "00447911123456" ], "body": { "type": "template", "template": { "name": "code", "language": "zh_CN", "components": [ { "type": "body", "parameters": [ { "type": "text", "text": "12345" } ] } ] } }, "request_id": "123asdbbqwe9faweg", "custom_args": { "arg1": "string val", "arg2": 123 } }
              
              {
    "from": "+8613800138000",
    "to": [
        "00447911123456"
    ],
    "body": {
        "type": "template",
        "template": {
            "name": "code",
            "language": "zh_CN",
            "components": [
                {
                    "type": "body",
                    "parameters": [
                        {
                            "type": "text",
                            "text": "12345"
                        }
                    ]
                }
            ]
        }
    },
    "request_id": "123asdbbqwe9faweg",
    "custom_args": {
        "arg1": "string val",
        "arg2": 123
    }
}

            
Afficher ce bloc de code dans la fenêtre flottante

Paramètres de la requête

Un objet de requête est exprimé au format JSON, donc l'en-tête de la requête doit contenir Content-Type: application/json.

Paramètre Type Option Description
from String optionnel numéro d'envoi
to Tableau de chaînes requis le numéro de téléphone du destinataire.
body Objet JSON requis corps du message
request_id String optionnel l'ID de la requête personnalisée qui identifie la requête.
custom_args Objet JSON optionnel les informations personnalisées sont renvoyées au développeur dans le callback du statut du message.

from

Paramètre Type Option Description
from String optionnel
  • le numéro d'envoi, c'est-à-dire le numéro d'entreprise utilisé pour envoyer les messages.
  • Vous devez ajouter l'indicatif international. Si vous ne le spécifiez pas, le numéro d'envoi par défaut sera utilisé (à configurer dans la console)
  • to

    Paramètre Type Option Description
    to Tableau de chaînes requis le numéro WhatsApp du destinataire, l'indicatif international doit être ajouté.

    body

    Un corps de message qui contient les champs suivants :

    Paramètre Type Option Description
    type string requis le type de message. Valeurs valides :
  • template : message modèle
  • text : message texte
  • image : message image
  • audio : message audio
  • video : message vidéo
  • document : message document
  • sticker : message sticker
    seuls les messages modèles peuvent être envoyés aux utilisateurs. Les autres types de messages nécessitent que l'utilisateur réponde dans les 24 heures pour pouvoir être livrés.
    Les images, audios, vidéos, documents et stickers sont tous des messages médias. Exigences de format des messages médias
  • template objet template optionnel utilisé lorsque type = template. Pour plus d'informations, voir description de l'objet template
    text objet text optionnel utilisé lorsque type = text. Pour plus d'informations, voir description de l'objet text
    image objet image optionnel utilisé lorsque type = image. Pour plus d'informations, voir description de l'objet image
    audio objet audio optionnel utilisé lorsque type = audio. Pour plus d'informations, voir description de l'objet audio
    video objet video optionnel utilisé lorsque type = video. Pour plus d'informations, voir description de l'objet video
    document objet document optionnel utilisé lorsque type = document. Pour plus d'informations, voir description de l'objet document
    sticker objet sticker optionnel utilisé lorsque type = sticker. Pour plus d'informations, voir description de l'objet sticker

    description de l'objet text

    message texte

    Paramètre Type Option Description
    body String requis le contenu texte. Le message WhatsApp ne doit pas dépasser 4096 caractères.

    Exemple

    { "from": "8613800138000", //numéro de téléphone de l'expéditeur "to": "8613800138000", //numéro de téléphone du destinataire "body": { "type": "text", //type de message "text": { "body": "votre-contenu-de-message-texte" // contenu du message } } }
                  
                  {
        "from": "8613800138000", //numéro de téléphone de l'expéditeur
        "to": "8613800138000", //numéro de téléphone du destinataire
        "body": {
            "type": "text", //type de message
            "text": {
                "body": "votre-contenu-de-message-texte" // contenu du message
            }
        }
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    description de l'objet image

    message image

    Paramètre Type Option Description
    id String optionnel l'id et le lien générés par WhatsApp doivent avoir une valeur.
    link String optionnel lien de l'image, lien http/https, respecter les exigences de format des messages médias
    caption String optionnel la description de l'image. Elle ne peut pas dépasser 1024 caractères.

    Exemple

    { "from": "8613800138000",//numéro de téléphone de l'expéditeur "to": "8613800138000",//numéro de téléphone du destinataire "body": { "type": "image",//type de message "image": { "link": "https://img.jiguang.cn/jiguang/public/img/c866bd2.png", //lien de l'image "caption": "informations de légende" // optionnel, description sous l'image, dans la limite de 1024 caractères } } }
                  
                  {
      "from": "8613800138000",//numéro de téléphone de l'expéditeur
      "to": "8613800138000",//numéro de téléphone du destinataire
        "body": {			
                "type": "image",//type de message
                "image": {
                    "link": "https://img.jiguang.cn/jiguang/public/img/c866bd2.png", //lien de l'image
            "caption": "informations de légende" // optionnel, description sous l'image, dans la limite de 1024 caractères
                }
        }
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    description de l'objet video

    message vidéo

    Paramètre Type Option Description
    id String optionnel media_id généré par WhatsApp ; id et link doivent avoir une valeur.
    link String optionnel lien vidéo, lien http/https, respecter les exigences de format des messages médias
    caption String optionnel Description de la vidéo, jusqu'à 1024 caractères.

    Exemple

    { "from": "8613800138000",//numéro de téléphone de l'expéditeur "to": "8613800138001", //numéro de téléphone du destinataire "body": { "type": "video",//type de message "video": { "link": "https://img.jiguang.cn/jiguang/public/videos/432acc5.mp4", //lien vidéo "caption": "informations de légende" // optionnel, description sous la vidéo, dans la limite de 1024 caractères } } }
                  
                  {
      "from": "8613800138000",//numéro de téléphone de l'expéditeur
      "to": "8613800138001", //numéro de téléphone du destinataire
        "body": {			
                "type": "video",//type de message
                "video": {
                    "link": "https://img.jiguang.cn/jiguang/public/videos/432acc5.mp4", //lien vidéo
            "caption": "informations de légende" // optionnel, description sous la vidéo, dans la limite de 1024 caractères
                }
        }
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    description de l'objet audio

    message audio

    Paramètre Type Option Description
    id String optionnel media_id généré par WhatsApp ; id et link doivent avoir une valeur.
    link String optionnel lien audio, lien http/https, respecter les exigences de format des messages médias

    Exemple

    { "from": "8613800138000",//numéro de téléphone de l'expéditeur "to": "8613800138001", //numéro de téléphone du destinataire "body": { "type": "audio",//type de message "audio": { "link": "https://file-examples.com/storage/fe5947fd2362fc197a3c2df/2017/11/file_example_MP3_700KB.mp3" //lien audio } } }
                  
                  {
      "from": "8613800138000",//numéro de téléphone de l'expéditeur
      "to": "8613800138001", //numéro de téléphone du destinataire
        "body": {
                "type": "audio",//type de message
                "audio": {
                    "link": "https://file-examples.com/storage/fe5947fd2362fc197a3c2df/2017/11/file_example_MP3_700KB.mp3" //lien audio
                }
        }
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    description de l'objet document

    message fichier

    Paramètre Type Option Description
    id String optionnel media_id généré par WhatsApp ; id et link doivent avoir une valeur.
    link String optionnel lien du document, lien http/https, respecter les exigences de format des messages médias
    caption String optionnel Description du fichier, jusqu'à 1024 caractères.
    filename String optionnel Le nom du fichier. Si le champ filename n'est pas renseigné mais que le champ caption l'est, la légende sera utilisée comme nom de fichier ; si filename est renseigné, sa valeur sera utilisée comme nom de fichier.

    Exemple

    { "from": "8613800138000",//numéro de téléphone de l'expéditeur "to": "8613800138001", //numéro de téléphone du destinataire "body": { "type": "document",//type de message "document": { "link": "https://img.jiguang.cn/jiguang/public/videos/432acc5.mp4", // lien du document "caption": "informations de légende", // optionnel, description sous le document, dans la limite de 1024 caractères "filename": "nom du fichier document" // optionnel, nom du fichier } } }
                  
                  {
      "from": "8613800138000",//numéro de téléphone de l'expéditeur
      "to": "8613800138001", //numéro de téléphone du destinataire
        "body": {
                "type": "document",//type de message
                "document": {
                    "link": "https://img.jiguang.cn/jiguang/public/videos/432acc5.mp4", // lien du document
            "caption": "informations de légende", // optionnel, description sous le document, dans la limite de 1024 caractères
            "filename": "nom du fichier document" // optionnel, nom du fichier
                }
        }
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    description de l'objet sticker

    message sticker

    Paramètre Type Option Description
    id String optionnel media_id côté WhatsApp ; id et link doivent avoir une valeur.
    link String optionnel lien du sticker, lien http/https, respecter les exigences de format des messages médias

    Exemple

    { "from": "8613800138000",//numéro de téléphone de l'expéditeur "to": "8613800138001", //numéro de téléphone du destinataire "body": { "type": "sticker",//type de message "sticker": { "link": "http://sample-file.bazadanni.com/download/images/webp/sample.webp" //lien du sticker } } }
                  
                  {
      "from": "8613800138000",//numéro de téléphone de l'expéditeur
      "to": "8613800138001", //numéro de téléphone du destinataire
        "body": {
                "type": "sticker",//type de message
                "sticker": {
                    "link": "http://sample-file.bazadanni.com/download/images/webp/sample.webp" //lien du sticker
                }
        }
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    description de l'objet template

    message template, vous devez d'abord créer un template, vous pouvez le faire via la console ou créer via l'API.

    Paramètre Type Type Description
    name String requis le nom du template. Vous pouvez le trouver sur la page des templates de messages dans la console. Seuls les chiffres minuscules et les underscores sont autorisés.
    language String requis code langue du template. Lors de la création d'un template, vous pouvez définir le contenu du même nom de template dans plusieurs langues. Vous devez donc utiliser les champs name et language pour déterminer le template sélectionné.
    components tableau d'objets components optionnel si une variable existe dans le template, vous devez remplir ce champ. Un seul élément d'objet components est défini dans le tableau.
    description de template.components object
    Paramètre Type Option Description
    type String requis le composant du template. Si un composant du template contient des variables, vous devez passer la valeur au composant. Valeurs valides :
  • header : en-tête
  • body : corps
  • footer : pied de page
  • button : bouton
  • parameters objet parameters requis définir le contenu de la variable
    description de template.components.parameters object
    Paramètre Type Option Description
    type string requis le type de la variable. Valeurs valides : text, currency, date_time, image, video, et document. Les types de médias (image, vidéo, document) existent uniquement dans l'en-tête. Pour plus d'informations sur les formats pris en charge, voir exigences de format des messages médias .
    text string optionnel Lorsque type = text, c'est le contenu spécifique de la variable.
    date_time objet localisable optionnel Utilisé lorsque type = date_time, la différence avec text est qu'il peut être localisé et adapté à l'affichage
    currency objet localisable optionnel utilisé lorsque type = currency, la différence avec text est qu'il peut être localisé et adapté à l'affichage
    image objet image optionnel utilisé lorsque type = image, et objet image le format du contenu est identique.
    video objet video optionnel utilisé lorsque type = video, et objet video le format du contenu est identique.
    document objet document optionnel utilisé lorsque type = document, et objet document le format du contenu est identique.

    Exemple

    { "from": "+8613800138000", "to": [ "00447911123456" ], "body": { "type": "template", "template": { "name": "your-template-name", "language": "zh_CN", "components": [ { "type" : "header", "parameters": [{ "type": "document", "document": { "link": "http(s)://the-url", "filename": "your-document-filename" } }] }, { "type": "body", "parameters": [ { "type": "text", "text": "your-text-string" }, { "type": "currency", "currency": { "fallback_value": "$100.99", "code": "USD", "amount_1000": 100990 } }, { "type": "date_time", "date_time": { "fallback_value": "25 février 1977", "day_of_week": 5, "day_of_month": 25, "year": 1977, "month": 2, "hour": 15, "minute": 33 } }, { "type": "date_time", "date_time": { "fallback_value": "25 février 1977", "timestamp": 1485470276 } } ] } ] } } }
                  
                  {
        "from": "+8613800138000",
        "to": [
            "00447911123456"
        ],
        "body": {
            "type": "template",
            "template": {          
                "name": "your-template-name",
                            "language": "zh_CN",
                "components": [
                  {
                    "type" : "header",
                    "parameters": [{
                             "type": "document",
                             "document": {
                                 "link": "http(s)://the-url",
                                 "filename": "your-document-filename"
                           }
                    }]
                  },
                  {
                     "type": "body",
                     "parameters": [
                            {
                                "type": "text",
                                "text": "your-text-string"
                            },
                            {
                                "type": "currency",
                                "currency": {
                                    "fallback_value": "$100.99",
                                    "code": "USD",
                                    "amount_1000": 100990
                                }
                            },
                            {
                                "type": "date_time",
                                "date_time": {
                                    "fallback_value": "25 février 1977",
                                    "day_of_week": 5,
                                    "day_of_month": 25,
                                    "year": 1977,
                                    "month": 2,
                                    "hour": 15,
                                    "minute": 33
                                }
                            },
                            {
                                "type": "date_time",
                                "date_time": {
                                    "fallback_value": "25 février 1977",
                                    "timestamp": 1485470276
                                }
                            }
                        ]
                    }
                ]
            }
        }
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    Paramètres de réponse

    Réponse en cas de succès

    Champ Type Option Description
    message_id String requis l'ID du message WhatsApp EngageLab qui identifie de façon unique un message.
    request_id String optionnel l'ID personnalisé soumis lors de la requête. L'ID est renvoyé tel quel lors de la réception de la requête.
    { "message_id": "cbggf4if6o9ukqaalfug", "request_id": "your-sendno-string" }
                  
                  {
        "message_id": "cbggf4if6o9ukqaalfug",
        "request_id": "your-sendno-string"
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    Réponse en cas d'échec

    le code d'état http est 4xx ou 5xx. Le corps de la réponse contient les champs suivants :

    Champ Type Option Description
    code int requis le code d'erreur. Pour plus d'informations, voir description des codes d'erreur
    message String requis détails de l'erreur
    { "code": 3002, "message": "le champ whatsapp.template doit être correctement défini lorsque le type est template" }
                  
                  {
        "code": 3002,
        "message": "le champ whatsapp.template doit être correctement défini lorsque le type est template"
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    Codes d'erreur

    Codes d'erreur Code Http Description
    1000 500 erreur interne
    2001 401 Authentification EngageLab échouée, aucun token valide.
    2002 401 Authentification côté EngageLab échouée. Le token a expiré ou a été désactivé.
    2003 400 Authentification WhatsApp échouée, veuillez contacter le service client EngageLab
    2004 403 vous n'avez pas la permission d'appeler cette API. Vérifiez si vous avez la permission d'envoyer des messages (un numéro d'envoi) à cette clé API.
    3001 400 Le format des paramètres de la requête est invalide. Vérifiez si le format JSON est utilisé.
    3002 400 Les paramètres de la requête sont incorrects. Vérifiez si les paramètres de la requête répondent aux exigences.
    3003 400 Message d'erreur renvoyé car le paramètre de la requête est invalide. Pour plus d'informations, voir la description du champ message.
    4001 400 La ressource concernée n'existe pas. Par exemple, un template inexistant est utilisé lors de l'envoi du message template.

    Commentaires

    Exigences de format des messages médias

    Type de média Types de format pris en charge Content-Type Limite de taille
    image image/jpeg, image/png, ne supporte pas le fond transparent 5Mo
    video video/mp4 , video/3gpp
    note : l'encodage ne supporte que l'encodage vidéo H.264 et l'encodage audio AAC.
    16Mo
    audio audio/aac, audio/mp4, audio/amr, audio/mpeg
    audio/ogg; codecs = opus (note : audio/ogg de base non supporté, seul audio/ogg ; codecs = opus est supporté)
    16Mo
    document 1. Tout type MIME est supporté lors de l'envoi de messages fichiers.
    2. Lors de l'envoi d'un message template, le fichier dans l'en-tête ne supporte que le format PDF.
    100Mo
    sticker image/webp Stickers statiques : 100Ko

    Stickers animés : 500Ko

    Code langue

    Pour plus d'informations sur la correspondance entre la langue et le code, téléchargez ce fichier :
    Template language code.xlsx

    icon
    Contactez-nous