Template Management API
Übersicht
Mit der Template-Management-API der WhatsApp Business API können Sie Vorlagen effizient hinzufügen, löschen und überprüfen. Dieses Vorlagenmanagement ist essenziell für Unternehmen, die ihre Kommunikation über WhatsApp automatisieren und optimieren möchten.
Aufrufvalidierung
Die EngageLab REST API nutzt die HTTP-Basic-Authentifizierung als Verifizierungsmethode. Fügen Sie dazu folgenden HTTP-Header hinzu:
Authorization: Basic ${base64_auth_string}
Der base64_auth_string wird wie folgt generiert: base64(DevKey:DevSecret)
- Der Header-Name lautet „Authorization“ und der Wert ist ein base64-kodiertes „Benutzername:Passwort“-Paar (getrennt durch einen Doppelpunkt).
- Im WhatsApp Business API-Szenario ist der Benutzername DevKey und das Passwort DevSecret. Diese Werte finden Sie im Konsolenbereich unter Konfigurationsmanagement – API-Schlüssel.
Vorlagen abrufen
Aufrufadresse
GET https://wa.api.engagelab.cc/v1/templates
Anfrageparameter
| Parameter | Typ | Optional | Beschreibung |
|---|---|---|---|
| name | String | Ja | Vorlagenname, unscharfe Suche möglich |
| language_code | String | Ja | Vorlagensprache, siehe Sprachcode |
| category | String | Ja | Vorlagenkategorie: ● AUTHENTICATION: Verifizierungscode ● MARKETING: Marketing ● UTILITY: Servicemitteilung |
| status | String | Ja | Vorlagenstatus: Für Entwickler:innen sind insbesondere APPROVED, PENDING, REJECTED und DISABLED relevant. |
Antwortparameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| id | String | Ja | Vorlagen-ID |
| name | String | Ja | Vorlagenname |
| language | String | Ja | Vorlagensprache, siehe Sprachcode |
| category | String | Ja | Typ der Vorlage: Hinweis: Die Vorlagenkategorien werden aktualisiert: |
| components | Objekt-Array | Ja | Weitere Informationen zum Vorlageninhalt siehe Komponentenobjekte in einer Vorlage erstellen |
| status | String | Ja | Vorlagenstatus: |
Antwortbeispiel
[
{
"id": "406979728071589",
"name": "code",
"language": "zh_CN",
"status": "APPROVED",
"category": "OTP",
"components": [
{
"type": "HEADER",
"format": "text",
"text": "Registrierungs-Bestätigungscode"
},
{
"type": "BODY",
"text": "Ihr Bestätigungscode lautet {{1}}, bitte geben Sie ihn innerhalb von 5 Minuten ein."
}
]
}
// …
]
Vorlageninformationen abfragen
API-Endpunkt
GET https://wa.api.engagelab.cc/v1/templates/{template_id}
Dabei steht {template_id} für die abzufragende Vorlagen-ID.
Anfrageparameter
Keine
Anfragebeispiel
GET https://wa.api.engagelab.cc/v1/templates/406979728071589
Antwortparameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| id | String | Ja | Vorlagen-ID |
| name | String | Ja | Vorlagenname |
| language | String | Ja | Vorlagensprache, siehe Sprachcode |
| category | String | Ja | Vorlagenkategorie: Hinweis: Die Vorlagenkategorien werden bis zum 01.05.2023 aktualisiert: |
| components | Objekt-Array | Ja | Komponenten des Vorlageninhalts, siehe Komponentenobjekt |
| status | String | Ja | Vorlagenstatus: APPROVED, IN_APPEAL, PENDING, REJECTED, PENDING_DELETION, DELETED, DISABLED, PAUSED, LIMIT_EXCEEDED |
Antwortbeispiel
{
"id": "406979728071589",
"name": "code",
"language": "en",
"status": "APPROVED",
"category": "OTP",
"components": [
{
"type": "HEADER",
"format": "text",
"text": "Registrierungs-Bestätigungscode"
},
{
"type": "BODY",
"text": "Ihr Bestätigungscode lautet {{1}}, bitte geben Sie ihn innerhalb von 5 Minuten ein."
}
]
}
Vorlage erstellen
Aufrufadresse
POST https://wa.api.engagelab.cc/v1/templates
Beispielaufruf
{
"name": "template_name",
"language": "zh_CN",
"category": "OTP",
"components": [
{
"type": "BODY",
"text": "definiere var als {{1}}",
"example": {
"body_text": [
[
"var1"
]
]
}
},
{
"type": "HEADER",
"format": "image",
"example": {
"header_handle": [
"https://jiguang.cn/demopic.jpg"
]
}
},
{
"type": "FOOTER",
"text": "Der Footer unterstützt nur Text ohne Variablen."
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "PHONE_NUMBER",
"text": "Jetzt anrufen",
"phone_number": "8613800138000"
}
]
}
]
}
Anfrageparameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| name | String | Ja | Name der Vorlage. Nur Kleinbuchstaben, Zahlen und Unterstriche erlaubt. Maximal 512 Zeichen. |
| language | String | Ja | Vorlagensprache, siehe Sprachcode. |
| category | String | Ja | Typ der Vorlage: Hinweis: Die Vorlagenkategorien werden spätestens zum 01.05.2023 aktualisiert: |
| components | Objekt-Array | Ja | Komponenten, die den Vorlageninhalt beschreiben. Weitere Informationen siehe Komponentenobjekt |
Komponentenobjekt
Dieses Objekt beschreibt den Vorlageninhalt. Die Vorlage ist in mehrere Komponenten unterteilt, z. B. HEADER, BODY, FOOTER und BUTTONS. Mit type geben Sie diese Komponenten an. Je nach Komponententyp werden unterschiedliche Parameter unterstützt:
HEADER-Komponente
Optional. Nur setzen, wenn benötigt.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| type | String | Ja | Typ der Komponente. Gültiger Wert: HEADER. |
| format | String | Ja | Header-Format. Gültige Werte: text, image, video, document. |
| text | String | Optional | Inhalt des Header-Texts. Muss gesetzt werden, wenn format = text. Es kann eine Variable {{1}} verwendet werden. |
| example | JSON-Objekt | Optional | Header-Beispiel. Erforderlich, wenn Text eine Variable enthält oder das Format ein Medientyp ist. Siehe Beispielobjekt-Beschreibung |
Beispielobjekt-Beschreibung
| Parameter | Typ | Optional | Beschreibung |
|---|---|---|---|
| header_handle | String-Array | Ja | Bei Format image, video oder document: URL des Mediums. Muss zugänglich sein, sonst wird die Vorlage abgelehnt. |
| header_text | String-Array | Ja | Bei Format text und Variable: Ersetzung der Variable. Beispiel: "header_text": ["var1"] |
| header_url | String-Array | Ja | Wie header_handle, wird aber künftig nicht mehr unterstützt. Nutzung vermeiden. |
BODY-Komponente
Erforderlich. Der Body-Inhalt muss gesetzt werden.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| type | String | Ja | Typ der Komponente. Gültiger Wert: BODY. |
| text | String | Ja | Inhalt des Bodys. Maximal 1.024 Zeichen. Es können mehrere Variablen verwendet werden: {{1}}, {{2}}, ... |
| example | JSON-Objekt | Optional | Body-Beispiel. Für Meta-Review erforderlich, wenn Text Variablen enthält. Siehe Beispielobjekt-Beschreibung |
Beispielobjekt-Beschreibung
| Parameter | Typ | Optional | Beschreibung |
|---|---|---|---|
| body_text | String-Array | Ja | Bei Variablen im Text: Alle Variablen in Reihenfolge der Nummerierung. Beispiel: "body_text": [["var1","var2","var3"]] |
FOOTER-Komponente
Optional. Nur setzen, wenn benötigt.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| type | String | Ja | Typ der Komponente. Wert: FOOTER. |
| text | String | Ja | Inhalt des Footers. Nur Klartext, keine Variablen erlaubt. |
BUTTONS-Komponente
Optional. Nur setzen, wenn benötigt.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| type | String | Ja | Typ der Komponente. Gültiger Wert: BUTTONS. |
| buttons | Objekt-Array | Ja | Button-Informationen, siehe Buttons-Objekt-Beschreibung. |
Buttons-Objekt-Beschreibung
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| type | String | Ja | Typ des Buttons. Gültige Werte: QUICK_REPLY, URL, PHONE_NUMBER. |
| text | String | Ja | Text auf dem Button, keine Variablen, Klartext, max. 25 Zeichen. |
| url | String | Optional | Erforderlich bei type = URL. Am Ende der URL kann eine Variable {{1}} stehen. |
| phone_number | String | Optional | Erforderlich bei type = PHONE_NUMBER, keine Variablen, Telefonnummer mit Ländervorwahl. |
| example | String-Array | Optional | Erforderlich bei type = QUICK_REPLY und type = URL |
Antwortparameter
Erfolgreiche Antwort
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| template_id | String | Ja | Die ID der Vorlage. Wird bei Erfolg zurückgegeben. |
{
"template_id": "1275172986566180"
}
Fehlgeschlagene Antwort
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| code | int | Ja | Fehlercode. Wird bei Fehler zurückgegeben. |
| message | String | Ja | Fehlermeldung. |
{
"code": 5002,
"message": "Ungültiger Parameter. code:100:2388042"
}
Vorlage aktualisieren
Aufrufadresse
PUT https://wa.api.engagelab.cc/v1/templates/{templateId}
Beispielaufruf
{
"components": [
{
"type": "BODY",
"text": "definiere var als {{1}}",
"example": {
"body_text": [
[
"var1"
]
]
}
},
{
"type": "HEADER",
"format": "image",
"example": {
"header_handle": [
"https://jiguang.cn/demopic.jpg"
]
}
},
{
"type": "FOOTER",
"text": "Der Footer unterstützt nur Text ohne Variablen."
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "PHONE_NUMBER",
"text": "Jetzt anrufen",
"phone_number": "8613800138000"
}
]
}
]
}
Anfrageparameter
Entspricht den Anfrageparametern der Vorlage-Erstellen-Schnittstelle.
Antwortparameter
Erfolgreiche Antwort
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| code | int | Ja | Rückgabecode, fest 0 |
| message | String | Ja | Rückmeldung, fest „success“. |
{
"code": 0,
"message": "success"
}
Fehlgeschlagene Antwort
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| code | int | Ja | Fehlercode. Wird bei Fehler zurückgegeben. |
| message | String | Ja | Fehlermeldung. |
{
"code": 5002,
"message": "Ungültiger Parameter. code:100:2593002"
}
Vorlage löschen
Aufrufadresse
DELETE https://wa.api.engagelab.cc/v1/templates/{template_name}
Hinweis: Hier wird der Vorlagenname (nicht die Vorlagen-ID) übergeben. Dadurch werden alle Sprachversionen dieser Vorlage gelöscht.
Antwortparameter
Erfolgreiche Antwort
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| code | int | Ja | Rückgabecode, fest 0 |
| message | String | Ja | Rückmeldung, fest „success“. |
{
"code": 0,
"message": "success"
}
Fehlgeschlagene Antwort
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| code | int | Ja | Fehlercode. Wird bei Fehler zurückgegeben. |
| message | String | Ja | Fehlermeldung. |
{
"code": 2004,
"message": "Etwas ist schiefgelaufen"
}
Fehlercodes
| Code | HTTP-Code | Beschreibung |
|---|---|---|
| 1000 | 500 | Interner Fehler |
| 2001 | 401 | EngageLab-Authentifizierung fehlgeschlagen, kein gültiges Token. |
| 2002 | 401 | EngageLab-Authentifizierung fehlgeschlagen. Token abgelaufen oder deaktiviert. |
| 2003 | 400 | WhatsApp-Authentifizierung fehlgeschlagen, bitte wenden Sie sich an den EngageLab-Support. |
| 2004 | 403 | Sie sind nicht berechtigt, diese API aufzurufen. |
| 3001 | 400 | Das Format der Anfrageparameter ist ungültig. Prüfen Sie, ob das JSON-Format verwendet wird. |
| 3002 | 400 | Die Anfrageparameter sind fehlerhaft. Prüfen Sie, ob die Parameteranforderungen erfüllt sind. |
| 3003 | 400 | Fehlerhafte Anfrageparameter. |
| 4001 | 400 | Die Vorlage existiert nicht. |
| 5002 | 400 | Die Template-Anfrage konnte von Meta nicht verarbeitet werden. Weitere Informationen siehe die Fehlermeldung im Feld message. |
Hinweise
Anforderungen an das Mediennachrichtenformat
| Medientyp | Unterstützte Formate (Content-Type) | Größenlimit |
|---|---|---|
| Bild | image/jpeg, image/png, keine Transparenz | 5 MB |
| Video | video/mp4 | 16 MB |
| Dokument | Nur PDF | 100 MB |
Sprachcode
| Sprache | Code |
|---|---|
| Afrikaans | af |
| Albanisch | sq |
| Arabisch | ar |
| Aserbaidschanisch | az |
| Bengalisch | bn |
| Bulgarisch | bg |
| Katalanisch | ca |
| Chinesisch (CHN) | zh_CN |
| Chinesisch (HKG) | zh_HK |
| Chinesisch (TAI) | zh_TW |
| Kroatisch | hr |
| Tschechisch | cs |
| Dänisch | da |
| Niederländisch | nl |
| Englisch | en |
| Englisch (UK) | en_GB |
| Englisch (US) | en_US |
| Estnisch | et |
| Filipino | fil |
| Finnisch | fi |
| Französisch | fr |
| Georgisch | ka |
| Deutsch | de |
| Griechisch | el |
| Gujarati | gu |
| Hausa | ha |
| Hebräisch | he |
| Hindi | hi |
| Ungarisch | hu |
| Indonesisch | id |
| Irisch | ga |
| Italienisch | it |
| Japanisch | ja |
| Kannada | kn |
| Kasachisch | kk |
| Kinyarwanda | rw_RW |
| Koreanisch | ko |
| Kirgisisch (Kirgistan) | ky_KG |
| Lao | lo |
| Lettisch | lv |
| Litauisch | lt |
| Mazedonisch | mk |
| Malaiisch | ms |
| Malayalam | ml |
| Marathi | mr |
| Norwegisch | nb |
| Persisch | fa |
| Polnisch | pl |
| Portugiesisch (BR) | pt_BR |
| Portugiesisch (POR) | pt_PT |
| Punjabi | pa |
| Rumänisch | ro |
| Russisch | ru |
| Serbisch | sr |
| Slowakisch | sk |
| Slowenisch | sl |
| Spanisch | es |
| Spanisch (ARG) | es_AR |
| Spanisch (SPA) | es_ES |
| Spanisch (MEX) | es_MX |
| Suaheli | sw |
| Schwedisch | sv |
| Tamil | ta |
| Telugu | te |
| Thailändisch | th |
| Türkisch | tr |
| Ukrainisch | uk |
| Urdu | ur |
| Usbekisch | uz |
| Vietnamesisch | vi |
| Zulu | zu |
Weitere Informationen zur Zuordnung von Sprache und Code finden Sie in dieser Datei:
Template language code.xlsx
Tipp: Nutzen Sie die WhatsApp Business API und das Vorlagenmanagement, um Ihre Kundenkommunikation effizient und DSGVO-konform zu automatisieren.
Jetzt starten:
- Vorlage erstellen
- Vorlage aktualisieren
- Vorlage löschen
- Mehr erfahren

