Integrating 1C-Bitrix with Split Services (Yandex Split, Dolyami)

Integration of 1C-Bitrix with Split Services (Yandex Split, Dolyami) A buyer often abandons a large purchase if the price hits the budget. Split payment is a mechanism that divides the amount into 2–4 installments without interest and without a credit agreement. We, a team with 10 years of Bitrix

Our competencies:

Frequently Asked Questions

העבודות האחרונות

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1441
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Website development for FIXPER company
    1013
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    752
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    873
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    794
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    1154

Integration of 1C-Bitrix with Split Services (Yandex Split, Dolyami)

A buyer often abandons a large purchase if the price hits the budget. Split payment is a mechanism that divides the amount into 2–4 installments without interest and without a credit agreement. We, a team with 10 years of Bitrix experience, have already integrated Yandex Split and Dolyami for dozens of online stores. Let's tell you how to do this technically competently, what pitfalls you'll face, and how to avoid them.

How split payment works in Bitrix

Split services do not give the buyer a loan—they pay the store the full amount immediately (or within 1–2 days), and then collect payments from the buyer themselves. For 1C-Bitrix, this is a regular payment system: create a handler, receive a webhook with confirmation, mark the order as paid. The difference is in the API and status model: fewer intermediate statuses than in credit systems.

Comparison of Yandex Split and Dolyami

Both services solve the same problem but differ in limits and audience. Yandex Split allows splitting amounts from $10–1.5k into 2–4 payments. Dolyami — from $5–300 into 4 payments. Yandex Split is better for expensive goods (electronics, furniture), while Dolyami is for average ticket items (clothing, cosmetics). We recommend connecting both: on the checkout page we display two buttons, and the buyer chooses their service.

Technical implementation of Yandex Split

Yandex Split is embedded via the Yandex Pay SDK. On the checkout page, include a JavaScript button with the parameter paymentType: 'SPLIT'. After confirmation, Yandex sends a webhook to your callbackUrl. The handler in 1C-Bitrix must:

  1. Verify the JWT token from the header.
  2. Create an order (\Bitrix\Sale\Order::create).
  3. Confirm via API (POST /api/merchant/v1/orders/{orderId}/capture).

Example handler in /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'); } 

The template template/template.php renders the Yandex Pay button with the SPLIT parameter.

Technical implementation of Dolyami

The "Dolyami" service from T-Bank uses a REST API. Endpoint: https://partner.dolyame.ru/v1/orders. Authorization: HTTP Basic Auth + X509 certificate signature. Creating an order:

$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), ]); 

The API returns a link — redirect to the confirmation page.

Status model and refunds

Status Yandex Split Dolyami Action in Bitrix
Created PENDING new Awaiting
Confirmed CONFIRMED approved $payment->setPaid('Y')
Rejected REJECTED rejected Cancel payment
Canceled CANCELED canceled Cancel payment
Refunded REFUNDED refunded Refund in Bitrix

Both services support partial refunds. For Yandex: POST /api/merchant/v1/orders/{orderId}/refund, for Dolyami: POST /v1/orders/{orderId}/refund. With a partial refund, the service recalculates the buyer's schedule, and only the excess amount is returned to the store.

Our approach: a real case

One of our clients, an electronics retailer with 5,000 orders per month, experienced payment confirmation delays of up to 10 seconds due to synchronous webhook processing. We moved the webhook handling to a Bitrix agent queue, implemented idempotency checks, and optimized the order creation logic. Result: average confirmation time dropped to 1.5 seconds, and lost orders due to timeout decreased by 80%. This is the typical depth we bring to every integration.

What the service includes

  • Analysis of the current payment system and cart.
  • Development of two handlers (Yandex Split and Dolyami) with webhook processing.
  • Integration with 1C (order status exchange).
  • Testing on test and real orders.
  • Operational documentation.
  • Training for managers on refund handling.

The cost is calculated individually, timeline is from 3 to 5 working days.

Security and monitoring of split integrations

Both services send webhook notifications with a signature that must be verified on the server side. For Yandex Split, the signature is in the JWT token of the Authorization header; for Dolyami, via HMAC-SHA256 in the X-Signature header. Without signature verification, an attacker could emulate payment confirmation and get the goods for free.

We recommend setting up webhook queue monitoring: if a confirmation status doesn't arrive within 10 minutes, send a repeat request via the service API. Both providers support manual order status checks via GET /api/merchant/v1/orders/{orderId} (Yandex) and GET /v1/orders/{id} (Dolyami). This protects against lost orders during temporary network failures.

For high-traffic stores (over 200 orders per day), we recommend processing webhooks through a task queue—for example, via Bitrix agents or Redis Queue—so as not to block the HTTP response to the service. The endpoint must respond within 3 seconds, otherwise the service will repeat the notification. Configure handler idempotency: upon receiving the same webhook twice, the order status should not change twice. This is done by checking the current payment status before updating and skipping the notification if the status is already set.

Advantages of our integration

Over 200 successful projects integrating payment systems with 1C-Bitrix, 10+ years on the market, in-house certified specialists. We use official SDKs and follow vendor recommendations (Yandex Pay SDK, Dolyami API).

Contact us — we'll evaluate your project and offer the best solution.