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.
https://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.
Connect API aufrufen
Senden Sie Ihre
webhook_urlund beilogin_method=phonezusätzlichwhatsapp_number. Um eine früher hinzugefügte Nummer erneut zu verbinden, senden Sie außerdem ihrewhatsapp_client_id. Die Antwort enthält einewhatsapp_client_id. Speichern Sie diese.QR-Code oder Telefoncode empfangen
Mit dem Standardwert
login_method=qrerhält Ihr Webhookstatus=qr_generatedmit dem QR-Bild inqr_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=phoneerhält Ihr Webhookstatus=pairing_codemit einem 8-stelligen Code inpairing_code, zum BeispielK5EWPGY5. 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.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.
Ergebnis erhalten
Ihr Webhook erhält
status=connectedmit der verknüpften Nummer inwhatsapp_number, wenn die Nummer verknüpft ist, oderstatus=not_connected, wenn der Code nicht rechtzeitig gescannt wurde oder die Verbindung fehlgeschlagen ist. Das Ereignisconnectedkann einige Sekunden eintreffen, bevor VerbindungsstatusConnectedzurü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"
}'import requests
response = requests.post(
"https://wbiztool.com/api/v1/whatsapp/connect/",
json={
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"webhook_url": "https://example.com/wbiztool/connect-events?token=LONG_RANDOM_SECRET",
},
timeout=30,
)
result = response.json() # read the body even when the HTTP code is 400 or 403
if result.get("status") == 1:
print("Waiting for QR code, whatsapp_client_id", result["whatsapp_client_id"])
else:
print("Failed:", result.get("message"))// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const response = await fetch("https://wbiztool.com/api/v1/whatsapp/connect/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
client_id: 12345,
api_key: "YOUR_API_KEY",
webhook_url: "https://example.com/wbiztool/connect-events?token=LONG_RANDOM_SECRET",
}),
});
const result = await response.json(); // read the body even when the HTTP code is 400 or 403
if (result.status === 1) {
console.log("Waiting for QR code, whatsapp_client_id", result.whatsapp_client_id);
} else {
console.error("Failed:", result.message);
}<?php
$payload = [
'client_id' => 12345,
'api_key' => 'YOUR_API_KEY',
'webhook_url' => 'https://example.com/wbiztool/connect-events?token=LONG_RANDOM_SECRET',
];
$ch = curl_init('https://wbiztool.com/api/v1/whatsapp/connect/');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
if (($result['status'] ?? 0) === 1) {
echo 'Waiting for QR code, whatsapp_client_id ' . $result['whatsapp_client_id'];
} else {
echo 'Failed: ' . ($result['message'] ?? 'no response');
}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_idintegererforderlichIhre API-Client-ID aus Einstellungen → API-Schlüssel.
api_keystringerforderlichIhr 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=phoneMit
login_method=phonedie vollständige internationale Nummer, an die der Code gesendet wird, weil WhatsApp ihn genau an diese Nummer sendet: zuerst die Ländervorwahl, keine führende0, zum Beispiel919876543210.+, Leerzeichen und Bindestriche werden automatisch entfernt.Mit
login_method=qrwird sie ignoriert, und Sie können sie weglassen. WbizTool speichert die Nummer, die WhatsApp nach dem Scan meldet, und sendet sie imconnected-Webhook.login_methodstringoptionalqr(Standard), um einen QR-Code zu erhalten, oderphone, 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_idintegeroptionalUm 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=phoneeine anderewhatsapp_numbersenden, sendet diesewhatsapp_client_idab 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 erhaltenIhre
http- oderhttps-URL, die den QR-Code und Verbindungsupdates empfängt, bis zu 250 Zeichen (längere URLs schlagen mit HTTP500fehl). 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.
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
}
| Feld | Typ | Beschreibung |
|---|---|---|
status | integer | 1, wenn die Verbindungsanfrage erstellt wurde, 0, wenn sie fehlgeschlagen ist. |
message | string | Whatsapp Client Created bei Erfolg, andernfalls der Fehler. |
whatsapp_client_id | integer | ID der WhatsApp-Nummer. Verwenden Sie sie als whatsapp_client in anderen API-Aufrufen. Nur bei Erfolg vorhanden. |
login_method | string | qr 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_iderhalten Sie dieselbewhatsapp_client_idzurück, bis einer ihrer QR-Codes gescannt wird. - Mit
login_method=phoneerhält eine Nummer, die früher hinzugefügt wurde, aber nicht verbunden ist, ihre bestehendewhatsapp_client_idzurück. - Mit
whatsapp_client_idwird 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#
| Meldung | HTTP | Lösung |
|---|---|---|
login_method must be 'qr' or 'phone' | 400 | Senden 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. 919876543210 | 400 | Senden Sie die Nummer mit Ländervorwahl, zum Beispiel 919876543210, nicht 09876543210 oder 9876543210. |
Auth Error | 200 | Senden Sie client_id und api_key. Wird auch zurückgegeben, wenn der JSON-Body ungültig ist. |
Invalid Client Id | 403 | Senden Sie client_id als ganze Zahl, zum Beispiel 12345. |
Auth Error: invalid api key | 400 | Prüfen Sie, ob der Schlüssel existiert, nicht gelöscht wurde und zu dieser client_id gehört. |
Higher Subscription Required | 200 | Ihr 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 limit | 200 | Sie 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 Number | 200 | Mit 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 client | 400 | Die 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
| Feld | Werte |
|---|---|
status | qr_generated, pairing_code, connected oder not_connected |
whatsapp_client_id | Die von der API zurückgegebene whatsapp_client_id. |
whatsapp_number | Nur 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_code | Nur 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_image | Nur 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 einehttps-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_numberimconnected-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.
