The platform

KYC & Document Intelligence API

Indian customer documents, end to end: strip what you must not keep, read what you need, check the card is what it claims to be, and run the whole thing over a batch. Twenty-two capabilities across five layers, behind one key.

Talk to our technical team → — for integration questions, a security review or a volume estimate.

Five layers, one document

A customer document passes through the same five questions at every institution that handles one. What must not be kept? What does it say? Is it what it claims to be? Should it be trusted? And how does that happen ten thousand times without a person in the loop.

Protect
Take out what you have no business storing, before the file lands anywhere it can be copied from.
Understand
Turn the document into fields your systems can act on, rather than an image somebody has to open.
Verify
Establish that the document is the document it claims to be, and that it agrees with itself.
Trust
Surface the specific reasons a document should not be believed — named, not scored.
Automate
Run all of the above across a queue, on a schedule, with a callback when it is done.
01

Protect

The identifiers on a customer document outlive every process you built around them. This layer is what stops a document being a liability the moment it is stored.

02

Understand

A document nobody has read is a document somebody will have to. This layer turns the file into fields.

03

Verify

Reading a document tells you what it says. It does not tell you whether to believe it. Aadhaar is the one Indian document where belief can be proved rather than estimated, because UIDAI signs the QR payload.

Address intelligence, in more detail

The most underrated check in Indian KYC. Two documents almost never spell an address the same way, and almost nobody compares them, because a string comparison says they disagree and a human says they obviously match.

Normalisation comes first — the same place, written the way every downstream system can agree on:

Flat 4B, XYZ Apartments,
Near ABC Chowk,
Rohtak, Haryana 124001

  ↓

{
  "address_line": "Flat 4B, XYZ Apartments, Near ABC Chowk",
  "city":         "Rohtak",
  "state":        "Haryana",
  "pincode":      "124001",
  "normalized":   true
}

normalized is the field that matters, and it is why this is a capability of its own rather than something the extraction endpoints do quietly. Aadhaar addresses are not consistently structured. Split them blindly and roughly a fifth come out wrong — and components that are wrong a fifth of the time are worse than one honest string, because the caller cannot tell which fifth. A flag that admits when the split is unreliable is the difference between a component you can join on and a component that quietly corrupts a match.

Then the comparison. The same customer's address arrives on documents that were never meant to agree with each other:

🏦
Aadhaar addressas UIDAI printed it
💳
Bank statementas the bank's onboarding form captured it
📋
GST certificateas the registration was filed
📏
Similarity, with what drove itsame pincode, same locality, differing flat number

Three documents nobody currently compares, on the check that catches the folder that does not add up.

This similarity number is not the risk score we argue against. The distinction is worth being precise about. A tamper score compresses "is this person committing fraud" into one number, and nothing calibrates it. An address similarity is a measurable property of two strings — it can be checked against a held-out set, it means the same thing on every document, and it comes back with the components that drove it. You can argue with it. That is the whole test.

What counts as a match is still your policy. A lender verifying a mortgage address and a fintech doing light-touch onboarding should not be using the same threshold, and we are not the right party to pick one for you.

04

Trust

Reasons to disbelieve a document, each one named. There is no score here, and that is deliberate — see below.

Why there is no risk score. A number that decides whether a real person gets a loan has to be calibrated against labelled genuine and forged documents in your capture conditions. We do not have that corpus, and an uncalibrated score manufactures confidence with nothing behind it. A compliance officer cannot defend 0.83 at an audit; they can defend qr_name_mismatch. Named signals can be argued with, which is the property that matters.
05

Automate

One document is an integration. Ten thousand a month is an operation.

Where all five layers become one call

Selling five capabilities separately makes the customer the integrator. They sequence the calls, hold the intermediate state, decide what a disagreement between two steps means, and own the audit trail. A KYC case does that for them: one object, one decision, one record of how it was reached.

📁
Create a KYC caseone object the whole application hangs off
📤
Upload documentshowever many arrive, in whatever order
🏷
Classifywhat each file is, before anything decides what to do with it
📄
OCR and extractevery document becomes fields
Comparedo the documents in this folder agree with each other
🔍
Verifydoes the card agree with what UIDAI signed
🚩
Collect the signalsevery named finding from every step, with its severity
Approve, review or rejectwith the signals that produced it attached

One call in, a decision and its reasons out.

The decision step collects signals rather than emitting a score, for the reason set out under Trust. A case that comes back review arrives with the named findings that put it there, so a human clears it in seconds instead of interpreting a number. Your own policy decides which signals are disqualifying — that threshold belongs to your risk team and your regulator, not to us.

This is the layer most worth having and the one that needs the most agreement about your process before it is worth building. Tell us what your case flow looks like — the institutions that describe theirs are the ones it gets designed around.

One key, one request shape

Every capability authenticates with the same X-API-Key header and takes the same multipart/form-data body with a single file part. That is the whole reason to buy a platform rather than five vendors: the second capability is a URL change, not a second integration, a second contract and a second security review.

curl -X POST https://api.maskaadhaar.com/api/v1/mask-aadhaar \
  -H "X-API-Key: $MASKAADHAAR_KEY" \
  -F "file=@document.pdf" \
  --output masked.pdf

The API reference documents every endpoint that is live, with its parameters, headers and errors. GET /api/v1/pii-types returns the current detection list as JSON and needs no authentication, so you can read it before a key is issued. For anything on this page you want to build against, talk to our technical team — knowing which capability you need next is how it gets prioritised.

Questions we get asked

Is this one API or several products?

One API and one key. Every capability uses the same authentication, the same quota and the same multipart request shape, so adding a second capability to an existing integration is a URL change rather than a new project.

Do I have to adopt the whole platform?

No. Most customers start with one capability, usually masking or redaction, because that is the one with a compliance deadline attached. The rest are there when you need them.

Why is there no risk score?

Because a score that decides whether a real person gets a loan has to be calibrated against labelled genuine and forged documents in your own capture conditions, and an uncalibrated number manufactures confidence with nothing behind it. The Trust capabilities return named signals instead: a compliance officer can defend a named signal at an audit and cannot defend 0.83.

Which capabilities are available today?

The API reference documents every endpoint that is live right now, and GET /api/v1/pii-types returns the current detection list as JSON without authentication. Those two are the authoritative answer at any moment. Talk to us about anything on this page you want to build against.

Related

Talk to us about your document volume

Tell us how many documents a month you process and what your peak looks like. We will size a plan, provision a key with a test quota, and answer a security questionnaire if you need one.