Налаштування холдування коштів на 1С-Бітрікс
Покупець оплатив замовлення — гроші списані, але товару немає на складі. Повернення займає від 3 до 10 робочих днів, і кожен такий випадок підриває довіру. Холдування (двостадійна оплата) вирішує цю проблему: банк резервує суму на карті покупця, а фактичне списання відбувається лише після підтвердження наявності товару. Це стандарт для інтернет-магазинів з високими оборотами та великим асортиментом. Наш досвід — понад 10 років у розробці на Бітрікс і 50+ проєктів з холдуванням.
Які проблеми вирішує холдування?
Найчастіша помилка — продаж товару, якого немає в наявності. Якщо гроші вже пішли на рахунок магазину, повернення триває від 3 до 10 робочих днів. Холд дозволяє скасувати резерв миттєво та без комісій — банк просто знімає блокування. Додатково двостадійна оплата у 2 рази скорочує кількість повернень порівняно з одностадійною схемою (за статистикою наших проєктів).
Друга проблема — невірна прив'язка статусів оплати. У Бітрікс статус Y (оплачено) має присвоюватися лише після підтвердження холда. Якщо зробити це одразу, то при скасуванні виникає плутанина в обліку. Ми налаштовуємо статусну модель так, щоб PAID змінювався лише після capture, а до цього фігурував кастомний статус «холдовано».
Як двостадійна оплата працює на практиці?
Стадія 1 — холд (авторизація): магазин надсилає запит у платіжну систему на резервування суми. Гроші не списані, але заблоковані на карті. Банк-еквайєр видає pre_auth_code або аналогічний ідентифікатор авторизації.
Стадія 2 — підтвердження (capture): магазин підтверджує списання, коли товар готовий до відвантаження. Гроші переходять на рахунок магазину. Або скасування (void/cancel): якщо товару немає, резерв знімається без комісій.
Бітрікс реалізує це через модуль sale, клас \Bitrix\Sale\PaySystem\Manager та конкретні обробники платіжних систем. Детальніше про механізм можна прочитати в Wikipedia.
Порівняння платіжних систем із підтримкою холда в Бітрікс
| Платіжна система | Двостадійна оплата з коробки | Термін холда | Додаткові можливості |
|---|---|---|---|
| Сбербанк (SberPayment) | Так | до 30 днів | Apple Pay, Google Pay |
| Тінькофф (TinkoffPayment) | Так | до 30 днів | Повернення частини холда |
| ЮKassa (YandexMoney) | Так | до 7 днів | Автоматичний capture |
| Альфа-Банк (AlfaPayment) | Так | до 30 днів | Ручне налаштування лімітів |
Якщо ваш еквайєр не в списку, знадобиться доопрацювання. Ми інтегрували холдування з 15+ платіжними шлюзами — від СДЕК до іноземних агрегаторів.
Як налаштувати холдування в Бітрікс?
- Виберіть платіжну систему в «Магазин» → «Оплата». Переконайтеся, що вона підтримує холдування.
- Увімкніть двостадійний режим: у налаштуваннях системи знайдіть параметр «Двостадійна оплата» або «Режим холдування» та встановіть «Так».
- Налаштуйте статуси замовлень: створіть статус «Очікування підтвердження» (або використовуйте існуючий
C), при якому холд активний. Статус «Підтверджено» буде тригером для capture. - Перевірте конфігурацію в БД. Параметри зберігаються в таблицях
b_sale_pay_systemтаb_sale_pay_system_params. Наприклад, щоб знайти ID платіжної системи за назвою:
SELECT ID, NAME, HANDLER_TYPE FROM b_sale_pay_system WHERE ACTIVE = 'Y'; Приклад: автоматичне підтвердження холда при зміні статусу
Подія OnSaleStatusOrderChange дозволяє автоматично виконувати capture при переході в статус підтвердження:
// /bitrix/php_interface/init.php use Bitrix\Main\EventManager; EventManager::getInstance()->addEventHandler( 'sale', 'OnSaleStatusOrderChange', function(\Bitrix\Main\Event $event) { $order = $event->getParameter('ENTITY'); $value = $event->getParameter('VALUE'); // Статус "підтверджено" (наприклад 'C') — підтвердити холд if ($value === 'C') { $paymentCollection = $order->getPaymentCollection(); foreach ($paymentCollection as $payment) { if (!$payment->isPaid()) { \Bitrix\Sale\PaySystem\Manager::confirm($payment); } } } // Статус "скасовано" (наприклад 'F') — зняти холд if ($value === 'F') { $paymentCollection = $order->getPaymentCollection(); foreach ($paymentCollection as $payment) { \Bitrix\Sale\PaySystem\Manager::cancel($payment); } } } ); Агент для контролю прострочених холдів:
// Агент: ProccessExpiredHolds() function ProccessExpiredHolds() { $cutoffDate = new \Bitrix\Main\Type\DateTime(); $cutoffDate->add('-5D'); $res = \Bitrix\Sale\Internals\PaymentTable::getList([ 'filter' => [ 'PAID' => 'N', '<DATE_BILL' => $cutoffDate, '!SUM' => 0 ], 'select' => ['ID', 'ORDER_ID'] ]); while ($row = $res->fetch()) { \CEvent::Send('HOLD_EXPIRING', 's1', [ 'ORDER_ID' => $row['ORDER_ID'] ]); } return 'ProccessExpiredHolds();'; } Ми використовуємо це рішення у всіх проєктах. Воно знижує навантаження на менеджерів та виключає втрату грошей. Середній час холда становить 5 днів, при цьому 80% холдів підтверджуються протягом 48 годин. Економія на комісіях за рахунок скасування незабезпечених замовлень досягає 2%.
Що входить у налаштування холдування під ключ
- Аудит поточних платіжних систем і статусної моделі.
- Конфігурація модуля
saleдля двостадійної оплати. - Розробка обробників для нестандартних еквайєрів.
- Інтеграція з бізнес-процесами (Bizproc) та роботами Бітрікс24.
- Написання та налаштування агента для прострочених холдів.
- Тестування на бойовому контурі та написання документації.
Терміни та як замовити
Терміни налаштування — від 1 до 5 робочих днів залежно від складності інтеграції. Вартість розраховується індивідуально після аудиту. Ми гарантуємо: всі холди коректно обробляються, статуси синхронізовані, агенти працюють. Оцінимо ваш проєкт протягом 24 годин. Зв'яжіться з нами — покажемо кейси на діючих магазинах.
Чому варто довірити налаштування нам?
10+ років досвіду комерційної розробки на 1С-Бітрікс. Сертифіковані спеціалісти (Bitrix Certified). Понад 50 успішних впроваджень холдування в магазинах зі значним оборотом. Гарантія на роботу: тривалий супровід змін у модулі sale. Налаштування холдування — це не просто чекбокс в адмінці. Це гарантія того, що гроші покупців не пропадуть, а повернення будуть миттєвими. Замовте аудит вашого магазину — ми перевіримо, чи коректно налаштовані холди. Зв'яжіться з нами для консультації щодо впровадження двостадійної оплати.







