Smart KYC Assistant is an AI-powered fintech onboarding platform that uses OCR-based document intelligence and contextual AI assistance to automate KYC verification, reduce form errors, and minimize customer support workload.
AI-powered identity verification platform for Nepali fintech services. Upload one document, get a fully filled form in 3 seconds, verify your face, and track your KYC status in real time.
eSewa X WWF Hackathon 2026
Smart KYC Assistant eliminates manual data entry during identity verification. A user uploads their citizenship card, driving license, passport, or voter ID — GPT-4o Vision reads both sides, extracts every field, and fills the form automatically. No typing required.
Upload document → AI extracts fields → Review & confirm → Face verify → Track status → Done
| Layer | Technology |
|---|---|
| Frontend | React 18, Vite, Tailwind CSS, Framer Motion, Zustand |
| Backend | FastAPI, Python 3.11, SQLAlchemy async, PostgreSQL |
| AI — OCR | GPT-4o Vision (dual-image mode for citizenship/passport) |
| AI — Face | GPT-4o Vision (6-point biometric check) |
| AI — Chat | GPT-4o with conversation history |
| AI — Review | GPT-4o real-time field analysis |
| Database | PostgreSQL, Alembic migrations, asyncpg |
Smart_KYC_Assistant/
├── frontend/ # React + Vite app
│ ├── src/
│ │ ├── pages/ # 10 screens
│ │ ├── store/ # Zustand + localStorage persist
│ │ ├── services/ # api.js — all backend calls
│ │ └── components/
│ └── .env # VITE_API_URL, VITE_ENABLE_API
│
└── backend/ # FastAPI app
├── app/
│ ├── api/v1/endpoints/ # kyc, ocr, face, chat, feedback
│ ├── services/ # business logic layer
│ ├── ml/ # GPT-4o Vision OCR engine
│ ├── db/models/ # KYCRecord, Document, ChatMessage, FaceVerification
│ └── core/ # config, logging, exceptions
└── .env # DATABASE_URL, OPENAI_API_KEY
cd backend
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env
# Fill in DATABASE_URL and OPENAI_API_KEY in .env
alembic upgrade head
uvicorn main:app --reload --port 8000
cd frontend
npm install
cp .env.example .env
# Set VITE_API_URL=http://localhost:8000/api/v1 and VITE_ENABLE_API=true
npm run dev
API docs at http://localhost:8000/docs
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/v1/ocr/upload |
Upload document image(s), returns extracted fields |
POST |
/api/v1/kyc/submit |
Submit KYC form, creates database record |
GET |
/api/v1/kyc/status/:id |
Poll real-time KYC status |
GET |
/api/v1/kyc/feedback/:id |
GPT-4o field-by-field review |
POST |
/api/v1/face/verify |
Analyze selfie, validate liveness |
POST |
/api/v1/chat/ask |
Context-aware KYC chatbot |
pending → submitted → under_review → approved
↘ rejected
Status transitions every 5 seconds via frontend polling. Auto-progression from submitted to under_review fires 30 seconds after submission via background task.
.envDATABASE_URL=postgresql+asyncpg://postgres:password@localhost:5432/smart_kyc
OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-4o
SECRET_KEY=your-secret-key
CORS_ORIGINS=http://localhost:5173
UPLOAD_DIR=uploads
.envVITE_API_URL=http://localhost:8000/api/v1
VITE_ENABLE_API=true
Traditional OCR (EasyOCR + Tesseract) was the original implementation. It was replaced because:
Built for the eSewa X WWF Hackathon 2026. All rights reserved.