Modules

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.

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

JavaScript

{ 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

JavaScript

{ 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

JavaScript

{ 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

JavaScript

{ 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

JavaScript

{ 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

JavaScript

{
  module: "addId",
  showTutorials: "true",
  waitForTutorials: "false",
  idCategory: "FIRST",
  idType: "passport",
  showIdTypeChooser: "false",
  enableFrontShownAsBackCheck: "true",
  enableBackShownAsFrontCheck: "true"
}

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

JavaScript

{
  module: "addSelfieScan",
  showTutorials: "true",
  waitForTutorials: "false",
  maskCheckEnabled: "true",
  lensesCheckEnabled: "true",
  eyesClosedCheckEnabled: "true"
}

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

JavaScript

{
  module: "addFaceAuthentication",
  showTutorials: "false",
  autoCaptureTimeout: "3",
  captureAttempts: "3",
  eyesClosedCheck: "true",
  headCoverCheck: "true",
  lensesCheck: "true",
  faceMaskCheck: "true"
}

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

JavaScript

{ module: "addFaceMatch", matchType: "idSelfie", showLivenessResult: "true" }

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

JavaScript

{
  module: "addVideoSelfie",
  showTutorials: "true",
  selfieLivenessCheckEnabled: "true",
  idScanEnabled: "true",
  voiceConsentEnabled: "true",
  voiceConsentQuestionCount: "2",
  disableAudio: "false"
}

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.

Parameters

JavaScript

{
  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

JavaScript

{ 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

JavaScript

{ 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

JavaScript

{ 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

JavaScript

{
  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

JavaScript

{ module: "addAntifraud" }

CURPValidation

What it does: Validates the user's CURP (Mexico's unique population registry code).

When to use: Mexico only.

Parameters

JavaScript

{ 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

JavaScript

{ module: "userScore", mode: "fast" }

approve

What it does: Approves the session server-side without UI.

Parameters

JavaScript

{ module: "approve" }

faceMatch (non-UI)

What it does: Performs a server-side face match without showing any UI.

Parameters

JavaScript

{ module: "faceMatch" }

Note on finishOnboarding: This is not a module. To finalize a session, call the finishOnboarding API directly.

Module Interdependencies