Настройка оплаты через СБП (Система быстрых платежей) в 1С-Битрикс
СБП — межбанковская система мгновенных платежей Банка России. В e-commerce СБП интересен низкой комиссией (0,4–0,7% против 1,5–2,5% у карточного эквайринга) и высокой скоростью: деньги зачисляются в течение нескольких секунд. Техническое подключение для интернет-магазинов — через банк-эквайер, участвующий в СБП.
Как работает СБП для интернет-платежей
Покупатель видит на странице оплаты QR-код или кнопку «Оплатить через СБП». При нажатии:
- На мобильном устройстве — открывается приложение банка с заполненными реквизитами платежа
- На десктопе — отображается QR-код для сканирования смартфоном
После подтверждения в приложении банка — деньги переводятся мгновенно. Магазин получает webhook-уведомление.
Подключение через Тинькофф
Тинькофф предоставляет два формата СБП: ссылку (для мобильных) и QR-код (для десктопа).
// Создание платёжной сессии
$params = [
'TerminalKey' => TINKOFF_TERMINAL,
'Amount' => (int)($order->getPrice() * 100),
'OrderId' => $order->getAccountNumber(),
'Description' => 'Заказ #' . $order->getAccountNumber(),
'NotificationURL' => 'https://shop.ru/bitrix/tools/sale_ps_result.php',
'PayType' => 'O',
];
$params['Token'] = tinkoffSign($params, TINKOFF_SECRET);
$init = tinkoffPost('/v2/Init', $params);
$paymentId = $init['PaymentId'];
// Получение QR для СБП
$qrParams = [
'TerminalKey' => TINKOFF_TERMINAL,
'PaymentId' => $paymentId,
'DataType' => 'PAYLOAD', // PAYLOAD = ссылка-строка, IMAGE = PNG в base64
];
$qrParams['Token'] = tinkoffSign($qrParams, TINKOFF_SECRET);
$qr = tinkoffPost('/v2/GetQr', $qrParams);
$sbpLink = $qr['Data']; // Ссылка вида https://qr.nspk.ru/...
Адаптивное отображение: QR или ссылка
// Определяем тип устройства и показываем нужный вариант
const isMobile = /Mobi|Android/i.test(navigator.userAgent);
if (isMobile) {
// На мобильном — кнопка-ссылка, открывающая банковское приложение
const btn = document.getElementById('sbp-btn');
btn.href = sbpLink;
btn.style.display = 'block';
} else {
// На десктопе — QR-код
const qr = new QRCode(document.getElementById('sbp-qr'), {
text: sbpLink,
width: 200,
height: 200,
});
document.getElementById('sbp-qr-block').style.display = 'block';
}
// Polling статуса
const poll = setInterval(async () => {
const status = await fetch('/api/sbp-status.php?orderId=' + orderId)
.then(r => r.json());
if (status.paid) {
clearInterval(poll);
location.href = '/payment/success/';
}
}, 2000);
Подключение через ЮКасса
$payment = $client->createPayment([
'amount' => ['value' => number_format($sum, 2, '.', ''), 'currency' => 'RUB'],
'payment_method_data' => ['type' => 'sbp'],
'confirmation' => ['type' => 'qr'],
'capture' => true,
'description' => 'Заказ #' . $orderId,
'metadata' => ['order_id' => $orderId],
], uniqid('', true));
// $payment->getConfirmation()->getConfirmationData() — ссылка СБП
Комиссия и эквайринговый договор
СБП-транзакции тарифицируются отдельно от карточного эквайринга. Стандартные ставки для e-commerce: 0,4% для физлиц, до 0,7% для юрлиц. Для подключения нужен отдельный продукт в банке — «Приём платежей через СБП» или «СБП для бизнеса».
Фискализация СБП-платежей
СБП-транзакции фискализируются аналогично карточным. При использовании ЮКасса с подключённой кассой — передавайте receipt в запросе, как для обычного платежа.
Сроки
| Задача | Срок |
|---|---|
| СБП через Тинькофф или ЮКасса | 1–2 дня |
| Адаптивное отображение QR/ссылка | 0.5 дня |
| Polling статуса и обновление страницы | 0.5 дня |
| Подключение эквайринга в банке | 3–10 рабочих дней |







