Android - SDK Implementation Guide¶
EnQualify Android SDK provides remote identity verification capabilities to your mobile application. This SDK, consisting of OCR, NFC, facial recognition, and video call modules, supports self-service, hybrid, and fully representative supported flows.
What’s in This Document?¶
| Section | What You Will Find? |
|---|---|
| Getting Started | Requirements, Maven setup, project configuration |
| Core Module | BaseModel, SessionModel, SSL certificate, audio files management |
| OCR Module | ID card and passport reading |
| NFC Module | Contactless chip reading (RFID) |
| Face Module | Liveness check and face comparison |
| VideoCall Module | Customer-representative video calling |
| Utility Module | Appointment, document signing, address verification, KYB |
| UI Customization | Interface parameters through backoffice |
Overview of the SDK¶
Modular Structure¶
EnQualify SDK consists of independent modules. Each module can be installed separately; however, all depend on the Core Module.
CoreModule (mandatory core)
├── OCRModule → ID card / passport reading
├── NFCModule → NFC chip reading
├── FaceModule → Liveness and face comparison
├── VideoCallModule → Video call
└── UtilityModule → Utility services
Which Module Do You Need?¶
You can choose the module based on the flow of your application:
| Flow Type | Required Modules |
|---|---|
| Just ID reading (OCR) | Core + OCR |
| OCR + NFC chip verification | Core + OCR + NFC |
| Full self-service (OCR + NFC + Face) | Core + OCR + NFC + Face |
| Full flow with video call | Core + OCR + NFC + Face + VideoCall |
| Appointment / document signing | Core + Utility |
ℹ️ If you want to use the repeat feature of OCR and Face in the VideoCall flow, the OCR and Face modules must also be added to the project.
Minimum Requirements¶
| Parameter | Value |
|---|---|
| Minimum Android SDK | API 25 (Android 7.1) |
| Supported Architectures | armeabi-v7a, arm64-v8a |
| Build System | Gradle (Kotlin DSL recommended) |
| Emulator Support | Compiles; however, flows requiring camera/NFC do not work |
Installation¶
The SDK is added to the project via Maven. Access credentials (repo URL, username, password) will be provided to you. Detailed installation steps can be found on the Getting Started page.
Core Concepts¶
Initialization Lifecycle¶
Each module follows the same initialization lifecycle: after initialize() is called, the SDK automatically manages the steps of token creation → session login → fetching settings in order. When all steps are completed, the initializeCompleted(module: EnModules) callback is triggered; at this point, operations related to the module can be initiated.
In case of error, there is a separate callback for each step: tokenCreateFailed(), sessionAddFailed(), settingsGetFailed(). Please refer to the Core Module page for details.
ℹ️ The Utility Module is different from this flow: it does not receive
SessionModel, it is only initialized withBaseModeland becomes ready with thebaseModelCompleted()callback.
Callback Structure¶
The SDK communicates results and errors through the callback (interface) pattern. Each module has its own Callbacks interface that needs to be implemented in the relevant Activity.
Fragment & FrameLayout¶
All modules manage camera screens and page transitions through a FrameLayout. A full-screen FrameLayout must be present in the layout of the relevant Activity.
SSL Security¶
The SDK implements a two-layer security: SSL pinning (against man-in-the-middle attacks) and RSA signing renewed per session. The certificate configuration is done through the BaseModel.signallingCertificateList and mapiCertificateList fields. Disabling SSL pinning in live environments is strongly discouraged.
Singleton Structure¶
All modules operate as singletons. The instance created with initialize() can be accessed throughout the application session using getInstance(). A new session will not be created if there is an existing session.
Quick Start Steps¶
If you are adding the EnQualify SDK to your project for the first time, follow this sequence:
- Getting Started → Obtain Maven access credentials, configure
libs.versions.tomlandsettings.gradle.kts - Getting Started → Add permissions in
AndroidManifest.xml, configure NFC and camera settings - Core Module → Define
BaseModelandSessionModel - Proceed to the relevant module’s page → Call
initialize(), implement the callbacks, start the flow
For your questions or any issues you encounter during integration, you can contact our support team.