Wir stellen die On-Premises API ein. Weitere Informationen und wie du auf unsere Cloud API der nächsten Generation migrieren kannst, findest du in unserem Dokument zur Einstellung der On-Premises API.

FAQs zur On-Premises API

Auf der Statusseite der WhatsApp Business Platform findest du aktuelle Informationen zu Plattformausfällen.

Erste Schritte

WhatsApp betrachtet Kommunikation mit Business API-Benutzern, die den API-Endpunkt auf von ihnen kontrollierten Servern verwalten, als vollständig verschlüsselt, da kein Drittanbieter-Zugriff auf Inhalte zwischen Endpunkten besteht.

Einige Organisationen entscheiden sich evtl., die Verwaltung ihres WhatsApp Business API-Endpunkts an einen Drittanbieter von Unternehmenslösungen zu delegieren. In diesen Fällen verwendet die Kommunikation weiterhin dieselbe Signal-Protokollverschlüsselung. Da der WhatsApp Business API-Benutzer jedoch einen Drittanbieter für die Verwaltung des Endpunkts gewählt hat, betrachtet WhatsApp diese Nachrichten nicht als vollständig verschlüsselt. In der Zukunft, also ab 2021, gilt dies auch für Unternehmen, die die cloudbasierte Version der API von Facebook nutzen.

Wenn du bei Aufrufen an den WhatsApp Business API-Client HTTPS verwendest, werden diese Daten darüber hinaus mit SSL verschlüsselt (vom deinem Backend-Client zum WhatsApp Business API-Client).

Weitere Informationen findest du im technischen Whitepaper mit einem Überblick über die Verschlüsselung bei WhatsApp.

Nein, du kannst nur ein Konto pro Instanz ausführen. Wenn du ein zweites Testkonto benötigst, verwende für diese zweite Instanz eine andere Nummer.

NEIN! Mit einer bestimmten Telefonnummer kann immer nur eine Instanz des WhatsApp Business API-Client ausgeführt werden. Sobald du eine zweite Instanz registrierst, wird die erste Instanz abgemeldet und schlägt fehl. Wir arbeiten an einer Lösung, mit der dies möglich ist. Neuigkeiten dazu wirst du zeitnah erfahren.

Der WhatsApp Business On-Premises API-Client erfordert eine Datenbank zum Speichern von Schlüsseln, die für die Entschlüsselung von zwischen einem Unternehmen und Kunden gesendeten Nachrichten verwendet werden. Alle Nachrichten auf WhatsApp werden mit Sender- und Empfängerschlüsseln verschlüsselt. Kundenschlüssel werden auf dem Mobilgerät des Kunden gespeichert und Unternehmensschlüssel in der Datenbank des Unternehmens. Hier erfährst du mehr über die Sicherheit bei WhatsApp.

Die WhatsApp Business Cloud API stellt eine Alternative dar, bei der Meta die Datenbank eines Unternehmens hostet. Mit der Cloud API kannst du WhatsApp Business APIs implementieren, wobei keine Kosten für das Hosten deiner eigenen Server anfallen. Mehr erfahren.

No. There's currently no way to run multiple numbers in the same WhatsApp Business API client setup. We are working on a proper solution that will allow this in the future.

Yes, Whatsapp Flows can be sent with On-Premises API. You can learn more about Whatsapp Flows here, or learn how to get started with Whatsapp Flows and On-Premises API here.

Installation

Ja. Der WhatsApp Business API-Client versucht standardmäßig, mithilfe von chatd über Port 5222 zu kommunizieren. Für optimale Ergebnisse solltest du für den gesamten ausgehenden Traffic den Port 5222 öffnen. Dies stellt kein Sicherheitsrisiko dar, da der Traffic nur ausgehender Traffic von deinem Rechenzentrum ist.

Wenn du den Port 5222 nicht öffnen kannst, versucht der WhatsApp Business API-Client, den Port 443 zu verwenden. Wenn deine Firewall oder dein Proxy immer noch Verbindungen beendet, wende dich bitte an das WhatsApp-Team: Sende zum Debuggen eine Frage über Direct Support.

Nein. Der WhatsApp Business API-Client öffnet eine ausgehende TCP-Verbindung zum Verbindungspunkt 5222 oder 443 auf den WhatsApp-Servern. TCP-Traffic läuft über diese langlebige Verbindung. Von Firewalls wird dieser normalerweise als „ausgehender Traffic und der etablierte Traffic“ klassifiziert. Natürlich werden Pakete übertragen, sobald die Verbindung hergestellt ist, aber der Verbindungsstart erfolgt über den WhatsApp Business API-Client, sodass keine Regel für eingehende Verbindungen erforderlich ist.

Die Anforderungen hängen von deiner Auslastung und Situation ab. Die Lösung kann auf jedem mit dem Internet verbundenen Gerät ausgeführt werden, auf dem Docker läuft. Auf einem Laptop können beispielsweise ganz einfache Tests durchgeführt werden.

Für einen Produktionsserver mit einer Instanz empfehlen wir mindestens 250 GB SSD, 16 GB RAM und Quad-Core-CPU. HDD wird nicht empfohlen, da die I/O-Geschwindigkeiten bei Auslastung zu Engpässen führen.

Für einen Multiconnect-Produktionsserver empfehlen wir mindestens 50 GB SSD, 4 GB RAM und Dual-Core-CPU für jeden Coreapp-/Master-/Webapp-Container.

In den meisten Fällen solltest du die Datenbank auf einem physischen Server ausführen, der von den Core- und Web-Containern getrennt ist. Die Latenzzeit zwischen dem Datenbankserver und anderen Rechnern sollte nur wenige Millisekunden betragen.

Diese Konfiguration unterstützt das Senden von etwa 20 Nachrichten pro Sekunde.

MySQL 5.7.x, PostgreSQL 9.5.x, 9.6.x, 10.x sind erforderlich. Mit einer älteren Version erhältst du den Fehler Unable to initialize config store.

Befolge diesen Leitfaden zu Docker MySQL, um MySQL lokal unter Verwendung von Docker einzurichten.

Befolge diesen Leitfaden zu Docker PostgreSQL, um PostgreSQL lokal unter Verwendung von Docker einzurichten.

In den meisten Fällen solltest du die Datenbank auf einem physischen Server ausführen, der von den Core- und Web-Containern getrennt ist. Die Latenzzeit zwischen dem Datenbankserver und anderen Rechnern sollte nur wenige Millisekunden betragen.

Eine Whitelist kann mit Hostnamen oder IP-Adressen erstellt werden.

Weitere Informationen findest du im Abschnitt Hostnamen der Dokumentation mit Netzwerkanforderungen.

Ja, die TCP-Verbindung ist erforderlich. Wenn dein Unternehmen keine zusätzlichen Ports öffnen kann, kannst du Terminated SSL verwenden.

Weitere Informationen findest du in der Dokumentation zu Netzwerkanforderungen.

Datenmanagement

MySQL und PostgreSQL werden unterstützt. Wenn du Docker selbst ausführst, musst du eine MySQL-/PostgreSQL-Datenbank angeben, mit der die Container eine Verbindung herstellen können. Durch Verwendung der AWS-Vorlage wird standardmäßig eine MySQL-Datenbank eingerichtet.

Nein. Derzeit kann der WhatsApp Business API-Client nicht auf Docker für Windows ausgeführt werden. Für Entwicklungsanforderungen wird die Ausführung von Docker auf einem virtuellen Linux-Gerät empfohlen. Für Produktions-Workloads empfehlen wir einen Linux-Server, um Kompatibilitäts- und Leistungsprobleme zu vermeiden.

Du kannst die Docker-Container neu starten, indem du den folgenden Code ausführst:

Coreapp-Docker-Container

docker restart wacore<Current_WABA_Version>

Webapp-Docker-Container

docker restart webapp<Current_WABA_Version>

Mit

docker ps

kannst du prüfen, welche Version auf deinem Gerät ausgeführt wird.

Ja, die Protokollrotation erfolgt bei Webapp-Containern und Coreapp-Containern geringfügig anders:

  • Webapp: Die letzten 30 Protokolldateien werden beibehalten. Die Protokolldatei wird nur rotiert, wenn die Datei größer als 20 MB ist.
  • Coreapp: Die letzten 30 Protokolldateien werden beibehalten. Die Protokolldatei wird nur rotiert, wenn die Datei größer als 15 MB ist. Rotierte Dateien werden komprimiert.

Es gibt ein Skript, das extern ausgelöst werden kann, um alte Protokolle eines Containers zu bereinigen.

docker exec CONTAINER_NAME /opt/whatsapp/bin/cleanup.sh

Das Skript kann sowohl mit Webapp- als auch mit Coreapp-Containern verwendet werden. Durch die Ausführung des Skripts werden alte Protokolldateien entfernt und es bleiben nur noch 30 Protokolldateien des Containers übrig.

Es kann sein, dass sich das System verlangsamt, wenn der Speicherplatz knapp wird. Die Ursache kann eine hohe Anzahl von Mediendateien, Nachrichten und großen Protokolldateien sein. Protokolldateien werden automatisch rotiert. Wenn sie groß werden, sollten sie aber zur Sicherheit trotzdem gelöscht werden.

Nachrichten werden in der Datenbank gespeichert. Du kannst Nachrichten bei Bedarf löschen. Wenn der pass_through in den Anwendungseinstellungen auf „false“ festgelegt ist, werden außerdem alle Nachrichten in der Datenbank gespeichert, bis sie explizit gelöscht werden.

Mediendateien, die Nutzer an dich senden, werden in die Medienvolumes heruntergeladen. Es ist Sache des Unternehmens, zu entscheiden, welche Mediendateien gelöscht werden sollen, aber es ist generell ratsam, alle Mediendateien zu löschen. Du kannst anhand von docker inspect your-container-id prüfen, wo sich der Ordner mit den Medienvolumes befindet.

Ja, die Datenbank kann auf andere Weise verwendet werden, ohne dass dies Auswirkungen auf die mit WhatsApp zusammenhängenden Tabellen hat.

In den Datenbanktabellen werden Informationen zu App-Einstellungen, Chat-Threads, Nachrichten, Medien usw. gespeichert, die alle für den Betrieb der App erforderlich sind.

v2.25.x weist gegenüber früheren Versionen eine bessere Ausgangs- und Eingangsleistung auf. Diese Optimierung basiert auf der Herstellung zusätzlicher Datenbankverbindungen. Bei einigen Implementierungen kann dies zu einer höheren Anzahl an Datenbankverbindungen und damit zu Einschränkungen bei Datenbankverbindungen führen. Um die erhöhte Leistung aufrechtzuerhalten, kannst du die maximale Anzahl an Verbindungen für deinen Datenbankserver erhöhen. Wenn das nicht möglich ist, kannst du den Parameter „axolotl_context_striping_disabled“ ändern, um dieses Verhalten zu deaktivieren. Weitere Informationen dazu findest du in unserer Dokumentation zu Anwendungseinstellungen.

Mit der Datenbankbereinigung werden die messages- und die messages_reciept_log-Tabellen regelmäßig bereinigt, um die Datenbankverwaltung zu vereinfachen.

Bei der Datenbankbereinigung werden bestimmte Nachrichten gespeichert, um eine erfolgreiche Auslieferung/Verarbeitung zu ermöglichen. So wird beispielsweise eine eingehende Nachricht für einen bestimmten Zeitraum gespeichert, damit sie von Business-Integrationen als „Gelesen“ markiert werden kann.

Die Coreapp führt in zufälligen Intervallen Bereinigungen durch (z. B. alle paar Stunden) Damit soll ein möglicher Leistungsabfall bei Hochverfügbarkeits-Stacks aufgrund von Datenbankkonflikten vermieden werden.

Die Bereinigung erfolgt unabhängig von der Rückruf-Warteschlange. Ist der Webhook-Server beispielsweise vier Tage lang nicht verfügbar, werden die Rückrufe gespeichert, damit sie nach der Wiederherstellung der Konnektivität des Webhook-Servers ausgeliefert werden können.

Verwende den services-API-Endpunkt der Datenbankbereinigung, um Nachrichten und dazugehörigen Nachrichtenbelege aus der messageStore.messages- und der messageStore.messages_receipt_log-Tabelle zu löschen.

Registrierung

Wenn du das aktuelle Setup sicherst und es auf dem neuen Gerät wiederherstellst, sollten die Registrierungsinformationen mit dem Rest deiner Implementierung übernommen werden. Weitere Informationen findest in der Dokumentation Einstellungen zur Sicherung und Wiederherstellung.

Authentifizierung

Wenn ein Nutzer über den users-Endpunkt abgemeldet wird, werden alle Authentifizierungsschlüssel, die diesem Konto zugewiesen sind, ungültig gemacht. Das Löschen eines Benutzers hat den gleichen Effekt, allerdings ist dieser Schritt viel drastischer. Bedenke, dass ein neuer Authentifizierungsschlüssel zurückgegeben wird, wenn ein Nutzer über den users-Endpunkt angemeldet wird. Authentifizierungsschlüssel, die für diesen Nutzer bereits im Umlauf sind, werden dadurch aber nicht ungültig gemacht. Jeder, der im Besitz eines zuvor ausgestellten Schlüssels ist, kann ihn nutzen, bis er abläuft oder durch eine der oben genannten Methoden ungültig gemacht wird.

Senden von Nachrichten

Hinweis: Bitte sende eine Nachricht nicht mehrmals über die WhatsApp Business API an denselben*dieselbe Empfänger*in.

Es kann mehrere Ursachen haben, wenn die Auslieferungsrate nicht 100 % beträgt. Beispielsweise kann es sein, dass Benutzer*innen nur sporadisch Zugriff auf das Netzwerk haben, für einen längeren Zeitraum nicht aktiv sind oder dass ein hochwertiges Nutzungserlebnis gewährleistet werden soll.

Nachrichten, die mit WhatsApp ausgeliefert werden können, haben eine sehr hohe Auslieferungsrate. Es gibt jedoch viele Gründe, warum eine Nachricht nicht ausgeliefert wird. Durch Verfolgen deiner Rückrufe hast du Zugriff auf den genauen Status einer Nachricht. Darin liegt beispielsweise der Unterschied zum Senden von Nachrichten per SMS, wo du keinen Zugriff auf den endgültigen Auslieferungsstatus hast und durch erneutes Senden der Nachricht möglicherweise tatsächlich ein anderes Ergebnis entsteht.

Nachrichten gelten womöglich weiterhin als „nicht ausgeliefert“, weil das Telefon eines*einer Benutzer*in außer Betrieb ist, der Akku leer ist oder der*die Benutzer*in es verloren hat, sich daraufhin ein neues Telefon gekauft und die SIM-Karte deaktiviert hat. Denkbar ist auch, dass der Unternehmenskunde beim Herstellen der Verbindung mit dem Netzwerk Fehlermeldungen erhalten hat. Es ist außerdem möglich, dass Rückrufe (Webhooks) nicht ausgeliefert werden. Diese Fälle kannst du mit dem Node health überwachen. Durch Aktivieren von Server-Empfangsrückrufen hast du die Gewissheit, dass die Nachricht in der WhatsApp-Server-Cloud angekommen ist.

Wenn ein*e Benutzer*in erneut eine Verbindung mit dem Netzwerk herstellt, werden alle von dir gesendeten Nachrichten ausgeliefert. Bei dem*der Benutzer*in kommt es nicht gut an, wenn er mehrere Nachrichten mit demselben Inhalt erhält. Die Wahrscheinlichkeit steigt, dass der*die Benutzer*in dich blockiert oder sich über dich beschwert. Auch eine Sperrung wird wahrscheinlicher.

Wenn du eine Nachricht sendest und von der API eine Nachrichten-ID erhältst, hast du alles Nötige getan, um diese Nachricht zu senden. Du solltest denselben Inhalt nicht erneut an denselben Empfänger senden.

Wenn die Auslieferungsrate über einen längeren Zeitraum niedrig ist, öffne ein Support-Ticket beim Direct Support.

Wenn du eine Nachricht sendest und eine Nachrichten-ID erhältst, bedeutet das, dass die Nachrichtenanforderung in der Datenbank gespeichert wurde. Der WhatsApp Business API-Client versucht weiterhin, diese Nachricht zu senden, bis der Vorgang vom WhatsApp-Server bestätigt wird. Dieser Prozess ist nicht zeitlich begrenzt. Der WhatsApp-Server versucht dann, diese Nachricht an das Telefon des Nutzers zu übermitteln. Wenn das Telefon des Benutzers nicht online ist, wird die Nachricht 30 Tage lang gespeichert, bevor sie vom WhatsApp-Server entfernt wird.

Es gibt derzeit keine Möglichkeit zu sehen, wie viele oder welche Benutzer dein Unternehmen blockieren. Eine gute Möglichkeit, dies herauszufinden, ist, auf Status-Rückrufe zu warten. Wenn du den Status delivered nicht erhältst, hat der Nutzer dein Unternehmen entweder blockiert oder er hat keine Verbindung zum Netzwerk. Weitere Informationen findest du in der Dokumentation zu Webhooks.

Wenn ein Nutzer dein Unternehmen gesperrt hat, wird diese Telefonnummer von der Kontakte-API weiterhin als ein gültiger WhatsApp-Nutzer zurückgegeben. Wenn du die Nachricht sendest, wird sie allerdings niemals zugestellt. Handelt es sich dabei um eine bezahlte Nachricht, fallen keine Kosten an.

In der Consumer-Variante ist dies das Standardverhalten, wenn sich der Absender nicht in deinem Adressbuch befindet und du bislang noch keine Nachricht an diesen Absender gesendet hast. In der Enterprise-Variante sollte ein Unternehmen Nachrichtenvorlagen verwenden, wenn es zum ersten Mal Kontakt zu einem Nutzer aufnimmt, um „Vertrauen“ herzustellen. Dadurch befolgt der WhatsApp Business API-Client dann die Einstellung für den automatischen Download in der App.

In der Consumer-Variante ist dies das Standardverhalten, wenn sich der Absender nicht in deinem Adressbuch befindet und du bislang noch keine Nachricht an diesen Absender gesendet hast. In der Enterprise-Variante sollte ein Unternehmen Nachrichtenvorlagen verwenden, wenn es zum ersten Mal Kontakt zu einem Nutzer aufnimmt, um „Vertrauen“ herzustellen. Dadurch kann der WhatsApp Business API-Client dann den Link rendern und dafür sorgen, dass er klickbar ist.

Nein. Es wird nicht garantiert, dass Nachrichten in der Reihenfolge ankommen, in der sie gesendet wurden. Wenn die richtige Reihenfolge für deinen Anwendungsfall wichtig ist, schlagen wir vor, den „Zugestellt“-Rückruf abzuwarten, bevor du die zweite Nachricht sendest.

Bei Verwendung des messages-Node musst du den Content-Type-Header auf application/json festlegen, damit der Nachrichtentext von WhatsApp Business API-Client richtig geparst wird. Es gibt auch einen Authorization-Header, der festgelegt werden und einen nicht abgelaufenen Zugriffsschlüssel enthalten muss. Informationen dazu, wie du den Zugriffsschlüssel abrufen kannst und wann er abläuft, findest du in der Dokumentation zu Anmeldung und Authentifizierung

Ja, du solltest einen API-Aufruf an den contacts-Node senden, bevor du eine Nachricht sendest. Die Informationen zur Prüfung von contacts werden im Container zwischengespeichert und wenn dies nicht geschieht, kann dies zum Fehler Unkown Contact führen. Weitere Informationen findest du in der Dokumentation Kontakte prüfen.

If there is a delay in a subset of numbers, then it is likely not an issue affecting the customers integration but rather an issue on the recipients end, these delays in delivery can happen for a number of reasons. See Send Message Performance, Delays for more information.

No this is not possible. Numbers that are registered under WABAs (WhatsApp Business Accounts) can only message regular WhatsApp accounts.

Medien

Es gibt keinen Bereinigungsmechanismus für ausgehende oder eingehende Mediendateien. Du kannst deine Mediendateien manuell löschen, indem du sie in deinem Dateisystem suchst.

Um den Bereitstellungspunkt deines Medienvolume zu finden, kannst du einen Docker-Befehl ausführen.

Anfrage

docker volume inspect whatsappMedia

Antwort

[
    {
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/whatsappMedia/_data",
        "Name": "whatsappMedia",
        "Options": {},
        "Scope": "local"
    }
]

Um alle eingehenden Mediendateien anzuzeigen, kannst du dann den Befehl ls mit dem erhaltenen Mountpoint-Dateipfad ausführen:

ls /var/lib/docker/volumes/whatsappMedia/_data/

In einer AWS-Umgebung wird das Medienvolume auf dem Host unter dem Pfad /mnt/wa/media bereitgestellt.

Die maximale Größe für Datei-Uploads beträgt 64 MB. Das heißt, diese Beschränkung gilt auch für Bilder, Dokumente oder Videos, die du mit einer Nachricht sendest.

Es liegt an dir zu entscheiden, wann Medien gelöscht werden.

Nach dem Hochladen von Medien erhältst du eine Medien-ID, mit der du eine Nachricht senden kannst, die das hochgeladene Medienelement enthält. Beim Senden der Mediennachricht verschlüsselt die WhatsApp Business API die Medien und lädt sie auf die WhatsApp-Server hoch, wo sie 14 Tage lang verbleiben. Danach kannst du entscheiden, ob du die Medien unter Angabe der Medien-ID löschen oder für die spätere Verwendung aufbewahren möchtest. Wir empfehlen zwar, die Medien 30 Tage lang aufzubewahren, aber es liegt an dir, die Aufbewahrungsrichtlinie entsprechend den Richtlinien deines Unternehmens oder dem Anwendungsfall festzulegen.

Bei Bildern wird die Bildunterschrift als Beschreibung hinzugefügt. Der Bildtext wird bei Bildern auf Android und iPhone in voller Länge angezeigt.

Bei Dokumenten wird der Dateiname durch die Bildunterschrift ersetzt. Die Bildunterschrift sollte nicht als Beschreibungstext auf dem Gerät des Nutzers angezeigt werden, sondern sie soll den Namen der Datei anzeigen. Auf iPhones wird der vollständige Text angezeigt. Auf Android-Telefonen wird der Dateiname dagegen abgekürzt. Dies ist eine technische Einschränkung der aktuellen Implementierung von WhatsApp auf beiden Geräten.

Wenn du ein Bild als Album über die WhatsApp Business API senden möchtest, musst du mindestens 4 Bilder nacheinander senden. Wenn die Unterhaltungsansicht des Nutzers beim Empfangen der Bilder aktiv ist, ist die Album-Ansicht erst beim nächsten Aufruf verfügbar.

In folgenden Fällen wird kein Album erstellt:

  1. Bilder mit Bildunterschriften
  2. Ungelesen-Trennlinie: Nutzer sieht einige, aber nicht alle Bilder
  3. Datumsheader: neuer Tag zwischen Zustellungen

Nein, derzeit müssen wir AWS EFS verwenden, um das Medienvolume zwischen Coreapp und Webapp zu teilen.

No, currently we do not support changing the default path to media storage (/usr/local/wamedia/). All media storage needs to be at this default location in order to work properly.

Nachrichtenvorlagen

Die Dauer beträgt derzeit 7 Tage. Wenn ein Zwischenspeicher länger als 7 Tage nicht aktualisiert wurde, wird das letzte Sprachpaket vom Server abgerufen, unabhängig davon, ob das Element bereits im Paket vorhanden ist oder nicht.

Hinweis: Die fallback-Sprachrichtlinie ist ab v2.27.8 veraltet und die deterministic-Sprachrichtlinie ist nun die Standardrichtlinie.

Wenn du eine Übersetzung in einer neuen Sprache erstellst, musst du alle Elemente übersetzen, die du verwendest. Andernfalls erhältst du den Fehler „Struktur nicht verfügbar“, denn das Telefon des Empfängers kann ein Element nicht finden, das es für die jeweilige Sprache erwartet. Diese „Struktur nicht verfügbar“-Fehler treten beim Senden von Nachrichtenvorlagen mithilfe der Fallback-Richtlinie auf.

Wenn das Erstellen von Übersetzungen derzeit für dich nicht in Frage kommt, kannst du diese Fehler mit der deterministischen Richtlinie vermeiden.

Webhooks

Der WhatsApp Business API-Client sendet die Webhook-Rückrufe über den Coreapp-Container an dich. Daher muss dein Webhook-Endpunkt so konfiguriert sein, dass er eingehende Anfragen von der Coreapp akzeptiert.

Wenn ein Webhook einen Rückruf nicht senden kann, wird der Rückruf in eine Warteschlange für Wiederholungsversuche gestellt. Rückrufe, die nach dem Fehlschlagen des ursprünglichen Rückrufs gesendet werden, werden nicht empfangen. Die restlichen Rückrufe werden erst empfangen, wenn der ursprünglich fehlgeschlagene Rückruf erfolgreich war.

Wenn ein Webhook-Event aus beliebigem Grund nicht ausgeliefert wird (z. B. weil der Client offline ist) oder die Webhook-Anfrage einen anderen HTTP-Statuscode als 200 zurückgibt, wiederholen wir die Webhook-Auslieferung. Die Auslieferung wird in immer größeren Intervallen bis zu einer bestimmten Zeitüberschreitung (in der Regel 24 Stunden, kann jedoch variieren) oder bis zur erfolgreichen Auslieferung erneut versucht.

Doppelte Nachrichten können als die einzige Garantie an einen WhatsApp Webhook gesendet werden, sofern Nachrichten mindestens einmal empfangen werden (anstatt genau einmal). Wenn dies Auswirkungen darauf hat, wie Nachrichten auf deiner Seite verarbeitet werden, schlagen wir vor, Webhook-Nachrichten basierend auf der Nachrichten-ID zu deduplizieren.

Überprüfen Sie Ihre pass_through-App-Einstellung. Du erhältst keine Lesestatus-Rückrufe, wenn du pass_through mit dem WhatsApp Business API-Client v2.29.1 oder höher aktiviert hast.

Wenn du den Lesestatus-Rückruf erhalten möchtest, deaktiviere die pass_through-App-Einstellung. Beachte, dass dein Datenbankspeicher durch die Deaktivierung von pass_through schnell wachsen könnte. Weitere Informationen zum Datenbankmanagement findest du in der Dokumentation zum Datenbankmanagement.

Fehler

Diese Meldung wird durch einen Fehler in einer alten Version des iOS-Client verursacht. Wir gehen davon aus, dass diese Fehlermeldungen im Laufe der Zeit abnehmen, wenn die Allgemeinheit Upgrades vornimmt.

Prüfe zunächst die Rückrufe auf kritische Fehler, um das Problem zu diagnostizieren.

Wenn du die Fehlermeldung „Konflikt: Mehrere Instanzen mit derselben Nummer erkannt“ erhältst, musst du deine Container prüfen. Die wahrscheinlichste Ursache ist, dass mehrere Docker-Container versuchen, über dasselbe WhatsApp-Konto eine Verbindung zu den WhatsApp-Servern herzustellen. Vergewissere dich, dass nur ein Container aktiv ist. Wenn du alte Container hast, deaktiviere sie. Der Fehler wird dadurch behoben.

Wenn du unsere komplexeren Hochverfügbarkeitslösungen testen möchtest, nutze die Dokumentation Hochverfügbarkeit.

Hierbei handelt es sich um ein bekanntes Problem. Manchmal ist bei einem Upgrade des WhatsApp Business API-Client mit den CloudFormation-Skripts auch ein Update des RDS-DB-Stacks erforderlich. Der neue RDS-Stack hat nicht den gleichen Hostnamen wie der ursprüngliche Stack und die Docker-Container können keine Verbindung zur Datenbank herstellen. Die Lösung besteht darin, sich per SSK mit der EC2-Instanz zu verbinden, die von CloudFormation erstellt wurde, die Datei whatsapp.conf mit dem neuen Hostnamen zu aktualisieren und dann die Docker-Container neu zu starten, damit sie die neuen Einstellungen übernehmen.

Dieser Fehler tritt auch, wenn die Datenbank nicht richtig eingerichtet wurde.

  • Achte darauf, entweder MySQL 5.7 oder höher oder PostgreSQL 9.5.x, 9.6.x, 10.x zu verwenden.
  • Dein Datenbankpasswort sollte keines der folgenden Zeichen enthalten: ?{}&~!()^.
  • Wenn du AWS verwendest, achte darauf, dass dein Stack einen kurzen Namen hat. Weitere Informationen findest du in der Dokumentation zur Installation.

Dies geschieht, wenn die Docker-Bridge beschädigt ist. Um dieses Problem zu beheben, solltest du den Docker-Dienst am besten beenden und neu starten. Du kannst bei deinen Containern auch docker restart ausprobieren.

Der Fehler „Verbindung abgelehnt“ bedeutet wahrscheinlich, dass die Coreapp nicht aktiv ist. Verwende docker ps, um herauszufinden, ob die Coreapp aktiv ist. Ist dies nicht der Fall, sieh dir die Docker-Protokolle an. Möglicherweise kann die Coreapp keine Verbindung mit der Datenbank herstellen. Vergewissere dich, dass die Datenbank ordnungsgemäß eingerichtet ist.

Hierfür kann es diverse Gründe geben. Möglicherweise ist die Coreapp nicht verfügbar oder deine Datenbank wurde nicht ordnungsgemäß eingerichtet. Ist dies nicht der Fall, sieh dir die Coreapp-Protokolle an (bzw. die Master-Coreapp-Protokolle, wenn du Multiconnect verwendest). Bei Fehlern wegen der Datenbankverbindung verfügt die Datenbank wahrscheinlich nicht über genügend Verbindungen. Mehr zu diesem Fehler findest du im MySQL-Dokument oder im PostgreSQL-Dokument.

Wir empfehlen, die Anzahl der Datenbankverbindungen für deine Datenbank zu heraufzusetzen. Mit 1.000 Datenbankverbindungen bist du auf der sicheren Seite, doch du solltest selbst eine fundierte Entscheidung hinsichtlich der Anzahl der Verbindungen treffen. Wenn der Fehler weiterhin besteht, dann öffne ein Support-Ticket.

Wenn du diesen Fehler erhältst, aber der fehlende obligatorische Parameter, auf den sich der Fehler bezieht, im JSON-Body eingerichtet ist, könnte es sich um einen JSON-Parsing-Fehler handeln. Dieser Fehler kann auftreten, wenn die gesamte JSON-Payload aufgrund von JSON-Formatierungsfehlern nicht geparst werden kann. Prüfe die Werte dieser Parameter auf ungültige JSON-Zeichen, beispielsweise einen Zeilenumbruch am Ende. Denkbar ist auch, dass Parameter mit zusätzlichen Leerzeichen hineinkopiert wurden, die JSON beschädigen.

„structure unavailable“-Fehler treten auf, wenn die Vorlagennachricht vom Telefon nicht gelesen werden kann.

Vorlagen werden auf dem Server gespeichert. Wenn eine Nachrichtenvorlage mit dem messages -Nodegesendet wird, werden nur Namespace, Sprache, Elementname und lokalisierte Parameter an das Telefon gesendet, aber nicht die gesamte Nachricht. Sobald diese Werte an das Telefon ausgeliefert wurden, versucht es, die Nachricht zu rendern.

Wenn beim Rendern Fehler auftreten, wird der Fehler structure unavailable an die Rückruf-URL gesendet, zusammen mit der Empfänger- und der Nachrichten-ID. Diese Fehler können durch einen falschen Namespace, Unstimmigkeiten bei lokalisierten Parametern, einen falschen Elementnamen usw. bedingt sein.

Navigiere in deinem Facebook Business Manager zum WhatsApp Manager, um die richtige Anzahl der Parameter zu ermitteln. Vergewissere dich, dass der Namespace richtig ist und der Elementname existiert.

Wenn nicht für alle verwendeten Vorlagen Übersetzungen erstellt wurden, ist dies eine häufige Fehlerquelle. Beispiel: Wenn du in der Regel zwei Vorlagen sendest und für eine der Vorlagen eine neue Übersetzung hinzufügst, musst du die neue Übersetzung auch für die andere Vorlage hinzufügen. Wenn Support für mehrere Sprachen angeboten werden soll, müssen für alle Vorlagen Übersetzungen für alle unterstützten Sprachen bereitgestellt werden.

Die gute Nachricht: structure unavailable -Fehler sind normalerweise auf Fehler im messages -API-Aufruf zurückzuführen und können behoben werden, indem die Send-Payload geändert wird.

Vor dem Senden einer Nachricht musst du zunächst prüfen, ob der Kontakt existiert. Weitere Informationen dazu findest du in unserer Dokumentation zu Kontakten.

Die Ursache für diesen Fehler ist, dass Coreapp noch nicht initialisiert ist. Das bedeutet, dass die Registrierung möglicherweise nicht erfolgreich abgeschlossen wurde. Versuche bitte, die Registrierung abzuschließen, bevor du einen Aufruf an einen anderen Endpunkt durchführst. Der erste Schritt nach der Installation von WhatsApp Business API ist die Anmeldung. Der zweite Schritt ist die Registrierung. Diese beiden Schritte sind erforderlich, bevor du Anfragen an andere Endpunkte stellen kannst.

Alle Builds des WhatsApp Business API-Client laufen sechs Monate nach dem Veröffentlichungsdatum ab. Wenn du diesen Fehler erhältst, aktualisiere schnellstmöglich auf die neueste Version.

WhatsApp führt Experimente durch, um die Auswirkungen von WhatsApp Business-API-Benachrichtigungen auf die Nutzererfahrung und das Produkt im Allgemeinen zu messen und um genauere Einblicke zu erlangen. Wenn der Nutzer, dem du eine Nachricht senden möchtest, an einem dieser Experimente teilnimmt, erhält er unter Umständen keine Benachrichtigungen von dir, selbst wenn dies eigentlich so eingestellt ist.

Wenn du bei der Einrichtung deiner AWS-Bereitstellung einen Fehler wie den folgenden erhältst, solltest du versuchen, zu einem Stacknamen zu wechseln, der 8 Zeichen oder weniger verwendet.

Country Name (2 letter code) [AU]:State or Province Name (full name) [Some-State]:Locality Name (eg, city) []:Organization Name (eg, company) [Internet Widgits Pty Ltd]:Organizational Unit Name (eg, section) []:Common Name (e.g. server FQDN or YOUR name) []:string is too long, it needs to be less than 64 bytes long Common Name (e.g. server FQDN or YOUR name) []:Email Address []:error, no objects specified in config file problems making Certificate Request Created device key for internal-wa-inc-name-LB-123456789.ap-southeast-1.elb.amazonaws.com

Ein leeres profile-Objekt wird zurückgegeben, wenn das Business-Profil nur teilweise ausgefüllt wurde. Führe ein Upgrade auf v2.21.4, um dieses Problem zu beheben.

Weitere Informationen zum Ausfüllen des Business-Profils findest in der Dokumentation Unternehmensprofil-Einstellungen.

Der Fehlercode 471 betrifft Ratenbegrenzungen auf Qualitätsbasis. Weitere Informationen findest du in der Dokumentation zu Ratenbegrenzungen auf Qualitätsbasis.

Es folgen Validierungsfehler beim Senden von Nachrichtenvorlagen und mögliche Gründe dafür, dass sie angezeigt werden.

  • „No message templates exist in language your-language“ oder „No message templates exist in language your-language and locale your-locale“: Das angegebene Sprachpaket ist nicht vorhanden. Prüfe dein Business Manager-Konto.
  • „Template your-template-name does not exist in language your-language“ oder „Template your-template-name does not exist in language your-language and locale your-locale“: Du versuchst, eine Vorlage zu verwenden, die nicht vorhanden ist (nicht erstellt wurde oder noch nicht genehmigt wurde). Wenn du versuchst, eine Nachricht mit einer Vorlage zu senden, die gelöscht wurde, wird dir auch dieser Fehler angezeigt.
  • „Number of localizable_params num1 does not match the expected number of params num2“: Du versuchst, eine Nachrichtenvorlage mit Parametern zu senden, die nicht mit der Anzahl der erwarteten Parameter übereinstimmen. Prüfe bitte, ob der API-Aufruf korrekt ist.
  • dein-Vorlagenname is a rich template and requires the template message API to be used“: Du versuchst, eine Mediennachrichtenvorlage als Standard-Nachrichtenvorlage zu senden. Stelle sicher, dass der Nachrichtentyp template ist. Weitere Informationen dazu findest du in der Dokumentation zu Mediennachrichtenvorlagen.
  • Nachdem Vorlagen im Business Manager genehmigt (oder gelöscht) wurden, kann es bis zu 20 Minuten dauern, bis der WhatsApp Business API-Client die aktualisierten Vorlagen erhält. Wenn du versuchst, eine Nachricht mit einer Vorlage zu senden, die gerade genehmigt wurde, und du die Fehlermeldung erhältst, dass die Vorlage nicht existiert, kannst du versuchen, die Nachricht erneut zu senden, nachdem du die oben angegebene Zeit abgewartet hast.

Für WhatsApp Business API-Clients mit v2.21.6: Wenn der Client vom Server getrennt wird, kann er mehrere Minuten (maximal 4 Minuten) getrennt bleiben und dann erneut versuchen, eine Verbindung herzustellen. Durch ein Upgrade auf v2.23.4 ist der Ausfall eines Clients beim Verbindungsversuch mit dem Server kürzer.

Vor v2.29.x konnte die Warteschlange aufgrund eines Bugs für ausgehende Nachrichten im Laufe der Zeit immer länger werden. Mit dem Upgrade auf v2.29.3 wird dieses Problem behoben.

Die Coreapp prüft die Verzeichnisse /usr/local/waent/data und /usr/local/waent/log im Coreapp-Container und stellt sicher, dass mindestens 10 MB Speicherplatz verfügbar sind. Andernfalls wird dieser kritische Fehler angezeigt.

Prüfe deine Protokolle und dein Datenverzeichnis, um sicherzustellen, dass ausreichend Platz vorhanden ist.

Anderes

Dies ist derzeit nicht möglich. Wenn du nicht in der Lage bist, eingehende Antworten deiner Nutzer über WhatsApp zu verarbeiten, empfehlen wir, eine Nachricht mit automatischer Antwort zu senden, um sie an deine richtigen Supportkanäle weiterzuleiten.

Du solltest eine zweite Telefonnummer registrieren und einen zweiten CloudFormation-Stack oder eine zweite Docker-Instanz zum Testen hochfahren. Wenn du zwei aktive WhatsApp Business API-Clients mit derselben Telefonnummer hast, wirst du vom Server abgemeldet, weil ein Konflikt zwischen den Verschlüsselungsschlüsseln auftritt. Wir empfehlen, eine zweite Umgebung zu haben, mit der du deine Nicht-Produktionsinstanz testen kannst, bevor du eine Migration auf deinem Produktionsmandanten durchführst.

Eine Systemdiagnose ist kostenlos und kann so oft wie nötig durchgeführt werden.

In der Dokumentation zu Statistiken findest du weitere Informationen zu den Statistiken zu Anwendungen und Datenbanken, die du abrufen kannst. Anwendungsstatistiken werden im Arbeitsspeicher abgelegt und die Abfrage erfordert wenig Ressourcen. Das Abrufen von Datenbankstatistiken ist ressourcenintensiver und sollte nur bei Bedarf erfolgen.

Dein Unternehmen wird nicht benachrichtigt, wenn ein Kunde seine WhatsApp-Telefonnummer ändert. Wenn du den contacts-Node verwendest, lautet der Status für diese Nummer invalid.

Wenn die Telefonnummer eines Kunden nicht mehr aktiv ist, der Kunde aber WhatsApp weiterhin verwendet, hat der Kunde weiterhin Zugang zu WhatsApp, bis/wenn die Telefonnummer neu zugewiesen oder registriert wird.

Von WhatsApp wird streng überprüft, ob eine angegebene Nummer tatsächlich zu einem Telefon gehört. Die Tatsache, dass ein Nutzer ein WhatsApp-Konto hat, ist ein Beweis dafür, dass er die Nummer bestätigt hat und niemand sonst diese Nummer verwendet hat, um sich später bei WhatsApp zu registrieren. Dies ist jedoch keine Garantie für den physischen Standort der SIM-Karte.

Andererseits kann ein Nutzer bei Verlust oder Diebstahl seines Telefons sein WhatsApp-Konto deaktivieren. Weitere Informationen dazu, wie Nutzer ihr Konto deaktivieren können, findest du unter Telefon verloren oder gestohlen – FAQ.

Nein, es gibt keine Möglichkeit, mithilfe der WhatsApp Business API mehrere Geräte mit der gleichen Nummer zu erkennen.

Ein Nachrichten-Payload von einem Nutzer kann eine Text- oder Mediendatei sein.

Von Textdateien gehen unserer Einschätzung nach keine Gefahren aus.

Für Mediendateien gilt Folgendes:

  • Normalerweise wird davon ausgegangen, dass Unternehmen Schutzsoftware (d. h. Antivirensoftware, Software gegen Schadprogramme etc.) einsetzen, um mögliche Bedrohungen zu analysieren.
  • WhatsApp kann den Inhalt einer zu übertragenden Datei nicht identifizieren oder überprüfen, da sie End-to-End-verschlüsselt ist (dasselbe gilt auch für reine Textinhalte).
  • Es gibt eine Option, um zu verhindern, dass Mediendateien im WhatsApp Business API-Client automatisch heruntergeladen werden. Wenn das Unternehmen von Benutzern keine Dateien erhalten möchte, kann das auto_download-Feld auf einen leeren Bereich festgelegt werden.

Wende dich bitte mit allen Informationen, die dir zur Verfügung stehen, an den Support. Wir untersuchen den Sachverhalt und schalten falsche Nummern ab.

Ab Version v2.18.26 erlaubt der Endpunkt für Anwendungsstatistiken das Exportieren interner Kennzahlen im Prometheus-Textformat. Weitere Informationen findest du in der Dokumentation zur Instanzenüberwachung.

Der WhatsApp Business On-Premises API-Client erfordert eine Datenbank zum Speichern von Schlüsseln, die für die Entschlüsselung von zwischen einem Unternehmen und Kunden gesendeten Nachrichten verwendet werden. Alle Nachrichten auf WhatsApp werden mit Sender- und Empfängerschlüsseln verschlüsselt. Kundenschlüssel werden auf dem Mobilgerät des Kunden gespeichert und Unternehmensschlüssel in der Datenbank des Unternehmens. Hier erfährst du mehr über die Sicherheit bei WhatsApp.

Die WhatsApp Business Cloud API stellt eine Alternative dar, bei der Meta die Datenbank eines Unternehmens hostet. Mit der Cloud API kannst du WhatsApp Business APIs implementieren, wobei keine Kosten für das Hosten deiner eigenen Server anfallen. Mehr erfahren.