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_bike

Sell a used two-wheeler through a TOMO partner (CredR / BikeWale Used / Droom). Instant quote → at-home inspection → escrow → RC transfer. TOMO is the listing/quote conversational surface; the partner holds money and legal transfer.


1. Identity

  • Intent ID: marketplace.sell_used_bike
  • Vertical: marketplace
  • Verb: sell
  • Noun: used_bike
  • Primary agent: MarketplaceAgent
  • Sub-agents (DATA only): FinanceAgent (active-loan NOC), LogisticsAgent (pickup if not driveable), SafetyAgent (visit-safety flags)
  • Single-intent → completed action: instant quote → inspection visit → escrow payment → RC transfer initiation
  • Handoff layer: L2

2. NL Coverage

  • "sell my bike"
  • "what is my activa 2018 worth"
  • "sell my pulsar nakkalgutta"
  • "credR instant quote for my bike"
  • "sell my royal enfield at home pickup"
  • "sell my scooter today cash"
  • "evaluate my bike for sale"
  • "sell jawa 42"
  • "i want to sell my ola electric"
  • "bike home pickup sell"

Must NOT match: "buy used bike", "service my bike", "scrap my bike" (→ separate scrappage intent).


3. Input (slots)

Slot Type Required Source
make enum HARD NL or RC
model string HARD NL or RC
year int HARD NL or RC
fuel enum [petrol, electric] HARD RC
kms_driven int HARD seller declared
owners int HARD RC
rc_number string HARD Parivahan-verified
pickup_address geo HARD saved or NL
inspection_slot datetime HARD partner calendar
existing_loan bool SOFT seller declared
expected_price_inr int SOFT seller declared (honesty chip)

4. Provider Tools

  • get_instant_quote(make, model, year, fuel, 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}

5. Response Shape

  • Region 1 — INTELLIGENCE: quote_ttl_min, parivahan_verified, loan_outstanding_inr, local_demand_index, safety_flags
  • Region 2 — summary: "₹{quote_inr} instant quote, valid {ttl} min. Final after at-home inspection."
  • Region 3 — visual: stock reference photo (NOT seller's bike)
  • Region 4 — NOW pin: nearest inspector slot + partner badge
  • Region 5 — CHOICES: OK (highest quote), GOOD (balanced), GREAT (best match-rate)

6. Controlled Vocabularies

  • fuel: petrol | electric
  • owners: 1 | 2 | 3+
  • escrow_state: pending_inspection | inspected | offer_accepted | rc_initiated | escrow_held | settled | cancelled
  • downgrade_reason: accident_history | flood_damage | odometer_mismatch | major_panel_repaint | engine_blow_by | clutch_slip | tyres_below_2mm | interior_damage_severe | rust_chassis | aftermarket_unauthorized | battery_health_below_70 (EV)
  • partner: credr | bikewale_used | droom | spinny_assured_bikes

7. TTBS Dimensions

Dim Weight Signal
Time 0.20 quote TTL, slot ETA, escrow SLA
Taste 0.10 partner brand preference
Budget 0.40 quote, downgrade history, no hidden cuts
Safety 0.30 Parivahan-verified, RC transfer assist, escrow protection, inspector ID badge, female-friendly toggle

8. Completion Contract

Complete when:

  1. Seller accepts final offer
  2. escrow_state=escrow_held AND parivahan_ack_id present
  3. Pickup confirmed OR self-handover done
  4. CPC: event=sale_completed, amount_inr = referral fee, pass_through_inr = 0

9. Widget

  • CHOICES card (3 partners)
  • HONESTY strip: "Final offer may differ from instant quote — average downgrade in {city} = ₹{X}"
  • SLOT picker + female-inspector toggle
  • POST-INSPECTION reveal card: final + delta + plain-English reasons + Accept/Reject
  • ESCROW status pill
  • RC TRANSFER card

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


10. Caching Policy

Key TTL Invalidate on
instant_quote:bike:{make}:{model}:{year}:{fuel}:{kms_band} quote_ttl_min (max 1440) partner price refresh
parivahan:rc:{rc} 30 days blacklist, transfer-in-progress
partner:reputation 7 days complaint spike
inspector:availability 15 min bookings

No caching of final offer or escrow state.


11. Error Codes

Code Meaning UX
MKT_QUOTE_EXPIRED TTL elapsed regenerate
MKT_RC_BLACKLIST hard block reason chip
MKT_LOAN_NOC_REQUIRED active hypothecation FinanceAgent NOC sub-flow
MKT_INSPECTOR_NO_SHOW SLA breach reschedule + credit
MKT_DOWNGRADE_EXCESSIVE final < 80% quote honesty chip + cooling-off
MKT_PARIVAHAN_DOWN RTO down retry queue
MKT_ESCROW_BANK_FAIL partner bank rail freeze + support

12. Sandbox → Production Checklist

  • 100 sample RCs in sandbox
  • Parivahan verify live+test
  • Inspector dispatch 3 cities
  • Escrow 10 × ₹1
  • Form 29/30 byte-equal RTO
  • CPC HMAC 50 events
  • Downgrade ENUM audit per partner
  • Female-inspector toggle
  • Anti-fab audit

13. Anti-Fabrication Rules

  • NEVER paid placement
  • NEVER AI seller bike photos
  • NEVER synthesise market-comparison ₹
  • NEVER fake inspector ratings
  • NEVER claim TOMO holds money
  • NEVER hide downgrade reasons
  • NEVER cache final offer

14. Regulatory Framing

  • MV Act 1988 §50 — Form 29 + Form 30 within 14 days (CMVR Rule 55)
  • Insurance Act 1938 — policy transfer to buyer within 14 days
  • GST — partner margin scheme; individual seller pays no GST on sale
  • RBI hypothecation — NOC required if loan active
  • DPDPA 2023 — Aadhaar/PAN to partner only
  • State RTO fee — buyer convention
  • Cybercrime advisory — TOMO never asks for OTPs