Налаштування оплати через СБП (Система швидких платежів) на 1С-Бітрікс
СБП — міжбанківська система миттєвих платежів ЦБ РФ. Для інтернет-магазину це оплата через мобільний банк покупця за QR-кодом або посиланням. Без комісії для покупця, тариф для торгової точки — фіксований відсоток (зазвичай 0.4–0.7%, нижче еквайрингу). З 2023 року великі банки зобов'язані підтримувати СБП — охоплення аудиторії близько до 100% серед користувачів російських банків.
Технічні варіанти інтеграції СБП
Через банк-еквайєр — якщо у магазину вже є еквайринг у банку-учаснику СБП, достатньо підключити СБП у особистому кабінеті банку. Метод з'являється у формі оплати автоматично або через API з параметром payment_method: sbp.
Через платіжний агрегатор — ЮКасса, Тінькофф, Сбер надають СБП як додатковий метод у своєму API.
Пряма інтеграція через НСПК — для банків і великих платіжних платформ. Потребує ліцензії та партнерської угоди з НСПК.
Інтеграція через ЮКасса
// Створення платежу через СБП
$payment = $yookassaClient->createPayment([
'amount' => ['value' => $amount, 'currency' => 'RUB'],
'payment_method_data' => ['type' => 'sbp'],
'capture' => true,
'description' => 'Замовлення №' . $orderId,
'confirmation' => [
'type' => 'redirect',
'return_url' => $returnUrl,
],
], uniqid('', true));
// Редиректимо покупця на сторінку ЮКасса з вибором банку
$confirmationUrl = $payment->getConfirmation()->getConfirmationUrl();
header('Location: ' . $confirmationUrl);
Або з QR-кодом замість редиректу:
$payment = $yookassaClient->createPayment([
'amount' => ['value' => $amount, 'currency' => 'RUB'],
'payment_method_data' => ['type' => 'sbp'],
'capture' => true,
'confirmation' => ['type' => 'qr'], // QR замість редиректу
], uniqid('', true));
$qrData = $payment->getConfirmation()->getConfirmationData();
// $qrData — рядок payload для генерації QR-зображення
Інтеграція через Тінькофф
// Тінькофф: створення платежу з СБП
$response = $tinkoffClient->init([
'Amount' => (int)($amount * 100), // копійки
'OrderId' => 'BX_' . $orderId,
'Description' => 'Замовлення №' . $orderId,
'PayType' => 'O', // O=одностадійний
'DATA' => ['PaymentMethod' => 'SBP'],
'NotificationURL' => $notifyUrl,
'SuccessURL' => $successUrl,
'FailURL' => $failUrl,
]);
// Отримання QR-посилання СБП
$qrResponse = $tinkoffClient->getSbpQr(['PaymentId' => $response['PaymentId']]);
$sbpPayload = $qrResponse['QRURL']; // рядок для QR-коду
Відображення СБП у формі оплати
У шаблоні сторінки оплати — кнопка «Оплатити через СБП» відкриває діалог з QR або посиланням:
// Визначаємо мобільний пристрій
const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
if (isMobile) {
// На мобільному — диплінк у додаток банку
window.location.href = sbpPayload; // рядок виду https://qr.nspk.ru/...
} else {
// На десктопі — показуємо QR для сканування телефоном
document.getElementById('sbp-qr').src = '/bitrix/tools/generate_qr.php?data='
+ encodeURIComponent(sbpPayload);
document.getElementById('sbp-qr-container').style.display = 'block';
// Polling статусу поки покупець платить
startStatusPolling(orderId);
}
Обробка повідомлень СБП
СБП-платіж підтверджується через той самий webhook-механізм, що і картковий. Специфіки на рівні обробника Бітрікс немає — агрегатор нормалізує повідомлення:
// У callback-обробнику — статус succeeded обробляється однаково
// незалежно від методу оплати (картка, СБП, ЮМані)
if ($payment->getStatus() === 'succeeded') {
$bitrixPayment->setPaid('Y');
$bitrixPayment->save();
}
Специфіка відображення методів оплати
Рекомендований порядок методів оплати для інтернет-магазинів (2024–2025):
1. СБП (0% для покупця, швидко)
2. Картка VISA/Mastercard/Мир
3. SberPay / Tinkoff Pay
4. Mir Pay
5. Готівка / інше
СБП розміщується першим — конверсія в нього вища завдяки простоті підтвердження через Face ID у банківському додатку.
Терміни
| Завдання | Термін |
|---|---|
| Підключення СБП через існуючий еквайринг | 0.5 дня |
| QR-код на сторінці оплати + polling | 1 день |
| Диплінк для мобільних пристроїв | 0.5 дня |







