Live · sandbox + production ready

Identity verification,
solved in one drop-in.

Embed our widget or call the API to verify any user with document OCR, face matching, and liveness — in under 60 seconds.

View API docs
60-second integration
NDPR-compliant
No card required
kylr verification widget preview
< 12s
Median verification time
99.4%
Document read accuracy
180+
Document types supported
24/7
Sandbox + monitoring
Try it now

See the full verification flow live.

Click the button to launch the exact widget your users will see — including document upload, FaceID scan, liveness check, processing, and the approved/rejected/failed results.

Intro → Personal details → Document → Selfie → Review
Full step-by-step flow with progress tracking
Animated face scanning with liveness challenge
Blink, smile, or head-turn prompts with scan-line overlay
Processing screen with per-check progress
Document authenticity, OCR, face match, liveness — all tracked
Approved, rejected with reasons, or failed with retry
Specific failure reasons: face mismatch, low liveness, document rejected
Embed code

kylr verification widget

Click below to launch the full flow in a modal — exactly as it will appear inside your app.

Check verification status

See what a completed verification looks like.

Enter a submission ID to check the status and view the full verification result — exactly as a business would see it.

Try a submission ID from the sandbox or demo to see a real result

What's inside

Everything you need to verify a user.

From OCR to webhooks — already designed, tested, and audit-logged.

FaceID matching

Compare a live selfie to the photo on the ID. Returns a confidence score and pass/fail signal.

Liveness detection

Randomized blink, smile, and head-turn challenges defeat photo, screen, and deepfake attacks.

Document OCR

Extract name, DOB, number, and expiry from passports, NIN slips, driver's licences and more.

Webhook automation

Receive status updates the moment a check completes. Replay, retry, and signed for integrity.

Embeddable widget

Drop-in React component or vanilla <script> tag. Themeable, white-label, fully responsive.

Compliance built-in

AES-256 at rest, TLS 1.3 in transit, RBAC, immutable audit log. NDPR-aligned out of the box.

Platform capabilities

Built for platforms that need to scale KYC.

Multi-tenant

Separate sandbox and production environments per business.

Usage analytics

Detailed stats per status, environment, and time period.

Webhooks & events

Real-time status updates with HMAC-SHA256 signatures.

Audit trail

Immutable logs for every action across the platform.

For individuals

Verify once. Use everywhere.

Get your KLYR ID — a reusable identity that works across fintech apps, payment platforms, and Web3 dApps. No more uploading your passport to every new service.

  • Submit your documents once on klyr.io
  • Get a unique KLYR ID with a trust score
  • Grant apps access to your verified data — not your raw documents
  • Revoke access anytime from your identity wallet
Your identity
klyr_3F8A2C1B
Trust score
82 — Trusted
Verification Verified
Connected apps2 apps
Last verifiedJune 2026
Coverage

Verify identities across Africa.

We currently support identity verification in five African markets, with more countries rolling out every quarter.

🇳🇬
Nigeria
NG
🇰🇪
Kenya
KE
🇬🇭
Ghana
GH
🇿🇦
South Africa
ZA
🇨🇮
Côte d'Ivoire
CI
BVN (Nigeria)
NIN (Nigeria)
National ID
Passport
Driver's Licence
More coming soon
How it works

From signup to verified in three steps.

01

Get your API key

Sign up, grab a sandbox key, and start integrating in minutes. Switch to production with one flag.

02

Embed or call the API

Use our React widget, a vanilla <script>, or hit POST /v1/kyc/submit directly from your backend.

03

Receive a decision

Get an instant status, plus a webhook when checks complete. Approved, rejected, or flagged for review.

Integration

A single integration. Two ways to ship.

Use the embeddable widget for a no-code front end, or hit the REST API directly from your backend.

Embeddable widget
Drop a <KylrWidget /> React component or a single <script> tag and you're live.
Clean REST API
Versioned JSON endpoints, predictable errors, and a sandbox that mirrors production.
Signed file URLs
Documents never get a public URL. Every asset is encrypted and time-bound.
verify.tsx
import { KylrWidget } from "@kylr/widget";

export default function Verify() {
  return (
    <KylrWidget
      apiKey="pk_live_••••••"
      environment="production"
      onComplete={(result) => {
        console.log("verified:", result.submission_id);
      }}
    />
  );
}
Security & compliance

Built for regulated data.

We treat PII like protected infrastructure. You never have to build the compliance layer yourself.

AES-256 at rest
TLS 1.3 in transit
Signed URLs (15 min)
Immutable audit log
Argon2 password hashing
Signed webhooks
NDPR-aligned
Rate-limited APIs

Ready to verify your first user?

Start in the sandbox today. Go live when your flow is ready — no commitments.

Already a verified user? Access your identity wallet.

Sign in to wallet