Как проверить оплату ЮKassa и СБП на сайте
ДаниилТехнический директор AmSales
Отвечает за разработку: сайты, веб-приложения, ИИ-интеграции, приложения для Битрикс24 и бэкенд.

Коротко: Чтобы проверить оплату ЮKassa и СБП, необходимо убедиться в корректности работы Webhooks, актуальности использования единого API ЮKassa и правильности обработки новых полей (например, sbp_operation_id). Важно протестировать сценарий оплаты через QR-код и убедиться, что система верно учитывает новые тарифы СБП, вступившие в силу 1 мая 2026 года.
Кстати, в AmSales мы делаем внедрение и настройку Битрикс24 и разработку сайтов и приложений под ключ. Если нужна помощь - напишите нам.
Технический чеклист проверки платежей на сайте
Когда вы запускаете новый платежный шлюз или обновляете текущую интеграцию, стандартного «прошел платеж - ок» недостаточно. Ошибки в логике обработки уведомлений могут привести к тому, что деньги у клиента спишутся, а заказ в вашей системе останется в статусе «Ожидает оплаты». Это прямой путь к жалобам и возвратам. Проверка оплаты ЮKassa должна начинаться не с интерфейса сайта, а с анализа того, как ваш сервер общается с платежным агрегатором.
Первым делом проверьте работу Webhooks (уведомлений от сервера к серверу). Часто бывает так, что на тестовом стенде все работает, а на «боевом» сервере брандмауэр или настройки безопасности блокируют входящие запросы от ЮKassa. Если ваш сервер не подтверждает получение уведомления (не возвращает HTTP-код 200), шлюз будет повторять попытки, что может создать дубли в вашей базе данных или привести к задержкам в отгрузке товара.
На что смотреть при тестировании платежного шлюза
Составьте список критических сценариев. Не ограничивайтесь только успешной транзакцией. Вам нужно проверить:
- Прерывание оплаты: клиент открыл окно оплаты, но закрыл вкладку или переключился на другое приложение.
- Отказ банка: недостаточно средств или ошибка авторизации карты.
- Тайм-аут: когда платеж зависает в промежуточном статусе.
- Дублирование запросов: проверка того, что ваша система не создаст два заказа при получении двух одинаковых уведомлений подряд.
Важный нюанс касается обработки статусов. В документации ЮKassa четко прописано, что платеж может менять статус несколько раз. Ваша логика должна уметь обрабатывать переход из «pending» в «succeeded» или «canceled». Если вы завязали автоматическую выдачу товара только на первый входящий сигнал, вы рискуете потерять заказы, которые перешли в финальный статус с задержкой.
Также убедитесь, что вы не используете архивные протоколы. На текущий момент, 5 октября 2026 года, ЮKassa настоятельно рекомендует использовать только единый API. Старые версии протоколов приема платежей могут работать нестабильно или не поддерживать новые методы верификации транзакций, особенно в части СБП. Проверьте, что в коде вашего сайта нет ссылок на устаревшие методы, которые были помечены как архивные в последних обновлениях документации.
Тестирование приема через QR-код в СБП
Настройка СБП на сайте в 2026 году практически полностью завязана на генерации динамических QR-кодов. Это самый удобный способ для покупателя: сканировал приложение банка - подтвердил сумму - готово. Однако технически это более сложный процесс, чем обычный ввод данных карты. Здесь появляется дополнительное звено - процесс генерации и отображения кода на стороне вашего фронтенда.
При тестировании этого метода важно проверить, как именно QR-код отображается на разных устройствах. Если пользователь заходит с мобильного телефона, ему не нужно сканировать код камерой, ему нужно перенаправление в банковское приложение. Проверьте, корректно ли работает этот переход (deep linking). Если ссылка на оплату в приложении банка формируется неверно, клиент просто не сможет завершить покупку, и вы потеряете конверсию.
Алгоритм проверки сценария СБП
Для полноценного тестирования пройдите по следующим шагам:
- Сгенерируйте платеж через API и убедитесь, что в ответе пришел корректный URL для отображения QR-кода или ссылка для мобильного перехода.
- Визуально проверьте QR-код: он должен быть четким и содержать актуальную сумму заказа.
- Проведите реальный платеж со своего личного банковского приложения (используя тестовые или реальные средства, если это позволяет режим).
- Проверьте скорость обновления статуса заказа на сайте после подтверждения в банке.
Частая проблема - рассинхронизация. Бывает, что в банковском приложении платеж прошел, а ваш сайт «висит» в ожидании еще несколько минут. Это происходит из-за задержек в передаче Webhook или неправильной настройки polling-механизма (если вы используете опрос статуса вместо уведомлений). В 2026 году бизнес требует мгновенной реакции: клиент ожидает, что доступ к цифровому товару или подтверждение заказа придет сразу после нажатия кнопки «Оплатить» в приложении.
Важные изменения в API ЮKassa для сверки
Разработчики и технические директора должны знать: API постоянно эволюционирует. Если вы используете старые методы сверки, вы можете просто «не видеть» часть транзакций или не понимать их природу. В актуальных версиях API ЮKassa, обновленных в начале октября 2026 года, акцент сделан на максимальной прозрачности операций, особенно тех, что проходят через СБП.
Главное нововведение, которое нельзя игнорировать при написании кода для сверки - это появление специализированных полей для идентификации операций. Раньше идентификация платежей через разные каналы могла быть запутанной. Теперь же, для корректной работы бухгалтерии и автоматической сверки, в API добавлены поля, которые позволяют четко связать платеж с конкретной операцией в системе СБП. Это критически важно для тех, кто строит сложные системы учета.
Новые идентификаторы в структуре ответа
При получении данных о платеже через API ЮKassa, теперь необходимо обращать внимание на вложенные объекты. В частности, для операций через СБП появились поля: `payment_method.sbp_operation_id` для входящих платежей и `refund_method.sbp_operation_id` для возвратов. Если ваша система автоматизации (например, интеграция с 1С или самописная ERP) не считывает эти ID, вы не сможете провести полноценную сверку транзакций с выпиской банка в автоматическом режиме.
Зачем это нужно на практике? Представьте, что у вас тысячи мелких транзакций в день. При возникновении спорной ситуации (chargeback или претензия клиента) вам нужно мгновенно найти конкретную операцию в логах. Без использования `sbp_operation_id` поиск превращается в ручной перебор по датам и суммам, что при больших объемах становится невозможным. Использование новых полей API - это не просто «фишка» разработчиков, это требование для масштабируемого бизнеса.
Также стоит помнить, что ЮKassa перешла на модель единого API для всех типов операций: приема платежей, генерации чеков и осуществления возвратов. Если вы все еще пытаетесь разделить эти процессы на разные методы или используете старые эндпоинты, вы создаете себе технический долг. Переход на единый API упрощает архитектуру и делает систему более устойчивой к изменениям со стороны платежных систем.
Как проверить корректность возвратов через API
Возвраты - это самая «опасная» зона в платежном функционале. Ошибка здесь может привести к двойным выплатам или, наоборот, к невозможности вернуть деньги клиенту, что чревато юридическими последствиями. Проверка корректности возвратов через API должна быть встроена в ваш процесс тестирования как обязательный этап. Недостаточно просто нажать кнопку «Вернуть» в личном кабинете ЮKassa; нужно убедиться, что ваша система управления заказами правильно отреагировала на это событие.
При тестировании возвратов, особенно через СБП, критически важно использовать новое поле `refund_method.sbp_operation_id`. Это позволяет точно сопоставить возврат с исходной транзакцией в банковской выписке. Если вы возвращаете средства через СБП, система должна корректно обработать специфику этого канала. Важно проверять не только сам факт возврата, но и то, как меняется статус заказа в вашей CRM: он должен переходить в статус «Возвращен» или «Отменен», а не просто оставаться в «Выполнен».
Сценарии для тестирования возврата средств
Для проверки надежности системы рекомендуем прогнать следующие кейсы:
- Полный возврат: возврат всей суммы заказа.
- Частичный возврат: например, если клиент вернул один товар из пяти. Проверьте, не «ломается» ли логика расчета остатка суммы к оплате.
- Возврат после завершения периода обработки: когда транзакция уже давно закрыта.
- Попытка повторного возврата на одну и ту же транзакцию: система должна выдавать ошибку, а не списывать деньги повторно.
Еще один нюанс касается чеков. С момента введения обязательной маркировки и работы с онлайн-кассами, возврат платежа должен сопровождаться возвратом чека. Проверьте, что API ЮKassa успешно отправляет команду на формирование чека возврата и что этот чек корректно отображается в вашей системе отчетности. Если платеж вернулся, а чек - нет, у вас возникнет расхождение с налоговой, которое придется исправлять вручную.
Новые тарифы СБП и контроль комиссий
В 2026 году финансовая нагрузка на бизнес при приеме платежей через СБП стала более прозрачной, но и более структурированной. С 1 мая 2026 года вступили в силу новые тарифы ЦБ РФ, которые изменили привычную картину расходов. Для собственника бизнеса важно не просто «настроить прием», а настроить контроль за тем, сколько именно денег уходит на комиссии. Это напрямую влияет на маржинальность, особенно в высокооборотных нишах.
Текущая ситуация с тарифами выглядит следующим образом: если речь идет о переводах между физическими лицами, комиссия остается нулевой. Однако для коммерческого сектора (переводы физлиц в пользу юрлиц, ИП или самозанятых) действуют фиксированные суммы. Эти суммы зависят от объема перевода и варьируются в диапазоне от 0,05 до 3 рублей. Важно понимать, что верхний предел комиссии для бизнеса в СБП зафиксирован на уровне 3 рублей за перевод, что делает этот метод крайне выгодным для чеков с высоким средним чеком.
| Тип операции | Примерная ставка / Лимит | Комментарий |
| Переводы между физлицами | 0 руб. | Стандартная норма ЦБ |
| Переводы физлиц юрлицам/ИП | 0,05 - 3 руб. | Зависит от суммы, лимит 3 руб. |
| Трансграничные переводы (физлица) | 6 руб. | Согласно решениям ЦБ от марта 2026 |
| Возврат средств (зачисление) | 0 руб. | Платеж за зачисление возвращенных средств не облагается |
Для контроля комиссий недостаточно просто смотреть на итоговую сумму в конце месяца. Вам нужно интегрировать в свою аналитику (например, в DataLens или внутренний дашборд) расчет стоимости транзакции в реальном времени. Если ваша система не учитывает, что комиссия за СБП может отличаться от комиссии по эквайрингу картами, вы получите искаженную картину прибыльности. В 2026 году автоматизация финансового учета - это не роскошь, а способ избежать кассовых разрывов из-за неверного планирования расходов на эквайринг.
Также обратите внимание на трансграничные платежи. Если ваш бизнес работает с клиентами из других стран через СБП, помните про тариф в 6 рублей. Это существенное отличие от внутренних платежей, и такая разница должна учитываться в настройках вашего калькулятора стоимости доставки или услуг, если вы закладываете комиссию в цену товара.
Типичные ошибки при интеграции платежных методов
Интеграция платежей кажется простой задачей, пока не начинаются первые реальные транзакции. Ошибки могут быть как техническими (в коде), так и операционными (в бизнес-процессах). Самая дорогая ошибка - это когда техническая часть работает идеально, но бизнес-логика не учитывает нюансы платежных систем. Например, вы считаете, что платеж «успешен» сразу после того, как клиент нажал кнопку, не дожидаясь подтверждения от шлюза.
Вторая по частоте ошибка - игнорирование статусов. Многие разработчики настраивают систему только на статус «success». Но в реальности платеж может быть «заморожен» (hold) или находиться в статусе «в обработке». Если ваша CRM сразу отправляет товар в сборку при получении только первичного сигнала, вы рискуете отправить товар за деньги, которые в итоге не поступят на счет из-за фрода или отмены транзакции банком. Всегда ждите финального подтверждения через Webhook.
Разбор критических промахов
Давайте разберем несколько конкретных примеров, на которых спотыкаются даже опытные команды:
- Отсутствие обработки дублей: При плохом интернет-соединении клиент может нажать кнопку «Оплатить» несколько раз или браузер может отправить повторный запрос. Если ваша база данных не имеет уникального ключа для транзакции (например, ID заказа + ID попытки оплаты), вы можете создать несколько одинаковых списаний.
- Некорректная работа с возвратами: Попытка сделать возврат через API без проверки, был ли платеж завершен. Это приводит к ошибкам в логах и может заблокировать возможность проведения других операций.
- Игнорирование новых полей API: Как мы уже говорили, неиспользование `sbp_operation_id` делает невозможной автоматическую сверку. Это ошибка, которая «выстрелит» не сразу, а через месяц, когда бухгалтерия обнаружит расхождения в отчетах.
Наконец, не забывайте про тестирование на «боевых» данных. Тестовые среды (sandbox) - это отлично, но они не имитируют задержки реальных банковских сетей и специфические ошибки мобильных приложений. Проведите хотя бы один реальный платеж через СБП и через карту в рабочем режиме перед тем, как отдавать проект в эксплуатацию. Это сэкономит вам часы (а иногда и дни) разбора инцидентов.
Автоматизация сверки транзакций в вашей CRM
Когда объем заказов переваливает за сотню в день, ручная сверка выписок из ЮKassa с данными в CRM становится невыполнимой задачей. Ошибки неизбежны: человек может пропустить строку, ошибиться в сумме или не заметить возврат. Единственный способ сохранить порядок - это автоматизация. Ваша CRM должна уметь «общаться» с API ЮKassa без участия человека, постоянно синхронизируя данные.
Автоматизация начинается с правильного сбора данных. Ваша система должна не просто сохранять факт оплаты, а записывать всю цепочку: ID транзакции, ID операции СБП, точную сумму списания, сумму комиссии и статус. Именно наличие этих данных позволит вам настроить автоматический сверщик (reconciliation engine). Этот инструмент будет раз в сутки (или чаще) запрашивать через API список всех операций за прошедший период и сравнивать их с записями в вашей базе заказов.
Как построить процесс автоматической сверки
Для эффективной работы автоматизации следуйте этой схеме:
- Сбор логов: Сохраняйте все входящие Webhooks в отдельную таблицу. Это ваш «черный ящик», который поможет восстановить хронологию, если что-то пойдет не так.
- Ежедневный запрос через API: Настройте скрипт, который по расписанию запрашивает список транзакций через API ЮKassa.
- Сопоставление: Используйте уникальные идентификаторы (включая `sbp_operation_id`) для связи записи в CRM с записью в шлюзе.
- Отчет об отклонениях: Вместо того чтобы проверять все транзакции, настройте систему так, чтобы она присылала уведомление только в случае расхождений (например, сумма в CRM не совпадает с суммой в API или статус заказа «Оплачен», а в API - «Ошибка»).
Такой подход превращает бухгалтерию из «детективов», ищущих пропавшие деньги, в контролеров, которые лишь подтверждают корректность работы алгоритма. Это высвобождает время для более важных задач и дает собственнику реальную цифру по прибыли, очищенную от всех комиссий и возвратов. В 2026 году, когда конкуренция в e-commerce только растет, точность финансовых данных становится одним из ключевых преимуществ.
Что запомнить:
- Используйте только актуальный API ЮKassa, избегайте архивных протоколов.
- При работе со СБП обязательно внедряйте в логику сверки поле `sbp_operation_id`.
- Учитывайте новые тарифы СБП (лимит комиссии 3 руб.) при расчете маржинальности.
- Тестируйте не только успех, но и сценарии прерывания оплаты и возвратов.
- Автоматизируйте сверку через API, чтобы исключить человеческий фактор в учете.
/ Поможем с этим