Setting up a dispute and arbitration system for the 1C-Bitrix marketplace

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Our competencies:
Development stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1175
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Website development for FIXPER company
    811
  • 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
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    747
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    976

Dispute and Arbitration System Setup for 1C-Bitrix Marketplace

A buyer received the wrong item or didn't receive anything — opens a dispute. Seller disagrees with the claim. A third party is needed — the platform. 1C-Bitrix has no ready-made dispute tool; this is custom development on top of the order system.

Dispute Data Model

Dispute is linked to sub-order. Table mp_disputes:

Field Type Description
ID int, AI
SUB_ORDER_ID int FK to sub-order
INITIATOR_ID int Buyer's USER_ID
VENDOR_ID int FK to seller
REASON varchar not_received / wrong_item / damaged / other
DESCRIPTION text Problem description
STATUS varchar open / seller_response / arbitrage / resolved / closed
RESOLUTION varchar refund / partial_refund / reject / exchange
ADMIN_USER_ID int Manager-arbiter
CREATED_AT datetime
RESOLVED_AT datetime

Dispute attachments (photos) — separate table mp_dispute_attachments with FILE_ID (via CFile).

Dispute Process

Stage 1 — Opening dispute. Buyer opens dispute through personal account if order is in delivered status and deadline hasn't passed (e.g., 14 days from receipt). Sub-order status changes to dispute_open, seller's payout is frozen.

Stage 2 — Seller response. Seller receives notification, must respond within N days (e.g., 3): agree to refund, offer partial refund, or argue refusal. Response is recorded in mp_dispute_messages table.

Stage 3 — Arbitration. If sides don't agree or seller doesn't respond in time — dispute escalates to arbitration. Platform manager reviews correspondence, photos, order data. Makes decision (RESOLUTION).

Stage 4 — Decision execution. On refund — initiate refund to buyer via payment system API, entry in mp_finance_log decreases seller balance. On reject — seller's payout is unlocked.

Interfaces

Buyer: dispute opening form, chat with seller, review status.

Seller: notification of new dispute, response form with ability to attach documents, decision result.

Administrator: list of open disputes with SLA timer (time remaining before overdue), detailed conversation view, decision-making form.

Dispute correspondence — separate table mp_dispute_messages with fields DISPUTE_ID, SENDER_TYPE (buyer/seller/admin), TEXT, CREATED_AT. Interface updates — via polling or WebSocket.

Timeline

Basic dispute system (opening, seller response, admin decision) — 2–3 weeks. Automating overdue responses and decision execution — additional 1 week.