/ Docs / Onboarding & KYC v1 Β· 2026
Core Flow Β· Onboarding

Onboarding & KYC

How a low-literacy villager becomes a trusted RideChain partner in under ten minutes β€” three onboarding tracks, Cashfree Easy KYC, graduated trust tiers, vehicle verification, and the Aadhaar-token blacklist that keeps offenders out for good.

1. Overview β€” three onboarding tracks

Onboarding is where RideChain earns the right to put a stranger in custody of someone else's parcel and someone else's money. There are three distinct tracks, each with a different friction budget because each carries a different risk. The hardest, most thorough track is the Delivery Partner β€” and that is deliberate, because partner trust is the number-one fraud lever in the whole system. A weak partner KYC poisons every later control (custody chain, escrow release, COD handling); a strong one makes most downstream fraud uneconomic.

πŸ›΅

Track A β€” Delivery Partner

The heaviest track: identity + liveness + vehicle + bank + community vouch + safety quiz + background check, then graduated activation. This is the trust spine of the platform.

πŸ“¦

Track B β€” Booker

The lightest track: phone + OTP + language and you can book. No KYC to book. KYC-lite only fires for high declared value or COD-receiving.

πŸͺ

Track C β€” RideChain Point (PUDO)

A kirana / CSC / panchayat / chai stall: shop KYC + photo + geo + hours + storage capacity. Gets a scanner-lite app, a signboard and per-parcel commission β€” the local champion.

Design goal: a low-literacy villager completes partner onboarding in under 10 minutes, fully voice-guided and vernacular (Hindi-first), with an assisted mode available at any RideChain Point for anyone who has no smartphone or gets stuck. Every screen is icon- and photo-led; OTPs and instructions are read aloud.
flowchart TB
  START["πŸ“± New user opens app
or walks into a Point"] --> Q{"Which role?"} Q -- "I want to deliver" --> A["πŸ›΅ Track A Β· Delivery Partner
full KYC + vehicle + vouch + quiz + bg-check"] Q -- "I want to send a parcel" --> B["πŸ“¦ Track B Β· Booker
phone + OTP + language only"] Q -- "I run a shop" --> C["πŸͺ Track C Β· RideChain Point
shop KYC + geo + hours + capacity"] A --> AG["Graduated activation
(New β†’ Bronze β†’ … β†’ Platinum)"] B --> BK["Can book immediately;
KYC-lite only if high value / COD"] C --> PT["Scanner-lite app + signboard
+ per-parcel commission"] classDef a fill:#fff3e0,stroke:#f4920b,color:#8a5200; classDef b fill:#e8f0fb,stroke:#1f5fae,color:#143d6e; classDef c fill:#e9f7ef,stroke:#1e8e4e,color:#13602f; class A,AG a; class B,BK b; class C,PT c;
Three tracks, three friction budgets. Partner onboarding is intentionally the heaviest because partner trust gates the custody chain and the money; bookers face almost no friction; Points sit in between.

2. Partner onboarding β€” the full sequence

Partner onboarding is a linear pipeline of trust gates. Each gate is independently re-runnable and idempotent (so a dropped signal mid-flow never loses progress), and a partner can resume exactly where they left off. The order is chosen so the cheapest, highest-signal checks run first, and the slow ones (background check) run last in parallel with a limited "prepaid low-value" head start.

flowchart TB
  P0["πŸ“ž Phone + OTP + language"] --> P1["πŸͺͺ Identity Β· Cashfree Easy KYC
(Aadhaar OKYC β€” store masked token, never raw)"] P1 --> P2["🀳 Liveness + face match
(deepfake-resistant)"] P2 --> P3{"Vehicle type?"} P3 -- "cycle / cart" --> P5["πŸ“· Capacity profile
(max weight/size, vehicle photos,
service radius, availability,
which Points served)"] P3 -- "motorized" --> P4["πŸš— Vehicle registration
RC via VAHAN · DL via Sarathi"] P4 --> P5 P5 --> P6["🏦 Bank / UPI payout setup
penny-drop name match"] P6 --> P7["🀝 Community / panchayat vouch"] P7 --> P8["πŸŽ“ 5-min safety micro-training + quiz"] P8 --> P9["πŸ”Ž Tiered background check"] P9 --> P10["βœ… Graduated activation
(start as New tier)"] classDef g fill:#e9f7ef,stroke:#1e8e4e,color:#13602f; class P10 g;
The partner onboarding pipeline. Cycle/cart partners skip RC/DL (no registration document exists) but still complete identity + liveness + face match β€” identity is never skipped.
  1. Phone + OTP + language β€” the entry. Pick a vernacular (Hindi-first); the whole flow is then voice-guided in that language.
  2. Identity via Cashfree Easy KYC β€” Aadhaar OKYC (OTP to the Aadhaar-linked number). We store only a masked token + verification status, never the raw Aadhaar number.
  3. Liveness + face match β€” a short active-liveness check (blink / turn) matched against the OKYC photo, hardened against printed photos, screen replays and deepfake video.
  4. Vehicle registration β€” choose vehicle type; for motorized vehicles the RC is validated via VAHAN and the DL via Sarathi. Cycle / cart skip DL/RC (no such document) but still complete identity + face match.
  5. Capacity profile β€” max weight & size bucket, vehicle photos, service radius, availability windows, and which RideChain Points they serve. This feeds the matching engine directly.
  6. Bank / UPI payout setup β€” a penny-drop credits β‚Ή1 and reads back the account-holder name, which must match the KYC name before payouts are enabled (platform holds no money; payouts flow via Razorpay Route / Cashfree Easy Split).
  7. Community / panchayat vouch β€” an existing partner, Point operator or panchayat reference vouches; raises starting trust and is itself a fraud signal if abused.
  8. 5-min safety micro-training + quiz β€” short vernacular video + handling rules (fragile, perishable, OTP discipline, COD honesty) with a pass-gate quiz.
  9. Tiered background check β€” depth scales with what the partner will be trusted to carry (low-value prepaid vs high-value / COD / long-haul). May run in the background.
  10. Graduated activation β€” the partner goes live at the New tier with the most conservative limits and climbs from there (see Β§4).
Resumability: every gate writes a verification record keyed to the partner; the partner can close the app at any gate and resume. The 5-min target is the active time for a smooth Aadhaar-OTP path; the background check runs asynchronously so it does not block the head-start.

3. Cashfree Easy KYC integration

All identity and bank verification goes through Cashfree Easy KYC (no DigiLocker in MVP). The app never talks to Cashfree directly β€” it calls the Go auth module, which orchestrates the calls, stores only tokenized results, and is the single place where DPDP obligations are enforced.

sequenceDiagram
  autonumber
  participant APP as "Partner app (Flutter)"
  participant GO as "Go auth module"
  participant CF as "Cashfree Easy KYC"
  participant DB as "Postgres (tokenized)"
  APP->>GO: "Start KYC (consent captured)"
  GO->>CF: "Aadhaar OKYC β€” send OTP to Aadhaar-linked phone"
  CF-->>APP: "OTP delivered"
  APP->>GO: "Submit OKYC OTP"
  GO->>CF: "Verify OKYC OTP"
  CF-->>GO: "OKYC result + masked Aadhaar + photo (no raw number)"
  GO->>CF: "PAN verify (where required)"
  CF-->>GO: "PAN name + status"
  GO->>CF: "Liveness + face match vs OKYC photo"
  CF-->>GO: "Match score + liveness pass/fail"
  GO->>CF: "Bank / UPI penny-drop (β‚Ή1)"
  CF-->>GO: "Account-holder name + verified"
  GO->>GO: "Name match: KYC name == bank name?"
  GO->>DB: "Store masked token + verification status only"
  GO-->>APP: "KYC complete / step failed (reason)"
        
App β†’ Go auth module β†’ Cashfree, with the Go layer enforcing name-match and persisting only tokenized results and pass/fail status. The raw Aadhaar number never leaves Cashfree and is never stored by RideChain.

Not every check applies to every partner. The partner class (what they will be trusted to carry) decides the depth of verification β€” a cycle courier carrying β‚Ή100 prepaid parcels does not need the same checks as a Tata Ace driver handling high-value COD.

CheckCycle / cart (low-value prepaid)Motorized (standard)Heavy / high-value / COD
Aadhaar OKYC (identity)βœ… requiredβœ… requiredβœ… required
Liveness + face matchβœ… requiredβœ… requiredβœ… required
RC via VAHANβ€” (no RC)βœ… requiredβœ… required
DL via Sarathiβ€” (no DL)βœ… requiredβœ… required
PAN verifyOptionalRecommendedβœ… required
Bank / UPI penny-drop + name matchβœ… required (payout)βœ… requiredβœ… required
Background-check depthBasicStandardEnhanced
DPDP compliance. Explicit consent is captured before any KYC call; data is used only for the stated purpose (partner verification β€” purpose limitation); everything is encrypted in transit and at rest; and the raw Aadhaar number is never stored β€” only a masked token and the pass/fail verification status. Verification artefacts have a retention clock and a deletion path.

4. Graduated trust tiers

Onboarding does not end at activation β€” it graduates. A newly verified partner starts at New with the most conservative limits and climbs as they accumulate clean signals. This is the bridge between onboarding and fraud control: even a fully KYC'd partner cannot carry a β‚Ή40,000 high-value parcel on day one. Trust is earned per delivery, not bought at sign-up.

TierMax parcel valueCOD limitDistance capUnlocksCommission
Newβ‚Ή500Prepaid onlyLocal (within service radius)Low-value prepaid parcels only; head start during background checkStandard
Bronzeβ‚Ή2,000β‚Ή1,000Block-levelSmall COD; milk-run legsStandard
Silverβ‚Ή10,000β‚Ή5,000Inter-blockLarger COD; relay hub legsSlightly lower
Goldβ‚Ή40,000β‚Ή20,000District / long-haulHigh-value parcels; long-haul; priority offersLower
PlatinumUncapped (with surety)Top COD bandUnrestrictedAll categories; lowest commission; can vouch for new partnersLowest

The trust score that drives promotion rises with completed deliveries, high ratings, accepted community vouches, and a clean record of no fraud signals (no OTP-skip attempts, no GPS spoofing, no COD shortfalls, no QR mismatches). Negative signals can demote a partner instantly. Money figures are display; the ledger stores paise.

stateDiagram-v2
  [*] --> New
  New --> Bronze: "clean prepaid deliveries + good ratings"
  Bronze --> Silver: "volume + ratings + vouch"
  Silver --> Gold: "sustained record, zero fraud signals"
  Gold --> Platinum: "long clean tenure + surety"
  Platinum --> Gold: "fraud signal / rating drop"
  Gold --> Silver: "complaint / COD shortfall"
  Silver --> Bronze: "demotion on negative signal"
  Bronze --> New: "serious violation"
  New --> Suspended: "fraud detected"
  Suspended --> [*]: "blacklisted (Aadhaar token)"
        
Trust-tier progression. Promotion is slow and evidence-based; demotion is fast on any fraud signal. A serious violation routes to suspension and then an Aadhaar-token blacklist (see Β§8) so the offender cannot simply re-register.
Why this is a fraud control, not a perk ladder. By capping value, COD and distance at the start, the platform caps its maximum loss to any single new partner. Trust β€” and therefore exposure β€” only rises in step with a demonstrated clean track record. See the Edge-Case Catalog for the fraud-signal taxonomy.

5. Vehicle eligibility & verification

RideChain accepts the full spectrum of rural vehicles. Each type maps to a required document set and a capacity envelope; this mapping is what the matching engine consumes to pick a feasible vehicle for a given parcel size/weight, and what the verification pipeline enforces at onboarding.

Vehicle typeDL (Sarathi)RC (VAHAN)InsuranceIndicative max capacity
Cycleβ€”β€”β€”~15 kg Β· S/M parcels
Bike / scooterβœ…βœ…βœ…~40 kg Β· S/M/L parcels
E-rickshawβœ…βœ…βœ…~250 kg Β· bulky L
Autoβœ…βœ…βœ…~400 kg Β· L/XL
Bolero (pickup)βœ…βœ…βœ…~1 tonne Β· XL
Tata Aceβœ…βœ…βœ…~750 kg–1 tonne Β· XL
Tractor-trolleyβœ…βœ…βœ…~2–3 tonnes Β· bulk agri
Mini-truckβœ…βœ…βœ…~1.5–3 tonnes Β· bulk
Tempoβœ…βœ…βœ…~1–2 tonnes Β· bulk
Cycle / cart are first-class. They have no RC/DL to verify, so the document gate is skipped β€” but identity, liveness and face match are not. The capacity profile (max weight/size, photos) still feeds matching, so a cycle courier is correctly offered only the parcels it can carry. Capacity figures are indicative defaults; the partner's measured capacity profile overrides them.

6. Booker onboarding β€” friction-light

A booker is the person sending a parcel, and the design rule is brutal: do not make them do KYC just to book. Friction here directly suppresses the demand the whole network needs. So the booker track is almost nothing β€” and the rare cases that do need verification are handled with a targeted, minimal KYC-lite step.

  1. Phone + OTP + language β€” the entire mandatory onboarding. Pick a vernacular and you are in.
  2. Address book + voice address β€” save pickup/drop addresses; low-literacy users can add a voice address (spoken landmark + map pin) instead of typing.
  3. Book immediately β€” no KYC required to place a booking. Quote, pay, track β€” all without an identity check.
KYC-lite triggers β€” only two. (1) High declared value β€” a parcel declared above a threshold pulls a name/PAN check so claims and disputes can reconcile against a verified identity. (2) COD-receiving β€” a booker set to receive cash-on-delivery proceeds needs bank/UPI penny-drop name match so payouts go to a verified account. Outside these two, the booker stays anonymous-to-the-extent-allowed and high-velocity.

7. RideChain Point (PUDO) onboarding

A RideChain Point is a physical handover venue β€” a kirana, CSC, panchayat office or chai stall β€” and onboarding one is about verifying a shop, not just a person. The Point becomes a local champion: it stages and collects parcels, confirms handovers, and earns a per-parcel commission.

flowchart TB
  S0["πŸ“ž Shop owner: phone + OTP + language"] --> S1["πŸͺͺ Shop KYC
owner identity (Easy KYC) + shop details"] S1 --> S2["πŸ“· Shop photo + signboard frontage"] S2 --> S3["πŸ“ Geo pin (exact PUDO location)"] S3 --> S4["πŸ•’ Operating hours"] S4 --> S5["πŸ“¦ Storage capacity
(how many parcels can rest here)"] S5 --> S6["πŸ“² Scanner-lite app provisioned"] S6 --> S7["πŸͺ§ Signboard kit + per-parcel commission"] S7 --> S8["βœ… Live as a RideChain Point"] classDef c fill:#e9f7ef,stroke:#1e8e4e,color:#13602f; class S8 c;
Point onboarding verifies the shop (owner KYC, photo, geo, hours, storage capacity), then provisions the scanner-lite app and signboard. Storage capacity feeds milk-run staging decisions at the Point.

Once live, the Point gets a scanner-lite app (scan parcel QR, confirm handover OTP, mark stored/collected), a signboard so customers can find it, and a per-parcel commission β€” consistent with the worked baselines: a drop Point earns β‚Ή6 and a collect Point earns β‚Ή6 on a typical β‚Ή120 single point-to-point booking.

Two-sided handover in the custody chain. The Point operator confirms the two-sided handover OTP when a parcel is dropped at or collected from the Point β€” the same dual-OTP that locks every custody hop. A parcel is locked to one Point + one partner per leg, though a partner may serve many Points for coverage. See Booking & Delivery Flow and Last-Mile Delivery.

8. Re-verification, suspension & blacklist

Onboarding is not a one-time event β€” trust decays and documents expire. The platform runs periodic re-KYC and watches document expiry so a partner can never silently age out of compliance.

MechanismWhat it does
Periodic re-KYCScheduled re-verification of identity/bank at intervals scaled by tier and risk; failure freezes new offers until resolved.
Document expiry watchDL and insurance (and RC validity) are tracked; an approaching expiry warns the partner, and a lapsed document auto-suspends motorized eligibility until renewed and re-validated via Sarathi / VAHAN.
Aadhaar-token blacklistA blacklisted offender is recorded by their Aadhaar verification token (not raw number), so the same person cannot re-register under a new phone or vehicle. The blacklist is checked at the very first identity gate.
Account-farm detectionDevice fingerprint + SIM binding link suspicious sign-ups; many accounts from one device, or rapid SIM-swaps on one device, raise a farm signal and route to manual review.
The Aadhaar token is the anti-recidivism spine. Because the trust tier, the blacklist and the duplicate-account check are all keyed to the same OKYC-derived token (never the raw number), a banned partner cannot wash their reputation by re-registering. This is the single most important reason partner KYC is the #1 fraud lever β€” it makes a clean identity scarce and a banned one permanent.

9. Edge cases & failure modes

Onboarding is designed for the unhappy path β€” flaky SMS, low literacy, no smartphone, and people actively trying to game the gate. Each risk below has a defined mitigation; the full catalogue lives in the Edge-Case Catalog.

Risk / scenarioMitigation
Aadhaar OTP not received (SMS down / Aadhaar phone unreachable)Retry + alternate-channel prompts; if persistent, route to assisted mode at a Point; the gate is resumable so no progress is lost.
Face / liveness mismatch (deepfake or photo-replay attempt)Active liveness (blink/turn) + match-score threshold; deepfake-resistant model; repeated fails lock the attempt and flag the device fingerprint for review.
Duplicate Aadhaar (same person, second account)One active account per Aadhaar token; the identity gate detects the existing token and blocks the duplicate at sign-up.
RC / DL expired or owner name mismatchVAHAN/Sarathi validation flags expiry/name mismatch; motorized eligibility is withheld until a valid, name-matching document is provided.
Penny-drop name mismatch with KYC namePayouts stay disabled; partner must supply an account whose holder name matches the KYC name, or resolve via manual review with evidence.
Low-literacy user stuck mid-flowVoice-guided vernacular prompts at every step; one-tap escalation to assisted mode where a Point operator co-pilots the flow.
No smartphone at allPoint-assisted onboarding: the operator runs the KYC flow on their own device for the applicant (with on-device consent), then provisions a lightweight account.
Vouch fraud (collusion to inflate starting trust)Vouches raise starting trust only, never bypass KYC; voucher is liable on the abuse signal and can be demoted; graduated tiers cap exposure regardless of vouch.
Background check still pendingPartner starts at New tier with prepaid low-value parcels only; full limits unlock when the check clears, so the slow gate never blocks the head start.
KYC provider downtime (Cashfree unavailable)Queue + retry the verification; partner can proceed to non-blocking steps; fall back to manual review if downtime persists; idempotent so a retry never double-verifies.
Partner sells or changes their vehicleRe-verify the new vehicle (RC via VAHAN, DL still valid) before it can be matched; the old vehicle is retired from the capacity profile so matching never offers it.
Stolen / borrowed identity attemptLiveness + face match must match the OKYC photo of the same person; mismatch blocks onboarding and flags the Aadhaar token for review.