IFSC Verification & Banking Intelligence API
Pricing
from $0.005 / ifsc verification
Go to Apify Store
IFSC Verification & Banking Intelligence API
Verify IFSC codes, lookup bank branches, check MICR/SWIFT. Cross-verified from RBI, NPCI & Razorpay.
Pricing
from $0.005 / ifsc verification
Rating
0.0
(0)
Developer
Chandan Kumar Mishra
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Enterprise-grade IFSC verification, bank lookup, MICR search, SWIFT finder, and bulk verification API built for the Apify platform. Cross-verified from RBI, NPCI, Razorpay, and multiple banking sources.
Features
Core Features
- IFSC Validation - Validate IFSC code format and bank code existence
- IFSC Lookup - Get complete branch details by IFSC code
- MICR Lookup - Search branches by MICR code
- SWIFT Finder - Find branches by SWIFT/BIC code
- Bank Search - Search by bank name or bank code
- Branch Search - Search by branch name with fuzzy matching
- Location Search - Find branches by state, district, city, or pincode
- Bulk Verification - Verify thousands of IFSC codes (CSV, Excel, JSON, Text)
- Verification Report - Cross-source verification with confidence scoring
- Auto-complete - Suggestions for partial inputs
- Duplicate Detection - Find duplicate branches within a bank
Payment Capabilities
- UPI (Unified Payments Interface)
- NEFT (National Electronic Funds Transfer)
- RTGS (Real Time Gross Settlement)
- IMPS (Immediate Payment Service)
- ECS (Electronic Clearing Service)
- ACH Credit/Debit
- NACH Debit
- BBPS (Bharat Bill Payment System)
- AEPS (Aadhaar Enabled Payment System)
Data Sources
- RBI - Reserve Bank of India official data
- NPCI - National Payments Corporation of India
- Razorpay IFSC - Comprehensive IFSC database
- Bank Websites - Official bank branch pages
- Open Government Datasets - Public banking data
Tech Stack
- Runtime: Node.js 22+
- Language: TypeScript 5.7+
- Framework: Apify SDK 3.x, Crawlee 3.x
- API: Express.js 4.x
- Validation: Zod, Joi
- HTTP Client: Axios
- HTML Parsing: Cheerio
- Caching: node-cache
- CSV/Excel: PapaParse, xlsx
- Fuzzy Search: Fuse.js
- Logging: Pino
- Testing: Jest, Supertest
- Linting: ESLint, Prettier
Quick Start
Prerequisites
- Node.js 22+ and npm
- Apify CLI (optional, for deployment)
Installation
# Clone the repositorygit clone https://github.com/your-org/ifsc-verification-actor.gitcd ifsc-verification-actor# Install dependenciesnpm install# Copy environment variablescp .env.example .env# Build the projectnpm run build# Run testsnpm test# Start development servernpm run dev
Environment Variables
# RequiredAPIFY_LOG_LEVEL=INFO# OptionalCACHE_TTL_SECONDS=3600RATE_LIMIT_MAX_REQUESTS=100RATE_LIMIT_WINDOW_MS=60000MAX_CONCURRENT_REQUESTS=10RETRY_ATTEMPTS=3RETRY_DELAY_MS=1000ENABLE_SCRAPING=trueENABLE_CACHE=trueAPI_KEY=your-secret-api-keyRAZORPAY_IFSC_API_URL=https://ifsc.razorpay.com
API Endpoints
Validation
POST /api/v1/validateContent-Type: application/json{"ifsc": "KKBK0000261","micr": "110485003","bankCode": "KKBK","pincode": "122001"}
Lookup
POST /api/v1/lookupContent-Type: application/json{"ifsc": "KKBK0000261"}
Response:
{"success": true,"data": {"ifsc": "KKBK0000261","bank": "Kotak Mahindra Bank","bankCode": "KKBK","branch": "Gurgaon","address": "SCO 16-17, HUDA Market, Sector 14, Gurgaon","contact": "0124-4334000","city": "Gurgaon","district": "Gurgaon","state": "Haryana","centre": "Gurgaon","micr": "110485003","swift": "","upi": true,"neft": true,"rtgs": true,"imps": true,"ecs": true,"achCredit": true,"achDebit": true,"nachDebit": true,"bbps": true,"aeps": false,"bankType": "Private","iin": "","bankCodeNumber": "","verified": true,"confidence": 99.7,"sources": ["Razorpay", "NPCI"],"lastUpdated": "2026-07-23T12:00:00.000Z","isActive": true,"isMerged": false,"isClosed": false},"meta": {"requestId": "uuid","timestamp": "2026-07-23T12:00:00.000Z","durationMs": 150,"apiVersion": "1.0.0","cacheHit": false}}
Search
POST /api/v1/searchContent-Type: application/json{"bankName": "Kotak Mahindra","searchMode": "contains"}
Bulk Verification
POST /api/v1/bulkContent-Type: application/json{"items": ["KKBK0000261", "SBIN0005943", "HDFC0001234"],"format": "json"}
Verification Report
POST /api/v1/verifyContent-Type: application/json{"ifsc": "KKBK0000261"}
Auto-complete Suggestions
$GET /api/v1/suggest?q=Kot&field=bank&limit=10
Suggest Correct IFSC
$GET /api/v1/suggest-ifsc?q=KKBK000026
Duplicate Detection
$GET /api/v1/duplicates/KKBK
Search Modes
| Mode | Description |
|---|---|
exact | Exact match |
contains | Partial match (substring) |
startsWith | Prefix match |
endsWith | Suffix match |
fuzzy | Fuzzy matching with confidence score |
regex | Regular expression matching |
Output Formats
| Format | Content-Type | Description |
|---|---|---|
json | application/json | Default JSON response |
csv | text/csv | CSV download |
excel | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | Excel download |
dataset | - | Apify Dataset output |
Deployment
Apify Platform
# Install Apify CLInpm install -g apify-cli# Loginapify login# Push to Apifynpm run apify:push# Run on Apifynpm run apify:run
Docker
# Build imagedocker build -t ifsc-verification-api .# Run containerdocker run -p 3000:3000 --env-file .env ifsc-verification-api
Local Server
# Developmentnpm run dev# Productionnpm run buildnpm run start:prod
Project Structure
src/main.ts # Entry point (Apify Actor + Express server)routes/api.routes.ts # API route definitionsservices/ifsc.service.ts # Core business logicexport.service.ts # CSV/Excel export utilitiesvalidators/ifsc.validator.ts # Input validationclients/razorpay.client.ts # Razorpay IFSC API clientrbi.client.ts # RBI data clientnpci.client.ts # NPCI data clientmodels/branch.model.ts # Branch data modelbank.model.ts # Bank data modeltypes/index.ts # TypeScript type definitionsutils/logger.ts # Pino logger configurationerrors.ts # Custom error classeshelpers.ts # Utility functionscache/index.ts # In-memory caching servicemiddleware/auth.middleware.ts # API key authenticationrate-limit.middleware.ts # Rate limitingerror.middleware.ts # Error handlinglogging.middleware.ts # Request loggingconfig/index.ts # Application configurationtests/unit/ # Unit testsintegration/ # Integration testssetup.ts # Test setupdocs/openapi.yaml # OpenAPI/Swagger documentation.github/workflows/ci.yml # CI/CD pipeline
Error Codes
| Code | HTTP Status | Description |
|---|---|---|
VALIDATION_ERROR | 400 | Invalid input parameters |
NOT_FOUND | 404 | Resource not found |
RATE_LIMIT_EXCEEDED | 429 | Too many requests |
EXTERNAL_SERVICE_ERROR | 502 | Third-party service failure |
AUTHENTICATION_ERROR | 401 | Invalid or missing API key |
AUTHORIZATION_ERROR | 403 | Insufficient permissions |
INTERNAL_ERROR | 500 | Unexpected server error |
Caching Strategy
- In-Memory Cache: node-cache with TTL (default 1 hour)
- Cache Keys:
lookup:ifsc:{code},search:{field}:{mode}:{query},bank:code:{code} - Cache Invalidation: Automatic TTL expiration, manual flush via
/cache/stats - Hit Rate Tracking: Real-time cache statistics in health endpoint
Rate Limiting
- Default: 100 requests per minute per IP
- Bulk Endpoint: 20 requests per 5 minutes per IP
- Health Check: Exempt from rate limiting
- Headers:
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset
Retry Logic
- Max Attempts: 3 (configurable)
- Backoff: Exponential with jitter (1s, 2s, 4s max 10s)
- Retryable Errors: 5xx server errors, network timeouts
- Non-Retryable: 4xx client errors, 404 not found
Security
- Helmet.js for security headers
- CORS configuration
- API key authentication (optional)
- Input sanitization
- Rate limiting per IP
- Request logging with redacted sensitive fields
Monitoring
- Structured JSON logging with Pino
- Request/response timing
- Cache hit/miss statistics
- External API call metrics
- Error tracking with stack traces
Performance Optimization
- In-memory caching for frequently accessed data
- Chunked processing for bulk operations
- Connection pooling for HTTP clients
- Compression middleware
- Lazy loading of Fuse.js index
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
MIT License - see LICENSE file for details.
Support
- Documentation: docs/openapi.yaml
- Issues: GitHub Issues
- Email: support@ifsc-verification.io
Built with care for the Indian banking ecosystem.

