Этот метод позволяет отправлять текстовые сообщения получателям через доступные каналы связи (WhatsApp, Telegram, MAX, и т.д.). Можно включать в сообщения ссылки, эмодзи и форматирование. Метод удобен для отправки уведомлений, информационных сообщений и непосредственно общения с клиентами.

При отправке автоматически проверяется наличие аккаунта в мессенджере по указаному телефону или ID чата, никнейму, в зависимости от мессенджера.

Сообщение ставится в очередь отправки; в ответе вы получаете msg_id для проверки статуса через получение статуса сообщения или WebHook.

Перед отправкой выполняется проверка получателя в мессенджере (номер, ID чата или ник — в зависимости от канала). Отдельно вызывать проверку наличия мессенджера не обязательно. При первом обращении к новому абоненту контакт в WAMM.chat создаётся автоматически (кроме ботов — см. ниже).


Поддерживаемые мессенджеры

Метод доступен для каналов: WhatsApp, MAX Personal, Telegram Personal, Telegram Bot, MAX Bot.

  • Telegram Personal и MAX Personal — в параметре phone можно передать номер, ID чата или никнейм.
  • Telegram Bot и MAX Bot — получатель должен уже быть в контактах WAMM.chat (диалог начат в интерфейсе или контакт добавлен через API контактов).
  • Канал должен быть в статусе authorized или suspended; при других статусах подключения вернётся acc not authorized.

Пример запроса

GET https://wamm.chat/api2/msg_to/{token}/?phone={phone}&text={text}

или

GET https://wamm.chat/api2/msg_to/{token}/{phone}/{text}

Параметр text также можно передать в POST (тело запроса).


Параметры запроса
ПараметрТипОбязательныйОписание
tokenstringДаAPI-токен из раздела «Настройки → Управление → API» (канал с активной оплатой)
phonestringДаНомер в международном формате (например, 79001234567). Для Telegram и MAX — ID чата или никнейм.
textstringДаТекст до 4500 символов, UTF-8, в URL — urlencode. Перенос строки: %0A. Коды :sm01::sm28: — см. смайлы.
delayintegerНетПауза до следующего исходящего сообщения в очереди (секунды). Фиксированные значения: 15, 20, 30, 45, 60, 120, 180. Без параметра — обычно 8–12 секунд между сообщениями
quote_msg_idintegerНетID сообщения в WAMM.chat (msg_id из ответа отправки), на которое нужен ответ-цитата

При нескольких запросах подряд сообщения выстраиваются в очередь с указанным или стандартным интервалом. На тестовом тарифе — не более 30 исходящих сообщений по API в сутки.


Ответ при успехе
{"err":0,"msg_id":1234567}

msg_id — идентификатор сообщения в WAMM.chat (используйте его в msg_state, quote_msg_id и при разборе WebHook).


Возможные ошибки
Код ошибки (err)Описание
token failНеверный токен или канал в архиве
acc not authorizedКанал не готов к отправке (не в статусе authorized / suspended)
phone failНекорректный или пустой идентификатор получателя
no WhatsApp on the numberНет WhatsApp на указанном номере (канал WhatsApp)
no Account on the numberНет аккаунта / контакта для Telegram, MAX и др.
phone not checked for WhatsApp, please retryНе удалось проверить номер в WhatsApp — повторите запрос
phone not checked, please retryНе удалось проверить получателя (Telegram, MAX и др.) — повторите запрос
text failПустой текст после обработки
text fail, more 4500Текст длиннее 4500 символов
quote_msg_id fail, not foundСообщение для цитирования не найдено в этом канале
chat bannedЧат заблокирован в WAMM.chat
Limit 30 send messages per 1 day on TEST accountsПревышен дневной лимит API на тестовом тарифе

Примеры использования
function sendMessage($token, $phone, $text) {
    $url = 'https://wamm.chat/api2/msg_to/' . rawurlencode($token) . '/?phone=' . rawurlencode($phone) . '&text=' . rawurlencode($text);

    $response = file_get_contents($url);
    if ($response === false) {
        echo 'Не удалось выполнить запрос к серверу';
        return;
    }

    $json = json_decode($response, true);
    if (!isset($json['err'])) {
        echo 'Не удалось обработать ответ от сервера';
        return;
    }

    if ($json['err'] === 0 && isset($json['msg_id'])) {
        echo 'Сообщение отправлено, msg_id: ' . $json['msg_id'];
    } else {
        echo 'Ошибка: ' . $json['err'];
    }
}

$token = 'YOUR_TOKEN';
$phone = '79001234567';
$text = 'Тестовое сообщение';

sendMessage($token, $phone, $text);