Product · 7 min read

How we verify a driver in about fifteen minutes

Six checks, two government databases, and one decision that we think most verification systems get badly wrong: never let software reject a driver on its own.

Verification is not a feature of Dutiess. It is the entire reason the product can exist. Everything else - the feed, the ratings, the URGENT alerts - is only worth building if you can answer one question first: is this person real, licensed, and driving a car they are allowed to carry passengers in?

Here is exactly how we answer it, and why we made the choices we did.

The shape: identity first, vehicle second

Onboarding is split in two, with a milestone screen in between. That split is deliberate - asking a driver for seven documents in one unbroken sequence is how you lose them at document four.

Part 1 proves the person. Part 2 proves the car. You can stop after Part 1, go find your RC book, and come back tomorrow without losing anything.

Part 1 - the person

Phone OTP

Your number becomes your account identity. There are no passwords on Dutiess at all, which means there is no password to leak, reuse or phish. Codes are stored only as hashes, expire quickly, and are rate-limited per number.

Aadhaar, read but not kept

You photograph your Aadhaar card and we read the name and date of birth off it with OCR. That is all we want from it - a name and a date to cross-check against your licence.

So we keep exactly that, plus a masked number like XXXX XXXX 5647. The full number is scrubbed before storage. It never reaches the database, the admin console, or a log file. We are not an authentication user agency and we do not perform Aadhaar e-authentication.

An early decision worth stating plainly: DigiLocker was dropped. On paper it is the elegant option. In practice, most of the drivers we tested with did not have it set up, and building a verification flow that assumes an app people do not have is how you build a product for a demographic that is not your customer.

Driving licence, against Sarathi

You enter your DL number and date of birth, and we query the government Sarathi record. It returns the status, the name, the date of birth, validity, the vehicle classes you are licensed for, and - crucially - the official photograph held on that record.

That photograph is the anchor for the next step. It is a government-held image of you that neither of us can edit.

Liveness, then face match

You take a selfie. Two separate things happen to it.

First, a liveness check confirms there is a live human in front of the camera, rather than a printed photo or a phone screen held up to it. Second, that selfie is compared against the official licence photograph from the Sarathi record.

The order matters. Face matching without liveness is trivially defeated by holding up a picture of the person whose licence you stole.

Part 2 - the vehicle

RC, against VAHAN

You enter the registration number and we query VAHAN: status, owner name as recorded, maker, model, category, seating capacity, commercial classification, expiry.

The check we deliberately do not run

This one is worth dwelling on, because it is the kind of thing that looks like rigour and is actually just exclusion.

An obvious idea is to compare the driver's name against the RC owner's name and flag any mismatch as suspicious. We built it, looked at what it did, and removed it.

Leased cars, financed cars and fleet-owned cars are completely normal in this industry. A driver working an Innova owned by a travel agency is not a fraud signal - he is a Tuesday. Running that check would have flagged a large share of entirely honest drivers and taught our reviewers to ignore flags, which is worse than not having them.

Commercial permit - the gate

Your cab or contract-carriage permit is read by OCR: number, type, validity, and the vehicle number it covers. This is a hard gate. Private, non-commercial vehicles cannot onboard Dutiess.

It costs us signups. We keep it because a duty performed in a private car is not legal passenger transport, and a platform that quietly allows it is not a trust platform.

Insurance and five photographs

Insurance validity by OCR, then five photographs of the actual car - so a poster can see what will turn up outside their customer's house.

The decision we care most about: never auto-reject

Here is the thing that separates a verification system from a bureaucracy.

Documents disagree constantly, and almost never because of fraud. Names carry initials on one document and not another. Surnames and given names swap order. Dates of birth on old licences are approximations. Licence photographs are fifteen years old and taken on a webcam, so face-match scores come back borderline.

If you let software reject on any of that, you will block a large number of honest drivers and you will never find out, because rejected people do not write to you - they just uninstall.

So the rule is absolute: a mismatch raises a flag, and a flag goes to a human. Our system has no path by which an automated check alone removes a driver's ability to earn. A reviewer sees the whole file, with every flag and its reason, and decides.

Every verification call made about a driver is written to an audit log with its result and its cost. That means any decision about an account can be explained to that driver, and reviewed by somebody who was not involved in making it. Appeals are a real process, not a courtesy.

Uniqueness: one licence, one vehicle, one account

A DL number and a registration number are each unique across the entire platform. A second attempt to register either is refused immediately.

This is small to implement and does a lot of work. It is what stops a driver removed for repeated no-shows from reappearing next week under a new phone number, and what stops one car being presented by three different "owners".

What we are careful not to claim

Verification confirms that, at the moment of checking, the documents were genuine and current and belonged to the person presenting them, and that the vehicle is licensed to carry passengers.

It is not a criminal background check. It is not an assessment of driving skill. It is not a promise that someone will be punctual, polite, or honest next Tuesday.

That is precisely why ratings, the reliability score and strikes exist alongside it. Verification tells you who someone is. Only the network can tell you what they are like to work with - and that is the part we are building next.


The formal version of all this, including what happens when verification fails and how to appeal, is in the Verification Policy. How the documents are stored and protected is on the Security page.