Zum Inhalt springen
WbizTool

WhatsApp-Konten-API

WhatsApp-Nummer verbinden (API)

Starten Sie die Verbindung einer WhatsApp-Nummer mit Ihrem Arbeitsbereich direkt aus Ihrer eigenen App. WbizTool öffnet eine neue WhatsApp-Sitzung und sendet einen QR-Code oder, mit login_method=phone, einen 8-stelligen Code an Ihre Webhook-URL. Zeigen Sie ihn dem Besitzer des Telefons, er scannt den QR-Code oder gibt den Code in WhatsApp ein, und die Nummer ist bereit zum Senden von Nachrichten. Bei einem QR-Code müssen Sie die Nummer nicht im Voraus kennen: WbizTool liest sie nach dem Scan aus WhatsApp aus und sendet sie an Ihren Webhook.

Sie verknüpfen Ihre eigene Nummer von Hand? Folgen Sie WhatsApp-Nummer verbinden.

POSThttps://wbiztool.com/api/v1/whatsapp/connect/

Body: JSON oder Formularfelder

POST /api/v1/whatsapp-client/create/ ist ein identischer Alias: Er führt denselben Code aus und liefert dieselben Antworten. Beide Pfade funktionieren weiterhin.

So funktioniert das Verbinden#

Der API-Aufruf startet die Verbindung nur. Der QR-Code oder Telefoncode kommt später an Ihrer Webhook-URL an.

  1. Connect API aufrufen

    Senden Sie Ihre webhook_url und bei login_method=phone zusätzlich whatsapp_number. Um eine früher hinzugefügte Nummer erneut zu verbinden, senden Sie außerdem ihre whatsapp_client_id. Die Antwort enthält eine whatsapp_client_id. Speichern Sie diese.

  2. QR-Code oder Telefoncode empfangen

    Mit dem Standardwert login_method=qr erhält Ihr Webhook status=qr_generated mit dem QR-Bild in qr_image. Solange WbizTool auf einen Scan wartet, wird der QR-Code alle paar Sekunden erneut gesendet. Zeigen Sie also immer den neuesten an. Die Person hat etwa zwei Minuten Zeit zum Scannen.

    Mit login_method=phone erhält Ihr Webhook status=pairing_code mit einem 8-stelligen Code in pairing_code, zum Beispiel K5EWPGY5. Er wird einmal gesendet und ist etwa drei Minuten gültig.

    Zeigen Sie das Bild oder den Code der Person, der das Telefon gehört. Wird er nicht rechtzeitig verwendet oder verlangt WhatsApp das Neuladen des Codes, erhalten Sie not_connected; rufen Sie die API dann erneut auf, um einen neuen zu erhalten.

  3. Telefon verknüpfen

    Öffnen Sie auf dem Telefon WhatsApp → Verknüpfte Geräte → Gerät verknüpfen. Scannen Sie den QR-Code oder tippen Sie auf Stattdessen mit Telefonnummer verknüpfen und geben Sie den 8-stelligen Code ein.

  4. Ergebnis erhalten

    Ihr Webhook erhält status=connected mit der verknüpften Nummer in whatsapp_number, wenn die Nummer verknüpft ist, oder status=not_connected, wenn der Code nicht rechtzeitig gescannt wurde oder die Verbindung fehlgeschlagen ist. Das Ereignis connected kann einige Sekunden eintreffen, bevor Verbindungsstatus Connected zurückgibt. Beantworten Sie zuerst den Webhook und fragen Sie dann Verbindungsstatus bis zu einer Minute lang alle paar Sekunden ab. Prüfen Sie den Status nicht nur einmal aus Ihrem Webhook-Handler heraus.

Kurzes Beispiel#

curl -X POST https://wbiztool.com/api/v1/whatsapp/connect/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "webhook_url": "https://example.com/wbiztool/connect-events?token=LONG_RANDOM_SECRET"
  }'

Ersetzen Sie 12345 und YOUR_API_KEY durch Ihre eigenen Werte. Wo Sie diese finden, steht unter Authentifizierung. Um stattdessen einen Telefoncode zu erhalten, fügen Sie "login_method": "phone" und "whatsapp_number": "919876543210" hinzu.

Request-Parameter#

client_idintegererforderlich

Ihre API-Client-ID aus Einstellungen → API-Schlüssel.

api_keystringerforderlich

Ihr API-Schlüssel von derselben Seite. Die Nummer wird dem Arbeitsbereich hinzugefügt, in dem dieser Schlüssel erstellt wurde.

whatsapp_numberstringNur bei login_method=phone

Mit login_method=phone die vollständige internationale Nummer, an die der Code gesendet wird, weil WhatsApp ihn genau an diese Nummer sendet: zuerst die Ländervorwahl, keine führende 0, zum Beispiel 919876543210. +, Leerzeichen und Bindestriche werden automatisch entfernt.

Mit login_method=qr wird sie ignoriert, und Sie können sie weglassen. WbizTool speichert die Nummer, die WhatsApp nach dem Scan meldet, und sendet sie im connected-Webhook.

login_methodstringoptional

qr (Standard), um einen QR-Code zu erhalten, oder phone, um einen 8-stelligen Code zu erhalten, den der Besitzer in WhatsApp unter Stattdessen mit Telefonnummer verknüpfen eingibt. Nützlich, wenn das Telefon keinen QR-Code scannen kann, zum Beispiel wenn es das einzige Gerät ist.

whatsapp_client_idintegeroptional

Um eine Nummer erneut zu verbinden, die in Ihrem Arbeitsbereich vorhanden, aber nicht verbunden ist, senden Sie ihre whatsapp_client_id. Dieselbe ID bleibt erhalten, sodass Ihre anderen API-Aufrufe weiter funktionieren. Lassen Sie den Parameter weg, um eine neue Nummer hinzuzufügen.

Die Zeile übernimmt die Nummer, die verknüpft wird. Wenn ein anderes Telefon den QR-Code scannt oder Sie mit login_method=phone eine andere whatsapp_number senden, sendet diese whatsapp_client_id ab dann von der neuen Nummer, einschließlich der Nachrichten, die bereits für sie in der Warteschlange stehen.

webhook_urlstringErforderlich, um den QR-Code zu erhalten

Ihre http- oder https-URL, die den QR-Code und Verbindungsupdates empfängt, bis zu 250 Zeichen (längere URLs schlagen mit HTTP 500 fehl). Die API akzeptiert einen Request auch ohne sie, dann wird Ihnen jedoch nichts gesendet, und Sie haben keine Möglichkeit, den QR-Code über die API zu erhalten. Siehe Webhook-Ereignisse.

Offizielle Clients verwenden#

Der Python-Client ruft /api/v1/whatsapp-client/create/ für Sie auf. Er verlangt whatsapp_number; bei einem QR-Code wird der Wert ignoriert.

Python
from wbiztool_client import WbizToolClient

client = WbizToolClient(api_key="YOUR_API_KEY", client_id=12345)

result = client.create_whatsapp_client(
    whatsapp_number="919876543210",
    webhook_url="https://example.com/wbiztool/connect-events?token=LONG_RANDOM_SECRET",
)
print(result)

Der Python-Client löst requests.exceptions.HTTPError aus, wenn die API HTTP 400 oder 403 zurückgibt. Umschließen Sie den Aufruf daher mit try/except.

Antwort#

Wenn die Verbindungsanfrage erstellt wurde, gibt die API HTTP 200 zurück:

{
  "message": "Whatsapp Client Created",
  "whatsapp_client_id": 678,
  "login_method": "qr",
  "status": 1
}
FeldTypBeschreibung
statusinteger1, wenn die Verbindungsanfrage erstellt wurde, 0, wenn sie fehlgeschlagen ist.
messagestringWhatsapp Client Created bei Erfolg, andernfalls der Fehler.
whatsapp_client_idintegerID der WhatsApp-Nummer. Verwenden Sie sie als whatsapp_client in anderen API-Aufrufen. Nur bei Erfolg vorhanden.
login_methodstringqr oder phone, wie für diesen Versuch verwendet. Nur bei Erfolg vorhanden.

"status": 1 bedeutet, dass die Anfrage erstellt wurde, nicht, dass die Nummer verbunden ist. Ein erneuter Aufruf der API häuft keine Nummern an:

  • Bei einem QR-Code ohne whatsapp_client_id erhalten Sie dieselbe whatsapp_client_id zurück, bis einer ihrer QR-Codes gescannt wird.
  • Mit login_method=phone erhält eine Nummer, die früher hinzugefügt wurde, aber nicht verbunden ist, ihre bestehende whatsapp_client_id zurück.
  • Mit whatsapp_client_id wird diese Nummer erneut verbunden.

Bis ihr erster QR-Code gescannt wird, hat die Nummer noch keine Telefonnummer: Verbundene Nummern auflisten und Verbindungsstatus geben für sie eine leere Nummer zurück.

Fehler#

MeldungHTTPLösung
login_method must be 'qr' or 'phone'400Senden Sie qr oder phone oder lassen Sie den Parameter weg.
For login_method phone, whatsapp_number must be the full international number with country code and no leading 0, e.g. 919876543210400Senden Sie die Nummer mit Ländervorwahl, zum Beispiel 919876543210, nicht 09876543210 oder 9876543210.
Auth Error200Senden Sie client_id und api_key. Wird auch zurückgegeben, wenn der JSON-Body ungültig ist.
Invalid Client Id403Senden Sie client_id als ganze Zahl, zum Beispiel 12345.
Auth Error: invalid api key400Prüfen Sie, ob der Schlüssel existiert, nicht gelöscht wurde und zu dieser client_id gehört.
Higher Subscription Required200Ihr Plan enthält diese API nicht. Führen Sie ein Upgrade Ihres Plans durch.
WhatsApp Account Limit Reached. Upgrade your account to get more whatsapp limit200Sie haben bereits so viele verbundene Nummern, wie Ihr Plan erlaubt. Trennen Sie eine Nummer oder führen Sie ein Upgrade durch.
Already Connected With Given Number200Mit login_method=phone ist diese Nummer in diesem Arbeitsbereich bereits verbunden. Mit whatsapp_client_id ist diese Nummer bereits verbunden. Es ist nichts zu tun. Wenn Sie das Nummernlimit Ihres Plans bereits erreicht haben, erhalten Sie stattdessen WhatsApp Account Limit Reached.
Invalid WhatsApp client400Die whatsapp_client_id existiert nicht, wurde gelöscht oder gehört zu einem anderen Arbeitsbereich. Lassen Sie sie weg, um eine neue Nummer hinzuzufügen.

Ein Request, der kein POST ist, liefert ein leeres Objekt {} mit HTTP 200.

Webhook-Ereignisse#

WbizTool sendet bei jedem Schritt einen POST an Ihre webhook_url. Der Body ist formularkodiert (application/x-www-form-urlencoded), nicht JSON.

QR-Code bereit (wird während des Wartens auf einen Scan alle paar Sekunden erneut gesendet, oft mit demselben Bild):

status=qr_generated&whatsapp_client_id=678&qr_image=...

Telefoncode bereit (mit login_method=phone, wird einmal gesendet):

status=pairing_code&whatsapp_client_id=678&pairing_code=K5EWPGY5

Nummer verbunden, mit der angemeldeten Nummer, wie WhatsApp sie meldet:

status=connected&whatsapp_client_id=678&whatsapp_number=919876543210

Verbindung fehlgeschlagen, zum Beispiel weil der QR-Code nicht rechtzeitig gescannt oder der Telefoncode nicht rechtzeitig eingegeben wurde:

status=not_connected&whatsapp_client_id=678
FeldWerte
statusqr_generated, pairing_code, connected oder not_connected
whatsapp_client_idDie von der API zurückgegebene whatsapp_client_id.
whatsapp_numberNur bei connected. Die verknüpfte Nummer mit Ländervorwahl, zum Beispiel 919876543210. Daran erkennen Sie, welche Nummer gescannt wurde. Leer im seltenen Fall, dass WhatsApp sie nicht gemeldet hat.
pairing_codeNur bei pairing_code. Der 8-stellige Code, der in WhatsApp eingegeben wird. Zeigen Sie ihn unverändert an; Leerzeichen oder ein Bindestrich zwischen den beiden Hälften sind in Ordnung.
qr_imageNur bei qr_generated. Eine data:-URL mit dem PNG-Bild als Base64 (data:image/png;base64,…). Verwenden Sie sie unverändert als Bildquelle; jedes Ereignis enthält den neuesten Code. Bis Oktober 2026 konnte es auch ein https-Link zum Bild sein; solche Links funktionieren nicht mehr. Wenn Ihr Code sie unterstützt, ändert sich sonst also nichts.

Ihre URL muss öffentlich erreichbar sein und sollte innerhalb weniger Sekunden antworten. WbizTool wartet bis zu 10 Sekunden auf Ihre Antwort; ist Ihr Server zu langsam oder nicht erreichbar, geht dieses Ereignis verloren, der Verbindungsversuch läuft aber weiter. Jeder HTTP-Statuscode wird akzeptiert. Fehlgeschlagene Zustellungen werden nicht wiederholt, und es wird nichts gesendet, wenn die Nummer später getrennt wird. Um eine Nummer nach dem Verbinden weiter zu überwachen, fragen Sie regelmäßig Verbindungsstatus ab.

Polling statt Webhooks#

Auch wenn Ihr Server keine Webhooks empfangen kann, benötigen Sie den Webhook, um den QR-Code zu erhalten. Für das Ergebnis müssen Sie sich aber nicht darauf verlassen. Rufen Sie nach dem Scannen des QR-Codes alle paar Sekunden Verbindungsstatus mit der whatsapp_client_id auf, bis Connected zurückkommt. Konten auflisten zeigt dasselbe für alle Ihre Nummern.

Tipps#

  • Doppelte Ereignisse verarbeiten: Sorgen Sie dafür, dass Ihr Handler gefahrlos mehrfach ausgeführt werden kann, falls ein Ereignis zweimal zugestellt wird.
  • Den neuesten QR-Code anzeigen: Ersetzen Sie das Bild jedes Mal, wenn ein neues qr_generated-Ereignis eintrifft, und hängen Sie an eine https-URL einen Cache-Busting-Query-Parameter an. Ältere Codes funktionieren nicht mehr.
  • Innerhalb von etwa zwei Minuten scannen: Danach erhalten Sie not_connected. Rufen Sie die API für einen neuen Code erneut auf.
  • Nummer nach einem QR-Scan prüfen: Die whatsapp_number im connected-Ereignis ist die tatsächlich verknüpfte Nummer, die von der erwarteten abweichen kann.
  • Telefoncode innerhalb von etwa drei Minuten eingeben: Jeder Versuch liefert einen Code. Läuft er ab, erhalten Sie not_connected; rufen Sie die API erneut auf.
  • Nach 10 Minuten kein QR-Code und kein Telefoncode? Die Anfrage ist abgelaufen. Rufen Sie die API erneut auf.
  • Das Verbinden über das Dashboard ist einfacher, wenn Sie Ihre eigene Nummer verknüpfen. Verwenden Sie die WhatsApp-Einstellungen und scannen Sie den Code dort.