Деньги на сайте
Как принимать оплату на сайте и не нарушить закон
Вы сделали сайт, к вам приходят люди, и надо брать деньги. Дальше начинается то, о чём обычно не рассказывают заранее: касса, чеки, комиссии, проверка банка. Разберём по порядку — что требует закон, сколько это стоит и что ломается на практике, даже когда всё подключено правильно.
Сразу оговорка: мы не юристы и не бухгалтеры. Мы делаем сайты, которые принимают деньги, и рассказываем то, что видели своими руками.
Главное правило: деньги и чек — две разные вещи
Многие думают, что подключить приём платежей — это поставить кнопку «Оплатить». Кнопка — самая простая часть.
Закон (54-ФЗ) говорит: при расчёте с покупателем нужно выдать кассовый чек. Не платёжку из банка, не письмо «спасибо за заказ», а именно чек — тот самый документ с перечнем товаров, суммой и признаком расчёта, который уходит в налоговую.
Поэтому правильная цепочка выглядит так:
человек нажал «оплатить»
↓
банк списал деньги
↓
банк сообщил вашему сайту, что оплата прошла
↓
сайт проверил сообщение и выдал доступ к товару
↓
касса пробила чек и отправила его покупателю
Каждое звено может сломаться отдельно. Дальше — как это выглядит для разных форм бизнеса.
Кому что нужно
Самозанятый
Онлайн-касса не нужна — это главная льгота режима. Но чек всё равно обязателен: его формирует приложение «Мой налог» или платёжный сервис, который умеет отправлять доход в налоговую автоматически.
Что стоит держать в голове:
- Лимит дохода — 2,4 млн ₽ в год. Перешагнули — режим слетает, и дальше всё меняется. Если планируете расти, закладывайте переход на ИП заранее, а не в день, когда лимит кончится.
- Закон не обязывает самозанятого подключать эквайринг и открывать расчётный счёт. Но если оплата идёт с сайта, чек надо формировать на каждую продажу, а не раз в неделю.
ИП и ООО
Здесь касса нужна. Вариантов два:
- Своя онлайн-касса. Покупаете или арендуете, регистрируете в налоговой, следите за фискальным накопителем.
- Облачная касса платёжного сервиса. Кассу держит сервис, вы платите за чеки. Так сделано у большинства наших проектов: меньше железа, меньше хлопот, и чек пробивается автоматически в момент оплаты.
Второй вариант почти всегда дешевле и спокойнее, если у вас нет офлайн-точки.
Чем платят и сколько это стоит
Здесь лежит самая заметная экономия, которую почти все пропускают.
| Способ | Комиссия | Что важно знать |
|---|---|---|
| СБП (по QR или кнопке) | 0,4–0,7 % | Ставку определяет вид деятельности. Образование, медицина, транспорт, товары повседневного спроса — в льготной категории 0,4 % |
| Карты | 2,5–3,5 % | Обычный эквайринг |
| Apple Pay, Google Pay | как карта | Это не отдельная комиссия, а способ приложить карту. Платёжная система берёт столько же, сколько за карту |
Разница между СБП и картой — в несколько раз. На обороте в миллион рублей это 4 тысячи против 30 тысяч. Деньги, которые просто остаются у вас.
Практический вывод для сайта: СБП должен быть кнопкой по умолчанию — крупной, первой. Карту оставьте вторым вариантом. Люди выбирают то, что удобнее нажать, и каждый процент здесь ваш, а не банковский.
Что ломается на самом деле
Теперь то, ради чего стоило читать. Всё ниже мы встретили в живых проектах — с настоящими деньгами и настоящими покупателями.
1. Подлинность сообщения от банка — не то же самое, что его правильность
Самая дорогая ошибка из всех, что мы видели.
Когда человек оплачивает, банк присылает вашему сайту уведомление: «оплата такая-то прошла». Уведомление подписано — подпись доказывает, что письмо действительно от банка, а не от мошенника. И на этом многие разработчики успокаиваются: подпись сошлась → выдаём товар.
Подпись доказывает отправителя. Она ничего не говорит о сумме.
В одном из наших проектов курс за 25 000 ₽ купили за 10 ₽. Сумму при оплате через виджет задаёт браузер покупателя — её можно подменить. Банк честно списал десять рублей и честно прислал подписанное уведомление об этом. Сайт увидел «оплата прошла» и выдал доступ к курсу.
Что делать: везде, где выдаётся товар, сверять сумму и валюту с тем, что должно было быть оплачено. Не только статус. Это три строчки кода, которые стоят разницы между 25 000 и 10 рублями.
2. Уведомление может не дойти
Банк отправил, у вас в этот момент падал сервер или моргнула сеть — сообщение потерялось. Деньги у вас, а покупатель доступа не получил. Он пишет в поддержку, вы разбираетесь вручную.
Бывает и наоборот: деньги вернули, а сайт об этом не узнал, и человек продолжает пользоваться тем, за что уже не платит.
Что делать: ночная сверка с банком. Раз в час или раз в сутки сайт сам спрашивает у банка: «что у нас произошло за период?» — и чинит расхождения в обе стороны. У нас это закрывает оба случая и работает без участия человека.
3. Возврат бывает частичным
Покупатель вернул половину заказа. Если код умеет только «вернули всё» и «не вернули ничего», он либо закроет доступ целиком, либо не заметит возврата вовсе.
Что делать: суммировать возвраты и сравнивать с оплатой. Доступ закрывается, когда вернули всю сумму, а не первый рубль.
4. Подписка не продлевается сама — и человек об этом не знает
Автопродление — отдельная история. Карта истекла, на ней нет денег, банк не пропустил платёж. Если просто отключить доступ в ту же секунду, вы потеряете клиента, который вернулся бы через день.
Что делать: грейс-период. Три дня доступ живёт, система пробует списать ещё раз и предупреждает человека письмом. Только потом закрывает.
5. Название в чеке пугает покупателя
Мелочь, которая стоит возвратов. В кассовом чеке продавец отображается так, как заведено у платёжного сервиса — иногда это латиницей и неузнаваемо. Человек видит в банковском приложении незнакомое слово и жмёт «оспорить платёж».
Что делать: сразу после подключения проверить, что видит покупатель в чеке и в выписке. Меняется одним обращением в поддержку сервиса — но только если об этом вспомнить.
Короткий чек-лист
Прежде чем включать приём денег на бою:
- Понятно, кто продавец: самозанятый, ИП или ООО — и нужна ли касса
- Чек уходит покупателю автоматически, а не руками
- СБП подключён и стоит первой кнопкой
- Сайт сверяет сумму и валюту, а не только статус оплаты
- Есть сверка с банком на случай потерянных уведомлений
- Возвраты обрабатываются, в том числе частичные
- У подписки есть грейс-период
- Проверено, что видит покупатель в чеке и в выписке
- Проведена настоящая оплата настоящей картой — и возврат тоже
Последний пункт важнее остальных. Тестовый режим показывает, что код работает. Живая оплата показывает, что работает всё остальное: касса, чек, письмо, доступ, выписка.
Если не хочется разбираться самому
Мы такие системы строим: приём денег, чеки по 54-ФЗ, подписки с автопродлением, возвраты, сверка с банком и личный кабинет, в котором покупатель сам видит свои платежи. Всё перечисленное выше — не теория, а то, что у нас работает на живых проектах.
Начинаем с бесплатного разбора: смотрим, что у вас уже есть, и показываем, что нужно именно вам. Документ остаётся у вас в любом случае.
[Получить разбор →]