Jamuna Bank PLCeKYC and NID Verification
Bangladesh NID OCR and face verification as a multi-tenant API platform, deployable on GPU, CPU, or fully air-gapped.
1.5 to 2 s
Reading time per card image on GPU
- Face comparison
- ~0.5 s
- Fields per card
- 13
- Async job accepted
- < 100 ms
- Deployment modes
- 3
What it checks
- Old NID card
- Smart NID card
- Bangla and English fields
- Selfie match with liveness
- Client
- Jamuna Bank PLC, plus other licensed institutions
- Location
- Gulshan, Dhaka, Bangladesh
- Industry
- Fintech, banking, compliance
- Engagement
- Product
- Timeline
- September 2025 to present
- Status
- Available for deployment
About the client
Jamuna Bank PLC
Gulshan, Dhaka, Bangladesh
Jamuna Bank PLC is a private commercial bank in Bangladesh, founded in 2001, with 170 branches and 116 sub-branches.
Visit jamunabankbd.comThe challenge
Every account, loan, and wallet in Bangladesh starts with an NID card: two designs, two scripts, and photos that arrive skewed or dark.
Cloud OCR reads Bangla poorly, and many banks cannot let data leave their premises.
What we built
- 01
OCR service
With card detection, geometry correction, transformer OCR on GPU, and layout-aware field extraction.
- 02
Face verification service
For similarity scoring and liveness, on CPU beside the OCR service.
- 03
Admin and portal service
With API keys, subscriptions, three-tier pricing, usage logs, and billing.
- 04
Async queue and webhooks
So heavy OCR jobs never block the client's request.
- 05
Deployment tooling
For GPU, CPU-only, and air-gapped installs, with zero-downtime upgrade and rollback.
Key features
Both NID formats, both sides
Smart and old cards, front and back, with side detection.
Results
1.5 to 2 s
Reading time per card on GPU; 10 to 30 seconds on CPU-only
Deployment documentation
~0.5 s
Face comparison time
Deployment documentation
< 100 ms
To accept an async job; status polls under 50 milliseconds
Queue documentation
3
Deployment modes: GPU, CPU-only, and fully air-gapped
Deliverables and air-gap documentation
13
Fields extracted per card, behind about 85 API endpoints and over 900 tests
Source
How it works
Our role
Product design, OCR pipeline, face verification, multi-tenant platform and billing, client portal, GPU and air-gapped deployment, and handover documentation.
Built with
- PyPython 3.12
- FaFastAPI
- PyPyTorch
- SuSurya OCR
- OpOpenCV
- YOYOLO
- DeDeepFace
- InInsightFace
- PoPostgreSQL
- ReRedis
- ArArq
- ReReact
- TyTypeScript
- DoDocker
- BiBitbucket Pipelines
Work with us
Try it on your own samples
Send a few card images; we will show the extracted fields, the face match, and fitting deployment options.
