Делаем донаты для telegram бота, через интеграцию ЮKassa для самозанятых
В статье-инструкции расскажу, как начал монетизировать telegram бота, который присылает уведомления о необходимости продлить домен, тем самым делает напоминание, чтобы пользователь продлил домен во время и не потерял его. За 2 часа, добавил кнопку доната и настроил интеграцию с ЮKassa. Через 1 день уже начал принимать донаты.
Оглавление:
Наверное каждый хочет начать монетизацию своего telegram бота, но могут отталкивать технические сложности, или не хочется заниматься регистрацией ООО или ИП.
На практике, не так все сложно, с помощью этой статьи-инструкции можно стать самозанятым, открыть счет, интегрировать платежную систему в telegram бота и начать принимать платежи, при этом автоматически отчитываться перед налоговой.
Зачем становиться самозанятым?
Преимущества, которые дает самозанятость:
- Позволяет работать легально и не получить штраф или судебное разбирательство за неуплату налогов и незаконную предпринимательскую деятельность;
- Не требуется оформление юридического лица;
- Сам плачу за себя налоги, от заказчика требуется только оплатить услуги или товар;
- Можно официально подтвердить свои доходы, например для получения визы, кредита или ипотеки;
- Предоставление чеков клиентам поможет повысить их доверие к продукту;
- Предприниматели-одиночки без наемного персонала могут снизить налоговую нагрузку;
- Юрлица — компании и ИП — могут пользоваться услугами и покупать товары напрямую у самозанятых граждан, не исполняя обязанности налогового агента.
Становимся самозанятым.
Становимся самозанятым, для того, чтобы могли заключить договор с ЮKassa и открыть счет для принятия платежей, а так же ЮKassa могла делать вывод средств на наш счет в банке. Самозанятые платят самый маленький налог:
- 4% за доходы от физических лиц - наши донаты и платежи.
- 6% за доходы от юридических лиц, например когда к нам придет рекламодатель и захочет оплатить интеграцию или рекламный пост.
Для оформления самозанятости необходимо наличие карты Tinkoff. Если счета нет, то его нужно открыть в банке Тинькофф.
Оформляем самозанятость через мобильное приложение Тинькофф. Откройте «Главная» → «Открыть новый продукт» → «Самозанятость» → кнопка «Оформить самозанятость».
Не могу сказать, можно ли оформить самозанятость через приложения других банков. Но встать на учет самозанятому можно в приложении «Мой налог» по учетной записи Госуслуг. Если у вас есть банковский счет в другом банке, вы можете подать заявление на самозанятого, в приложении «Мой налог».
Тинькофф сам подает заявление в налоговую службу. Самозанятость оформляется за 5–10 минут, хотя в моем случае постановка на учет в налоговую заняла 4 часа.
Пока ждем решения налоговой, скачиваем приложение «Мой налог». После каждой оплаты или доната, нужно заявлять наш доход и оплачивать налоги. Позже настроим автоматическую отправку чеков в налоговую из личного кабинета ЮKassa. Если у вас небольшое количество операций, то можно заявлять доход в ручную, в приложении «Мой налог».
Скачиваем приложение «Мой налог»:
Из приятного. Каждому налогоплательщику, который впервые регистрируется в качестве самозанятого, предоставляется налоговый вычет в размере 10 000 рублей (бонус). Бонус — это сумма, которая уменьшает налог. Он предоставляется государством единожды и расходуется постепенно. Бонус уменьшает налоговую ставку на 1% по вознаграждениям, полученным от физических лиц, и на 2% - по вознаграждениям от юридических лиц или индивидуальных предпринимателей.
Открытие счета в ЮKassa.
Регистрируемся в ЮKassa. Сразу после регистрации можно указать данные для договора и заполнить настройки. Это можно делать одновременно, но лучше сначала отправить данные — пока менеджеры их проверяют, вы сможете разобраться с настройками. На сайте ЮKassa есть инструкция по заполнению и подписанию договора.
Бот будет принимать платежи без сайта, будем выставлять счет на оплату и отправлять его пользователю. Все остальные данные договора заполняем по инструкции и отправляем на проверку. Если в заполненном договоре не будет ошибок, то мы получим уведомление на почту, что договор готов и его необходимо подписать.
После того, как мы подпишем договор и загрузим его в личном кабинете ЮKassa, можно перейти к написанию кода и интеграции платежной системы в бота. Проверка данных может занимать от одного до трех рабочих дней. После проверки мы сможем принимать платежи.
В ЮKassa есть возможность использовать тестовые данные, для разработки и тестирования, которые позволяют нам начать интеграцию платежной системы прямо сейчас. Перейдем в тестовый магазин, нам необходимы будут следующие данные, для интеграции с ЮKassa API:
YOOKASSA_SHOP_ID
YOOKASSA_SECRET_KEY
Когда нам откроют счет, мы сможем заменить тестовые данные на реальные и начать принимать платежи.
Добавляем автоматическую отправку чеков в налоговую.
По данной инструкции, делаем автоматическую отправку чеков в налоговую, чтобы зафиксировать доход и оплатить налог на прибыль. ЮKassa берет комиссию за отправку чека 1,2% от суммы платежа. Если на начальном этапе, у вас мало оплат, можно делать отправку чеков в ручном режиме, через приложение «Мой налог».
Сколько в итоге потеряю на налогах и комиссиях?
Комиссия ЮKassa с каждой операции 3.5% и за отправку чека 1.2% (НДС уже включён). Налог в федеральную налоговую службу составляет 4%.
Допустим наш донат 100 рублей. Со 100 рублей в ЮKassa уходит 4 рубля 70 копеек, в федеральную налоговую службу уходит 4 рубля.
Итого, от 100 рублей у нас остается 91 рубля 30 копеек. Таким образом, с каждой транзакции мы отдаем 9,7% от суммы платежа.
Интеграция ЮKassa в телеграм-бота
Устанавливаем клиент для работы с платежами по API ЮKassa
Telegram бот отправляет уведомления об истечении срока регистрации домена, под сообщением располагается кнопка доната. У меня это делается в очереди сообщений, у вас может быть любая другая реализация, например определенное событие, которое срабатывает в конкретный момент времени. Например, по расписанию в 12:00 запускается скрипт.
TrackDomainJob.php
Telegram.php Класс реализующий методы Telegram API. Статический метод Telegram::sendKeyboard() отправляет пользователю сообщение $message с набором кнопок Keyboard::getDonateButton(100) - возвращает массив набора кнопок inline_keyboard.
Telegram.php
Keyboard.php
Класс, который отвечает за формирования и получения набора кнопок. Статический метод Keyboard::getDonateButton() возвращает кнопку доната со ссылкой на оплату выставленного счета.
Payment.php
Класс для работы с данными платежа. Создает и формирует данные платежа, чтобы дальше передать их для создания счета в ЮKassa.
Все переменные окружения добавляем в .env
Результат
В результате telegram бот будет отправлять уведомление о необходимости продлить домен, а под сообщением будет кнопка, со ссылкой на выставленный счет. Если пользователь захочет отблагодарить, за вовремя присланное напоминание, что необходимо продлить домен, чтобы не потерять его.
Мой Telegram-канал, где я делюсь идеями и процессом работы над пет-проектами.