Интеграция ЮKassa и СБП: как прописать ТЗ
Сергей и ЛеонидВедущий специалист по CRM AmSales
Внедряет Битрикс24 и amoCRM, автоматизирует продажи и бизнес-процессы. Золотой партнёр Битрикс24, 400+ проектов.

Коротко: Для корректной интеграции ЮKassa и СБП в 2026 году необходимо учитывать требования 248-ФЗ и переход на универсальный платежный код. В ТЗ нужно зафиксировать использование сценариев Redirect или External для SberPay, прописать передачу Merchant ID и секретного ключа, а также учесть лимит СБП в 1 млн рублей за одну операцию и особенности подключения СБП только в составе комплексного решения ЮKassa.
Кстати, в AmSales мы делаем разработку интернет-магазинов и разработку мобильных приложений под ключ. Если нужна помощь - напишите нам.
Требования к ТЗ для платежных систем
Грамотное ТЗ на платежный шлюз - это не просто список кнопок, которые должен видеть покупатель. Это детальное описание логики взаимодействия вашего сайта, сервера и API ЮKassa. Если в документе не будет описана обработка ошибок или сценарии возврата платежа, разработчики сделают "как проще", а бизнес получит дыры в безопасности и кассовые разрывы.
Первое, с чего стоит начать - описание жизненного цикла платежа. Вы должны четко прописать, что происходит в момент нажатия кнопки "Оплатить", как система понимает, что деньги списаны, и как она реагирует, если сессия оплаты прервалась. Интеграция ЮKassa в интернет-магазин требует фиксации всех статусов: pending (ожидание), succeeded (успешно), canceled (отменено) и failed (ошибка). Без этого автоматизация заказов в CRM или 1С превратится в ручной труд.
Второй важный блок - это требования к безопасности и передаче данных. В ТЗ обязательно указывается использование серверного SDK, а не просто клиентских запросов. Это критично, так как любые манипуляции с ценой на стороне браузера пользователя должны пресекаться проверкой на стороне вашего сервера через API. Также необходимо прописать логику работы с уведомлениями (webhooks), чтобы ваш сайт мгновенно узнавал об успешной транзакции, даже если пользователь закрыл вкладку сразу после оплаты.
Наконец, не забудьте про требования к интерфейсу. Оплата через ЮKassa требования к UX включают в себя корректное отображение виджета или редиректа. Если вы планируете использовать СБП, в ТЗ должно быть указано, как именно будет генерироваться QR-код или вызываться приложение банка. Покупатель не должен гадать, нажал ли он кнопку или система зависла. Четкая индикация процесса оплаты снижает процент брошенных корзин.
Что обязательно включить в техническое задание:
- Описание методов API и используемого SDK (PHP, Python, Node.js и др.).
- Алгоритм обработки callback-уведомлений от ЮKassa.
- Логику обработки ошибок (недостаточно средств, отказ банка, таймаут сессии).
- Процедуру рекуррентных платежей (если планируются подписки).
- Механизм сверки платежей (reconciliation) для бухгалтерии.
Новые правила 248-ФЗ и универсальный код
С 1 сентября 2026 года ландшафт платежей в России изменился навсегда. Вступление в силу закона 248-ФЗ привело к тому, что старые методы идентификации транзакций через разрозненные QR-коды ушли в прошлое. Теперь все платежные сервисы обязаны использовать универсальный платежный код (УПК). Это сделано для того, чтобы упростить отслеживание движения средств и сделать систему прозрачнее для регулятора.
Для бизнеса это означает, что при написании ТЗ нельзя ориентироваться на старые инструкции двухлетней давности. Если ваш разработчик пытается реализовать оплату через старые динамические QR-коды, которые не поддерживают стандарт УПК, вы столкнетесь с проблемами при сверке платежей и возможными штрафными санкциями или блокировками со стороны банков-эквайеров. Настройка СБП для бизнеса теперь неразрывно связана с поддержкой этого единого стандарта.
Универсальный код позволяет системе быстрее понимать, какой именно платеж и по какому назначению проходит. Это снижает вероятность того, что платеж "зависнет" между банком-отправителем и вашим расчетным счетом. При интеграции ЮKassa важно убедиться, что выбранная версия API поддерживает актуальные стандарты 248-ФЗ. Обычно это решается обновлением библиотек и переходом на последние версии документации, которую ЮKassa обновляет в реальном времени.
Важно понимать: переход на УПК - это не просто техническая формальность, это изменение логики формирования платежных ссылок. В ТЗ нужно указать, что платежный шлюз должен корректно формировать запросы, соответствующие новым требованиям к метаданным платежа. Это обеспечит бесперебойную работу и позволит избежать ошибок при автоматическом разнесении платежей в учетных системах.
Сценарии оплаты SberPay: Redirect и External
С развитием экосистем способы оплаты стали более специфичными. Раньше для SberPay было привычно использовать сценарий, где пользователя перебрасывало в приложение банка через QR-код. Однако, согласно актуальным изменениям в API ЮKassa, этот метод перестал быть приоритетным и фактически устарел. Сейчас для стабильной работы рекомендуется использовать два основных сценария: Redirect и External.
Сценарий Redirect (перенаправление) работает так: когда клиент выбирает SberPay, ваш сайт отправляет его на защищенную страницу оплаты ЮKassa или напрямую в интерфейс банка. После завершения транзакции банк возвращает пользователя обратно на ваш сайт (success URL). Это самый простой в реализации способ, который отлично подходит для стандартных интернет-магазинов. Он требует минимальных настроек на стороне фронтенда, так как основная логика перенаправления лежит на платежном шлюзе.
Сценарий External (внешний вызов) более сложный, но гибкий. Он используется, когда вы хотите сохранить пользователя внутри своего интерфейса или мобильного приложения, вызывая методы оплаты через глубокие ссылки (deep links) или специализированные SDK. Это позволяет создать бесшовный опыт: клиент нажимает кнопку, и у него мгновенно открывается приложение Сбера для подтверждения, без промежуточных страниц браузера. Для мобильных приложений это критически важный пункт в ТЗ.
При составлении ТЗ на платежный шлюз обязательно уточните, какой именно сценарий вы выбираете. Если у вас мобильное приложение, настаивайте на External - это даст гораздо более высокую конверсию. Если у вас классический сайт на CMS, Redirect будет надежнее и дешевле в разработке. Попытка использовать старые методы через QR-коды для SberPay может привести к тому, что платеж просто не инициируется в современных версиях банковских приложений.
Особенности подключения СБП через ЮKassa
Система быстрых платежей (СБП) стала стандартом де-факто для онлайн-торговли. Однако есть нюанс, который часто упускают при планировании бюджета и архитектуры: способ оплаты через СБП нельзя подключить как отдельный, изолированный сервис. ЮKassa предлагает СБП только в рамках комплексного решения. Это значит, что вместе с СБП вам придется принимать и другие методы: банковские карты, кошелек ЮMoney или SberPay через Умный платеж.
Такая архитектура выгодна для бизнеса, так как вы получаете "все в одном флаконе". Вам не нужно интегрировать пять разных API от разных банков. Вы работаете с одним шлюзом, одним набором ключей и одной системой уведомлений. В ТЗ это следует прописать как единую интеграцию с поддержкой мультиплатформенности. Это упрощает поддержку кода и масштабирование: если завтра появится новый популярный способ оплаты, он добавится в ваш шлюз автоматически через обновление API ЮKassa.
Еще одна особенность - использование Виджета ЮKassa. Это готовое решение, которое берет на себя отрисовку всех способов оплаты, включая СБП. Если ваш бюджет на разработку ограничен, лучше заложить в ТЗ интеграцию именно виджета. Это сэкономит десятки часов работы программистов и гарантирует, что дизайн платежных методов будет соответствовать актуальным стандартам безопасности и удобства. Виджет сам подтянет нужные сценарии (Redirect/External) в зависимости от устройства пользователя.
Не забывайте про сценарии использования. СБП может работать как через QR-коды (которые клиент сканирует камерой), так и через push-уведомления в банковском приложении. В 2026 году, благодаря поддержке УПК, эти процессы стали максимально синхронизированы. В ТЗ важно указать, что система должна поддерживать оба варианта, чтобы дать покупателю выбор: сканировать или просто подтвердить в приложении.
Технические параметры и ключи API интеграции
Техническая часть интеграции - это фундамент. Без правильных идентификаторов и ключей никакая настройка СБП для бизнеса не заработает. Для интеграции ЮKassa в 1С или любую другую учетную систему вам понадобится три основных параметра. Первый - это Merchant ID (идентификатор магазина), который приходит на почту после успешного прохождения модерации вашего аккаунта. Второй - Shop ID, который берется непосредственно в личном кабинете ЮKassa. И третий, самый важный - секретный ключ (Secret Key).
Секретный ключ выпускается в разделе "Интеграция" -> "Ключи API". К нему нужно относиться как к паролю от сейфа. Если он попадет в открытый доступ (например, будет зашит в JavaScript-код на стороне клиента), злоумышленники смогут имитировать успешные платежи. Поэтому в ТЗ должно быть жесткое требование: работа с секретным ключом осуществляется исключительно на стороне бэкенда (сервера). Никогда не передавайте его в браузер пользователя.
| Параметр | Где взять | Для чего нужен |
| Merchant ID | Письмо от ЮKassa | Идентификация вашего аккаунта в системе |
| Shop ID | Личный кабинет ЮKassa | Привязка конкретной торговой точки/магазина |
| Секретный ключ | Раздел "Ключи API" | Подпись запросов и проверка подлинности |
Помимо ключей, в ТЗ необходимо прописать параметры уведомлений. Вы должны настроить endpoint (URL), на который ЮKassa будет присылать POST-запросы при изменении статуса платежа. Важно предусмотреть проверку подписи каждого входящего уведомления. Это гарантирует, что запрос пришел именно от ЮKassa, а не от хакера, пытающегося подделать статус "Оплачено". Также укажите необходимость логирования всех входящих и исходящих запросов к API - это спасет вас при поиске причин технических сбоев.
После настройки ключей обязательным этапом является тестирование. В документации ЮKassa предусмотрены тестовые карты и режимы, позволяющие имитировать различные сценарии: от успешной оплаты до ошибки "недостаточно средств". В ТЗ должен быть прописан план приемочного тестирования (UAT), где разработчик обязан продемонстрировать успешное прохождение всех критических путей оплаты в тестовой среде перед переходом в live-режим.
Лимиты СБП и финансовые риски операций
Работа с платежами - это всегда работа с рисками. При использовании СБП важно понимать не только технические, но и финансовые ограничения, установленные Банком России. Ошибки в расчетах или непонимание лимитов могут привести к тому, что крупные заказы будут отклоняться системой, а клиенты будут недовольны. Это напрямую влияет на конверсию и репутацию бренда.
Главный лимит, о котором нужно знать: максимальная сумма одной операции через СБП составляет 1 млн рублей. Если ваш интернет-магазин торгует дорогим оборудованием или недвижимостью, вам нужно заранее продумать сценарий для чеков выше этой суммы. В таком случае система должна предлагать альтернативные методы оплаты, например, банковский перевод по счету или классический эквайринг картами. В ТЗ это должно быть описано как логика выбора платежного метода в зависимости от суммы корзины.
Также существуют лимиты для физических лиц. Бесплатно через СБП можно переводить до 100 тыс. рублей в календарный месяц. При превышении этого порога взимается комиссия 0,5% от суммы превышения, но не более 1,5 тыс. рублей за один перевод. Для бизнеса это важно учитывать при обучении службы поддержки: если клиент жалуется на комиссию, оператор должен понимать, что это ограничение его банка, а не ошибка вашего сайта. Для переводов между своими счетами лимиты гораздо выше - до 30 млн рублей в месяц бесплатно, далее также 0,5% с ограничением в 1,5 тыс. рублей.
Финансовый риск также связан с возвратами. При возврате платежа через СБП деньги возвращаются на тот же счет, с которого они были отправлены. В ТЗ нужно прописать механизм инициации возвратов через API ЮKassa, чтобы менеджеры могли делать это из вашей админ-панели, не заходя в личный кабинет платежного сервиса. Это ускоряет процесс и снижает вероятность ошибок ручного ввода.
Типичные ошибки при постановке задачи разработчикам
Самая распространенная ошибка - это попытка сэкономить на архитектуре и просить "просто подключить СБП". Как мы уже выяснили, СБП в ЮKassa идет в комплекте с другими методами. Разработчики, получившие размытое задание, могут настроить только один способ оплаты, и когда клиент захочет оплатить картой, он столкнется с ошибкой. Всегда требуйте комплексной интеграции платежного шлюза.
Вторая ошибка - игнорирование обработки ошибок. Часто в ТЗ пишут: "если оплата прошла - создаем заказ". Но что, если связь с сервером ЮKassa прервалась в момент подтверждения? Или если пользователь закрыл страницу, не дождавшись редиректа? Если в ТЗ не прописана логика проверки статуса платежа по запросу (polling) или обработка задержек в webhooks, вы получите "зависшие" заказы: деньги списаны, а товар не отгружен. Это прямой путь к конфликтам с клиентами и чарджбэкам.
Третья ошибка - отсутствие требований к безопасности ключей. Некоторые разработчики ради скорости "зашивают" секретный ключ прямо в код фронтенда. Это критическая уязвимость. В ТЗ должен быть четко прописан запрет на хранение и передачу чувствительных данных (API keys, токены) в открытом виде на стороне клиента. Только серверная часть должна иметь доступ к управлению платежами.
Наконец, многие забывают про тестирование лимитов и специфических сценариев. Разработчики часто тестируют только "счастливый путь" (happy path) - когда все проходит идеально. Но реальный мир полон ошибок: неверные CVV, истекшие карты, лимиты по СБП, сбои банков. В ТЗ должен быть раздел "Негативные сценарии", где описано, как система должна реагировать на каждый из этих случаев. Только так вы получите надежный инструмент, который будет работать как часы даже в пиковые нагрузки.
Что запомнить:
- С 01.09.2026 обязателен переход на универсальный платежный код (УПК) согласно 248-ФЗ.
- Для SberPay используйте сценарии Redirect или External вместо старых QR-кодов.
- СБП подключается только в составе полного набора методов ЮKassa.
- Максимальный лимит одной операции в СБП - 1 млн рублей.
- Секретный ключ API должен храниться только на сервере.
/ Поможем с этим