OptimageOptimage
Image Optimization

Why Your Nigerian Fintech KYC Upload Keeps Failing (It's Usually the Photo, Not the Network)

Nigerian banks and fintechs reject a huge share of KYC document uploads for image reasons that have nothing to do with the ID itself — wrong resolution, stripped-too-hard compression, or metadata the compliance system flags. Here's the actual settings that pass on the first try.

Optimage
Optimage
·Updated July 2026
5 min read
TL;DR

Most Nigerian KYC upload failures aren't network problems — they're image problems. Compress an ID photo too aggressively to squeeze under a 2MB cap and the OCR engine can't read the document number anymore, so the system auto-rejects and asks for a resubmission. The fix is keeping resolution above 1200px on the long edge and compressing at quality 85, not lower.

Key Takeaways
  • OCR-based KYC verification needs at least 1200px on the long edge — anything smaller and the text-recognition step fails even if the ID is genuine
  • CBN's tiered KYC framework and the NDPR both push fintechs toward stricter document handling, which means more automated rejects for images that don't meet spec
  • GPS EXIF data in a selfie or ID photo is a real privacy liability under NDPR — strip it, but only after the OCR pass, not before
  • Over-compressing an ID photo to hit a small upload cap is the single most common cause of a 'document unreadable' rejection on Nigerian fintech apps
  • The fix is a two-pass workflow: verify legibility first, compress second, at quality 85 JPEG or better

A smartphone camera capturing a national ID card for a fintech verification upload, with the app's KYC screen visible in the background

If your BVN or NIN upload just got rejected by a Nigerian fintech app, the ID is probably fine — the file isn't. Most "document unreadable" or "please resubmit" errors on KYC flows for Kuda, Opay, PalmPay, Moniepoint, and the bank apps that sit behind them trace back to one thing: the photo was compressed hard enough to break OCR before it ever reached a human reviewer. That's a fixable problem, and it's worth fixing properly because a failed KYC attempt doesn't just cost you time — it often locks your tier upgrade or transaction limit until you resubmit and wait again.

Why KYC Uploads Are Stricter Than They Used to Be

The Central Bank of Nigeria's tiered KYC framework ties your transaction limits directly to how much identity documentation you've provided and how well it verifies. Tier 1 accounts (BVN only) cap out fast; Tier 2 and Tier 3 require government ID plus proof of address, and the verification step for those documents is now overwhelmingly automated OCR, not a person squinting at a photo. At the same time, the Nigeria Data Protection Regulation pushes fintechs to collect and retain less incidental data than they used to — which is good for users, but it means the systems are pickier about what counts as an acceptable document image versus what gets flagged and discarded.

Put those two things together and you get a KYC pipeline that's simultaneously stricter about legibility and stricter about what metadata it wants attached to your file. Most users only think about one side of that (making the photo look fine to their own eyes) and get tripped up by the other.

The Actual Failure Mode: Compression Before Legibility

Phone cameras on mid-range Android devices (the majority of the Nigerian market) produce ID photos in the 3-6MB range at default settings. A lot of KYC upload forms cap files at 1-2MB, either explicitly or implicitly through a slow-network timeout. Faced with that cap, people either let their phone's OS auto-compress the image on send, or the fintech's own upload widget re-encodes it client-side at an aggressive ratio to save bandwidth.

Either way, the compression algorithm doesn't know that the sixteen-digit number on your ID card matters more than the background gradient. It applies uniform quantization across the whole frame, and fine serif characters — which are only a handful of pixels wide to begin with — are exactly the kind of detail that JPEG blocking destroys first. The photo looks "fine" swiped past at thumbnail size. The OCR engine reading it at full resolution sees mush where the document number should be, and the system kicks it back.

The Two-Pass Workflow That Actually Passes

  1. Shoot flat, well-lit, no glare — a laminated ID under direct light bounces glare across exactly the text you need readable. Angle the card slightly or shoot in indirect light.
  2. Resize to 1200-1600px on the long edge, not smaller. This is above what most upload forms require but gives the OCR pass enough margin that a small amount of subsequent compression doesn't push it under the legibility floor.
  3. Compress at JPEG quality 82-88, never below 75 for a document photo. This is a different quality target than a casual social photo — text detail needs a higher floor than photographic detail does.
  4. Strip EXIF metadata last, after the image is finalized. Removing GPS and device metadata doesn't touch pixel data, so doing it last doesn't cost you anything, and it means you're not uploading your exact location alongside your national ID.
① Resize 1200-1600px long edge ② Compress JPEG quality 82-88 ③ Strip EXIF Remove GPS/device data

This Isn't Just a Consumer Problem

If you're a Nigerian fintech developer building the upload pipeline rather than a user fighting it, the same principle cuts the other way: don't let your client-side resize step run before a legibility check, and don't set your server-side compression quality by a single global default tuned for profile pictures. Document uploads deserve their own, higher quality floor in your pipeline. A support ticket volume analysis at almost any KYC-heavy Nigerian app would show "document unreadable, please resubmit" as one of the top five complaint categories — and a meaningful chunk of that is self-inflicted by over-aggressive compression settings, not actual bad photos from users.

What to Do Before Your Next Upload

Resize your ID photo to at least 1200px wide, compress at quality 85 rather than whatever your messaging app defaults to, and strip metadata as the final step, not the first. Optimage's compress tool lets you set an exact quality target instead of guessing, and the metadata tool strips EXIF data in a separate pass so you're not compounding quality loss with privacy cleanup in one lossy step.

Related reading:

Frequently asked questions

Why does my Nigerian fintech app keep rejecting my ID upload?

The most common cause isn't a bad photo of your ID — it's over-compression. Many apps set a hard file size cap, and when a phone's default camera output (often 3-4MB at 12MP) gets crushed down to fit under 1-2MB, the JPEG compression introduces blocking artifacts around fine text like ID numbers. The automated OCR verification step can't read the smudged characters and rejects the document, even though a human looking at it would say it's fine.

Should I strip location data from my KYC document photos before uploading?

Yes, but after you've confirmed the image is legible, not before. GPS EXIF data embedded in a phone photo tells the fintech (and anyone who later has access to that file) exactly where you were standing when you took it. Under NDPR's data minimization principle, there's no legitimate reason for a KYC processor to receive your GPS coordinates along with your ID photo. Strip the metadata as the last step, after resizing and compression, so you're not accidentally degrading the image while also editing its metadata.

Continue reading

Try Optimage — it's free

Compress, convert, and optimize images in seconds. No sign-up, no limits.

Start Optimizing Free
← Back to The Optimage Journal