Оплата через СБП на сайте: как подключить и чем это выгоднее карт
Система быстрых платежей для сайта услуг: комиссии против эквайринга, варианты подключения, QR и платёжные ссылки, чек по 54-ФЗ.
Содержание
- Что такое СБП глазами продавца
- Комиссии: цифры и где подвох
- Три способа подключить
- QR, ссылка или кнопка: что выбрать сайту услуг
- Чек и онлайн-касса: без этого нельзя
- Как обрабатывать уведомление о платеже
- Возвраты: как это выглядит на практике
- Что должно быть на сайте, кроме кнопки
- Чек-лист перед первым реальным платежом
- Что ломается потом
- Что делать дальше
- Частые вопросы
СБП обходится продавцу в 0,4-0,7 процента против 1,8-3,5 у карточного эквайринга, а деньги приходят на счёт за минуты, включая выходные. Взамен нет привычного механизма отмены платежа: возврат делается отдельной операцией.
Клиент говорит «давайте счёт», вы отправляете реквизиты, он платит через три дня, а иногда не платит вовсе. Оплата через СБП на сайте убирает этот разрыв: человек жмёт кнопку, видит QR или проваливается в приложение своего банка, деньги приходят на расчётный счёт за секунды. Разберу, сколько это стоит на самом деле, какие есть способы подключения, чем система быстрых платежей отличается от обычного эквайринга и почему без онлайн-кассы всё это включать нельзя. Статья для владельца сайта услуг на WordPress, Битриксе или Тильде.

Я шесть лет обслуживаю сайты малого бизнеса и за последние два года подключал СБП чаще, чем карточный эквайринг. Причина простая: у мелкого продавца услуг разница в комиссии съедает заметный кусок маржи, а технически СБП подключается быстрее.
Что такое СБП глазами продавца
Система быстрых платежей это инфраструктура НСПК, через которую деньги идут со счёта покупателя на счёт продавца напрямую. Карточной цепочки (эмитент, эквайрер, платёжная система) в ней нет. Отсюда две практические особенности.
Первая: комиссия ниже, потому что делить её меньшему числу участников. Вторая: деньги падают на расчётный счёт почти мгновенно и в выходные тоже, а не на второй-третий рабочий день, как это часто бывает с картами.
Покупатель при этом не вводит шестнадцать цифр, срок и CVV. Он либо сканирует QR камерой, либо на телефоне нажимает кнопку и попадает в приложение своего банка, где остаётся подтвердить сумму. Конверсия на мобильных от этого обычно растёт, особенно на суммах от нескольких тысяч рублей, где вводить карту руками откровенно лень.
Важное разграничение, на котором путаются почти все. Приём оплаты через СБП для бизнеса (C2B) и перевод по номеру телефона физлицу (C2C) это разные вещи. Второе не является приёмом оплаты на сайте: у вас нет ни статуса платежа, ни привязки к заказу, ни чека, зато есть внимание банка по 115-ФЗ и претензии налоговой. Если вы сейчас принимаете деньги переводами на личную карту, почитайте отдельно про легальные способы принимать оплату без интернет-эквайринга, там разобраны варианты.
Комиссии: цифры и где подвох
Тарифы на приём C2B через СБП регулируются сверху. Максимум для большинства категорий бизнеса порядка 0,7 процента от суммы платежа, для льготных категорий (ЖКХ, медицина, образование, транспорт, госуслуги) в районе 0,4 процента. Банк может дать меньше, выше потолка не поднимет.
Карточный эквайринг для малого бизнеса в 2026 году живёт в диапазоне 1,8-3,5 процента, конкретика зависит от оборота, категории и того, насколько хорошо вы умеете торговаться.
| Способ приёма | Комиссия | Зачисление | Что нужно от вас |
|---|---|---|---|
| СБП напрямую через банк | 0,4-0,7% | минуты, включая выходные | расчётный счёт, договор, касса |
| СБП через агрегатора | 0,7-1,5% | от минут до Т+1 | договор с агрегатором, касса |
| Карточный эквайринг | 1,8-3,5% | Т+1 или Т+3 | договор, касса, иногда депозит |
| Счёт на оплату юрлицу | 0% | 1-3 рабочих дня | ничего, кроме бухгалтера |
Посчитаем на живом примере. Абонентское обслуживание за 15 000 рублей в месяц. По СБП при 0,7 процента комиссия 105 рублей, по картам при 2,6 процента 390 рублей. Разница 285 рублей с платежа. На двадцати клиентах это 5 700 рублей в месяц и почти 70 000 в год, то есть примерно два месяца обслуживания сайта.
Теперь про подвох, о котором в рекламе банков не пишут.
Во-первых, у части банков сверх процента есть абонентская плата за сервис приёма СБП, порядка 0-1 500 рублей в месяц. На маленьком обороте эта абонплата легко перекрывает всю экономию на комиссии. Считать надо не процент, а итоговую сумму за месяц.
Во-вторых, часть клиентов всё равно захочет платить картой. Полностью отказываться от эквайринга ради экономии стоит только если вы видите по статистике, что картой почти никто не платит. Нормальная схема для сайта услуг: СБП как основной способ и карта как запасной.
В-третьих, кэшбэк. Покупатель по СБП обычно не получает карточный кэшбэк и бонусы, и часть людей осознанно выбирает карту именно поэтому. На B2C-товарах это заметно, на услугах почти нет.
Три способа подключить
Напрямую в банке, где расчётный счёт
Самый дешёвый по комиссии вариант. Вы подключаете услугу в интернет-банке, получаете доступ к API или к личному кабинету мерчанта, дальше либо ставите готовый модуль для своей CMS, либо просите разработчика прикрутить API.
Плюс: минимальная комиссия, деньги сразу на свой счёт, один контрагент вместо двух. Минус: качество API и документации у банков очень разное, и если банк не даёт модуль под вашу CMS, интеграцию придётся писать руками. Часов на пять-пятнадцать в зависимости от того, насколько адекватна документация.
Через платёжного агрегатора
ЮKassa, Т-Касса, Robokassa, Продамус и им подобные. Комиссия выше на половину-процент, зато вы получаете сразу все способы оплаты в одном интерфейсе, готовые модули под WordPress, WooCommerce, Битрикс, OpenCart и Тильду, плюс личный кабинет с историей платежей и возвратами в два клика.
Отдельный аргумент за агрегатора: многие из них умеют пробивать чек за вас, выступая агентом. Это снимает с вас необходимость арендовать облачную кассу отдельно, и на маленьком обороте экономия на кассе перекрывает разницу в комиссии.
Я по умолчанию рекомендую агрегатора всем, у кого меньше пятидесяти платежей в месяц. Дороже в процентах, дешевле в сумме и заметно дешевле в часах поддержки.
Готовый модуль CMS
Технически это не отдельный способ, а способ доставки первых двух. Модуль ставится в CMS, в настройках прописываются идентификатор магазина и секретный ключ, дальше он сам рисует кнопку оплаты и слушает уведомления.
Тут есть грабля, на которую я регулярно натыкаюсь при приёмке чужой работы: модуль ставят, но не проверяют, что он поддерживается автором. Заброшенный платёжный модуль это мина замедленного действия, потому что при смене протокола банка он молча перестанет проводить платежи, а вы узнаете об этом от клиента. Перед установкой посмотрите дату последнего обновления модуля и совместимость с вашей версией PHP.
Вот как обычно выглядит создание платежа со стороны сервера, если вы работаете с API агрегатора напрямую, а не через модуль:
curl -X POST https://api.example-kassa.ru/v3/payments
-u "$SHOP_ID:$SECRET_KEY"
-H "Idempotence-Key: $(uuidgen)"
-H "Content-Type: application/json"
-d '{
"amount": { "value": "15000.00", "currency": "RUB" },
"payment_method_data": { "type": "sbp" },
"confirmation": {
"type": "redirect",
"return_url": "https://example.ru/spasibo/"
},
"capture": true,
"description": "Обслуживание сайта, сентябрь 2026",
"receipt": {
"customer": { "email": "client@example.ru" },
"items": [{
"description": "Абонентское обслуживание сайта",
"quantity": "1.00",
"amount": { "value": "15000.00", "currency": "RUB" },
"vat_code": 1,
"payment_subject": "service",
"payment_mode": "full_payment"
}]
}
}'
Обратите внимание на заголовок с ключом идемпотентности. Без него повторный запрос при обрыве связи создаст второй платёж, и клиент заплатит дважды. Это самая частая ошибка самописных интеграций, которую я вижу.
QR, ссылка или кнопка: что выбрать сайту услуг
Вариантов отображения три, и они не взаимозаменяемы.
Статический QR. Один код на все платежи, суммы в нём нет, покупатель вбивает её сам. Для наклейки на прилавке годится, для сайта нет: вы не знаете, кто и за что заплатил, сверять придётся руками по выписке. Видел, как небольшая студия так работала полгода и потеряла три платежа просто потому, что клиенты вписали не ту сумму.
Динамический QR. Код генерируется под конкретный заказ, сумма и назначение уже зашиты, платёж возвращается в систему со статусом и идентификатором. Это то, что нужно на десктопе: клиент видит QR на экране и сканирует телефоном.
Платёжная ссылка и диплинк. На мобильном QR бессмысленен, там нужна кнопка, которая открывает список установленных банковских приложений и уводит в нужное. Нормальный модуль или агрегатор определяет устройство сам и показывает QR на десктопе, кнопку на телефоне. Если ваша интеграция этого не делает, половина мобильных клиентов упрётся в QR, который нечем сканировать.
Ссылка на оплату без сайта. Отдельный сценарий для тех, кто продаёт услуги в переписке: генерируете ссылку в личном кабинете банка или агрегатора, кидаете клиенту в мессенджер. Кнопка на сайте при этом не нужна вовсе. Для фрилансера и мастера с пятью-десятью сделками в месяц это часто разумнее любой интеграции.
Чек и онлайн-касса: без этого нельзя
Здесь начинается часть, которую охотнее всего пропускают. Приняли деньги от физлица за услугу, значит обязаны выдать кассовый чек. СБП это безналичный расчёт, и 54-ФЗ распространяется на него ровно так же, как на карты.
При расчётах в интернете чек должен быть сформирован не позднее рабочего дня, следующего за днём расчёта, и не позже момента передачи товара или оказания услуги. На практике чек пробивается автоматически по факту прихода уведомления об успешном платеже и уходит клиенту на почту или телефон.
Кто его пробивает, вариантов два.
- Агрегатор как платёжный агент. Вы передаёте состав чека в запросе (тот самый блок
receiptв примере выше), касса на стороне агрегатора его пробивает и отправляет клиенту. Отдельная касса вам не нужна. - Своя облачная касса. Аренда порядка 1 500-3 000 рублей в месяц, фискальный накопитель на 15 или 36 месяцев от 9 000 рублей, ОФД в районе 2 000 рублей в год. Плюс интеграция кассы с сайтом. Смысл появляется на больших оборотах или когда чеки нужны в вашей учётной системе.
Отдельные категории от кассы освобождены. Самозанятый выдаёт чек через «Мой налог» и ККТ не применяет. У ИП на патенте освобождение действует по части видов деятельности, и я не рекомендую определять свой случай по статьям в интернете: это вопрос к бухгалтеру, цена ошибки штраф от четверти выручки, проведённой мимо кассы. Подробнее про связку приёма платежей с кассой я разбирал в материале про 54-ФЗ и онлайн-кассу на сайте.
Как обрабатывать уведомление о платеже
Платёж проходит на стороне банка, ваш сайт узнаёт о нём из вебхука. Тут три правила, нарушение любого из которых рано или поздно стоит денег.
Первое: не верить телу запроса. Кто угодно может отправить вам POST с текстом «оплачено». Либо проверяете подпись, либо перезапрашиваете статус платежа по его идентификатору у банка.
Второе: обрабатывать повторы. Уведомление может прийти дважды, трижды и десять раз, если вы не ответили двухсотым кодом достаточно быстро. Заказ при этом должен оплатиться один раз.
Третье: всегда отвечать 200, даже если внутри что-то пошло не так. Иначе платёжка будет долбить вас ретраями, а у некоторых после серии неудач отключается вебхук целиком.
// обработчик уведомления о платеже
$raw = file_get_contents('php://input');
$event = json_decode($raw, true);
if (($event['event'] ?? '') !== 'payment.succeeded') {
http_response_code(200);
exit;
}
$paymentId = $event['object']['id'] ?? '';
// защита от повторной обработки того же платежа
if (sf_order_already_paid($paymentId)) {
http_response_code(200);
exit;
}
// не доверяем телу запроса, спрашиваем статус у кассы
if (sf_fetch_payment_status($paymentId) === 'succeeded') {
sf_mark_order_paid($paymentId, $event['object']['amount']['value']);
sf_notify_owner($paymentId);
}
http_response_code(200);
Уведомление владельцу я обычно вешаю на Телеграм: почта теряется и читается через сутки, а сообщение о поступивших деньгах хочется видеть сразу.
Возвраты: как это выглядит на практике
Возврат по СБП инициирует только продавец. Привычного карточного чарджбэка, когда покупатель жалуется в свой банк и деньги списывают с вас без спроса, здесь нет. Для продавца это скорее плюс, для покупателя минус, и именно поэтому вашей политике возврата на сайте начинают верить меньше. Пропишите её понятно.
Технически возврат делается либо кнопкой в личном кабинете, либо запросом к API по идентификатору исходного платежа. Деньги уходят строго на тот счёт, с которого пришли, выбрать другой нельзя. Возврат бывает полный и частичный, частичных может быть несколько, пока не исчерпана сумма платежа.
По срокам: у клиента деньги обычно появляются за минуты, регламентный предел порядка трёх рабочих дней. Комиссию за первоначальный платёж банки чаще всего не возвращают, то есть на отменённой сделке вы теряете свои 0,7 процента. На возврате нужен ещё и чек с признаком расчёта «возврат прихода», про него забывают примерно всегда.
Ограничение по сроку, после которого возврат через СБП уже не сделать, у банков разное. Уточните этот срок до подключения, если у вас бывают отмены через несколько месяцев (предоплата за годовое обслуживание, например).
Что должно быть на сайте, кроме кнопки
Банк или агрегатор перед подключением смотрит сайт глазами модератора, и отказ чаще всего прилетает не за технику, а за отсутствие обязательных страниц. Минимум:
- публичная оферта с предметом, ценой, сроками и порядком возврата;
- полные реквизиты продавца: наименование, ИНН, ОГРН или ОГРНИП;
- рабочие контакты: телефон, почта, форма обратной связи;
- описание услуг с ценами или хотя бы с порядком формирования цены;
- политика обработки персональных данных и чекбокс согласия в форме заказа;
- HTTPS на всех страницах, включая страницу оплаты.
Последние два пункта касаются уже не банка, а 152-ФЗ: имя, телефон и почту плательщика вы обрабатываете, значит нужны и политика, и согласие, и уведомление в Роскомнадзор. Разбор требований к сайту малого бизнеса есть в отдельной статье про 152-ФЗ.
По срокам подключения: у агрегатора от одного до трёх рабочих дней, если документы в порядке, у банка напрямую бывает и неделя. Техническая часть после одобрения занимает от получаса (модуль CMS) до пары дней (интеграция по API с кассой и уведомлениями).
Чек-лист перед первым реальным платежом
Тестовый режим есть у всех, пользуйтесь им до последнего. Перед переключением на боевые ключи пройдите этот список:
- Платёж на 1 рубль с реального телефона проходит и деньги видны в выписке.
- Чек пришёл клиенту на почту или телефон, состав и сумма верные, признак расчёта правильный.
- На десктопе показывается QR, на телефоне открывается список банковских приложений.
- Возврат на 1 рубль проходит, чек возврата сформирован.
- Заказ в CMS меняет статус на «оплачен» по вебхуку, а не руками.
- Повторная отправка того же уведомления не создаёт второй оплаченный заказ.
- При закрытии окна банка на полпути заказ остаётся неоплаченным, а не висит в подвешенном статусе навсегда.
- Страница «спасибо» отдаёт 200, на ней стоит цель Метрики, и она закрыта от индексации.
- Боевые ключи лежат в конфиге вне репозитория, а не в шаблоне темы.
- Тестовый режим действительно выключен (проверяется реальным платежом, а не галочкой в настройках).
Восьмой и десятый пункты я добавил после чужих факапов. Один раз «спасибо» отдавала 404 и три месяца никто не считал конверсию. Другой раз магазин месяц принимал платежи в тестовом контуре и удивлялся, почему на счёт ничего не приходит.
Что ломается потом
Платёжная интеграция не относится к вещам, которые настроил и забыл. По моему опыту обслуживания она отваливается по пяти причинам.
Истекли или отозвали ключи. Секретный ключ меняют при смене тарифа, при подозрении на компрометацию, иногда просто по регламенту банка. Модуль про это не знает и продолжает слать запросы со старым ключом.
Сменили домен или структуру URL. Адрес возврата и адрес вебхука прописаны в личном кабинете мерчанта. Переехали на новый домен, поправили редиректы, а платёжку забыли: уведомления улетают в никуда, деньги приходят, а заказы висят неоплаченными.
Обновили модуль или CMS. Особенно больно на связке WooCommerce с дешёвым хостингом, где после обновления часть хуков отваливается по таймауту и уведомление о платеже просто не успевает обработаться.
Сменили расчётный счёт или банк. Реквизиты в кассе и в личном кабинете надо менять синхронно, иначе чек будет пробиваться на старое юрлицо.
Кончился фискальный накопитель. Срок ФН 15 или 36 месяцев, и заканчивается он ровно тогда, когда вы этого не ждёте. После этого платежи проходят, а чеки нет, и это уже нарушение.
Всё перечисленное лечится одной строчкой в регламенте обслуживания: раз в месяц проводить тестовый платёж на рубль с возвратом. Пять минут работы, которые ловят четыре проблемы из пяти до того, как их заметит клиент.
Что делать дальше
Если у вас сайт услуг и оборот меньше пятидесяти платежей в месяц, начните с агрегатора и его же кассы: подключается за пару дней, чек пробивается сам, комиссия чуть выше, но общая сумма расходов ниже. Если платежей много и они крупные, считайте прямое подключение в своём банке, там экономия на комиссии окупает и разработку интеграции, и аренду облачной кассы.
Чего точно не стоит делать: принимать оплату переводами на карту физлица и надеяться, что это никого не заинтересует. Это ровно то место, где экономия в 0,7 процента оборачивается блокировкой счёта.
Настройка приёма платежей и последующий присмотр за интеграцией входят в абонентское обслуживание: подключение модуля, проверка чеков, ежемесячный тестовый платёж, реакция, если оплата перестала проходить. Разработку с нуля и дизайн я не делаю, только поддержку существующего сайта.
Если оплата на сайте уже сломалась и заявки висят неоплаченными, напишите через форму на главной, разберёмся в тот же день. Другие материалы про интеграции, кассы и требования закона собраны в рубрике про юридическое и интеграции.
Частые вопросы
Сколько стоит приём оплаты через СБП
Порядка 0,4-0,7 процента от суммы для большинства категорий, для льготных ниже. Карточный эквайринг для малого бизнеса стоит 1,8-3,5 процента, разница ощутима уже на первых десятках платежей.
Как подключить СБП на сайт
Через свой банк напрямую или через платёжного агрегатора. Напрямую дешевле по комиссии, через агрегатора проще технически и быстрее по срокам подключения.
Нужна ли касса при оплате через СБП
Нужна на тех же основаниях, что и при любой другой оплате: чек обязан пробить получатель денег. Способ платежа на это не влияет.
Как делать возврат
Отдельной операцией возврата через тот же канал. Привычной отмены платежа, как у карт, в СБП нет, поэтому порядок возврата стоит описать в оферте заранее.