
Чек-лист
кодовое словоШлюз
Свой шлюз к WhatsApp без потери номера
Содержание9 глав
Открытый 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
Одно правило вместо вывода
Бесплатный софт не равно бесплатный риск. Код и сервер стоят ноль. Номер, на котором висят твои клиенты, — нет.


