Как поднять свой WhatsApp шлюз и не разориться на подписках

19 мая 2026
14,427
3,370
81
2 недели

Интеграция с WhatsApp — это вечная головная боль. Либо вы идете в официальный Cloud API и тонете в бюрократии Facebook с их платными диалогами, либо платите сторонним сервисам по 30–50 долларов в месяц за каждый номер. Есть еще вариант с библиотеками вроде whatsapp-web.js, но их нужно самостоятельно оборачивать в API, следить за сессиями и как-то деплоить.

Недавно наткнулся на OpenWA. Это готовый опенсорсный шлюз, который превращает обычный аккаунт WhatsApp в полноценный REST API. По сути, это коробочное решение: развернул в Docker, отсканировал QR-код и забыл про ограничения платных провайдеров.

OpenWA Logo

Что внутри этого комбайна

Проект написан на NestJS и TypeScript, что уже радует — код структурирован, а не собран «на коленке». Главная фишка OpenWA в его модульности. Разработчик заложил возможность менять компоненты инфраструктуры через конфиг.

Если вам нужно по-быстрому запустить бота для локального магазина, хватит стандартного SQLite. Если же вы строите сервис для рассылок на тысячи клиентов, можно подключить PostgreSQL для данных, Redis для кэша и S3-хранилище для медиафайлов. При этом сам код приложения трогать не придется.

Реклама

Из коробки вы получаете:

  • Полноценную панель управления на React.
  • Поддержку нескольких сессий (можно подключить сразу много номеров).
  • Вебхуки с проверкой подписи HMAC (чтобы никто не подделал входящие события).
  • Автоматическую генерацию Swagger-документации.

Быстрый старт через Docker

Самый простой способ пощупать инструмент — запустить его через Docker Compose. В репозитории есть готовый файл для разработки, который поднимает API и дашборд одной командой:

git clone https://github.com/rmyndharis/OpenWA.git
cd OpenWA
docker compose -f docker-compose.dev.yml up -d

После этого по адресу localhost:2886 откроется админка. Там создаете новую сессию, получаете QR-код, сканируете его своим телефоном — и всё, ваш API готов к работе.

Как работать с API

Взаимодействие с сервисом максимально прямолинейное. Например, чтобы отправить сообщение, достаточно сделать обычный POST-запрос.

curl -X POST http://localhost:2785/api/sessions/{sessionId}/messages/send-text \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "chatId": "79001234567@c.us",
    "text": "Привет! Это сообщение отправлено через OpenWA"
  }'

Кстати, проект поддерживает не только текст. Можно отправлять картинки, видео, документы и даже ставить реакции на сообщения. Есть поддержка групповых чатов: создание групп, добавление участников и управление админскими правами.

Почему это удобнее самописных решений

Когда вы пишете обертку над WhatsApp библиотеками сами, вы неизбежно сталкиваетесь с проблемой хранения состояния сессии. Если контейнер перезагрузится, пользователю придется снова сканировать QR-код. OpenWA решает это за счет сохранения сессий в базу данных или файловое хранилище.

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

Практические кейсы

Для чего это можно использовать прямо сейчас?

  1. Уведомления из мониторинга. Вместо дорогого SMS-шлюза или Telegram (который читают не все), можно слать алерты прямо в WhatsApp.
  2. Автоматизация техподдержки. Интегрируйте OpenWA со своей CRM, и менеджеры смогут отвечать клиентам в режиме одного окна.
  3. n8n и No-code. В репозитории упоминается интеграция с n8n, что позволяет собирать сложные цепочки ботов вообще без написания кода.

Стоит ли пробовать

Проект сейчас находится в версии 0.1.6. Это значит, что могут встречаться баги, а API иногда может меняться. Однако база на NestJS и наличие подробной документации в папке docs/ внушают доверие.

Если вам нужен полный контроль над данными и вы не хотите зависеть от ценовой политики Facebook или сторонних SaaS-решений, OpenWA — отличный кандидат на роль «рабочей лошадки». Для небольших и средних проектов возможностей хватит с головой, а возможность масштабирования до PostgreSQL и S3 дает хороший задел на будущее.

Единственный нюанс: помните, что WhatsApp не любит спам. Используйте инструмент с умом, соблюдайте лимиты, и ваши аккаунты будут жить долго.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.