Modules
← Back to Documentation Index
Modules are the building blocks of an onboarding flow. They are passed in the flowConfig array (used by startOnboarding and startOnboardingSection), each as an object with a module key plus any parameters:
{ module: "addId", showIdTypeChooser: "false", idType: "passport" }All boolean parameters are passed as strings (
"true"/"false"), and all integer parameters are passed as strings too (e.g."3"). This matches how the native bridge expects them.
For the result object each module produces, see Results.
Table of Contents
UI Modules
addPhone
What it does: Collects and verifies the user's phone number.
When to use: When you need a phone number as part of identity collection.
Parameters
- None.
{ module: "addPhone" }addEmail
What it does: Collects the user's email address, optionally verifying it via OTP.
When to use: When you need an email address, optionally with verification.
Parameters
otpVerificationEnabled: Enable OTP email verification. String"true"/"false". Default is"false".
{ module: "addEmail", otpVerificationEnabled: "true" }addGeolocation
What it does: Captures the user's geolocation and derived address fields.
When to use: When you need to capture the user's location/address.
Parameters
isSkippable: Allow user to skip geolocation. Whentrue, skipping or denying location permission advances the flow instead of ending the session with a permission error. String"true"/"false". Default is"false".
{ module: "addGeolocation", isSkippable: "true" }Note: Requires the cordova-plugin-geolocation companion plugin.
addUserConsent
What it does: Displays a consent screen with a custom title and body and records the user's response.
When to use: When you need explicit user consent (e.g. terms, privacy policy).
Parameters
title: Consent screen title. String, required.content: Consent body text. String, required.
{ module: "addUserConsent", title: "Privacy Policy", content: "I agree to the terms..." }addMachineLearningConsent
What it does: Captures consent for machine-learning / biometric processing under the chosen legal framework.
When to use: When you must collect ML/biometric consent (e.g. US BIPA or GDPR).
Parameters
consentType:"US"or"GDPR". Default is"US".
{ module: "addMachineLearningConsent", consentType: "GDPR" }addId
What it does: Captures and processes the user's identity document (front and back). Automatically adds processId internally to extract OCR data.
When to use: Whenever you need ID document capture and OCR. This is the core document step.
Parameters
showTutorials: Show capture tutorials. String"true"/"false". Default is"true".waitForTutorials: Wait for tutorial animation. String"true"/"false". Default is"true".idCategory:"FIRST"or"SECOND". Default is"FIRST".idType:"id"or"passport". Default: not set (user chooses).showIdTypeChooser: Show document type chooser screen. Whenfalse, hides the chooser (you must setidTypeor configure it on the dashboard). String"true"/"false". Default is"true".enableFrontShownAsBackCheck: Detect front shown as back. String"true"/"false". Default is"false".enableBackShownAsFrontCheck: Detect back shown as front. String"true"/"false". Default is"false".
{
module: "addId",
showTutorials: "true",
waitForTutorials: "false",
idCategory: "FIRST",
idType: "passport",
showIdTypeChooser: "false",
enableFrontShownAsBackCheck: "true",
enableBackShownAsFrontCheck: "true"
}Notes:
addIdautomatically addsprocessIdinternally — do not addprocessIdseparately.- Since 4.2.0, the document chooser visibility is controlled only by
showIdTypeChooser(or the dashboard flag). SettingidTypealone no longer hides the chooser. - This module produces
frontIdData,backIdData, andprocessIdDataresults.
addSelfieScan
What it does: Captures a selfie with liveness and configurable face checks.
When to use: For selfie capture in a fresh onboarding flow (e.g. before face match).
Parameters
showTutorials: Show selfie tutorials. String"true"/"false". Default is"true".waitForTutorials: Wait for tutorial animation. String"true"/"false". Default is"true".cameraFacing:"FRONT"or"BACK". Default is"FRONT".maskCheckEnabled: Enforce face mask check. String"true"/"false". Default is"true"(changed in 4.5.0).lensesCheckEnabled: Check for glasses/lenses. String"true"/"false". Default is"false".headCoverCheckEnabled: Check for head coverings. String"true"/"false". Default is"false".eyesClosedCheckEnabled: Check for closed eyes. String"true"/"false". Default is"false"(added 4.5.0).
{
module: "addSelfieScan",
showTutorials: "true",
waitForTutorials: "false",
maskCheckEnabled: "true",
lensesCheckEnabled: "true",
eyesClosedCheckEnabled: "true"
}Note: As of 4.5.0, maskCheckEnabled defaults to "true". To preserve previous behavior, explicitly set it to "false".
addFaceAuthentication
What it does: Performs a selfie scan to authenticate a returning user against an enrolled face.
When to use: As a standalone authentication step. It is not a replacement for addSelfieScan in a fresh onboarding flow.
Parameters
showTutorials: Show tutorials. String"true"/"false". Default is"true".autoCaptureTimeout: Auto-capture timeout in seconds. String integer. Default is platform default.captureAttempts: Max capture attempts. String integer. Default is platform default.eyesClosedCheck: Check for closed eyes. String"true"/"false". Default is"true"(changed in 4.5.0).headCoverCheck: Check for head coverings. String"true"/"false". Default is"true"(changed in 4.5.0).lensesCheck: Check for glasses/lenses. String"true"/"false". Default is"true"(changed in 4.5.0).faceMaskCheck: Check for face mask. String"true"/"false". Default is"true"(changed in 4.5.0).
{
module: "addFaceAuthentication",
showTutorials: "false",
autoCaptureTimeout: "3",
captureAttempts: "3",
eyesClosedCheck: "true",
headCoverCheck: "true",
lensesCheck: "true",
faceMaskCheck: "true"
}Note: As of 4.5.0, faceMaskCheck, headCoverCheck, lensesCheck, and eyesClosedCheck all default to "true". Set them to "false" to preserve previous behavior.
addFaceMatch
What it does: Compares the captured selfie against the document or NFC face to confirm identity.
When to use: After capturing a selfie (and ID and/or NFC) to verify they belong to the same person.
Parameters
matchType:"idSelfie","nfcSelfie", or"nfc3Way". Default is"idSelfie".showLivenessResult: Show liveness result screen. String"true"/"false". Default is"false".
{ module: "addFaceMatch", matchType: "idSelfie", showLivenessResult: "true" }Note: matchType: "nfcSelfie" or "nfc3Way" requires addNFC to have run first (NFC plugin variant).
addVideoSelfie
What it does: Records a video selfie with optional liveness, ID/document scan, and voice consent.
When to use: For higher-assurance flows combining video liveness with optional ID capture and voice consent.
Parameters
showTutorials: Show tutorials. String"true"/"false". Default is"true".selfieLivenessCheckEnabled: Enable liveness detection. String"true"/"false". Default is"true".selfieMode:"faceMatch"or"selfieMatch". Default is platform default.idScanEnabled: Enable ID scan during video. String"true"/"false". Default is"true".idValidationEnabled: Enable ID validation. String"true"/"false". Default is platform default.documentScanEnabled: Enable document scan. String"true"/"false". Default is"false".voiceConsentEnabled: Enable voice consent questions. String"true"/"false". Default is"false".voiceConsentQuestionCount: Number of voice consent questions. Set to"0"to disable. String integer. Default is platform default.minVideoLengthRequired: Require minimum video length. String"true"/"false". Default is platform default.disableAudio: Disable audio recording. String"true"/"false". Default is"false".enableFrontShownAsBackCheck: Detect front shown as back. String"true"/"false". Default is"false".enableBackShownAsFrontCheck: Detect back shown as front. String"true"/"false". Default is"false".
{
module: "addVideoSelfie",
showTutorials: "true",
selfieLivenessCheckEnabled: "true",
idScanEnabled: "true",
voiceConsentEnabled: "true",
voiceConsentQuestionCount: "2",
disableAudio: "false"
}Note: Set the voice consent language via the voiceConsentLanguage field of sessionConfig ("en", "es", "pt", "he").
addNFC
What it does: Reads the contactless chip (MRZ + chip data) of an ePassport or eID document.
When to use: When you need to read NFC chip data, e.g. for nfcSelfie / nfc3Way face match.
Available only in the NFC plugin variant (
-nfcsuffix) and only on NFC-capable hardware.
Parameters
idType:"id"or"passport". Default is platform default.showNFCSymbolConfirmationScreen: Show NFC symbol screen. String"true"/"false". Default is"true".showInitialDataConfirmationScreen: Show data confirmation screen. String"true"/"false". Default is"true".processNFCData: Process NFC data server-side. String"true"/"false". Default is"true".
{
module: "addNFC",
idType: "passport",
showNFCSymbolConfirmationScreen: "false",
showInitialDataConfirmationScreen: "false",
processNFCData: "false"
}addDocumentScan
What it does: Captures a supporting document (e.g. proof of address).
When to use: When you need additional documents beyond the primary ID.
Parameters
documentType:"ADDRESS_STATEMENT","PAYMENT_PROOF","MEDICAL_DOC","OTHER_DOCUMENT_1","OTHER_DOCUMENT_2","OTHER_DOCUMENT_3". Default is"ADDRESS_STATEMENT".
{ module: "addDocumentScan", documentType: "PAYMENT_PROOF" }addSignature
What it does: Captures the user's handwritten signature.
When to use: When you need a signature as part of the onboarding.
Parameters
- None.
{ module: "addSignature" }addGovernmentValidation
What it does: Validates the captured identity against a government data source.
When to use: When government-source validation is required for the region.
Parameters
- None.
{ module: "addGovernmentValidation" }addEKYC
What it does: Runs an electronic KYC check against the selected attributes.
When to use: When you need to verify specific user attributes against external data.
Parameters
checkName: Verify name. String"true"/"false". Default is"false".checkEmail: Verify email. String"true"/"false". Default is"false".checkAddress: Verify address. String"true"/"false". Default is"false".checkPhone: Verify phone. String"true"/"false". Default is"false".checkSsn: Verify SSN / Tax ID. String"true"/"false". Default is"false".checkDob: Verify date of birth. String"true"/"false". Default is"false".checkNationality: Verify nationality. String"true"/"false". Default is"false".
{
module: "addEKYC",
checkName: "true",
checkAddress: "true",
checkDob: "true"
}addAntifraud
What it does: Runs Incode's antifraud checks on the session.
When to use: When you want to add fraud-signal analysis to the flow.
Parameters
- None.
{ module: "addAntifraud" }CURPValidation
What it does: Validates the user's CURP (Mexico's unique population registry code).
When to use: Mexico only.
Parameters
validationEnabled: Enable CURP validation. String"true"/"false". Default is"true".
{ module: "CURPValidation", validationEnabled: "true" }Non-UI Modules
Non-UI modules run without presenting any screen. They are typically used inline within a startOnboardingSection flowConfig.
userScore / getUserScore
What it does: Fetches the identity verification score inline as part of a section.
Parameters
mode:"fast"or"accurate".
{ module: "userScore", mode: "fast" }You can also fetch the score outside a section via the
getUserScoreAPI.
approve
What it does: Approves the session server-side without UI.
Parameters
- None.
{ module: "approve" }faceMatch (non-UI)
What it does: Performs a server-side face match without showing any UI.
Parameters
- None.
{ module: "faceMatch" }A standalone
faceMatchAPI is also available.
Note on
finishOnboarding: This is not a module. To finalize a session, call thefinishOnboardingAPI directly.
Module Interdependencies
addIdaddsprocessIdautomatically. Do not addprocessIdas a separate module.addFaceMatchwithmatchType: "nfcSelfie"or"nfc3Way"requiresaddNFCto have run first. The selfie/NFC data must already be captured.addNFCrequires the NFC plugin variant (-nfcsuffix) and NFC-capable hardware.addFaceAuthenticationis a standalone authentication step, not a replacement foraddSelfieScanin a fresh onboarding flow. UseaddSelfieScan(+addFaceMatch) for new-user enrollment andaddFaceAuthenticationto re-authenticate an existing user.
