marketplace.sell_used_car
Sell a used car through a TOMO partner (Cars24 / Spinny / OLX Autos / CarTrade). Instant quote → at-home inspection → escrow payment → RC transfer initiation. TOMO is the listing/quote conversational surface; the partner holds the money and the legal transfer.
1. Identity
- Intent ID:
marketplace.sell_used_car - Vertical: marketplace
- Verb: sell
- Noun: used_car
- Primary agent:
MarketplaceAgent - Sub-agents enriching (DATA only):
FinanceAgent(loan-closure if active),LogisticsAgent(pickup truck if not driveable),SafetyAgent(inspection-visit-safety flags) - Single-intent → completed action: instant quote → confirmed pickup slot → escrow payment + RC transfer initiation
- Handoff layer: L2 (embedded in TOMO; partner micro-frontend renders ownership-transfer paperwork)
2. NL Coverage (must-classify utterances)
- "sell my car"
- "what's my swift dzire 2019 worth"
- "sell my hyundai i20 nakkalgutta"
- "instant quote for my ertiga"
- "cars24 quote for my swift"
- "spinny inspection visit"
- "i want to sell my car to olx"
- "honda city 2018 sell price"
- "sell car at home pickup"
- "evaluate my car for sale"
Must NOT match: "buy used car" (→ marketplace.buy_used_car), "service my car" (→ auto_service.book_service), "car valuation only" (→ marketplace.evaluate_used_vehicle).
3. Input (slots)
| Slot | Type | Required | Source |
|---|---|---|---|
make |
enum | HARD | NL or RC lookup |
model |
string | HARD | NL or RC lookup |
variant |
string | SOFT | partner catalog match |
year |
int | HARD | NL or RC |
fuel |
enum [petrol, diesel, cng, electric, hybrid] | HARD | RC |
transmission |
enum [manual, automatic] | HARD | catalog match |
kms_driven |
int | HARD | seller declared (verified at inspection) |
owners |
int | HARD | RC (1st/2nd/3rd+) |
rc_number |
string | HARD | seller declared, Parivahan-verified |
pickup_address |
geo | HARD | saved location or NL |
inspection_slot |
datetime | HARD | partner calendar |
existing_loan |
bool | SOFT | seller declared (triggers FinanceAgent NOC sub-flow) |
expected_price_inr |
int | SOFT | seller declared (for honesty-gap chip only) |
4. Provider Tools (partner MCP capabilities)
get_instant_quote(make, model, variant, year, fuel, transmission, kms_driven, owners)→{quote_inr, quote_ttl_min, quote_id}schedule_inspection(quote_id, pickup_address, slot)→{visit_id, inspector_name, eta_min}submit_inspection_report(visit_id)→{final_offer_inr, delta_inr, downgrade_reasons[]}accept_offer(visit_id)→{transaction_id, escrow_state}initiate_rc_transfer(transaction_id)→{form_29_pdf_url, form_30_pdf_url, parivahan_ack_id}release_escrow(transaction_id)→{utr, settled_at_iso}cancel_visit(visit_id, reason)→{cancellation_fee_inr}
Idempotency: quote_id is the dedupe key for downstream schedule_inspection.
5. Response Shape (Conv Intel 5-region grammar)
- Region 1 — INTELLIGENCE strip:
quote_ttl_min,parivahan_verified=true,loan_outstanding_inr(if any),local_demand_index(model+city),safety_flags[](at-home inspection trust signals) - Region 2 — one-line summary: "₹{instant_quote_inr} instant quote, valid {ttl} min. Final price after at-home inspection."
- Region 3 — visual anchor: stock photo of make+model+colour (NOT seller's car — clearly labelled "reference image")
- Region 4 — NOW pin: nearest available inspection slot + partner name + inspector verification badge
- Region 5 — TOMO CHOICES (OK/GOOD/GREAT):
- OK: highest instant quote (fastest cash)
- GOOD: best balance (quote + reputation + escrow reliability)
- GREAT: highest historical final-offer match-rate (least downgrade risk)
Anti-fabrication: no AI-rendered photos of seller's specific vehicle, no synthetic "₹X higher than market" claims without partner-quoted comparison.
6. Controlled Vocabularies (STRICT ENUM)
fuel: petrol | diesel | cng | electric | hybridtransmission: manual | automaticowners: 1 | 2 | 3 | 4+escrow_state: pending_inspection | inspected | offer_accepted | rc_initiated | escrow_held | settled | cancelleddowngrade_reason: accident_history | flood_damage | odometer_mismatch | major_panel_repaint | engine_blow_by | transmission_slip | tyres_below_2mm | interior_damage_severe | rust_chassis | aftermarket_unauthorizedpartner: cars24 | spinny | olx_autos | cartrade | carwalepickup_type: self_drive | partner_truck (auto if not driveable)
No free-text on downgrade_reason — partner must map to enum so TOMO can show plain-English honesty chip.
7. TTBS Dimensions (weights)
| Dim | Weight | Signal |
|---|---|---|
| Time | 0.20 | instant quote TTL, inspection slot ETA, escrow settlement SLA |
| Taste | 0.10 | seller preference for partner brand (if any history) |
| Budget | 0.40 | highest quote, lowest downgrade history, no hidden deductions |
| Safety | 0.30 | partner Parivahan-verified, RC transfer assist included, escrow protection, inspector ID-badge, female-friendly inspector option |
Locked: budget+safety = 0.70 — sell-side is dominated by price honesty and transaction security.
8. Completion Contract
Mission completes when ALL of:
- Seller accepts final offer (post-inspection)
- Partner emits
escrow_state=escrow_heldANDparivahan_ack_idis present - Pickup truck (if applicable) confirmed scheduled OR seller marks self-drive-handover done
- CPC webhook received:
event=sale_completed,amount_inr= partner's net referral fee (NOT sale price),pass_through_inr= 0 (TOMO never holds sale proceeds)
Failure modes (do NOT mark complete):
- Inspection no-show by inspector
- Final offer rejected by seller (mission ends
cancelled, no commission) - Parivahan transfer rejected (state-side issue)
9. Widget (in-chat surface)
- CHOICES card: 3 partner tiers (OK/GOOD/GREAT) with instant-quote ₹ + escrow-reliability chip + slot ETA
- HONESTY strip (Region 1): "Final offer may differ from instant quote — average downgrade in {city} = ₹{X}. Inspection report is signed."
- SLOT picker: partner inspector calendar, female-inspector toggle, address confirm
- POST-INSPECTION reveal card: final offer + delta vs instant quote + each
downgrade_reasonin plain English + Accept/Reject buttons - ESCROW status pill: pending → held → settled (UTR on settled)
- RC TRANSFER card: Form 29/30 PDF links + Parivahan ack ID + ETA-to-name-change-on-RC
NEVER show: "guaranteed best price" (illegal price-fixing claim), AI-rendered seller car photo, synthetic 5★ inspector rating.
10. Caching Policy
| Key | TTL | Invalidate on |
|---|---|---|
instant_quote:{make}:{model}:{variant}:{year}:{fuel}:{kms_band} |
quote_ttl_min (partner-set, max 1440) | partner price-list refresh, RBI repo change >25bps |
parivahan:rc:{rc_number} |
30 days | RC blacklist event, transfer-in-progress |
partner:reputation:{partner}:{city} |
7 days | manual override on complaint spike |
inspector:availability:{partner}:{pincode} |
15 min | bookings |
No caching of: final offer (always fresh per inspection), escrow state (always live).
11. Error Codes
| Code | Meaning | UX |
|---|---|---|
MKT_QUOTE_EXPIRED |
quote TTL elapsed | regenerate quote button |
MKT_RC_BLACKLIST |
Parivahan blacklist on RC | hard block, surface reason if disclosable |
MKT_LOAN_NOC_REQUIRED |
active hypothecation | FinanceAgent NOC sub-flow |
MKT_INSPECTOR_NO_SHOW |
partner SLA breach | auto-reschedule + ₹500 partner credit |
MKT_DOWNGRADE_EXCESSIVE |
final offer < 80% instant quote | mandatory honesty chip + cooling-off prompt |
MKT_PARIVAHAN_DOWN |
RTO endpoint unreachable | retry queue, surface ETA |
MKT_ESCROW_BANK_FAIL |
partner escrow bank rail down | freeze, surface partner support |
MKT_CANCEL_WINDOW_EXPIRED |
seller cancelled post-acceptance | partner-defined penalty |
12. Sandbox → Production Checklist
- Partner sandbox quote endpoint matches production (100 sample RCs)
- Parivahan verification against test+live RC corpus
- Inspector visit dispatch in 3 pilot cities (HYD, BLR, DEL)
- Escrow rail tested with 10 ₹1 transactions
- Form 29/30 PDF generation byte-equal to RTO format
- CPC webhook HMAC verified on 50 events
- Downgrade-reason ENUM mapping audited for all 4 partners
- Cancellation fee schedule pulled from partner T&C
- Female-inspector toggle wired in all pilot cities
- Anti-fabrication audit: no AI photos, no "guaranteed" copy
13. Anti-Fabrication Rules
- NEVER show partner-paid placement — ranking is always live-fit OK/GOOD/GREAT
- NEVER render AI image of seller's specific car
- NEVER synthesise "₹X above market" — must be partner-quoted vs partner-quoted
- NEVER show fake inspector star ratings — show only partner-reported visit-completion rate
- NEVER claim TOMO holds money — escrow is partner's bank rail
- NEVER hide downgrade reasons — plain-English chip is mandatory
- NEVER cache final offer — always live per inspection
14. Regulatory Framing
- Motor Vehicles Act 1988 §50 — ownership transfer via Form 29 (intimation) + Form 30 (application), filed at RTO of registration
- Central Motor Vehicles Rules 1989 Rule 55 — within 14 days of sale
- GST — used-car sale by individual = NOT taxable; partner's margin scheme attracts 12-18% on margin only
- DPDPA 2023 — seller's PII (Aadhaar/PAN/phone) collected by partner, NOT TOMO; consent surfaced at partner micro-frontend
- RBI Master Direction on Hypothecation — if loan active, partner must obtain NOC from financier before RC transfer
- State RTO fee — borne by buyer per convention; surface in partner T&C
- Cybercrime advisory — TOMO never asks for Aadhaar, OTP, or bank password; partner does, inside partner surface