Zum Inhalt springen
Wbiztool

Messaging-API

An mehrere Nummern senden (Send to Multiple Numbers API)

Senden Sie dieselbe WhatsApp-Nachricht in einem Request an mehrere Telefonnummern und Gruppen. Nutzen Sie die API für kleine Rundsendungen wie Newsletter, Angebote und Ankündigungen.

POSThttps://wbiztool.com/api/v1/send_msg/multi/

Body: JSON oder Formularfelder

Wbiztool erstellt pro Empfänger eine Nachricht und gibt für jede eine msg_id zurück, damit Sie ihren Status einzeln prüfen können.

Kurzes Beispiel#

curl -X POST https://wbiztool.com/api/v1/send_msg/multi/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "msg_type": 0,
    "country_code": "91",
    "phone": "9876543210,9812345670,Sales Team Mumbai",
    "msg": "Our Diwali sale starts tomorrow. Get 20% off on all orders!"
  }'

Ersetzen Sie 12345, YOUR_API_KEY und 678 durch Ihre eigenen Werte. Wo Sie diese finden, steht unter Authentifizierung.

Request-Parameter#

Authentifizierung

client_idintegererforderlich

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

api_keystringerforderlich

Ihr API-Schlüssel von derselben Seite.

whatsapp_clientintegererforderlich

ID der WhatsApp-Nummer, von der gesendet wird, aus den WhatsApp-Einstellungen. Anders als Nachricht senden wählt dieser Endpoint nie automatisch eine Nummer für Sie aus.

Empfänger und Nachricht

phonestringerforderlich

Telefonnummern und Gruppennamen in einem kommagetrennten String, zum Beispiel 9876543210,9812345670,Sales Team Mumbai. Senden Sie kein JSON-Array. Siehe Wie Empfänger gelesen werden.

country_codestringoptional

Internationale Vorwahl ohne +, zum Beispiel 91. Sie wird vor jede Telefonnummer gesetzt, sofern die Nummer nicht bereits damit beginnt. Senden Sie sie in JSON als String ("91"), nicht als Zahl. Senden Sie eine Zahl, wird jede Telefonnummer der Liste als Gruppenname behandelt (is_group: true), und diese Nachrichten schlagen fehl.

msg_typeintegeroptional

0 Text (Standard), 1 Bild, 2 Datei oder Dokument.

msgstringErforderlich, wenn msg_type 0 ist

Nachrichtentext. Bei Bildern und Dateien ist es die Bildunterschrift, die leer sein darf. WhatsApp-Formatierung funktioniert: *bold*, _italic_, ~strikethrough~. message wird als Alias akzeptiert.

Bilder und Dateien

img_urlstringErforderlich, wenn msg_type 1 ist

Öffentliche http- oder https-URL des Bildes.

file_urlstringErforderlich, wenn msg_type 2 ist

Öffentliche http- oder https-URL, von der die Datei direkt heruntergeladen werden kann.

file_namestringoptional

Dateiname, den die Empfänger sehen, zum Beispiel price-list.pdf. Er wird in Kleinbuchstaben gesendet, Zeichen wie & : ? * $ ; werden durch _ ersetzt, und er wird auf 150 Zeichen gekürzt. Wenn Sie den Parameter weglassen, wird der Name aus der URL übernommen.

Zustelloptionen

webhookstringoptional

URL, die für jede Nachricht einen POST erhält, wenn sie gesendet wird oder fehlschlägt. Der Payload ist derselbe wie bei Nachricht senden.

Bild von einer URLcURL
curl -X POST https://wbiztool.com/api/v1/send_msg/multi/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "msg_type": 1,
    "country_code": "91",
    "phone": "9876543210,9812345670",
    "img_url": "https://example.com/offers/diwali-sale.jpg",
    "msg": "Our Diwali sale starts tomorrow."
  }'

Wie Empfänger gelesen werden#

Wbiztool teilt phone an den Kommas auf, entfernt Leerzeichen um jeden Eintrag und entscheidet dann, was jeder Eintrag ist:

  • Nur Ziffern (ein führendes + oder führende Nullen sind erlaubt): wird als Telefonnummer behandelt. country_code wird vorangestellt, sofern die Nummer nicht bereits damit beginnt; danach muss die Nummer 6 bis 15 Ziffern lang sein.
  • Alles andere: wird als Name einer WhatsApp-Gruppe behandelt, die genauso gesucht wird wie bei An Gruppe senden.
  • Eine Gruppe, deren Name nur aus Ziffern besteht (zum Beispiel 2024), wird als Telefonnummer behandelt, und Gruppennamen mit Kommas können über diesen Endpoint nicht gesendet werden. Verwenden Sie dafür An Gruppe senden.

Außerdem wichtig:

  • Nummern, die nach dem Hinzufügen der Ländervorwahl zu kurz oder zu lang sind, werden stillschweigend übersprungen. Sie erscheinen nicht in der Antwort und erhalten keine msg_id.
  • Duplikate werden nicht entfernt. Eine doppelt aufgeführte Nummer erhält zwei Nachrichten.
  • Wenn eine lokale Nummer zufällig mit denselben Ziffern wie country_code beginnt (zum Beispiel 9123456780 mit country_code 91), wird die Vorwahl nicht hinzugefügt. Senden Sie solche Nummern mit bereits enthaltener Ländervorwahl (919123456780).
  • Bild- und Datei-URLs werden beim Aufruf der API nicht geprüft. Sie werden erst beim Senden jeder Nachricht heruntergeladen, daher führt ein defekter Link später zum Fehlschlagen der Nachrichten und nicht des Requests. Es gelten dieselben Regeln beim Senden wie bei Nachricht senden: Bilder über 16 MB und Videos über 64 MB schlagen fehl, WAV- und OGG-Audio wird nicht unterstützt, und an Dateien (msg_type 2) ohne unterstützte Endung wird .pdf angehängt. Siehe Bilder und Dateien senden.

Credits#

Der gesamte Stapel wird mit Ihren verbleibenden Credits abgeglichen, bevor etwas erstellt wird. Jeder nicht leere Eintrag in phone zählt, auch Einträge, die später übersprungen werden. Ist die Anzahl höher als Ihre verbleibenden Credits, werden keine Nachrichten erstellt und Sie erhalten:

{
  "message": "Not enough credits: 120 messages requested, 85 credits remaining",
  "status": 0
}

Nachrichten, die in der Warteschlange stehen, aber noch nicht gesendet wurden, werden ebenfalls von Ihren verbleibenden Credits abgezogen. Teilen Sie große Listen auf kleinere Requests auf oder laden Sie Ihren Plan auf. Für große Kampagnen laden Sie stattdessen eine Tabelle auf der Seite Kampagnen hoch.

Antwort#

Ein erfolgreicher Request gibt HTTP 200 zurück:

{
  "msg_ids": [9817263, 9817264, 9817265],
  "messages": [
    { "msg_id": 9817263, "contact": "919876543210", "is_group": false },
    { "msg_id": 9817264, "contact": "919812345670", "is_group": false },
    { "msg_id": 9817265, "contact": "Sales Team Mumbai", "is_group": true }
  ],
  "message": "Successfully created 3 messages",
  "status": 1
}
FeldTypBeschreibung
statusinteger1, wenn mindestens eine Nachricht in die Warteschlange gestellt wurde, sonst 0.
messagestringSuccessfully created N messages bei Erfolg, andernfalls der Fehler.
msg_idsarray of integersIDs der Nachrichten in der Warteschlange, in der Reihenfolge von phone. Nur bei Erfolg vorhanden.
messagesarrayEin Objekt pro Nachricht in der Warteschlange. Nur bei Erfolg vorhanden.
messages[].msg_idintegerID der Nachricht.
messages[].contactstringDie Telefonnummer mit angewendeter Ländervorwahl oder der Gruppenname.
messages[].is_groupbooleantrue, wenn der Eintrag als Gruppenname behandelt wurde.

Vergleichen Sie messages mit der gesendeten Liste, um übersprungene Nummern zu finden, und prüfen Sie, dass is_group bei jedem Eintrag, den Sie als Telefonnummer gemeint haben, false ist.

Fehler#

Die meisten Fehler geben HTTP 200 mit status gleich 0 zurück. Prüfen Sie daher immer status im Body. Mit Ausnahme der Fehler mit HTTP 400 und 403 werden Antworten (auch erfolgreiche) als JSON mit Content-Type: text/html gesendet. Parsen Sie den Body daher selbst, statt sich auf die automatische JSON-Erkennung zu verlassen (zum Beispiel in No-Code-Tools):

{ "message": "Invalid whatsapp client", "status": 0 }
MeldungLösung
Auth ErrorSenden Sie client_id und api_key.
Invalid Client IdSenden Sie client_id als Zahl. Wird mit HTTP 403 zurückgegeben.
Auth Error: invalid api keyPrüfen Sie, ob der Schlüssel existiert, nicht gelöscht wurde und zu dieser client_id gehört. Wird mit HTTP 400 zurückgegeben.
Msg cant be nullTextnachrichten (msg_type 0) benötigen msg.
Image Url Can't be nullSenden Sie für msg_type 1 eine img_url.
File Url Can't be nullSenden Sie für msg_type 2 eine file_url.
Not enough credits: … messages requested, … credits remainingSenden Sie an weniger Empfänger oder fügen Sie Credits hinzu. Siehe Credits.
Invalid whatsapp clientDiese whatsapp_client-ID gehört nicht zu Ihrem Arbeitsbereich.
No valid contacts foundJeder Eintrag in phone war leer oder wurde übersprungen. Prüfen Sie, ob die Nummern mit Ländervorwahl 6 bis 15 Ziffern haben.
Demo Account can not access apisVerwenden Sie ein reguläres Konto.
Invalid JSON format: …Der JSON-Body ist ungültig, oder Sie haben Formularfelder ohne client_id gesendet.

Tipps#

  • Senden Sie phone als String: Verbinden Sie Ihre Liste mit Kommas. Ein JSON-Array liefert {} zurück.
  • Verwenden Sie send_bulk_messages des Python-Clients vorerst nicht: Die Methode sendet die Liste als phones, was dieser Endpoint ignoriert. Rufen Sie den Endpoint direkt auf, wie in den Beispielen oben.
  • Jede Nachricht verfolgen: Speichern Sie jede msg_id aus messages oder übergeben Sie einen webhook, um benachrichtigt zu werden, sobald jede Nachricht gesendet wird oder fehlschlägt.
  • Halten Sie Ihre Nummer verbunden: Jede Nachricht wird von Ihrer WhatsApp-Nummer gesendet, daher muss sie in den WhatsApp-Einstellungen verbunden bleiben, bis der gesamte Stapel versendet ist.
  • Unterschiedlicher Text pro Person: Dieser Endpoint sendet allen dieselbe msg. Rufen Sie Nachricht senden einmal pro Empfänger auf, um jede Nachricht zu personalisieren.