Skip to Content
Конструктор ботовГайдыПриём оплат (ЮKassa)

Приём оплат через ЮKassa

Этот гайд для тех, кто продаёт прямо в диалоге: кофейни, магазины, курсы, услуги. Бот создаёт платёж в ЮKassa, отправляет клиенту ссылку на оплату, ждёт результата и ведёт сценарий дальше в зависимости от исхода — «Оплачено» или «Не оплачено».

Не путайте с оплатой тарифа botvk: подписка на платформу оплачивается через платёжный аккаунт самой botvk в разделе «Биллинг». Здесь речь о вашей собственной интеграции ЮKassa, через которую деньги от клиентов поступают напрямую вам.

Шаг 1. Подключите ЮKassa в настройках workspace

  1. Откройте раздел «Настройки → Интеграции».
  2. В карточке «YooKassa (ЮKassa)» заполните два поля: shopId и секретный ключ из личного кабинета ЮKassa.
  3. На стороне ЮKassa обязательно укажите URL для уведомлений: https://api.botvk.ru/integrations/yookassa/webhook — без него бот не узнает о результате платежа.

Ключи хранятся на сервере в зашифрованном виде (AES-GCM) и принадлежат только вашему workspace — глобальных ключей платформа не использует. После сохранения секретные поля очищаются в форме: для обновления ключ вводится заново. Входящий вебхук дополнительно защищён IP-allowlist’ом ЮKassa и повторной проверкой платежа через API с вашими ключами.

Редактировать интеграции могут только владелец и администратор workspace.

Шаг 2. Добавьте блок «YooKassa: оплата»

Перетащите блок «YooKassa: оплата» из категории «Интеграции» на холст. Что он делает: создаёт платёж в ЮKassa, шлёт подписчику ссылку на оплату и ждёт результата.

Настройки:

  • «Сумма, ₽» (обязательное) — число или переменная в фигурных скобках, например 1990 или {total}. Переменная подставится суммой из сценария на момент платежа — удобно, если сумма посчитана блоком «Вычисление».
  • «Описание платежа» — видно подписчику в форме оплаты и в чеке; можно использовать переменные, например «Заказ в кофейне».
  • «Сохранить id платежа в переменную (необязательно)» — идентификатор платежа YooKassa, по умолчанию payment_id; пригодится для возврата или проверки статуса в следующих блоках.

Шаг 3. Подключите ветки «Оплачено» и «Не оплачено»

У блока два выхода:

ВыходКогда срабатывает
«Оплачено»Платёж успешно завершён
«Не оплачено»Оплата не прошла или не состоялась
  • После «Оплачено» отправьте подтверждение заказа, выдайте товар или доступ, создайте лида в CRM или уведомьте менеджера.
  • После «Не оплачено» напомните о заказе или предложите помощь с оплатой.

Пример: заказ → оплата → подтверждение

Базовая связка выглядит так:

  1. Бот собирает заказ (например, блоком «Выбор из вариантов»).
  2. Блок «Вычисление» считает сумму в переменную total (формула вроде {qty} * 250).
  3. Блок «YooKassa: оплата» с суммой {total} отправляет ссылку на оплату.
  4. Ветка «Оплачено» — сообщение «Спасибо, заказ оплачен!»; ветка «Не оплачено» — «Оплата не прошла, попробовать ещё раз?».

Шаг 4. Проверьте оплату в режиме «Тестирование»

Во вкладке «Тестирование» редактора бота сценарий прогоняется прямо в браузере — без отправки в VK и без реальных API-вызовов. Для платёжных блоков в окне теста появляется кнопка «Оплатить (тест)»: нажмите её, чтобы пройти ветку «Оплачено» и убедиться, что подтверждение и следующие блоки работают как задумано. Реальные деньги при этом не списываются.

Типовой сценарий

  1. Триггер «Старт по команде» — команды /start, заказать.
  2. «Выбор из вариантов» — клиент выбирает товар, выбор сохраняется в переменную service.
  3. «Запросить значение» (тип «Число») — количество, сохраняется в number.
  4. «Вычисление» — формула {number} * 250, результат в переменную total.
  5. «Отправить сообщение» — «Ваш заказ: {service} × {number}. К оплате: {total} ₽».
  6. «YooKassa: оплата» — сумма {total}, описание «Заказ: {service}», id платежа в payment_id.
  7. Выход «Оплачено» → «Отправить сообщение» — подтверждение заказа, затем «Уведомить менеджера в VK» — «Оплаченный заказ от {first_name} на {total} ₽».
  8. Выход «Не оплачено» → «Отправить сообщение» — «Оплата не прошла. Попробуйте ещё раз или напишите нам».