Як вибудувати повний цикл B2B-оплати в 1С-Бітрікс
B2B-клієнти не платять картками — їм потрібен офіційний рахунок з печаткою та реквізитами. Без автоматизації менеджеру доводиться вручну виставляти рахунок, чекати підтвердження з бухгалтерії та відмічати оплату. Це займає години, а помилки ведуть до затримок. В 1С-Бітрікс можна налаштувати повний цикл: від збору реквізитів покупця до автоматичного підтвердження надходження на розрахунковий рахунок. Наш досвід — понад 7 років розробки, десятки проєктів з B2B-оплатою. Використовуємо перевірені патерни — користувацькі властивості замовлення, REST API банків, генерацію PDF через FPDF. Результат: час обробки платежу скорочується з двох днів до 20 хвилин, операційні витрати падають на 70%. Безготівковий розрахунок — стандартний спосіб B2B-платежів. У Бітрікс він реалізований вбудованою платіжною системою Cash/BankTransfer, згідно з офіційною документацією.
Стандартна схема B2B-оплати
- Покупець-юрособа оформлює замовлення та обирає «Оплата за рахунком».
- Система генерує рахунок на оплату з реквізитами продавця.
- Бухгалтер покупця робить платіжне доручення в банку.
- Гроші надходять на розрахунковий рахунок продавця.
- Менеджер або банківська інтеграція фіксує оплату в Бітрікс.
Як налаштувати платіжну систему «Безготівковий розрахунок» у Бітрікс?
У Бітрікс є штатний обробник Cash / BankTransfer. Налаштовується в Магазин → Налаштування → Платіжні системи. Вкажіть реквізити компанії: назву, ІПН, КПП, розрахунковий рахунок, БІК, банк. Додайте інструкцію для покупця — текст, який побачить клієнт після вибору способу оплати.
// Параметри безготівкової оплати (вводяться в адміністративній частині) // Логотип, назва, текст-інструкція для покупця // У шаблоні платіжної системи — показуємо реквізити <div class="bank-details"> <p>Банк: ПАТ «Сбербанк»</p> <p>БІК: 044525225</p> <p>Р/р: 40702810ХХХХХХХХХХ</p> <p>К/р: 30101810400000000225</p> <p>ІПН: ХXXXXXXXXX</p> <p>КПП: XXXXXXXXX</p> <p>Призначення платежу: Оплата за рахунком №<?= $order->getAccountNumber() ?></p> </div> Приклад налаштування користувацьких властивостей замовлення
Форма збору реквізитів покупця
При замовленні юрособа повинна вказати свої реквізити для виставлення рахунку та закриваючих документів. Додаємо користувацькі властивості замовлення через API:
// Додавання властивостей замовлення через API Бітрікс // local/php_interface/init.php або встановлювальний скрипт use Bitrix\Sale\Internals\OrderPropsTable; $props = [ ['NAME' => 'Назва компанії', 'CODE' => 'COMPANY_NAME', 'TYPE' => 'STRING'], ['NAME' => 'ІПН', 'CODE' => 'INN', 'TYPE' => 'STRING'], ['NAME' => 'КПП', 'CODE' => 'KPP', 'TYPE' => 'STRING'], ['NAME' => 'Юридична адреса', 'CODE' => 'LEGAL_ADDRESS','TYPE' => 'STRING'], ['NAME' => 'Розрахунковий рахунок', 'CODE' => 'BANK_ACCOUNT', 'TYPE' => 'STRING'], ['NAME' => 'Назва банку','CODE' => 'BANK_NAME', 'TYPE' => 'STRING'], ['NAME' => 'БІК', 'CODE' => 'BANK_BIK', 'TYPE' => 'STRING'], ]; У шаблоні чекауту — показуємо ці поля при виборі «Оплата за рахунком». Можна зробити залежність через JavaScript: показувати блок лише для вибраного способу.
Чому автоматичне підтвердження оплати критичне?
Ручна відмітка про оплату — джерело затримок. Бухгалтер може забути, менеджер — помилитися. Автоматизація вирішує проблему: платіж надійшов — замовлення одразу переходить в оплачений статус. Варіанти:
- 1С-інтеграція — якщо використовується 1С:Бухгалтерія, вхідні платежі автоматично синхронізуються із замовленнями через модуль обміну. Це надійно, але потребує налаштування регламентних завдань.
- Банк-клієнт API — ряд банків (Сбербанк, Точка, Модульбанк) надають API для читання виписок. При появі платежу з потрібним призначенням — автоматично оновлюємо статус замовлення:
// Приклад: парсинг виписки Сбербанку (SimpleBankStatementParser) $statement = parseBankStatement($statementXml); foreach ($statement->getTransactions() as $transaction) { if ($transaction->getType() !== 'credit') continue; // Шукаємо номер замовлення в призначенні платежу preg_match('/№(\w+-\d+)/', $transaction->getPurpose(), $matches); if (!isset($matches[1])) continue; $orderNumber = $matches[1]; $order = getOrderByAccountNumber($orderNumber); if ($order && abs($order->getPrice() - $transaction->getAmount()) < 0.01) { setOrderPaid($order->getId(), $transaction->getDate()); } } Цей підхід потребує доопрацювання парсера під формат конкретного банку, але окупається виключенням людського фактора. Економія на ручній обробці одного платежу суттєва.
Як генерувати PDF-рахунок для юросіб?
Після оформлення замовлення юрособі потрібен офіційний рахунок у PDF. Бітрікс не вміє генерувати PDF «з коробки» — підключаємо сторонні бібліотеки. Використовуємо FPDF або mPDF:
// Генерація рахунку через FPDF або mPDF function generateInvoicePdf(Bitrix\Sale\Order $order): string { $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial', 'B', 14); $pdf->Cell(0, 10, 'РАХУНОК НА ОПЛАТУ №' . $order->getAccountNumber(), 0, 1, 'C'); // Реквізити продавця // Таблиця товарів // Разом і підписи $path = '/tmp/invoice_' . $order->getId() . '.pdf'; $pdf->Output('F', $path); return $path; } Рахунок формується в момент оформлення замовлення та надсилається покупцю на email. Додатково зберігаємо у файлову систему для повторного завантаження з особистого кабінету.
Порівняння ручної та автоматичної обробки платежів
| Критерій | Ручна відмітка | Автоматична (API/1С) |
|---|---|---|
| Затримка | від 1 години до 2 днів | 5–30 хвилин |
| Помилки | можливі | виключені |
| Навантаження на менеджерів | високе | нульове |
| Вартість впровадження | 0 (якщо є менеджер) | 1-3 дні налаштування |
Автоматизація обробляє платежі в 10 разів швидше за ручну відмітку.
Процес налаштування під ключ
- Аналітика — розбираємо схему роботи, визначаємо точки інтеграції.
- Проєктування — архітектура платіжного модуля, вибір інструментів (HL-блоки для реквізитів, агенти для обробки).
- Реалізація — налаштування платіжної системи, збір реквізитів, генерація PDF, інтеграція з API банку або 1С.
- Тестування — перевірка всіх сценаріїв: успішна оплата, помилки, повернення, часткова оплата.
- Деплой — викатка на продакшен, навчання менеджерів.
Терміни
| Задача | Термін |
|---|---|
| Налаштування платіжної системи та шаблону | 0.5–1 день |
| Форма реквізитів покупця | 0.5–1 день |
| Генерація PDF-рахунку | 1–2 дні |
| Автоматичне підтвердження через банк API | 2–4 дні |
| Інтеграція з 1С (якщо потрібно) | 2–5 днів |
Загальний термін — від 4 до 10 днів, залежно від складності та необхідності інтеграції.
Як ми гарантуємо результат
Ми закріплюємо всі домовленості в технічному завданні. Після здачі проєкту ви отримуєте повний доступ до коду, інструкцію з експлуатації та підтримку протягом місяця. Замовте налаштування під ключ — скоротите час обробки платежів. Отримайте консультацію щодо вашого проєкту — ми запропонуємо оптимальне рішення.







