The OCR worked perfectly in testing.
The documents were clean. The lighting was good. The scans were flat. Every field came back exactly where the team expected it.
Then real users started onboarding.
A laminated NIN slip came in with glare across the ID number. A voter’s card was faded. A passport page was captured under poor lighting. Some images were tilted, cropped, compressed, or taken on low-end Android devices.
The extraction quality dropped immediately.
For the product team, this created a problem bigger than bad OCR. Users were getting stuck at verification. Support tickets increased. Manual review became slower. And every failed extraction added friction to onboarding.
The mistake was assuming that OCR accuracy in a sandbox would translate directly to production.
It rarely does.
Here’s what makes them hard to read and what actually works.
Why Global OCR Tools Fail on Nigerian Documents
1. Document material and condition
Most Nigerian IDs are paper based. The NIN slip is printed on thermal paper and frequently laminated to preserve it. Lamination introduces glare and reflection artefacts that confuse generic OCR engines. Over time, the paper creases, the print fades, and the lamination yellows. An AI trained on pristine Passports has no concept of these conditions.
2. Varied fonts and layouts
Nigerian documents, unlike the standardised machine-readable zones (MRZ) on international passports, have dense, non standard text layouts. Information like “First Name,” “Last Name,” and “Date of Birth” can appear in different positions depending on the issuing authority, the print year, or the state. Driver’s licences, for example, differ considerably in layout between states and across the old vs. new templates.
3. Barcodes and security features
The NIN slip includes a 2D barcode that contains encoded identity data. That barcode is often tiny, less than 2 cm wide and becomes unscannable when the paper is creased at that exact spot. Voter’s cards (PVCs) embed text in tightly packed fields that blur when photographed with a mid-range phone camera.
4. Low contrast environments
In a brightly lit bank branch, a document scanner might work fine. But a user at home, in a room illuminated by a single bulb, photographing an ID with a phone camera that has a scratched lens, that’s the reality.
Global tools rarely account for low contrast, low resolution captures.
What Good Nigerian OCR Needs to Do
Solving these challenges isn’t about “better AI” in the abstract. It’s about understanding the specific failure modes and building for them. A document verification system built for Nigeria should:
Detect document type automatically: NIN slip, old vs. new driver’s licence, passport, PVC, utility bill. No manual selection required.
Read through lamination and glare: Algorithms must compensate for reflective surfaces, faded text, and yellowed plastic.
Work at low resolution: Many users phones capture images at sub-optimal resolution. The OCR must still extract text accurately.
Handle crumpled and creased documents: The model must be robust to geometric distortions and text that crosses folds.
Extract the face photo: Not just text, it should pull out the portrait for subsequent face matching.
Return structured data: Name, DOB, document number, gender, expiry date formatted consistently so your backend doesn’t need parsing gymnastics.
Provide cryptographic proof: A tamper-proof record that the scan happened and what data was extracted, to satisfy auditors.

How Veris Scan Was Built for Nigerian Realities
Veris Scan isn’t a repackaged global OCR model. It was trained from scratch on thousands of document samples, crumpled, laminated, faded, and pristine, across nine document types.
Here’s what that means in practice:
When a user points their phone at a NIN slip, Veris Scan automatically identifies the document type, scans the barcode (if legible), and extracts the text fields even if the card is laminated and yellowed.
It works on the device itself, processing is local, not dependent on a cloud roundtrip, which improves speed and works in low-connectivity areas.
The extracted data is returned as a clean JSON object: {"firstName": "Chidi", "lastName": "Okeke", "docNumber": "12345678901"}. No manual cleanup necessary.
The face photo is pulled as a base64 encoded JPEG, ready for the face comparison step.
Every scan result is cryptographically signed, so you can prove to a regulator exactly what was captured and when.
Real World OCR Flow
Here’s how a typical KYC flow looks with Veris Scan integrated:
User opens your app and reaches the identity verification screen.
They hold up their NIN slip.
Veris Scan auto-detects the document, guides the user to hold steady, and auto-captures the best frame.
In under two seconds, your backend receives: extracted personal details, a portrait image, and a signed scan proof.
Immediately after, Veris Capture takes a live selfie for liveness, and Veris Compare matches the two face images.
The user never types a single field, and you get structured, verifiable data that’s accurate enough to satisfy compliance.
The Bottom Line
Nigerian identity documents aren’t going to change overnight. They will continue to be printed on regular paper, laminated, folded, and faded. That doesn’t mean your fintech has to suffer poor data extraction or high drop-off at onboarding.
Instead of using tools designed for another continent’s documents, use an OCR engine built for the documents your users actually carry.
👉 Ready to scan Nigerian IDs accurately?
Start with Veris
Frequently asked questions
Which Nigerian IDs can Veris Scan read?
NIN Slip, National ID Card (NIMC), Driver's Licence, International Passport, and Voter's Card, plus address documents like utility bills and bank statements.
Does the OCR work offline?
Yes. Veris Scan runs entirely on-device with no image upload, which improves privacy and works on poor connections.
Does Veris Scan confirm a document is genuine?
No. Scan extracts data, it is not a document-authentication product. Pair it with liveness and face matching to confirm the holder.



