Перейти к содержимому
Wbiztool

API напоминаний

API создания напоминаний

Создайте повторяющееся сообщение WhatsApp, которое автоматически отправляется по расписанию. Подходит для напоминаний об оплате, еженедельных сообщений, ежедневных повторных сообщений и других регулярных рассылок.

POSThttps://wbiztool.com/api/v1/reminder/create/

Тело запроса: JSON или поля формы

Расписание задаётся выражением cron и часовым поясом. Каждый раз, когда расписание срабатывает, Wbiztool ставит в очередь сообщение на номер телефона или в группу — так же, как при отправке через API отправки сообщений. Напоминания, созданные здесь, также появляются на странице Напоминания в панели управления, где их можно приостановить или изменить.

Быстрый пример#

curl -X POST https://wbiztool.com/api/v1/reminder/create/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "reminder_name": "Monthly rent reminder",
    "phone": "919876543210",
    "message": "Hi Aman, a reminder that your rent is due on {current_date_formatted}.",
    "cron_expression": "0 10 1 * *",
    "timezone": "Asia/Kolkata"
  }'

Это напоминание отправляется в 10:00 по индийскому времени 1-го числа каждого месяца. Замените 12345, YOUR_API_KEY и 678 своими значениями. Где их найти, описано в разделе Аутентификация.

Параметры запроса#

Передавайте параметры в теле JSON или в виде полей формы. В JSON передавайте каждое текстовое значение (api_key, reminder_name, phone, message, cron_expression, timezone, img_url, file_name) строкой.

Аутентификация

client_idintegerобязательно

Ваш API Client ID из раздела Настройки → API ключи.

api_keystringобязательно

Ваш API-ключ с той же страницы.

Отправитель

whatsapp_clientintegerнеобязательно

ID номера WhatsApp, с которого отправляется сообщение, со страницы настроек WhatsApp. Если параметр не передан или ID нет в вашем рабочем пространстве, каждое напоминание отправляется с первого номера рабочего пространства, подключённого на момент запуска.

Напоминание

reminder_namestringобязательно

Название напоминания. Отображается на странице Напоминания и доступно в сообщении как {reminder_name}.

phonestringобязательно

Номер WhatsApp получателя с кодом страны, например 919876543210. Отдельного параметра country_code нет. Пробелы, +, -, . и скобки удаляются, а также удаляется ведущий 0 (в теле JSON — до двух ведущих нулей). Значение, состоящее не только из цифр, считается названием группы WhatsApp.

messagestringобязательно

Текст сообщения. Может содержать переменные шаблона, которые заполняются при каждом запуске напоминания. Форматирование WhatsApp работает: *bold*, _italic_, ~strikethrough~.

cron_expressionstringобязательно

Когда отправлять — выражение cron из пяти полей, например 0 9 * * 1-5. См. раздел Выражения cron.

timezonestringнеобязательно

Часовой пояс, в котором выполняется выражение cron, в виде названия IANA, например Asia/Kolkata, America/New_York или Europe/London. Если параметр не передан, используется UTC. Пустая строка возвращает Invalid timezone. Полный список — в справочнике часовых поясов.

Изображения и файлы

msg_typeintegerнеобязательно

0 — текст (по умолчанию), 1 — изображение или 2 — файл, с message в качестве подписи. Любое другое значение считается 0.

img_urlstringОбязателен, если msg_type равен 1 или 2

Публичный URL изображения (http или https) или, для msg_type 2, файла, до 1000 символов. Он скачивается при каждом запуске напоминания, поэтому ссылка должна оставаться рабочей. Разместить файлы можно с помощью API загрузки медиафайлов.

file_namestringОбязателен, если msg_type равен 2

Для msg_type 2 — имя файла с расширением, до 100 символов, например invoice.pdf. Для других типов сообщений игнорируется.

Выражения cron#

Выражение cron — это пять значений, разделённых пробелами. Напоминание срабатывает, когда текущее время в timezone совпадает со всеми пятью:

┌───────── minute        (0-59)
│ ┌─────── hour          (0-23)
│ │ ┌───── day of month  (1-31)
│ │ │ ┌─── month         (1-12)
│ │ │ │ ┌─ day of week   (0-7, where 0 and 7 are Sunday)
│ │ │ │ │
0 9 * * 1-5
СимволЗначениеПример
*Любое значение* в поле часа означает каждый час.
,Список значений9,18 в поле часа означает 9:00 и 18:00.
-Диапазон1-5 в поле дня недели означает с понедельника по пятницу.
/Шаг*/6 в поле часа означает каждые 6 часов.

Типичные примеры#

ВыражениеКогда срабатывает
0 9 * * *Каждый день в 9:00
0 9 * * 1-5С понедельника по пятницу в 9:00
0 9 * * 1Каждый понедельник в 9:00
30 18 * * 0Каждое воскресенье в 18:30
0 9,18 * * *Каждый день в 9:00 и 18:00
0 */6 * * *Каждые 6 часов, в начале часа
*/30 9-17 * * 1-5Каждые 30 минут с 9:00 до 17:30, с понедельника по пятницу
0 9 1 * *1-го числа каждого месяца в 9:00
0 10 15 * *15-го числа каждого месяца в 10:00
0 8 1 1 *Каждое 1 января в 8:00

Время указывается в часовом поясе напоминания (timezone). Используйте ровно пять полей: не добавляйте поле секунд и сокращения вроде @daily.

Переменные шаблона#

Эти подстановки в message заменяются при каждом запуске напоминания. Дата и время указываются в часовом поясе напоминания (timezone).

ПеременнаяЗаменяется наПример
{current_date}Дата2026-10-01
{current_date_formatted}Дата словами, день с ведущим нулёмOctober 01, 2026
{current_time}Время в 24-часовом формате09:00:00
{current_time_12h}Время в 12-часовом формате09:00 AM
{current_datetime}Дата и время2026-10-01 09:00:00
{timezone}Значение timezoneAsia/Kolkata
{timezone_short}Сокращение часового поясаIST
{reminder_name}Значение reminder_nameMonthly rent reminder
{to_number}Сохранённое значение phone919876543210
{client_name}Имя владельца рабочего пространства
{organisation_name}Название вашего рабочего пространства

Напоминание с изображением#

Еженедельное напоминание с изображением
curl -X POST https://wbiztool.com/api/v1/reminder/create/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "reminder_name": "Weekly class timetable",
    "phone": "919876543210",
    "msg_type": 1,
    "img_url": "https://example.com/timetable.png",
    "message": "Here is this week'\''s timetable.",
    "cron_expression": "0 8 * * 1",
    "timezone": "Asia/Kolkata"
  }'

Пример на PHP отправляет поля формы вместо JSON. Работают оба варианта.

Ответ#

Успешный запрос возвращает HTTP 200:

{
  "reminder_id": 3187,
  "message": "Reminder created successfully",
  "status": 1
}
ПолеТипОписание
statusinteger1, если напоминание создано, 0, если запрос не выполнен.
messagestringReminder created successfully, иначе текст ошибки.
reminder_idintegerID нового напоминания. Сохраните его, чтобы позже отменить напоминание. Присутствует только при успехе.

Новые напоминания активны сразу.

Ошибки#

Ошибки возвращаются с HTTP 400 и status, равным 0, если не указано иное:

{ "status": 0, "message": "Invalid timezone" }
СообщениеКак исправить
Invalid JSON format: …Тело JSON некорректно — часто из-за лишней запятой в конце или неэкранированного перевода строки в message. Для новой строки используйте \n. Эта ошибка возвращается и для запроса с полями формы без client_id, а также для любого запроса GET.
Invalid client id.Передайте client_id числом.
Reminder name cannot be nullДобавьте reminder_name.
Phone number cannot be nullДобавьте phone.
Message template cannot be nullДобавьте message.
Cron expression cannot be nullДобавьте cron_expression.
Auth Error - Please send correct API key and Client idПередайте непустой api_key.
Invalid cron expressionПроверьте, что в выражении пять корректных полей. См. раздел Выражения cron.
Invalid timezoneИспользуйте название IANA, например Asia/Kolkata, а не сокращение вроде IST.
Image URL cannot be null for image messagesДля msg_type 1 передайте img_url.
File URL cannot be null for file messagesДля msg_type 2 передайте file_name.
Auth Error: invalid api keyКлюч принадлежит другому client_id.
Auth Error: please check client idКлюч не привязан к рабочему пространству. Создайте новый ключ в нужном рабочем пространстве.
Demo Account cannot access APIsИспользуйте обычный аккаунт.
Not enough creditsВ вашем тарифе закончились сообщения.
Upgrade your plan to use reminders featureВаш тариф не включает напоминания. Повысьте тариф.
WhatsApp Logged Out. Please Reconnect!!Номер whatsapp_client отключён. Подключите его снова на странице настроек WhatsApp.
Invalid WhatsApp client idПередайте whatsapp_client числом.
Error creating reminder: … (HTTP 500)Не удалось сохранить напоминание. Проверьте переданные значения, например что img_url не длиннее 1000 символов, а file_name — не длиннее 100.

Как работают напоминания#

  • Расписание проверяется в часовом поясе напоминания (timezone), и сообщение ставится в очередь, когда текущее время совпадает с выражением cron.
  • Каждый запуск создаёт обычное сообщение, которое отправляется с вашего номера WhatsApp, поэтому номер должен оставаться подключённым.
  • Запуск пропускается, если в вашем рабочем пространстве закончились кредиты или если whatsapp_client не задан и в этот момент в рабочем пространстве нет ни одного подключённого номера.
  • Если whatsapp_client задан, каждый запуск ставится в очередь на этот номер, даже если он с тех пор отключился, и ждёт там. Переключения на другой номер не происходит.
  • Напоминания проверяются периодически, а не с точностью до секунды, после чего сообщение ждёт в очереди отправки, как любое другое. Не рассчитывайте на точное время. Если проверка запаздывает, запуск всё равно отправляется с опозданием до 10 минут (до 1 минуты для первого запуска напоминания); после этого он пропускается. Один и тот же запуск никогда не отправляется дважды.

Советы#

  • Просмотр и очистка: получите свои напоминания и их ID через API списка напоминаний, а остановите ненужное через API отмены напоминаний.
  • Приостановка и редактирование через API недоступны. Используйте страницу Напоминания в панели управления.
  • Много напоминаний сразу: на странице Напоминания также можно импортировать напоминания из CSV-файла.
  • Переводы строк в JSON: записывайте их как \n внутри message. Непосредственный перенос строки делает JSON некорректным.