VeriPay is a web application that helps organizations upload invoices (PDF or image files), extract key information using AI-assisted document understanding, and verify whether an invoice is trustworthy using anomaly detection, vendor validation, and document integrity checks.
It combines rule-based validation, LayoutLMv3-based document understanding, Isolation Forest anomaly detection, and optional LLM-assisted extraction via Ollama.
Manual invoice verification is:
- Slow
- Error-prone
- Vulnerable to fraud
VeriPay provides:
- Automated invoice analysis
- Vendor and bank verification
- Audit-ready tracking
- A structured review workflow
| Audience | Why they use VeriPay |
|---|---|
| Developers / students | Learn full-stack + AI integration |
| Finance teams | Review invoices with risk signals |
| Security-focused teams | Detect fraud and anomalies |
- 🔐 User authentication (session-based)
- 📄 Invoice upload (PDF, PNG, JPG)
- 🧠 AI anomaly detection (Isolation Forest + LayoutLM)
- 🏦 Vendor + bank verification
- 📊 Dashboard with stats and recent invoices
- 📝 Human review system
- 📁 Audit logs
- 🤖 Optional LLM extraction via Ollama
| Technology | Role |
|---|---|
| Next.js / React | Frontend |
| TypeScript | Frontend typing |
| Tailwind CSS | UI styling |
| FastAPI | Backend API |
| SQLAlchemy | ORM |
| PostgreSQL | Database |
| Alembic | Migrations |
| PyTorch / Transformers | AI models |
| scikit-learn | Anomaly detection |
| Ollama | Local LLM |
| Docker Compose | Full system setup |
VeriPay/
├── backend/ # FastAPI backend
├── frontend/ # Next.js frontend
├── ai_pipeline/ # ML models
├── docker-compose.yml
└── README.md
Install Docker Desktop and ensure it is running.
git clone https://github.com/VeriPay-Project/VeriPay.git
cd VeriPaydocker compose up --buildThis starts:
- Frontend → http://localhost:3000
- Backend → http://localhost:8000
- Ollama → http://localhost:11434
http://localhost:3000
docker compose down- User uploads invoice
- Backend extracts text + layout
- AI models analyze structure and anomalies
- Vendor and bank validation runs
- Results are stored and shown in dashboard
Base URL:
http://localhost:8000
Interactive docs:
http://localhost:8000/docs
- Register or login
- Create vendor
- Upload invoice
- Run analysis
- Review results
- Approve or escalate
-
PostgreSQL stores:
- Users
- Invoices
- Vendors
- Analysis results
- Audit logs
| Issue | Fix |
|---|---|
| Docker not running | Start Docker Desktop |
| Slow first run | Models are loading (normal) |
| API not responding | Check backend logs |
| No data showing | Ensure user is logged in |
- Advanced fraud scoring
- Real-time analytics
- Multi-tenant support
- Cloud deployment
MIT License
Maintained as part of a university capstone project.