Development of Marketplace Disputes and Arbitration System
A dispute resolution system is a mechanism that should rarely work, but work flawlessly. Incorrectly resolved disputes destroy trust of either buyer or seller. A well-structured process ensures predictability: all parties know the rules upfront.
When Disputes Arise
Disputes are opened by buyers in cases of:
- Product not received (within N days after expected delivery date)
- Wrong product received (sorting error, different model/size)
- Product received damaged
- Seller doesn't respond to return request
- Description significantly doesn't match product
Limitation: dispute can only be opened within 30 days after delivery (or expected date if not delivered).
Data Model
disputes (
id, order_id, buyer_id, seller_id,
type: not_received | wrong_item | damaged | not_as_described | return_refused,
status: open | waiting_seller | waiting_buyer | escalated | resolved_buyer
| resolved_seller | resolved_partial | closed,
desired_resolution: full_refund | partial_refund | replacement | return_and_refund,
requested_amount (for partial_refund),
created_at, resolved_at, auto_close_at
)
dispute_messages (
id, dispute_id, sender_type: buyer | seller | admin,
sender_id, message, attachments (jsonb), created_at
)
dispute_evidence (
id, dispute_id, uploaded_by, type: photo | video | document,
file_url, description, created_at
)
Resolution Process
Stage 1: Direct Dialogue (3–5 days) Buyer creates dispute, describes problem, attaches evidence. Seller gets notification and 48 hours to respond. If parties agree — dispute closes with selected resolution.
Stage 2: Automatic Resolution
If seller doesn't respond within 48 hours — automatic resolution in buyer's favor (for obvious cases like not_received). Motivates sellers to respond quickly.
Stage 3: Escalation to Arbitrator If parties don't agree — dispute escalates to platform support team. Arbitrator reviews conversation, evidence, order history and makes decision. Arbitrator decision is final.
Arbitrator Interface
Arbitrator workspace — separate admin panel interface:
- Dispute timeline: all events with timestamps
- Order summary: products, amounts, delivery statuses, tracking numbers
- Evidence from both sides (photo gallery, documents)
- History of buyer and seller interactions on platform
- Decision buttons with presets and explanation field
- Message templates for notifying parties
Arbitrator metrics: average resolution time, dispute decision overturn rate, arbitration quality rating.
Financial Operations on Resolution
- Resolution in buyer's favor (full refund): refund full amount + shipping cost. Amount deducted from seller balance.
- Partial refund: agreed amount. Remainder credited to seller.
- Resolution in seller's favor: money transferred from hold to available balance.
- Replacement: seller sends new item. Money held until replacement receipt confirmed.
All financial operations are atomic: balance change and dispute status change execute in one DB transaction.
Abuse Prevention
- Buyer can open no more than 3 disputes per month (protection from professional scammers)
- Dispute history considered in new user scoring
- Seller with high dispute rate (>5% of orders) under special monitoring
- Evidence stored for 180 days after dispute closure
Notifications and Deadlines
Each status transition generates notifications (email + push). Automatic reminders:
- Seller: 24 hours before response deadline
- Buyer: 48 hours before dispute auto-closes from inactivity
- Arbitrator: if dispute escalated and waiting resolution >72 hours
Dispute Analytics
Analysis of dispute data helps improve platform:
- Top dispute reasons by category → product description issues
- Sellers with anomalously high dispute rate → candidates for verification
- Dispute to refund conversion → assess fairness of system
Development timeline: 6–8 weeks for complete system with arbitration interface, financial operations, and analytics.







