NFC Reader Android SDK


Using e-passport reader Android SDK, it will be easy to communicate with an electronic passport using the NFC chip and capture its data.

The SDK uses JMRTD as an open source Java implementation of the Machine Readable Travel Document (MRTD) standards as specified by the International Civil Aviation Organization (ICAO). The electronic passport (e-passport) is an implementation of these standards with the data on the identity page encoded in optical character recognition format.

Add this SDK in your project and integrate your application with 'passport-nfc-android-sdk seamlessly.

Data Elements Existing on E-Passport Chip

The chip memory is logically divided into two main regions—one is accessible from outside of the chip (via wireless communication), the second one provides a part of security by hiding its content—the hidden content is available only for internal functions of the chip.

The part of memory available for reading provides sixteen separated data groups (labelled as DG1, DG2,…, DG16—see Figure 1). Each group incorporates different data. E-Passport reader SDK provides NFC chip data based on DG1, DG2, DG7, DG11 and DG12 groups from this sheet.

Figure 1 : Memory data groups of e-passport chip

How to Capture Data from E-Passport Chip

In order to get e-passport NFC chip data, you need to:

  • Have a NFC supported Android device with active NFC feature on
    One way to check if your phone has NFC capabilities is to go into phone settings. Generally, there will be a search bar at the top; once selected into the search bar, type “NFC,” which will bring you to the NFC settings and gives you the feature activation option.
  • Detect e-passport NFC chip using the activated NFC feature
    ICAO9303  allows for eight different locations and orientations as the position of the e-passport chip which include the data page, front or back cover and — perhaps less intuitively — between visa pages so, generally, you should be able to detect the chip by putting your phone on top of the e-passport front cover and moving it around for a couple of seconds. In case no chip detection occurred, you might have to try other options like chip centre page (See Figure 2) .

Figure 2: E-Passport Chip Centre Page

  • Get access to NFC chip data
    To protect the privacy of the e-passport holder, data on the chips are generally protected by an access control mechanism. In basic terms, the access control mechanism denies access to the chip contents unless the inspection system can prove that it is authorised to access the chip. E-Passport reader SDK tries to acquire this “proof of authorization” by providing some key information found on the data page of the e-passport booklet including ‘passport number’, ‘date of birth’ and ‘date of expiry’.

Integrate the SDK into Your Android App

You can find the instruction of integrating your Android application with e-passport reader SDK in the following recipe:

Build React Native Android Library for the SDK

You can find the instruction of building a wrapper for e-passport reader SDK and using it in your react native your application in the following recipe:

Compatibility and Versioning

E-Passport reader SDK is valid for Android version 5.0 and up (with android:minSdkVersion="21" and android:targetSdkVersion="33"). Also, the latest version of the SDK is '1.0.0'.