Настройка безналичной оплаты для юрлиц в 1С-Битрикс
Оплата по безналу — стандарт в B2B. Юридическое лицо не может платить корпоративной картой физлица или переводить деньги через личный мобильный банк. Нужен счёт, реквизиты, акт. В Битрикс это реализуется через специальную платёжную систему типа «Безналичный расчёт» и кастомные формы сбора реквизитов.
Стандартная схема B2B-оплаты
- Покупатель-юрлицо оформляет заказ и выбирает «Оплата по счёту»
- Система генерирует счёт на оплату с реквизитами продавца
- Бухгалтер покупателя делает платёжное поручение в банке
- Деньги приходят на расчётный счёт продавца
- Менеджер или банковская интеграция фиксирует оплату в Битрикс
Настройка платёжной системы «Безналичный расчёт»
В Битрикс есть штатный обработчик Cash / BankTransfer. Настраивается в Магазин → Настройки → Платёжные системы.
// Параметры безналичной оплаты (вводятся в административной части)
// Логотип, название, текст-инструкция для покупателя
// В шаблоне платёжной системы — показываем реквизиты
<div class="bank-details">
<p><strong>Банк:</strong> ПАО «Сбербанк»</p>
<p><strong>БИК:</strong> 044525225</p>
<p><strong>Р/с:</strong> 40702810ХХХХХХХХХХ</p>
<p><strong>К/с:</strong> 30101810400000000225</p>
<p><strong>ИНН:</strong> ХXXXXXXXXX</p>
<p><strong>КПП:</strong> XXXXXXXXX</p>
<p><strong>Назначение платежа:</strong> Оплата по счёту №<?= $order->getAccountNumber() ?></p>
</div>
Форма сбора реквизитов покупателя
При заказе юрлицо должно указать свои реквизиты для выставления счёта и закрывающих документов. Добавляем пользовательские свойства заказа:
// Добавление свойств заказа через 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'],
];
В шаблоне чекаута — показываем эти поля при выборе «Оплата по счёту».
Автоматическое подтверждение оплаты
Ручная отметка об оплате — источник задержек. Автоматизация возможна через:
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-счёта
// Генерация счёта через 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;
}
Сроки
| Задача | Срок |
|---|---|
| Настройка платёжной системы и шаблона | 0.5–1 день |
| Форма реквизитов покупателя | 0.5–1 день |
| Генерация PDF-счёта | 1–2 дня |
| Автоматическое подтверждение через банк API | 2–4 дня |







