T
TOMO
Developer Docs
BETA These docs are under partner review. Some features described are roadmap items, not yet shipped. Verify against your sandbox before relying on any contract.

marketplace.sell_used_furniture

Sell pre-owned furniture through TOMO partners (Furlenco / Rentomojo / OLX / Quikr / Pepperfry second-life). Photo-based instant estimate → at-home inspection → pickup + payout. TOMO is the listing/quote surface; partner handles money, pickup truck, and resale.


1. Identity

  • Intent ID: marketplace.sell_used_furniture
  • Vertical: marketplace
  • Verb: sell
  • Noun: used_furniture
  • Primary agent: MarketplaceAgent
  • Sub-agents (DATA only): LogisticsAgent (pickup truck + dismantle crew), SafetyAgent (visit-safety flags)
  • Single-intent → completed action: photo estimate → at-home inspection → pickup → payout
  • Handoff layer: L2

2. NL Coverage

  • "sell my sofa"
  • "olx sofa pickup nakkalgutta"
  • "sell my dining table"
  • "furlenco buyback for my bed"
  • "sell my wardrobe at home pickup"
  • "instant quote for my sofa"
  • "sell old furniture"
  • "pepperfry buyback"
  • "sell my office chair"
  • "what is my king bed worth"

Must NOT match: "buy used furniture", "donate furniture" (→ separate donation intent if exists), "scrap furniture".


3. Input (slots)

Slot Type Required Source
category enum HARD NL
material enum SOFT NL
purchase_year int SOFT NL
condition_self_declared enum [like_new, superb, good, fair] HARD quiz
dimensions_cm obj {l,w,h} HARD quiz
weight_kg_approx int SOFT partner-side estimate
photos url[] HARD seller upload (3-6 photos)
pickup_address geo HARD saved or NL
floor int HARD quiz (lift check)
lift_available bool HARD quiz
pickup_slot datetime HARD partner calendar
payout_method enum [upi, bank_transfer, store_credit] HARD NL

4. Provider Tools

  • get_photo_estimate(category, material, purchase_year, condition_self_declared, dimensions, photos){estimate_inr, estimate_ttl_min, estimate_id}
  • schedule_inspection(estimate_id, pickup_address, slot, floor, lift_available){visit_id, inspector_name, eta_min, lift_surcharge_inr}
  • submit_inspection_report(visit_id){final_offer_inr, delta_inr, downgrade_reasons[]}
  • accept_offer(visit_id){transaction_id, escrow_state}
  • arrange_pickup(transaction_id, truck_slot){pickup_id, crew_size}
  • release_payout(transaction_id){utr, settled_at_iso}
  • cancel_visit(visit_id, reason){cancellation_fee_inr}

5. Response Shape

  • Region 1 — INTELLIGENCE: estimate_ttl_min, lift_surcharge_inr, payout_eta_min, dismantle_required, safety_flags
  • Region 2 — summary: "₹{estimate_inr} photo estimate, valid {ttl} min. Final after at-home inspection."
  • Region 3 — visual: seller's uploaded photos
  • Region 4 — NOW pin: nearest inspector slot + crew size for pickup
  • Region 5 — CHOICES: OK (highest estimate), GOOD (balanced), GREAT (best match-rate, fastest payout, dismantle included)

6. Controlled Vocabularies

  • category: sofa | bed | mattress | dining | wardrobe | study | office | storage | decor | kids
  • material: wood | engineered_wood | metal | fabric | leather | rattan | plastic
  • condition_self_declared: like_new | superb | good | fair
  • partner: furlenco | rentomojo | olx | quikr | pepperfry_second_life
  • payout_method: upi | bank_transfer | store_credit
  • downgrade_reason: pest_infestation | mould | structural_break | fabric_torn_severe | dimensions_mismatch | photos_misleading | hazardous_finish | weight_mismatch
  • crew_size: 1 | 2 | 3+

7. TTBS Dimensions

Dim Weight Signal
Time 0.20 estimate TTL, inspection ETA, pickup ETA, payout SLA
Taste 0.10 partner preference
Budget 0.40 estimate, downgrade history, no hidden lift/dismantle deductions
Safety 0.30 inspector ID badge, escrow protection, female-friendly toggle

8. Completion Contract

Complete when:

  1. Seller accepts final offer
  2. escrow_state=escrow_held
  3. Pickup truck + crew dispatched
  4. Payout utr settled
  5. CPC: event=sale_completed, amount_inr = referral fee

9. Widget

  • CHOICES card (3 partners)
  • HONESTY strip: "Final offer may differ — typical downgrade for {category} = ₹{X}; lift surcharge if no working lift"
  • SLOT picker + female-inspector toggle
  • POST-INSPECTION reveal: final + delta + reasons + Accept/Reject
  • PICKUP card: truck slot + crew size + dismantle flag
  • PAYOUT pill

NEVER show AI photos, fake ratings, "guaranteed best price".


10. Caching Policy

Key TTL Invalidate on
photo_estimate:{category}:{material}:{condition}:{dims_band} estimate_ttl_min (max 720) partner price refresh
inspector:availability:{partner}:{pincode} 15 min bookings
partner:reputation 7 days complaint spike

No caching of final offer.


11. Error Codes

Code Meaning UX
MKT_ESTIMATE_EXPIRED TTL elapsed regenerate
MKT_PHOTOS_INSUFFICIENT partner needs more photo upload prompt
MKT_INSPECTOR_NO_SHOW SLA breach reschedule + credit
MKT_DOWNGRADE_EXCESSIVE final < 70% estimate honesty + cooling-off
MKT_LIFT_FIT_FAIL won't fit through stairs larger crew or dismantle prompt
MKT_PAYOUT_BANK_FAIL rail fail freeze + support

12. Sandbox → Production Checklist

  • 50 sample sellers across 4 partners
  • Photo estimate ML calibrated
  • Inspector dispatch 3 cities
  • Truck + crew dispatch validated
  • Payout 10 × ₹1
  • CPC HMAC 50 events
  • Downgrade ENUM audit
  • Female-inspector toggle
  • Anti-fab audit

13. Anti-Fabrication Rules

  • NEVER paid placement
  • NEVER AI-enhance seller photos (raw upload only)
  • NEVER synthesise market-comparison ₹
  • NEVER fake ratings
  • NEVER claim TOMO performs pickup (partner does)
  • NEVER hide downgrade reasons or lift surcharge
  • NEVER cache final offer

14. Regulatory Framing

  • Consumer Protection Act 2019 — grade + downgrade disclosure mandatory
  • MoEFCC — partner responsible for non-resaleable items routed to authorised disposal
  • GST — partner margin scheme on resale; individual seller pays no GST
  • DPDPA 2023 — seller PII to partner only
  • Income Tax — payout above ₹50k must be banked/UPI; below = cash allowed
  • Cybercrime advisory — TOMO never asks for OTPs or bank password