Радуем работодателя, коллег и себя: как заработать на том, что мы есть

Как автоматизация одного вечернего действия принесла компании +400 тыс. руб. в месяц, а нам — тренажёр в спортзал
Привет, Хабр! Хочу поделиться историей о том, как простая идея автоматизировать овернайт для работодателя добавила немного счастья и радости в наш коллектив. Инструкцию и код прилагаю. И да это моя первая статья)
Суть вопроса
Как было. Банки дают возможность юридическим лицам зарабатывать проценты ежедневно за остаток на счёте денежных средств, но деньги нужно активно размещать, а не просто держать. У нас за постоянное размещение отвечала бухгалтер Алёна (имена изменены, все совпадения случайны). Алёна часто забывала выставлять вечером перед уходом домой заявки на размещение денег либо выставляла на неверный срок — и приходилось разрывать многодневное размещение, теряя проценты. Особенно неприятно шефу было узнавать о неразмещённых деньгах на выходные и праздники, когда проценты зачисляются сразу за несколько дней.
Что приумали. Мы с коллегой предложили руководителю автоматизировать этот процесс: настроить раз и навсегда и больше никогда не вспоминать. А только радоваться успеху — особенно после длительных выходных, когда проценты приходят сразу за несколько дней.
Результат. Деньги компания получает постоянно. С руководителем договорились: 50% от дохода идёт в общий фонд офиса, и на них мы улучшаем жизнь сотрудников (например, купили тренажёр в спортзал), 10% идёт мне как премия за идею и мониторинг системы, остальное — доход компании.
Юридический момент: все договорённости о распределении дохода согласованы с руководством и оформлены официально — премия проводится через бухгалтерию, а расходы из общего фонда фиксируются документально. Разрешение на публикацию этих данных получил.
Экономика (с разрешения руководства)
Компания зарабатывает 150–200 млн руб. в месяц. Деньги приходят от заказчиков 25–30-го числа, зарплата платится 10-го и 25-го — деньги лежат. Также лежат деньги на налоги, срок по которым ещё не наступил. Итого в месяц в среднем постоянно на счёте лежит минимум 50 млн руб. (берём среднее на все дни месяца; это не гарантированный остаток, а усреднённая оценка). Овернайт по разным условиям — 9–11% годовых, возьмём для удобства расчёта 10%.
50 000 000 × 0,10 / 12 = 416 666,00 ₽ в месяц
Неплохая прибавка, согласитесь.
Как это делается
Фаза I. Получаем API и сертификаты T‑банка (мы ползуемся им, у дригих похожая система) и другие данные
Пожалуй, это было сложнее всего: личный кабинет ЮЛ и его меню оказались не совсем в моей логике как пользователя.
Шаг 1. Выпускаем токен
Меню сверху: Интеграции → T‑API → Токены → Выпустить токен.
Важно: система спросит IP — очень рекомендую его указать, если он у вас статичный. По разрешениям ключа возможно будет не только смотреть, но и переводить деньги, а это требует хорошей безопасности.

В меню разрешений обязательно выставляем галочки на «Овернайты», а также «Счета и выписки». Далее выбираем нужные счета — из них основной и овернайтный обязательны. И выпускаем токен.

Шаг 2. Получаем сертификаты
Ещё нам очень понадобятся сертификаты: без них операции по API‑запросу просто не будут проходить.
Обратите внимание: не обязательно сохранять сами файлы — они текстовые, а значит, эти данные можно прописать в
.envдля сохранности. Чтобы случайно не закоммитить секреты, добавьте файлы с ключами и.envв.gitignore. Но это уже ваш выбор, как считаете удобным и надёжным. Я файлы сохранил в проект на сервере как есть.
И да, я сначала пытался всё провернуть без сертификатов, пока не дошло, что нужно прочитать документацию и узнать об их наличии. Потерял много времени.
Далее, в предложенном меню выбираем как на скрине. И да, ВАЖНО! Делайте это через Яндекс.Браузер, иначе сертификаты не выпустятся.

Далее проверяем данные, и один раз нужно будет попросить ЭЦП руководителя — подписать выпуск сертификатов. Получаем пару файлов: ключ и сертификат.
Шаг 3. Готовим остальные данные
А также готовим прочие данные для точной работы системы (там несложно).
Итого у нас должно быть:
Т‑банк API‑токен
Файлы сертификатов, 2 шт. (сертификат и ключ)
Номер счёта компании, с которого будут отправляться деньги на овернайт
Номер договора овернайт — НЕ счёта, а именно договора (идёт при заключении, есть в платёжках на пополнение овернайта, а также можно спросить в чате)
Шаг 4. Создаём бота для мониторинга (на ваше усмотрение)
Создаём чат‑бота в Telegram или MAX
Сохраняем свой
CHAT_ID
Фаза II. Готовим скрипт
Ссылка на GitHub, весь код там: https://github.com/Jopel003/Automation_for_business
По самой логике скажу так:
Проверяем наличие остатков на счетах компании.
Округляем баланс вниз до целых тысяч (остаток «до тысячи» остаётся на счёте, чтобы не переводить копейки и не уходить в минус по расходам).
Проверяем лимиты: есть ли минимальная сумма, ниже которой переводить нельзя. Часто это 100 тыс. руб. Сверяемся, есть ли у нас такая сумма. Если нет — просто дальше скрипт не выполняем.
Если сумма достаточна — отправляем заявку на пополнение овернайта на номер договора.
После перевода бот отправляет в чат сообщение: «Овернайт пополнен на N руб.» при успехе или «С овернайтом что‑то не так, проверь» при ошибке.
Фаза III. Запуск и наслаждение
Запуск проекта со своей стороны я решил не делать отдельным процессом, который жил бы на сервере постоянно. Его основная задача — выполнить команду раз в сутки и спать спокойно.
Основные условия банка: пополнение овернайта должно состояться до 17:00, а в 4 утра деньги возвращаются на основной счёт компании плюс проценты за ночёвку.
Обратите внимание: если овернайт пополнить в пятницу вечером, деньги вернутся в понедельник. Однако важно понимать: если они понадобятся компании досрочно, бухгалтерия может в личном кабинете, нажав три кнопки мышкой, вернуть как все средства назад на счёт, так и их часть.
Итогом моим решением стал наш старый друг cron на нашем стареньком сервере под Ubuntu. Прописываем ему задачу:
Открываем crontab:
crontab -eДобавляем строку в конец файла:
45 16 * * 1-5 /usr/bin/python3 /path/to/overnight.pyСохраняем и выходим (
Ctrl+O,Enter,Ctrl+Xв nano).Проверяем:
crontab -l
По этой задаче с понедельника по пятницу cron будет запускать наш скрипт, и если деньги будут на счёте, он их разместит. Отработавший скрипт просто закроется и не будет висеть.
Если денег мало — даже сообщение слать не будет. Хотя тут можно поспорить по архитектуре: возможно, лучше слать уведомления, когда не хватает средств, так можно и сбои перехватить, но это совсем другая история.
Вместо заключения
Что мы получили в итоге:
Компания стабильно зарабатывает на остатках, которые раньше просто лежали.
Бухгалтерия больше не забывает про овернайт — процесс работает сам.
Руководитель доволен, особенно после длинных праздников.
Сотрудники получили тренажёр в спортзал и это только начало, а я — премию.
Если у вас похожая ситуация и есть API у банка — попробуйте. Это тот редкий случай, когда автоматизация одного вечернего действия приносит измеримую пользу всем: и бизнесу, и команде.
Код и инструкция: https://github.com/Jopel003/Automation_for_business
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.