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 | electricowners: 1 | 2 | 3+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 | 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:
- Seller accepts final offer
escrow_state=escrow_heldANDparivahan_ack_idpresent- Pickup confirmed OR self-handover done
- 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