Zum Inhalt springen
Wbiztool

Messaging-API

WhatsApp-Nachrichten planen (Schedule Message API)

Planen Sie einen WhatsApp-Text, ein Bild oder ein Dokument, das zu einem von Ihnen gewählten Datum und einer Uhrzeit an eine Telefonnummer oder Gruppe gesendet wird. Nutzen Sie die API für Terminerinnerungen, Geburtstagsgrüße, Nachfassaktionen und zeitlich begrenzte Angebote.

POSThttps://wbiztool.com/api/v1/schedule_msg/

Body: JSON oder Formularfelder

Die Nachricht wartet bis zum geplanten Zeitpunkt in Ihrer Warteschlange und wird dann von Ihrer WhatsApp-Nummer gesendet. Die Antwort enthält eine msg_id, mit der Sie ihren Status prüfen oder sie stornieren können.

Kurzes Beispiel#

curl -X POST https://wbiztool.com/api/v1/schedule_msg/ \
  -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",
    "msg": "Hi Aman, a reminder that your appointment is today at 11:30 AM.",
    "date": "24/12/2026",
    "time": "09:00",
    "timezone": "Asia/Kolkata"
  }'

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.

Zeitplan

datestringerforderlich

Tag, an dem die Nachricht gesendet wird, im Format dd/mm/yyyy, zum Beispiel 24/12/2026.

timestringerforderlich

Uhrzeit, zu der die Nachricht gesendet wird, im 24-Stunden-Format HH:MM, zum Beispiel 09:00 oder 18:45. Geben Sie keine Sekunden an.

timezonestringoptional

Zeitzone, in der date und time angegeben sind. Standard ist IST (Indien), wenn Sie den Parameter weglassen. Siehe Zeitzonen.

Empfänger und Nachricht

phonestringErforderlich, sofern Sie nicht group_name senden

Die WhatsApp-Nummer des Empfängers, nur Ziffern. Leerzeichen, +, -, . und Klammern werden automatisch entfernt. Senden Sie die Nummer entweder mit Ländervorwahl (919876543210) oder ohne (9876543210) zusammen mit country_code.

group_namestringErforderlich, sofern Sie nicht phone senden

Name einer WhatsApp-Gruppe, in der Ihre Nummer Mitglied ist. Die Gruppe wird genauso gesucht wie bei An Gruppe senden. Senden Sie phone oder group_name, niemals beide.

country_codestringoptional

Internationale Vorwahl ohne +, zum Beispiel 91 für Indien oder 1 für die USA. Sie wird vor phone gesetzt, sofern die Nummer nicht bereits damit beginnt. Ausnahme: Bei 91 erhält eine 10-stellige Nummer die Vorwahl immer. Bei anderen Vorwahlen senden Sie lokale Nummern, die mit denselben Ziffern beginnen, mit bereits enthaltener Ländervorwahl. Bei Gruppen wird sie ignoriert.

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 der Empfänger sieht, zum Beispiel invoice-4821.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 einen POST erhält, wenn die Nachricht gesendet wird oder fehlschlägt. Der Payload ist derselbe wie bei Nachricht senden.

Wann die Nachricht gesendet wird#

  • Wbiztool rechnet date, time und timezone in einen einzigen Zeitpunkt um und sendet die Nachricht, sobald dieser Zeitpunkt erreicht ist, sofern Ihre WhatsApp-Nummer verbunden ist.
  • Ein Zeitpunkt in der Vergangenheit wird akzeptiert. Die Nachricht wird dann sofort gesendet, wie bei einem normalen Versand. Prüfen Sie das Datumsformat (dd/mm/yyyy, Tag zuerst) genau, damit Sie keine Nachricht Monate zu früh senden.
  • Ist Ihre Nummer zum geplanten Zeitpunkt getrennt, wartet die Nachricht und wird gesendet, sobald die Nummer wieder verbunden ist, auch wenn das viel später als geplant ist. Dieser Endpoint hat keinen Ablauf. Stornieren Sie die Nachricht daher, wenn sie nicht mehr relevant ist. Eine Nachricht, die 90 Tage nach ihrem geplanten Zeitpunkt noch auf eine getrennte oder gelöschte Nummer wartet, wird gelöscht.
  • Bis zum Versand hat die Nachricht den Status 0 (Created) und kann storniert werden. Während sie wartet, wird sie außerdem von Ihren verbleibenden Credits abgezogen.

Zeitzonen#

timezone akzeptiert entweder einen Zeitzonennamen oder eine der unten aufgeführten Abkürzungen.

Zeitzonennamen wie Asia/Kolkata, America/New_York, Europe/London oder Australia/Sydney. Jeder Name aus der IANA-Zeitzonendatenbank funktioniert. Das ist die zuverlässigste Option. Eine Liste finden Sie in der Zeitzonen-Referenz.

Abkürzungen müssen in Großbuchstaben geschrieben werden. Jede entspricht einer Region, und die Sommerzeit dieser Region wird automatisch angewendet:

AbkürzungWird behandelt als
ISTAsia/Kolkata
UTCUTC
GMTGMT
ESTUS/Eastern
CSTUS/Central
MSTUS/Mountain
PSTUS/Pacific
CET, CESTEurope/Paris
EET, EESTEurope/Athens
JSTAsia/Tokyo
AEST, AEDTAustralia/Sydney

Zum Beispiel bedeutet EST im Juli die New Yorker Sommerzeit (UTC−4), nicht fest UTC−5.

Für eine Gruppe planen#

curl -X POST https://wbiztool.com/api/v1/schedule_msg/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "msg_type": 0,
    "group_name": "Sales Team Mumbai",
    "msg": "Team meeting starts in 15 minutes.",
    "date": "24/12/2026",
    "time": "14:45",
    "timezone": "Asia/Kolkata"
  }'

Antwort#

Ein erfolgreicher Request gibt HTTP 200 zurück:

{
  "msg_id": 9817263,
  "message": "Created",
  "status": 1
}
FeldTypBeschreibung
statusinteger1, wenn die Nachricht geplant wurde, 0, wenn der Request fehlgeschlagen ist.
messagestringCreated bei Erfolg, andernfalls der Fehler.
msg_idintegerID der geplanten Nachricht. Speichern Sie sie, um später den Status zu prüfen oder die Nachricht zu stornieren. Nur bei Erfolg vorhanden.

Die Antwort wiederholt weder die geplante Uhrzeit noch die Zeitzone. Protokollieren Sie also, was Sie gesendet haben.

Fehler#

Die meisten Fehler geben HTTP 200 mit status gleich 0 zurück. Prüfen Sie daher immer status im Body:

{ "message": "Scheduled date & time is not in valid format", "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.
Either phone or group_name parameter is requiredFügen Sie phone oder group_name hinzu.
Please provide either phone OR group_name, not bothEntfernen Sie einen der beiden Parameter.
Invalid phone numberphone darf nur Ziffern enthalten (6–17), optional mit einem + am Anfang.
Invalid Contact Number "…"Einschließlich Ländervorwahl muss die Nummer 6–15 Ziffern lang sein.
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.
Scheduled date & time is not in valid formatdate oder time fehlt, oder timezone ist ein leerer String.
Not enough creditsIhr Plan hat keine Nachrichten mehr übrig.
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#

  • Datum sorgfältig zusammensetzen: Verwenden Sie in Python strftime("%d/%m/%Y") und strftime("%H:%M"). Formatieren Sie in JavaScript Datum und Uhrzeit in derselben Zeitzone, die Sie in timezone senden, nicht in der lokalen Zeit Ihres Servers:

    const tz = "Asia/Kolkata"; // d is the Date to send at
    const date = new Intl.DateTimeFormat("en-GB", { timeZone: tz, day: "2-digit", month: "2-digit", year: "numeric" }).format(d); // "24/12/2026"
    const time = new Intl.DateTimeFormat("en-GB", { timeZone: tz, hour: "2-digit", minute: "2-digit", hourCycle: "h23" }).format(d); // "09:00"
  • Uhrzeit überprüfen: Planen Sie eine Testnachricht fünf Minuten im Voraus und prüfen Sie, ob sie zur erwarteten Zeit ankommt.

  • Planänderung: Um eine Nachricht neu zu planen, stornieren Sie sie und planen Sie eine neue.

  • Verwenden Sie zum Planen vorerst nicht die offiziellen Clients: schedule_message in Python sendet das Datum als YYYY-MM-DD (die Antwort ist {}), und scheduleMessage in Node sendet schedule_time, das dieser Endpoint nicht ausliest. Rufen Sie den Endpoint direkt auf, wie oben gezeigt.

  • Wiederkehrende Nachrichten: Für Nachrichten, die sich wiederholen, etwa monatliche Zahlungserinnerungen, siehe Erinnerung erstellen.