דלגו לתוכן
Wbiztool

API להודעות

ממשק API לתזמון הודעות WhatsApp

תזמנו הודעת WhatsApp עם טקסט, תמונה או מסמך שתישלח למספר טלפון או לקבוצה בתאריך ובשעה שתבחרו. השתמשו בו לתזכורות לפגישות, לברכות יום הולדת, להודעות מעקב ולמבצעים מוגבלים בזמן.

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

גוף הבקשה: JSON או שדות טופס

ההודעה ממתינה בתור שלכם עד המועד שנקבע, ואז נשלחת ממספר ה-WhatsApp שלכם. התגובה מחזירה msg_id שבעזרתו אפשר לבדוק את הסטטוס שלה או לבטל אותה.

דוגמה מהירה#

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"
  }'

החליפו את 12345, YOUR_API_KEY ו-678 בערכים שלכם. בסעיף אימות מוסבר איפה למצוא אותם.

פרמטרי הבקשה#

אימות

client_idintegerחובה

מזהה הלקוח שלכם ל-API (API Client ID) מהדף Settings → API keys.

api_keystringחובה

מפתח ה-API שלכם מאותו דף.

whatsapp_clientintegerחובה

המזהה של מספר ה-WhatsApp שממנו שולחים, מהדף הגדרות WhatsApp. בשונה משליחת הודעה, ה-endpoint הזה אף פעם לא בוחר מספר בשבילכם.

תזמון

datestringחובה

היום שבו תישלח ההודעה, בפורמט dd/mm/yyyy, למשל 24/12/2026.

timestringחובה

השעה שבה תישלח ההודעה, בפורמט 24 שעות HH:MM, למשל 09:00 או 18:45. אל תכללו שניות.

timezonestringאופציונלי

אזור הזמן של date ו-time. ברירת המחדל היא IST (הודו) אם לא תשלחו אותו. ראו אזורי זמן.

נמען והודעה

phonestringחובה, אלא אם שולחים group_name

מספר ה-WhatsApp של הנמען, ספרות בלבד. רווחים, +, -, . וסוגריים מוסרים בשבילכם. שלחו את המספר עם קידומת המדינה (919876543210) או בלי קידומת (9876543210) יחד עם country_code.

group_namestringחובה, אלא אם שולחים phone

שם של קבוצת WhatsApp שהמספר שלכם חבר בה. הקבוצה מאותרת באותה דרך כמו ב-שליחה לקבוצה. שלחו phone או group_name, לעולם לא את שניהם.

country_codestringאופציונלי

קידומת החיוג של המדינה בלי +, למשל 91 להודו או 1 לארה"ב. היא מתווספת לפני phone, אלא אם המספר כבר מתחיל בה. חריג: עם 91, מספר בן 10 ספרות תמיד מקבל את הקידומת. עם קידומות אחרות, שלחו מספרים מקומיים שמתחילים באותן ספרות כשקידומת המדינה כבר כלולה בהם. המערכת מתעלמת ממנה בקבוצות.

msg_typeintegerאופציונלי

0 טקסט (ברירת מחדל), 1 תמונה, 2 קובץ או מסמך.

msgstringחובה כש-msg_type הוא 0

טקסט ההודעה. בתמונות ובקבצים זה הכיתוב, והוא יכול להיות ריק. עיצוב של WhatsApp עובד: *bold*, _italic_, ~strikethrough~. אפשר להשתמש גם בשם החלופי message.

תמונות וקבצים

img_urlstringחובה כש-msg_type הוא 1

כתובת URL ציבורית של התמונה, ב-http או ב-https.

file_urlstringחובה כש-msg_type הוא 2

כתובת URL ציבורית ב-http או ב-https שממנה אפשר להוריד את הקובץ ישירות.

file_namestringאופציונלי

שם הקובץ שהנמען רואה, למשל invoice-4821.pdf. הוא נשלח באותיות קטנות, תווים כמו & : ? * $ ; מוחלפים ב-_, והוא נחתך ל-150 תווים. אם לא תשלחו אותו, השם יילקח מכתובת ה-URL.

אפשרויות מסירה

webhookstringאופציונלי

כתובת URL שמקבלת בקשת POST כשההודעה נשלחת או נכשלת. התוכן זהה לזה של שליחת הודעה.

מתי ההודעה נשלחת#

  • מערכת Wbiztool ממירה את date, time ו-timezone לרגע אחד, ושולחת את ההודעה ברגע שהוא עבר, כל עוד מספר ה-WhatsApp שלכם מחובר.
  • מועד בעבר מתקבל. ההודעה נשלחת מיד, כמו שליחה רגילה. בדקו היטב את פורמט התאריך (dd/mm/yyyy, היום קודם) כדי שלא תשלחו הודעה חודשים מוקדם מדי.
  • אם המספר שלכם מנותק במועד שנקבע, ההודעה ממתינה ויוצאת ברגע שהמספר מתחבר מחדש, גם אם זה הרבה אחרי המועד המתוכנן. ל-endpoint הזה אין תפוגה, לכן בטלו את ההודעה אם היא כבר לא רלוונטית. הודעה שעדיין ממתינה במספר מנותק או שנמחק 90 יום אחרי המועד שנקבע לה נמחקת.
  • עד שהיא נשלחת, להודעה יש סטטוס 0 (Created) ואפשר לבטל אותה. בזמן ההמתנה היא גם נספרת מול הקרדיטים שנותרו לכם.

אזורי זמן#

הפרמטר timezone מקבל שם של אזור זמן או אחד מהקיצורים שלמטה.

שמות של אזורי זמן, כמו Asia/Kolkata, America/New_York, Europe/London או Australia/Sydney. כל שם ממסד הנתונים של אזורי הזמן של IANA עובד. זו האפשרות האמינה ביותר. רשימה נמצאת במדריך אזורי זמן.

קיצורים חייבים להיכתב באותיות גדולות. כל קיצור ממופה לאזור, ושעון הקיץ של אותו אזור מוחל אוטומטית:

קיצורמטופל כ-
ISTAsia/Kolkata
UTCUTC
GMTGMT
ESTUS/Eastern
CSTUS/Central
MSTUS/Mountain
PSTUS/Pacific
CET, CESTEurope/Paris
EET, EESTEurope/Athens
JSTAsia/Tokyo
AEST, AEDTAustralia/Sydney

לדוגמה, EST ביולי פירושו שעון הקיץ של ניו יורק (UTC−4), ולא הפרש קבוע של UTC−5.

תזמון לקבוצה#

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"
  }'

תגובה#

בקשה מוצלחת מחזירה HTTP 200:

{
  "msg_id": 9817263,
  "message": "Created",
  "status": 1
}
שדהסוגתיאור
statusinteger1 אם ההודעה תוזמנה, 0 אם הבקשה נכשלה.
messagestringCreated בהצלחה, אחרת השגיאה.
msg_idintegerהמזהה של ההודעה המתוזמנת. שמרו אותו כדי לבדוק את הסטטוס או לבטל אותה בהמשך. מופיע רק בהצלחה.

התגובה לא חוזרת על המועד שנקבע או על אזור הזמן, לכן תעדו בלוג את מה ששלחתם.

שגיאות#

רוב השגיאות מחזירות HTTP 200 עם status שמוגדר ל-0, לכן תמיד בדקו את status בגוף התגובה:

{ "message": "Scheduled date & time is not in valid format", "status": 0 }
הודעהאיך לתקן
Auth Errorשלחו גם client_id וגם api_key.
Invalid Client Idשלחו את client_id כמספר. מוחזר עם HTTP 403.
Auth Error: invalid api keyודאו שהמפתח קיים, לא נמחק ושייך ל-client_id הזה. מוחזר עם HTTP 400.
Either phone or group_name parameter is requiredהוסיפו phone או group_name.
Please provide either phone OR group_name, not bothהסירו אחד מהם.
Invalid phone numberהשדה phone חייב להכיל ספרות בלבד (בין 6 ל-17), ויכול להתחיל ב-+.
Invalid Contact Number "…"אחרי הוספת קידומת המדינה, המספר חייב להיות באורך של 6 עד 15 ספרות.
Msg cant be nullהודעות טקסט (msg_type 0) דורשות msg.
Image Url Can't be nullעבור msg_type 1, שלחו img_url.
File Url Can't be nullעבור msg_type 2, שלחו file_url.
Scheduled date & time is not in valid formatdate או time חסרים, או ש-timezone הוא מחרוזת ריקה.
Not enough creditsלא נותרו הודעות בחבילה שלכם.
Demo Account can not access apisהשתמשו בחשבון רגיל.
Invalid JSON format: …גוף ה-JSON לא תקין, או ששלחתם שדות טופס בלי client_id.

טיפים#

  • בנו את התאריך בזהירות: ב-Python השתמשו ב-strftime("%d/%m/%Y") וב-strftime("%H:%M"). ב-JavaScript, עצבו את התאריך והשעה באותו אזור זמן שאתם שולחים ב-timezone, ולא לפי השעה המקומית של השרת שלכם:

    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"
  • אמתו את השעה: תזמנו הודעת בדיקה חמש דקות קדימה ובדקו שהיא מגיעה בזמן שציפיתם.

  • שינוי תוכניות: כדי לשנות מועד, בטלו את ההודעה ותזמנו הודעה חדשה.

  • בינתיים אל תתזמנו עם הלקוחות הרשמיים:schedule_message של Python שולח את התאריך בפורמט YYYY-MM-DD (והתגובה היא {}), ו-scheduleMessage של Node שולח schedule_time, שה-endpoint הזה לא קורא. קראו ל-endpoint ישירות כמו בדוגמאות למעלה.

  • הודעות חוזרות: להודעות שחוזרות על עצמן, כמו תזכורות תשלום חודשיות, ראו יצירת תזכורת.