Verify anyone.
Know exactly how.
Aadhaar, liveness, PAN, bank and company checks in one hosted flow — and every result says who verified it: the source, our models, or your reviewers.
- Aadhaar number never stored
- Data stays in India
- Human review built in
01 · The product
One flow. Every check. Labelled.
Your applicant finishes on their phone in minutes. Your team sees every check and exactly how it was verified.
A flow they finish on their phone
Your brand, their language, a camera that helps. Steps your team reviews say “Submitted for review” — nobody gets stuck.
Verifying your details
This usually takes a few seconds.
- ConsentRecorded
- Mobile numberVerified by OTP
- AadhaarSecure QR · signature verified
- SelfieLiveness and face match
- PANSubmitted for review
Human review, built in
Put a person in the loop wherever you want one: your reviewer sees what was typed next to what the document says — and decides.
A signed decision
Approved, declined or in review, delivered to your backend with every check.
{ "type": "session.approved", "data": { "session": { "id": "ses_in_01…", "status": "approved" }} }
Stays in India
Stored and processed in India.
02 · What you can verify
Verify what your business needs.
Start from ready-made checks for India, or tell us what your process needs — new checks, document types and steps are added to your workflows on request.
People05
Businesses03
Your own steps02
03 · Your choice, per check
Choose how each check is verified.
Weigh assurance, speed and cost for every check: strict where the rules demand it, automated where volume does, a person where judgement does.
Signed data and official records, checked directly with the issuer.
- Assurance
- Speed
- Cost
- Per check
- Best for
- Regulated onboarding, high-value accounts
Our models read documents, match faces and screen names in seconds.
- Assurance
- Speed
- Cost
- Lowest
- Best for
- High volume, instant decisions
A person in the loop, with what was typed next to what the document says.
- Assurance
- Speed
- Cost
- Your team’s time
- Best for
- Edge cases, judgement calls, your own policies
Build your workflow
Your mix
- At the source1
- Automatically2
- By your reviewers1
Change it whenever your requirements, budget or risk appetite change — your integration stays the same, and every result carries verified_by.
04 · Human review
Review is part of the flow, not a fallback.
When a check needs a person, the applicant carries on and your reviewer takes it from there — with everything they need on one screen.
Why it’s here: every other check passed; your workflow sends PAN to your team to confirm against the card.
05 · For developers
Integrate in an afternoon.
Create a session, open the link, verify the webhook. Screens, retries, reviewers and rules live in OKYC.
- SDKs everywhereDrop the hosted flow into any app, or open it as a link.
- Free test modeEvery step has “Use test data” — walk a whole workflow without real documents.
- Works with your AI assistantConnect Claude or any MCP client to build and test workflows.
// Your frontend calls this, then passes { clientToken, sessionUrl } to @okyc/web or @okyc/react.
app.post('/api/kyc/session', express.json(), async (req, res) => {
const userId = req.header('x-user-id') ?? 'demo-user'; // use your own auth here
try {
const session = await okyc.sessions.create(
{
workflowId: process.env.OKYC_WORKFLOW_ID,
referenceId: userId,
redirectUrl: process.env.REDIRECT_URL,
},
{ idempotencyKey: `kyc-${userId}-${new Date().toISOString().slice(0, 10)}` },
);
res.json({ clientToken: session.clientToken, sessionUrl: session.url });
} catch (e) {
res.status(e.statusCode ?? 500).json({ error: e.code ?? 'error' });
}
});06 · Privacy by design
Built to be trusted.
Verification data is the most sensitive data your customers give you. OKYC is built to hold as little of it as possible, for as short as possible.
Ready to verify your first customer?
Tell us what you need to verify — and how. Once we approve your request, you get a test account.