The Incode Onboarding Cordova Plugin adds end-to-end identity verification to your Cordova, Capacitor, or Ionic app: document and ID capture with OCR, selfie and video-selfie liveness, face match, and NFC e-passport reading. The UI is fully themeable, so onboarding looks and feels like your product. The plugin is distributed via the CordovaPluginReleases GitHub repository. Cordova apps install with the Cordova CLI; Capacitor and Ionic apps install via npm from the same repository, then sync native projects. Standard and NFC variants are available.
Start here
| If you want to... | Go to |
|---|---|
| Add the plugin to your project | Installation |
| Get an onboarding flow running | Common Implementation Patterns |
| Authenticate a returning user | Face Login |
| Browse available modules | Modules |
| See the result payloads modules return | Results |
| Customize colors, fonts, and text | Customization |
| Browse the full public API | API Reference |
| Solve a build problem | Known Issues |
Platform support
| Platform | Requirement |
|---|---|
| Cordova | Node.js 18+, Cordova CLI 11+ |
| Ionic + Cordova | Node.js 18+, Ionic CLI, Cordova CLI |
| Ionic + Capacitor / Capacitor | Node.js 18+, @capacitor/cli 7+ |
| Android | API 21+, compileSdk 35, Java 11+ |
| iOS | iOS 13+ |
Quick install
Standard variant:
cordova plugin add "https://github.com/Incode-Technologies-Example-Repos/CordovaPluginReleases.git#release/[VERSION]"
cordova plugin add cordova-plugin-camera # required (ID and face capture)
cordova plugin add cordova-plugin-geolocation # only if using the geolocation module
npm install github:Incode-Technologies-Example-Repos/CordovaPluginReleases#release/[VERSION]
npm install @capacitor/camera # required (ID and face capture)
npm install @capacitor/geolocation # only if using the geolocation module
npx cap sync
ionic cordova plugin add "https://github.com/Incode-Technologies-Example-Repos/CordovaPluginReleases.git#release/[VERSION]"
ionic cordova plugin add cordova-plugin-camera # required (ID and face capture)
ionic cordova plugin add cordova-plugin-geolocation # only if using the geolocation module
NFC variant (NFC-capable hardware required):
cordova plugin add "https://github.com/Incode-Technologies-Example-Repos/CordovaPluginReleases.git#release/[VERSION]-nfc"
cordova plugin add cordova-plugin-camera # required (ID and face capture)
cordova plugin add cordova-plugin-geolocation # only if using the geolocation module
npm install github:Incode-Technologies-Example-Repos/CordovaPluginReleases#release/[VERSION]-nfc
npm install @capacitor/camera # required (ID and face capture)
npm install @capacitor/geolocation # only if using the geolocation module
npx cap sync
ionic cordova plugin add "https://github.com/Incode-Technologies-Example-Repos/CordovaPluginReleases.git#release/[VERSION]-nfc"
ionic cordova plugin add cordova-plugin-camera # required (ID and face capture)
ionic cordova plugin add cordova-plugin-geolocation # only if using the geolocation module
Android and iOS require additional per-platform setup.
Info
Capacitor note
Cordova install hooks do not run. You must manually configure the Android Maven repository and iOS Podfile sources. See Installation for details.
How the SDK fits together
The plugin supports three integration patterns. They differ in where the flow is defined and how much control your app keeps while the flow runs.
Pattern 1: Configure flows locally and run end to end
You build a flowConfig in app code describing the modules you want (ID scan, selfie, face match, and so on) and pass it to startOnboarding(). The SDK owns the UI from the first screen to the last and returns the aggregated result in the success callback. Use this pattern when you want the simplicity of a single SDK call and your app doesn't need to intervene between modules.
See Configure Flows Locally and Run End to End for the details.
Pattern 2: Configure flows locally and run step by step
You run modules in named sections and return control to your app between sections. The SDK still owns each module screen (camera UI, capture experience, on-device guidance), but your app owns the shell around them: navigation, your own intro and transition screens, and when each section launches. Use this pattern when you need to interleave Incode steps with your own screens or run only part of a flow.
See Configure Flows Locally and Run Step by Step for the details.
Pattern 3: Run Flows configured online
You build a Flow or Workflow on the Incode Dashboard and pass its configurationId to startFlow() or startWorkflow(). The SDK owns the UI from the first screen to the last and returns the result in the success callback. Use this pattern when you want to update flow behavior from the Dashboard without redeploying your app.
See Run Flows Configured Online for the details.
Variants
The plugin has two variants, so you only ship what you use.
| Variant | Description |
|---|---|
| Standard | Default variant. Covers all modules except NFC. |
-nfc |
Adds NFC chip reading for ePassports and eIDs. Requires NFC-capable hardware. |
See Installation for how to install each variant.
What the plugin can do
- Identity capture: ID scan, document capture, and OCR data extraction.
- Liveness and biometrics: selfie capture, video selfie, liveness detection, and face match.
- NFC and e-passport: reads the chip in passports and supported ID documents (
-nfcvariant only). - Authentication: standalone Face Login for returning users. See Face Login.
- Customization: theming, localization, and custom assets so the experience matches your brand. See Customization.
Need help?
- Hit a build or runtime error? See Known Issues.
- Looking for a specific method or parameter? See API Reference.
- Still stuck? Contact your Incode representative or email help@incode.com.