Підключення СБП в 1С-Бітрікс: покрокова інтеграція з прикладами
Після сотень підключень карткового еквайрингу до магазинів на 1С-Бітрікс ми помітили закономірність: власники повертаються через півроку із запитом на СБП. Причина очевидна — комісія 0,4–0,7% проти середніх 2% у карток. СБП в 3–5 разів вигідніше карток — значна економія порівняно з картковими платежами. І це не рахуючи того, що гроші приходять за секунди, а не наступного дня. Технічна реалізація простіша, ніж здається: ми підготували інтеграцію з двома популярними провайдерами — Тинькофф та ЮKacca. Обидва надають прості API та швидкий онбординг. Середній час підключення — 1-2 дні.
Що таке СБП і як це працює
СБП — це міжбанківська система миттєвих платежів Банку Росії, запущена в 2019 році. Це прямий переказ між рахунками покупця та продавця без проміжних платіжних систем. Покупець сканує QR-код або переходить за посиланням — оплата проходить без введення карткових даних. Для інтернет-магазинів СБП надає перевагу зниження комісії в 3–5 разів порівняно з картками.
Порівняння СБП та карткового еквайрингу
| Параметр | СБП | Картковий еквайринг |
|---|---|---|
| Комісія | 0,4% – 0,7% | 1,5% – 2,5% |
| Швидкість зарахування | Кілька секунд | Наступний банківський день |
| Повернення | Простий зворотний переказ | Через процесинг, 3–30 днів |
Додатковий плюс — збільшується конверсія: за нашими оцінками, до 15% користувачів кидають кошик при вигляді форми введення картки. СБП прибирає цей бар'єр.
Як інтегрувати СБП через Тинькофф?
Тинькофф надає два формати: посилання (для мобільних) та QR-код (для десктопа). Етапи підключення:
- Отримати термінальний ключ в особистому кабінеті Тинькофф.
- Створити платіжну сесію через API Init.
- Запросити QR-код через GetQr.
- Відобразити користувачеві залежно від пристрою.
Приклад створення платіжної сесії та отримання 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', ]; $qrParams['Token'] = tinkoffSign($qrParams, TINKOFF_SECRET); $qr = tinkoffPost('/v2/GetQr', $qrParams); $sbpLink = $qr['Data']; Адаптивне відображення QR та посилань
Наступний етап — показати користувачеві правильний інтерфейс. На мобільних пристроях краще відкривати банківський додаток за посиланням, на десктопі — QR-код. Перевіряємо user-agent і рендеримо потрібний елемент:
const isMobile = /Mobi|Android/i.test(navigator.userAgent); if (isMobile) { const btn = document.getElementById('sbp-btn'); btn.href = sbpLink; btn.style.display = 'block'; } else { 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); Як інтегрувати СБП через ЮKacca?
ЮKacca також підтримує СБП. Приклад створення платежу:
$payment = $client->createPayment([ 'amount' => ['value' => number_format($sum, 2, '.', ''), 'currency' => 'USD'], 'payment_method_data' => ['type' => 'sbp'], 'confirmation' => ['type' => 'qr'], 'capture' => true, 'description' => 'Замовлення #' . $orderId, 'metadata' => ['order_id' => $orderId], ], uniqid('', true)); Обробка callback-повідомлень від банку
Після оплати банк надсилає POST-запит на NotificationURL. Це повідомлення містить статус платежу і має бути оброблене коректно:
// Отримання повідомлення $json = file_get_contents('php://input'); $data = json_decode($json, true); // Перевірка підпису $token = hash('sha256', $json . TINKOFF_SECRET); if ($token !== $_SERVER['HTTP_X_SIGNATURE']) { http_response_code(400); echo 'bad signature'; exit; } // Оновлення статусу платежу в Бітрікс if ($data['Status'] === 'CONFIRMED') { \Bitrix\Sale\PaymentCollection::setPaid($data['OrderId'], 'Y'); } Важливо: ніколи не покладайтеся лише на callback. Реалізуйте polling статусу (як у прикладі вище) — callback може не дійти через мережеві збої, але платіж уже пройшов.
Чи варто підключати СБП? Комісія та фіскалізація
Для роботи з СБП потрібен окремий продукт у банку — «Прийом платежів через СБП». Ставки для e-commerce: 0,4% для фізосіб, до 0,7% для юросіб, що дозволяє значно скоротити операційні витрати порівняно з картковим еквайрингом. Наприклад, при обороті $4.5k–6.5k на місяць економія складе до $68–98. Фіскалізація СБП-платежів проходить за стандартним механізмом: передаєте receipt з ознакою payment_method = 'sbp' в ОФД. Окрема онлайн-каса не потрібна — використовується той самий касовий апарат, що й для карток. При правильному налаштуванні в Бітрікс чеки надсилаються автоматично при підтвердженні платежу через webhook від банку.
Повернення та відміни платежів
При поверненні СБП-платежу гроші повертаються на рахунок покупця миттєво (на відміну від карток, де може бути затримка). У Бітрікс реалізуйте повернення через Refund-ендпоінт банку:
$refund = tinkoffPost('/v2/Refund', [ 'PaymentId' => $paymentId, 'TerminalKey' => TINKOFF_TERMINAL, ]); Часткові повернення також підтримуються — передайте суму повернення окремо від повної суми платежу.
Що входить у роботу з підключення СБП
Ми надаємо комплексний сервіс:
- Технічне завдання та документація API
- Інтеграція платіжної сесії та QR-коду
- Налаштування callback (webhook) та polling
- Адаптивне відображення для мобільних та десктопа
- Фіскалізація чеків згідно 54-ФЗ
- Навчання вашої команди та передача доступів
- Підтримка 30 днів після запуску
Наш досвід і терміни підключення
Ми реалізували понад 50 інтеграцій платіжних систем на 1С-Бітрікс за останні 7 років. Сертифіковані спеціалісти Бітрікс гарантують стабільну роботу під навантаженням. Середні терміни:
| Завдання | Термін |
|---|---|
| СБП через Тинькофф або ЮKacca | 1–2 дні |
| Адаптивне відображення QR/посилання | 0.5 дня |
| Polling статусу | 0.5 дня |
| Підключення еквайрингу в банку | 3–10 робочих днів |
Якщо ви хочете підключити СБП на своєму проєкті, зв'яжіться з нами — ми безкоштовно оцінимо обсяг робіт і запропонуємо оптимальне рішення.







