WhatsApp Send Message API Documentation - EngageLab
Nutzen Sie die Messaging API, um WhatsApp-Messaging-Funktionen nahtlos in Ihre Geschäftsanwendungen zu integrieren.
Bevor Sie die API aufrufen, loggen Sie sich in der Konsole ein und erstellen Sie einen API-Schlüssel auf der entsprechenden Seite.
Aufrufadresse
POST https://wa.api.engagelab.cc/v1/messages
Authentifizierung der Anfrage
Die EngageLab REST API verwendet HTTP Basic Authentication als Authentifizierungsmethode und fügt den Header „Authorization“ hinzu.
Authorization: Basic ${base64_auth_string}
Der base64_auth_string wird wie folgt generiert: base64(dev_key:dev_secret)
- Der Header-Name ist „Authorization“ und der Wert ist das base64-codierte „username:password“-Paar (mit Doppelpunkt dazwischen).
- Im WhatsApp API-Szenario ist der Benutzername DevKey und das Passwort DevSecret. Diese können Sie in der Konsole unter Konfigurationsmanagement – API-Schlüssel abrufen.
Beispielanfragen
Request Header
POST /v1/messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Request Body
{
"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
}
}
Request-Parameter
Das Request-Objekt wird im JSON-Format übergeben, daher muss der Request-Header Content-Type: application/json enthalten.
| Parameter | Typ | Option | Beschreibung |
|---|---|---|---|
| from | String | optional | Absendernummer (Unternehmensnummer), die für den Versand von Nachrichten verwendet wird. |
| to | String Array | erforderlich | Ziel-Telefonnummer |
| body | JSON Object | erforderlich | Nachrichteninhalt |
| request_id | String | optional | Benutzerdefinierte ID zur Identifizierung der Anfrage |
| custom_args | JSON Object | optional | Benutzerdefinierte Informationen, die im Status-Callback der Nachricht an die Entwickler zurückgegeben werden |
from
| Parameter | Typ | Option | Beschreibung |
|---|---|---|---|
| from | String | optional | Absendernummer (Unternehmensnummer), die für den Versand von Nachrichten verwendet wird. Internationale Vorwahl erforderlich. Wenn nicht angegeben, wird die Standard-Absendernummer verwendet (muss in der Konsole konfiguriert werden). |
to
| Parameter | Typ | Option | Beschreibung |
|---|---|---|---|
| to | String Array | erforderlich | WhatsApp-Telefonnummer des Empfängers, internationale Vorwahl muss hinzugefügt werden. |
body
Der Nachrichteninhalt enthält folgende Felder:
| Parameter | Typ | Option | Beschreibung |
|---|---|---|---|
| type | string | erforderlich | Nachrichtentyp. Gültige Werte: Nur Vorlagen-Nachrichten können direkt an Nutzer gesendet werden. Andere Nachrichtentypen erfordern eine Antwort des Nutzers innerhalb von 24 Stunden. Bilder, Audio, Video, Dokumente und Sticker sind Mediennachrichten. Mediennachrichten: Formatvorgaben |
| template | template object | optional | Wird verwendet, wenn type = template. Weitere Informationen unter Beschreibung des Template-Objekts |
| text | text object | optional | Wird verwendet, wenn type = text. Weitere Informationen unter Beschreibung des Text-Objekts |
| image | image object | optional | Wird verwendet, wenn type = image. Weitere Informationen unter Beschreibung des Bild-Objekts |
| audio | audio object | optional | Wird verwendet, wenn type = audio. Weitere Informationen unter Beschreibung des Audio-Objekts |
| video | video object | optional | Wird verwendet, wenn type = video. Weitere Informationen unter Beschreibung des Video-Objekts |
| document | document object | optional | Wird verwendet, wenn type = document. Weitere Informationen unter Beschreibung des Dokument-Objekts |
| sticker | sticker object | optional | Wird verwendet, wenn type = sticker. Weitere Informationen unter Beschreibung des Sticker-Objekts |
Beschreibung des Text-Objekts
Textnachricht
| Parameter | Typ | Option | Beschreibung |
|---|---|---|---|
| body | String | erforderlich | Textinhalt. Die Nachricht darf maximal 4.096 Zeichen lang sein. |
Beispiel
{
"from": "8613800138000", // Absendernummer
"to": "8613800138000", // Empfängernummer
"body": {
"type": "text", // Nachrichtentyp
"text": {
"body": "Ihr-Textnachrichten-Inhalt" // Nachrichteninhalt
}
}
}
Beschreibung des Bild-Objekts
Bildnachricht
| Parameter | Typ | Option | Beschreibung |
|---|---|---|---|
| id | String | optional | Die von WhatsApp generierte ID, muss zusammen mit dem Link vorhanden sein. |
| link | String | optional | Bildlink, http/https-Link, siehe Mediennachrichten: Formatvorgaben |
| caption | String | optional | Bildbeschreibung, maximal 1.024 Zeichen. |
Beispiel
{
"from": "8613800138000", // Absendernummer
"to": "8613800138000", // Empfängernummer
"body": {
"type": "image", // Nachrichtentyp
"image": {
"link": "https://img.jiguang.cn/jiguang/public/img/c866bd2.png", // Bildlink
"caption": "Bildbeschreibung" // optional, Beschreibung unter dem Bild, max. 1.024 Zeichen
}
}
}
Beschreibung des Video-Objekts
Videonachricht
| Parameter | Typ | Option | Beschreibung |
|---|---|---|---|
| id | String | optional | Von WhatsApp generierte media_id; id und link müssen vorhanden sein. |
| link | String | optional | Videolink, http/https-Link, siehe Mediennachrichten: Formatvorgaben |
| caption | String | optional | Beschreibung des Videos, max. 1.024 Zeichen. |
Beispiel
{
"from": "8613800138000", // Absendernummer
"to": "8613800138001", // Empfängernummer
"body": {
"type": "video", // Nachrichtentyp
"video": {
"link": "https://img.jiguang.cn/jiguang/public/videos/432acc5.mp4", // Videolink
"caption": "Videobeschreibung" // optional, max. 1.024 Zeichen
}
}
}
Beschreibung des Audio-Objekts
Audionachricht
| Parameter | Typ | Option | Beschreibung |
|---|---|---|---|
| id | String | optional | Von WhatsApp generierte media_id; id und link müssen vorhanden sein. |
| link | String | optional | Audiolink, http/https-Link, siehe Mediennachrichten: Formatvorgaben |
Beispiel
{
"from": "8613800138000", // Absendernummer
"to": "8613800138001", // Empfängernummer
"body": {
"type": "audio", // Nachrichtentyp
"audio": {
"link": "https://file-examples.com/storage/fe5947fd2362fc197a3c2df/2017/11/file_example_MP3_700KB.mp3" // Audiolink
}
}
}
Beschreibung des Dokument-Objekts
Dokumentnachricht
| Parameter | Typ | Option | Beschreibung |
|---|---|---|---|
| id | String | optional | Von WhatsApp generierte media_id; id und link müssen vorhanden sein. |
| link | String | optional | Dokumentenlink, http/https-Link, siehe Mediennachrichten: Formatvorgaben |
| caption | String | optional | Beschreibung der Datei, max. 1.024 Zeichen. |
| filename | String | optional | Dateiname. Wenn filename nicht ausgefüllt ist, aber caption, wird caption als Dateiname verwendet; ist filename ausgefüllt, wird dieser Wert genutzt. |
Beispiel
{
"from": "8613800138000", // Absendernummer
"to": "8613800138001", // Empfängernummer
"body": {
"type": "document", // Nachrichtentyp
"document": {
"link": "https://img.jiguang.cn/jiguang/public/videos/432acc5.mp4", // Dokumentenlink
"caption": "Dateibeschreibung", // optional, max. 1.024 Zeichen
"filename": "Dateiname" // optional
}
}
}
Beschreibung des Sticker-Objekts
Sticker-Nachricht
| Parameter | Typ | Option | Beschreibung |
|---|---|---|---|
| id | String | optional | media_id auf WhatsApp-Seite; id und link müssen vorhanden sein. |
| link | String | optional | Stickerlink, http/https-Link, siehe Mediennachrichten: Formatvorgaben |
Beispiel
{
"from": "8613800138000", // Absendernummer
"to": "8613800138001", // Empfängernummer
"body": {
"type": "sticker", // Nachrichtentyp
"sticker": {
"link": "http://sample-file.bazadanni.com/download/images/webp/sample.webp" // Stickerlink
}
}
}
Beschreibung des Template-Objekts
Vorlagen-Nachricht – Sie müssen zuerst eine Vorlage erstellen, entweder in der Konsole oder per API.
| Parameter | Typ | Option | Beschreibung |
|---|---|---|---|
| name | String | erforderlich | Name der Vorlage. Zu finden auf der Vorlagen-Seite in der Konsole. Nur Kleinbuchstaben, Zahlen und Unterstriche erlaubt. |
| language | String | erforderlich | Vorlagen-Sprachcode. |
| components | Array aus Objekten | optional | Wenn Variablen in der Vorlage existieren, muss dieses Feld ausgefüllt werden. Nur ein Komponenten-Objekt im Array erlaubt. |
Beschreibung template.components-Objekt
| Parameter | Typ | Option | Beschreibung |
|---|---|---|---|
| type | String | erforderlich | Vorlagen-Komponente. Enthält die Komponente Variablen, müssen diese hier übergeben werden. Gültige Werte: |
| parameters | Parameter-Objekt | erforderlich | Variable Inhalte setzen |
Beschreibung template.components.parameters-Objekt
| Parameter | Typ | Option | Beschreibung |
|---|---|---|---|
| type | string | erforderlich | Typ der Variable. Gültige Werte: text, currency, date_time, image, video, document. Multimedia-Typen (image, video, document) nur im Header erlaubt. Weitere Infos zu unterstützten Formaten siehe Mediennachrichten: Formatvorgaben. |
| text | string | optional | Bei type = text, der konkrete Inhalt der Variable. |
| date_time | localizable object | optional | Bei type = date_time, kann lokalisiert und angepasst angezeigt werden. |
| currency | localizable object | optional | Bei type = currency, kann lokalisiert und angepasst angezeigt werden. |
| image | image object | optional | Bei type = image, siehe Bild-Objekt. |
| video | video object | optional | Bei type = video, siehe Video-Objekt. |
| document | document object | optional | Bei type = document, siehe Dokument-Objekt. |
Beispiel
{
"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": "Ihr-Text-String"
},
{
"type": "currency",
"currency": {
"fallback_value": "$100.99",
"code": "USD",
"amount_1000": 100990
}
},
{
"type": "date_time",
"date_time": {
"fallback_value": "25. Februar 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. Februar 1977",
"timestamp": 1485470276
}
}
]
}
]
}
}
}
Response-Parameter
Erfolgreiche Antwort
| Feld | Typ | Option | Beschreibung |
|---|---|---|---|
| message_id | String | erforderlich | Die ID der EngageLab WhatsApp-Nachricht, die eine Nachricht eindeutig identifiziert. |
| request_id | String | optional | Die benutzerdefinierte ID, die bei der Anfrage übergeben wurde. Wird wie empfangen zurückgegeben. |
{
"message_id": "cbggf4if6o9ukqaalfug",
"request_id": "your-sendno-string"
}
Fehlgeschlagene Antwort
Der HTTP-Statuscode ist 4xx oder 5xx. Der Response-Body enthält folgende Felder:
| Feld | Typ | Option | Beschreibung |
|---|---|---|---|
| code | int | erforderlich | Fehlercode. Weitere Informationen siehe Fehlercodes. |
| message | String | erforderlich | Fehlerdetails |
{
"code": 3002,
"message": "whatsapp.template field must be set correctly when type is template"
}
Fehlercodes
| Fehlercode | HTTP-Code | Beschreibung |
|---|---|---|
| 1000 | 500 | Interner Fehler |
| 2001 | 401 | EngageLab-Authentifizierung fehlgeschlagen, kein gültiges Token. |
| 2002 | 401 | EngageLab-Authentifizierung fehlgeschlagen. Token ist abgelaufen oder wurde deaktiviert. |
| 2003 | 400 | WhatsApp-Authentifizierung fehlgeschlagen. Bitte wenden Sie sich an den EngageLab-Kundendienst. |
| 2004 | 403 | Sie haben keine Berechtigung, diese API aufzurufen. Prüfen Sie, ob Sie die Berechtigung zum Versenden von Nachrichten (Absendernummer) für diesen API-Schlüssel haben. |
| 3001 | 400 | Das Format der Anfrageparameter ist ungültig. Prüfen Sie, ob das JSON-Format verwendet wird. |
| 3002 | 400 | Die Anfrageparameter sind falsch. Prüfen Sie, ob die Parameter den Anforderungen entsprechen. |
| 3003 | 400 | Fehlerhafte Anfrageparameter. Weitere Infos siehe die Fehlerbeschreibung im Feld message. |
| 4001 | 400 | Die entsprechende Ressource existiert nicht. Zum Beispiel wird eine nicht existierende Vorlage beim Versand einer Vorlagen-Nachricht verwendet. |
Hinweise
Mediennachrichten: Formatvorgaben
| Medientyp | Unterstützte Formate (Content-Type) | Größenlimit |
|---|---|---|
| image | image/jpeg, image/png, ohne Transparenz | 5 MB |
| video | video/mp4, video/3gpp Hinweis: Nur H.264-Video- und AAC-Audio-Encoding werden unterstützt. |
16 MB |
| audio | audio/aac, audio/mp4, audio/amr, audio/mpeg audio/ogg; codecs = opus (Hinweis: Nur audio/ogg mit codecs = opus wird unterstützt) |
16 MB |
| document | 1. Beliebiger MIME-Typ beim Versand von Dokumentnachrichten. 2. Beim Versand einer Vorlagen-Nachricht im Header nur PDF erlaubt. |
100 MB |
| sticker | image/webp | Statische Sticker: 100 KB Animierte Sticker: 500 KB |
Sprachcode
Weitere Informationen zur Zuordnung von Sprache und Sprachcode finden Sie in dieser Datei:
Template language code.xlsx

