Чек-лист
кодовое словоШлюз

Свой шлюз к WhatsApp без потери номера

Содержание9 глав
  1. 011. Решить, нужен ли он вообще
  2. 022. Выбрать номер
  3. 033. Поднять инстанс
  4. 044. Настроить до первого сообщения
  5. 055. Прогреть номер
  6. 066. Подключить агента
  7. 077. Оценить риск площадки
  8. 088. Когда официальный канал выгоднее
  9. 099. Куда смотреть

Открытый self-hosted шлюз ставится за пять минут и правда закрывает задачи: свой сервер, вебхуки, несколько аккаунтов, данные остаются у тебя. Дальше начинается то, о чём в обзорах молчат — цена вопроса. Пройди по пунктам до того, как подключишь первый номер.

1. Решить, нужен ли он вообще

  • Выписал, что именно будешь слать: ответы клиентам или массовые рассылки. От этого зависит всё остальное.
  • Проверил официальный тариф: с 1 июля 2025 плата идёт за доставленный шаблон, а не за подписку — developers.facebook.com/docs/whatsapp/pricing
  • Понял, что внутри 24-часового окна обслуживания обычные ответы клиенту бесплатны, а service-сообщения бесплатны для всех с 1 ноября 2024.
  • Посчитал: если у тебя только поддержка и ответы на входящие — экономить не на чем, официальный канал уже отдаёт это даром.
Главный вывод по деньгам
Самодельный шлюз экономит ровно на массовых шаблонных рассылках. Это же — самый быстрый способ словить блокировку номера. Экономия и риск лежат в одной точке.

2. Выбрать номер

  • Взял отдельный номер, потеря которого ничего не ломает. Основной рабочий не подключаю ни при каких условиях.
  • Номер не привязан к платёжкам, восстановлению доступов и деловой переписке.
  • Есть план «Б»: куда переедут клиенты, если этот номер завтра перестанет открываться.
  • Симка физически доступна — повторная авторизация потребует кода.

«Каждый номер, который ты подключаешь, несёт ненулевой риск ограничения или бана. Подключай отдельный номер, который не жалко потерять, и никогда — основной личный или рабочий.»

Из документации самого проекта: docs.open-wa.org/guides/safe-sending

3. Поднять инстанс

  • Прочитал быстрый старт — docs.open-wa.org/getting-started/quick-start
  • Поднял контейнер, API и дашборд открылись на порту 2785.
  • Дашборд не торчит в интернет голым: доступ закрыт по IP или спрятан за туннелем.
  • Том с данными примонтирован наружу — сессии переживут пересоздание контейнера.
docker run -d --name openwa-api -p 2785:2785 \
  -v "$(pwd)/data:/app/data" rmyndharis/openwa:latest

4. Настроить до первого сообщения

  • Выпустил API-ключи с ограниченной областью действия, отдельный ключ на каждую интеграцию.
  • Включил проверку подписи вебхуков: заголовок X-OpenWA-Signature, HMAC-SHA256 по сырому телу запроса — docs.open-wa.org/guides/webhooks
  • Обработчик устойчив к повторам: дедуплицирую по ключу идемпотентности, доставка идёт «минимум один раз».
  • Выставил лимит отправки в конфиге до того, как включил автоматику.
  • Понял, какой из двух движков используешь: Baileys (без браузера, экономный) или whatsapp-web.js (Chromium, тяжелее). Оба — не официальный канал: github.com/WhiskeySockets/Baileys

5. Прогреть номер

  • Первые несколько дней веду себя как живой человек: переписка с сохранёнными контактами, пара групп, аватар и имя в профиле.
  • В день подключения не отправляю ни одной автоматической рассылки.
  • Держу темп в несколько сообщений в минуту на сессию. Тысячи в час — прямой путь к ограничению.
  • Не пишу первым незнакомым номерам: холодная рассылка — самый надёжный способ потерять аккаунт.
  • Слежу за жалобами и блокировками со стороны получателей: это главный сигнал для антиспама.

6. Подключить агента

  • Знаю, что MCP-сервер внутри выключен по умолчанию и поднимается флагом MCP_ENABLED=true — docs.open-wa.org/integrations/mcp
  • Агенту отданы только нужные инструменты: чтение чатов и отправка. Управление сессиями и ключами наружу не отдаю.
  • На отправку клиенту стоит подтверждение человеком, пока не набрана статистика по ложным срабатываниям.
  • Логи сохраняю: что именно агент отправил и кому.

7. Оценить риск площадки

  • Помню, что шлюз работает через неофициальный интерфейс и не связан с Meta — ответственность за соблюдение правил на мне.
  • Учёл, что в России мессенджер работает с ограничениями регулятора, а разговоры о полной блокировке идут с января 2026 — kommersant.ru/doc/8342139
  • Клиентская база не заперта в одном канале: контакты продублированы там, куда можно увести переписку за день.
  • Для регулируемых сфер (финансы, медицина, персональные данные) выбран официальный Cloud API, а не самодельный шлюз.

8. Когда официальный канал выгоднее

Только отвечаешь на входящие, поддержкаОфициальный канал: внутри суточного окна это бесплатно
Внутренние уведомления, свои же сотрудникиСвой шлюз, отдельный номер
Массовые рассылки по базеОфициальные шаблоны. На обходном пути это самый быстрый бан
Прототип, тест гипотезы за вечерСвой шлюз, номер-однодневка
Финансы, медицина, персональные данныеТолько официальный Cloud API

9. Куда смотреть

  • Репозиторий проекта — github.com/rmyndharis/OpenWA
  • Быстрый старт — docs.open-wa.org/getting-started/quick-start
  • Риск блокировки и безопасная отправка — docs.open-wa.org/guides/safe-sending
  • Вебхуки, подпись и ретраи — docs.open-wa.org/guides/webhooks
  • Инструменты для агента — docs.open-wa.org/integrations/mcp
  • Официальные тарифы — developers.facebook.com/docs/whatsapp/pricing
  • Движок Baileys — github.com/WhiskeySockets/Baileys
Одно правило вместо вывода
Бесплатный софт не равно бесплатный риск. Код и сервер стоят ноль. Номер, на котором висят твои клиенты, — нет.