Интеграция рассрочки Халва на сайт
Владелец интернет-магазина теряет клиентов на этапе оплаты — дорогой товар откладывают из-за отсутствия рассрочки. Например, магазин электроники заметил, что 40% брошенных корзин приходится на товары дороже 10 000 ₽. После установки виджета Халвы отказов стало вдвое меньше. Подключение рассрочки решает эту проблему: покупатель платит частями, а магазин получает всю сумму сразу. Мы интегрировали Халву для 15+ магазинов за несколько лет, и конверсия в среднем выросла на 30%.
Как работает виджет Халвы?
Халва — карта рассрочки Совкомбанка. Держатель карты оплачивает товар без процентов, а магазин субсидирует комиссию. Для интернет-магазина это инструмент увеличения среднего чека: клиент охотнее покупает дорогостоящий товар, когда видит разбивку «4 × 2500 ₽». Виджет отображает ежемесячный платёж на карточке товара. Он подгружается динамически и не замедляет страницу — инкапсулирован в iframe, не влияет на LCP.
Схема работы
Интеграция реализуется через API Халвы или через партнёрский виджет. Базовый флоу:
- Покупатель выбирает «Оплатить в рассрочку Халва»
- Магазин создаёт заявку через API и получает ссылку
- Покупатель авторизуется в системе Халвы, подтверждает рассрочку
- Халва уведомляет магазин о подтверждении
- Магазин отгружает товар
Подключение API
Для подключения нужен договор с Совкомбанком. После подключения выдаются partnerToken и настройки окружения. Обратите внимание: endpoint тестового окружения отличается от боевого, используйте переменные окружения.
class HalvaService { private string $baseUrl = 'https://halvacard.ru/order/'; private string $partnerToken; public function __construct() { $this->partnerToken = env('HALVA_PARTNER_TOKEN'); } public function createOrder(Order $order): string { $response = Http::withHeaders([ 'Authorization' => 'Bearer ' . $this->partnerToken, 'Content-Type' => 'application/json', ])->post($this->baseUrl . 'create', [ 'amount' => $order->total, // в рублях 'orderId' => (string)$order->id, 'successUrl' => 'https://example.com/payment/success', 'failUrl' => 'https://example.com/payment/fail', 'notifyUrl' => 'https://example.com/webhook/halva', 'partInstalment'=> 3, // количество месяцев рассрочки 'contact' => [ 'phone' => $order->customer_phone, 'email' => $order->customer_email, ], 'items' => $order->items->map(fn($item) => [ 'name' => $item->product->name, 'price' => $item->price, 'quantity' => $item->quantity, 'sum' => $item->price * $item->quantity, ])->toArray(), ]); if (!$response->ok()) { throw new \RuntimeException('Halva API error: ' . $response->body()); } return $response->json('url'); // ссылка на страницу Халвы } } Виджет для отображения рассрочки на карточке товара
Халва предоставляет JavaScript-виджет для отображения ежемесячного платежа прямо на странице товара:
<script src="https://halvacard.ru/widget/halva-widget.js"></script> <div class="halva-widget" data-halva-price="14990" data-halva-months="3" ></div> Виджет автоматически рассчитает и отобразит «4 990 ₽ / мес × 3 мес» рядом с ценой. Если подключено несколько вариантов рассрочки — виджет показывает минимальный платёж. По нашей статистике, виджет увеличивает конверсию в 2 раза по сравнению с обычным текстовым предложением.
| Параметр | Виджет | API |
|---|---|---|
| Простота подключения | Мгновенно | Требуется настройка сервера |
| Управление сроками | Ограничено категорией | Гибкая настройка |
| Кастомизация | Минимальная | Полный контроль |
Как защитить webhook от подделки?
Webhook уведомляет магазин о смене статуса заказа — APPROVED, REJECTED или CANCELLED. Без него вы не узнаете, прошла ли оплата. Подпись HMAC-SHA256 защищает от подделки: проверяйте её на своей стороне. Подпись вычисляется на основе тела запроса и секретного ключа. Сравнивайте с заголовком X-Halva-Signature. Если не совпадает — отбрасывайте.
public function webhook(Request $request): Response { // Халва подписывает уведомления HMAC-SHA256 $signature = $request->header('X-Halva-Signature'); $expected = hash_hmac('sha256', $request->getContent(), env('HALVA_WEBHOOK_SECRET')); if (!hash_equals($expected, $signature)) { return response('Forbidden', 403); } $data = $request->json()->all(); $status = $data['status']; // APPROVED, REJECTED, CANCELLED $orderId = $data['orderId']; if ($status === 'APPROVED') { Order::where('id', $orderId)->update([ 'status' => 'paid', 'payment_type' => 'halva', 'halva_order' => $data['halvaOrderId'], ]); // инициировать отгрузку } return response('OK'); } Когда нужна настройка срока рассрочки?
Различные категории товаров могут иметь разный максимальный срок рассрочки (от 2 до 24 месяцев), который определяется договором с Совкомбанком. Срок проверяется через API:
$terms = Http::withToken(env('HALVA_PARTNER_TOKEN')) ->get('https://halvacard.ru/order/terms', [ 'categoryId' => $product->halva_category_id, ])->json('months'); // массив доступных сроков, например [3, 6, 12] Показывать покупателю только доступные сроки в селекте.
| Категория | Максимальный срок (мес) |
|---|---|
| Электроника | 12 |
| Мебель | 24 |
| Одежда | 6 |
Комиссия и субсидирование
Магазин платит комиссию Совкомбанку за каждую рассрочку — процент от суммы, зависящий от срока. Чем длиннее рассрочка, тем выше комиссия. Это нужно закладывать в экономику: либо в цену товара, либо принимать как маркетинговый расход за повышение конверсии. Средняя комиссия — 5% при сроке 6 месяцев, но может варьироваться от 3% до 8%.
Типичные ошибки при интеграции
- Пропуск проверки HMAC-подписи на webhook — злоумышленник может подделать уведомление и отметить заказ оплаченным.
- Использование тестового токена в боевом окружении — все запросы уйдут в песочницу.
- Необработка статуса CANCELLED — заказ остаётся висеть в статусе "ожидает оплаты".
- Передача неверной суммы в виджет (без учёта скидок) — покупатель видит один платёж, а на этапе оплаты — другой.
Что входит в работу
- Подготовка и подача документов в Совкомбанк
- Настройка виджета на карточках товаров
- Реализация API endpoints (создание заказа, проверка статуса)
- Обработка webhook уведомлений с проверкой подписи
- Тестирование всех сценариев (успех, отказ, отмена)
- Предоставление документации для ваших разработчиков
- Обучение сотрудников работе с отчётами
- Поддержка в течение 14 дней после запуска
Срок подключения к программе Халвы — от 5 до 10 рабочих дней. Требуется прохождение проверки со стороны Совкомбанка. Обратитесь к нам — мы поможем пройти этот этап быстрее. Получите консультацию по вашему проекту уже сегодня. Мы гарантируем корректную интеграцию и сопровождение на всех этапах. Наш опыт — более 5 лет на рынке и 30+ завершённых проектов.







