Skip to content
Owlstech

eKYC SaaS for Bangladesh

Bangladesh NID eKYC that runs on your own servers

Owlstech eKYC reads every Bangladesh NID card in Bangla and English, checks liveness with facial landmarks and matches faces. You subscribe; it runs inside your network, with no government API and nothing sent to us. Designed first for banks, and ready for any business that onboards customers with an NID.

  • No government API
  • Runs offline on your servers
  • Old laminated and smart NID
  • Android and iOS
SmileTurn left

Turn your head to the left

Designed first for banks, open to every business that verifies customers with an NID

  • Banks
  • Mobile financial services
  • Fintechs and NBFIs
  • Microfinance
  • Insurers
  • Telecom operators
  • Any business onboarding customers with an NID

We do not use any government API

Owlstech eKYC does not connect to or use any government API or database, including the Election Commission's NID server. It reads the card the customer shows, checks liveness and compares faces with facial-landmark and face-recognition models on your own server. It does not prove that a card is genuine or verify a person against a government registry. If your institution has its own authorised access to NID photos, face match can compare the selfie with that photo.

Every Bangladesh NID

Old laminated, new laminated and smart cards

One flow for every NID card in use. The card type is recognised from the photo, and a front and back from different card types are refused.

Old laminated NID

17-digit NID number

PDF417 barcode on the back

Old laminated NID

13-digit NID number

PDF417 barcode on the back

Newer laminated NID

10-digit NID number

PDF417 barcode with the 17-digit PIN

Smart NID card

10-digit NID number

Machine-readable zone (MRZ) on the back

What is read from each card

  • Name in Bangla and English
  • Father's, mother's or guardian's name
  • Date of birth
  • NID number
  • Address, in full and in parts
  • Blood group, place of birth and issue date, where printed

Features

Everything onboarding needs, from card to face

Your app shows the screens; your server reads the card and makes every decision.

Bangla and English OCR

Reads both languages on the card on your server, including the Bangla address split into house, road or village, post office, upazila and district.

Front and back cross-check

The barcode or MRZ on the back is read and compared with the printed text. A front and back from different cards are blocked.

Guided capture

An alignment frame, photo review and retake. The server says when a side needs a better photo, so bad captures never reach your records.

Field rules you set

Make each field required, optional or off, and require the front and back to match before a scan passes.

Review with an audit trail

Your app can let customers correct a reading; the original machine result stays attached to the result.

Evidence for compliance

OCR lines, confidence, where each field came from, barcode evidence and consistency warnings, plus process logs keyed by request ID.

Your brand, your words

The screens follow your app's theme, and every text can be replaced, in Bangla or English.

Flutter SDK for Android and iOS

One SDK for the front, back and liveness screens. Apps hold only an app key, never the server licence.

Liveness and face match

Landmark-based checks, decided by your server

The phone guides the person; your server decides. A modified app cannot pass a check the server did not see.

Liveness

  1. 1Your server picks two challenges for every check: a smile, a blink or a head turn.
  2. 2Facial landmarks follow each move, measured against the person's own resting face.
  3. 3Anti-spoofing models score every frame for signs of a printed photo or a screen.
  4. 4The same single person must stay in view from the first step to the selfie.
  5. 5Evidence reused from another check is refused.
  6. 6A passed check returns a short-lived proof tied to that exact selfie.

Face match

  1. 1Faces are aligned on five facial landmarks and compared with a face recognition model.
  2. 2The reference photo is compared with the selfie and with the resting face from each liveness step.
  3. 3Runs only with a valid liveness proof for that selfie, so an old or borrowed photo cannot stand in for it.
  4. 4You set the pass mark; an app can ask for a stricter one, never a looser one.
  5. 5Close calls, such as siblings, are flagged for a person to review instead of passing.

How it works

From card to verified face in four steps

  1. 01

    Capture the card

    Your Flutter app shows the SDK's front and back screens. The customer fits the card in the frame.

  2. 02

    Read and cross-check

    Your server reads Bangla and English text and the barcode or MRZ, and checks that both sides belong to one card.

  3. 03

    Prove liveness

    The customer follows two challenges; your server checks every step and the selfie, and issues a proof.

  4. 04

    Match the face

    With that proof, your server compares the selfie with the reference photo and returns the result to your app.

The demo app

What your customers see

The capture and liveness screens come from the SDK and take your app's colours and texts.

Front of the NID

Fit the card inside the frame

Front of the NIDFit the card in the frame and take the photo.

Back of the NID

Fit the card inside the frame

Back of the NIDThe barcode or MRZ is read with the back.
SmileTurn left

Turn your head to the left

Liveness checkTwo challenges picked by your server.

Review your details

Barcode matches the front

Name (Bangla)

Name (English)

Date of birth

NID number

Address

Confirm
ReviewEvery field, with the front and back cross-checked.

Face match

Selfie

Reference

Match

Liveness proof
Face identity
Live frames
Single face in each photo
Face matchThe selfie compared with the reference photo.

Screens are illustrated. Download the demo app to try the real ones.

Try it

Download the demo app

The demo app runs the full flow against the Owlstech demo server: card capture, OCR, liveness and face match.

  1. 1Download the app and allow your browser to install it.
  2. 2Open it and scan the front and back of an NID.
  3. 3Follow the liveness check, then try face match.

The demo sends images to our demo server. Use your own card or a sample card, never a customer's.

Deployment

SaaS you subscribe to, running inside your network

You get a server image and a licence. It runs on your hardware, under your control, and your data never reaches us.

Runs on the servers you already have

Operating systemContainer runtime
Ubuntu, DebianDocker Engine
RHEL, Rocky, AlmaLinuxPodman or Docker
Windows ServerDocker Desktop or WSL2

Works without internet

Every model ships inside the image and nothing is downloaded at run time, so it runs on closed networks.

Offline licence

A signed licence is checked on the server itself, with no call home. Renewing needs only a new key.

Private by design

Images go only from your app to your server, and field values stay out of the logs unless you turn them on.

Hardened container

Compiled server code, a read-only filesystem, a non-root user and no public API description.

amd64 and arm64

Runs on Intel, AMD and ARM servers on CPU, with an optional GPU image.

Updates keep your licence

New versions are loaded next to the old one, which stays available for rollback.

Pricing

One subscription, every feature

From ৳8,000 a month. The minimum purchase is 3 months; longer terms cost less per month.

3 months

৳8,000/ month

৳24,000 paid for 3 months

Minimum purchase: 3 months

Subscribe for 3 months

6 months

৳7,500/ month

৳45,000 paid for 6 months

You save ৳3,000

Subscribe for 6 months
Best value

12 months

৳7,000/ month

৳84,000 paid for 12 months

You save ৳12,000

Subscribe for 12 months

Custom integration

Need something beyond the Flutter SDK, such as a native Android or iOS app, a web flow, a different workflow or help fitting it into your onboarding? Tell us what you need.

Contact us

Every plan includes

  • Server image for amd64 and arm64, every model inside
  • Offline licence for the whole term
  • Flutter SDK for Android and iOS
  • Bangla and English OCR for every NID card type
  • Server-verified liveness and face match
  • Updates during the term, keeping your licence
  • Installation guide

Prices are in Bangladeshi taka (BDT). The minimum purchase is 3 months.

FAQ

Common questions

Do you use the government (Election Commission) NID API?

No. Owlstech eKYC does not connect to or use any government API or database. It reads the card the customer shows, checks liveness and compares faces on your own server. If your institution has its own authorised access to NID photos, face match can compare the selfie with that photo.

Where do card images and selfies go?

Only from your app to the server you run. The server needs no internet access and downloads nothing, and field values are not written to its logs unless you turn that on.

Which NID cards does it read?

Every Bangladesh NID in use: old laminated cards with 17- or 13-digit numbers, newer laminated cards with 10-digit numbers, and smart NID cards.

Does it prove a card is genuine?

No. It reads the card and cross-checks the printed text with the barcode or MRZ. It is not a document authenticity check and does not verify a person against a government registry.

How are liveness and face match done?

The server picks two challenges (smile, blink or a head turn), follows each move with facial landmarks and scores every frame with anti-spoofing models. Face match aligns faces on five landmarks and compares them with a face recognition model, and it only runs with the proof of a passed liveness check.

Which servers can run it?

Any server that runs Linux containers: Ubuntu and Debian with Docker, RHEL, Rocky and AlmaLinux with Podman or Docker, and Windows Server with Docker Desktop or WSL2. Intel/AMD (amd64) and ARM (arm64), on CPU, with an optional GPU image.

Which apps can use it?

Today the SDK is for Flutter apps on Android and iOS (iOS 15.5 or newer).

What happens when the subscription ends?

The server stops accepting requests until you renew. Renewing needs only a new licence key, not a new installation.

Owlstech

Ready to run eKYC inside your organisation?

Tell us about your app and your servers, and we will get back to you about a subscription.