# VerifyIndia API A comprehensive verification API for Indian documents and data including IFSC codes, PIN codes, GST numbers, PAN cards, and bank account verification. ## Tech Stack - **Runtime**: Node.js - **Framework**: Express.js - **Database**: PostgreSQL - **Cache**: Redis - **Authentication**: JWT (JSON Web Tokens) ## Project Structure ``` verify-india-api/ ├── src/ │ ├── index.js # Application entry point │ ├── routes/ # API route handlers │ │ ├── auth.js # Authentication routes │ │ ├── ifsc.js # IFSC code lookup │ │ ├── pincode.js # PIN code lookup │ │ ├── gst.js # GST verification │ │ ├── pan.js # PAN verification │ │ ├── bank.js # Bank account verification │ │ └── user.js # User management │ ├── middleware/ # Express middleware │ │ ├── auth.js # Authentication middleware │ │ ├── rateLimit.js # Rate limiting │ │ └── errorHandler.js # Error handling │ ├── services/ # Business logic services │ │ ├── gstService.js # GST verification service │ │ ├── panService.js # PAN verification service │ │ ├── bankService.js # Bank verification service │ │ └── analytics.js # Analytics service │ ├── database/ # Database configuration │ │ ├── connection.js # Database connection │ │ └── setup.js # Database setup scripts │ └── cache/ # Caching layer │ └── redis.js # Redis configuration ├── data/ # Static data files │ ├── ifsc.json # IFSC code database │ └── pincodes.json # PIN code database ├── package.json ├── .env.example └── README.md ``` ## Getting Started ### Prerequisites - Node.js >= 18.0.0 - PostgreSQL - Redis ### Installation 1. Clone the repository 2. Install dependencies: ```bash npm install ``` 3. Copy `.env.example` to `.env` and configure your environment variables: ```bash cp .env.example .env ``` 4. Start the development server: ```bash npm start ``` ## Environment Variables | Variable | Description | Example | |----------|-------------|---------| | `PORT` | Server port | `3000` | | `DATABASE_URL` | PostgreSQL connection string | `postgresql://user:pass@localhost:5432/db` | | `REDIS_URL` | Redis connection string | `redis://localhost:6379` | | `JWT_SECRET` | Secret key for JWT signing | `your_secret_key` | | `API_KEY_PREFIX` | Prefix for API keys | `vi_` | ## API Endpoints - `/api/auth` - Authentication endpoints - `/api/ifsc` - IFSC code lookup - `/api/pincode` - PIN code lookup - `/api/gst` - GST verification - `/api/pan` - PAN verification - `/api/bank` - Bank account verification - `/api/user` - User management ## License ISC