Інтеграція 1С-Бітрікс із спліт-сервісами (Яндекс Спліт, Долями)
Покупець часто відмовляється від великої покупки, якщо ціна б'є по бюджету. Спліт-оплата — механізм, який ділить суму на 2–4 платежі без відсотків і кредитного договору. Ми, команда з понад 10-річним досвідом у Бітрікс, вже інтегрували Яндекс Спліт та Долями для десятків інтернет-магазинів. Розповімо, як це зробити технічно грамотно, з якими підводними каменями зіткнетесь і як їх обійти.
Робота спліт-оплати в Бітрікс
Спліт-сервіси не дають покупцю кредит — вони платять магазину повну суму одразу (або протягом 1–2 днів), а потім самі стягують платежі з покупця. Для 1С-Бітрікс це звичайна платіжна система: створюєте обробник, отримуєте вебхук із підтвердженням, позначаєте замовлення оплаченим. Відмінність — в API та статусній моделі: менше проміжних статусів, ніж у кредитних систем.
Порівняння Яндекс Спліт та Долями
Обидва сервіси вирішують одне завдання, але відрізняються лімітами та аудиторією. Яндекс Спліт дозволяє ділити суму від $10–1.5k на 2–4 платежі. Долями — від $5–300 на 4 платежі. Яндекс Спліт краще підходить для дорогих товарів (електроніка, меблі), а Долями — для середнього чека (одяг, косметика). Рекомендуємо підключати обидва: на сторінці чекауту показуємо дві кнопки, і покупець обирає свій сервіс.
Технічна реалізація Яндекс Спліт
Яндекс Спліт вбудовується через Yandex Pay SDK. На сторінці чекауту підключаємо JavaScript-кнопку з параметром paymentType: 'SPLIT'. Після підтвердження Яндекс надсилає webhook на ваш callbackUrl. Обробник у 1С-Бітрікс повинен:
- Верифікувати JWT-токен із заголовка.
- Створити замовлення (
\Bitrix\Sale\Order::create). - Підтвердити через API (
POST /api/merchant/v1/orders/{orderId}/capture).
Приклад обробника в /local/php_interface/include/sale_payment/yandex_split/:
public function initiatePay( \Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null ) { $this->setExtraParams([ 'MERCHANT_ID' => $this->getBusinessValue($payment, 'MERCHANT_ID'), 'CART_ITEMS' => $this->getCartItems($payment), 'AMOUNT' => $payment->getSum(), ]); return $this->showTemplate($payment, 'template'); } Шаблон template/template.php рендерить кнопку Yandex Pay з параметром SPLIT.
Технічна реалізація Долями
Сервіс «Долями» від Т-Банку використовує REST API. Endpoint: https://partner.dolyame.ru/v1/orders. Авторизація — HTTP Basic Auth + підпис X509-сертифікатом. Створення замовлення:
$response = $this->apiRequest('POST', '/v1/orders', [ 'id' => $payment->getField('ORDER_ID'), 'amount' => $payment->getSum(), 'prepaid_amount' => 0, 'items' => $this->formatItems($payment), 'client_info' => [ 'first_name' => $order->getPropertyValue('NAME'), 'last_name' => $order->getPropertyValue('LAST_NAME'), 'phone' => $order->getPropertyValue('PHONE'), 'email' => $order->getPropertyValue('EMAIL'), ], 'notification_url' => $this->getCallbackUrl($payment), 'success_url' => $this->getSuccessUrl($payment), 'fail_url' => $this->getFailUrl($payment), ]); API повертає link — редирект на сторінку підтвердження.
Статусна модель і повернення
| Статус | Яндекс Спліт | Долями | Дія в Бітрікс |
|---|---|---|---|
| Створено | PENDING | new | Очікування |
| Підтверджено | CONFIRMED | approved | $payment->setPaid('Y') |
| Відхилено | REJECTED | rejected | Скасування платежу |
| Скасовано | CANCELED | canceled | Скасування платежу |
| Повернення | REFUNDED | refunded | Повернення в Бітрікс |
Обидва сервіси підтримують часткові повернення. Для Яндекса: POST /api/merchant/v1/orders/{orderId}/refund, для Долями: POST /v1/orders/{orderId}/refund. При частковому поверненні сервіс перераховує графік покупця, а магазину повертається лише надмірна сума.
Що входить у послугу
- Аналіз поточної платіжної системи та кошика.
- Розробка двох обробників (Яндекс Спліт та Долями) з обробкою вебхуків.
- Інтеграція з 1С (обмін статусами замовлень).
- Тестування на тестових та реальних замовленнях.
- Документація з експлуатації.
- Навчання менеджерів роботі з поверненнями.
Вартість розраховується індивідуально, термін — від 3 до 5 робочих днів.
Безпека та моніторинг спліт-інтеграцій
Обидва сервіси передають webhook-повідомлення з підписом, яку необхідно верифікувати на стороні сервера. Для Яндекс Спліт підпис передається в JWT-токені заголовка Authorization, для Долями — через HMAC-SHA256 в заголовку X-Signature. Без перевірки підпису зловмисник може емулювати підтвердження оплати та отримати товар безкоштовно.
Рекомендуємо налаштувати моніторинг webhook-черги: якщо за 10 хвилин не надійшов статус підтвердження — надіслати повторний запит через API сервісу. Обидва провайдери підтримують ручну перевірку статусу замовлення через GET /api/merchant/v1/orders/{orderId} (Яндекс) та GET /v1/orders/{id} (Долями). Це захищає від втрати замовлень при тимчасових мережевих збоях.
Для навантажених магазинів (від 200 замовлень на день) рекомендуємо обробляти webhook через чергу завдань — наприклад, через агенти Бітрікс або Redis Queue — щоб не блокувати HTTP-відповідь сервісу. Endpoint має відповідати протягом 3 секунд, інакше сервіс повторить повідомлення. Налаштуйте ідемпотентність обробника: при повторному отриманні того самого webhook статус замовлення не має змінюватися двічі. Для цього достатньо перевіряти поточний статус платежу перед оновленням і пропускати повідомлення, якщо статус вже встановлено.
Переваги нашої інтеграції
Понад 200 успішних проєктів з інтеграції платіжних систем із 1С-Бітрікс, 10+ років на ринку, штатні сертифіковані спеціалісти. Використовуємо офіційні SDK та дотримуємося рекомендацій вендорів (Yandex Pay SDK, API Долями).
Зв'яжіться з нами — оцінимо ваш проєкт і запропонуємо оптимальне рішення.







