SDK reference · iOS SDK / iOS Individual Modules

Modules

The Incode iOS SDK is composed of single-purpose modules. You assemble an onboarding flow by adding modules to an IncdOnboardingFlowConfiguration, passing it to startOnboarding(...), and receiving each module's output through your IncdOnboardingDelegate. This page lists each module by category.

Info

Terminology

"Module" here refers to an onboarding step, such as ID Capture or Video Selfie. You add them in code with flowConfig.addXxx(...).

This is different from the SDK build variants (-l, -nfc, -vc, -sna) that you select at installation to include optional capabilities such as Login, NFC, Video Conference, or Silent Network Authentication. The Variant column below tells you which variant each module needs. Anything marked "All" ships with the core SDK.

Each module is configured through its addXxx(...) builder and returns its result through a dedicated callback on the delegate. The only required callbacks are onSuccess() and onError(_:). The linked pages cover detailed configuration for each module. See Flow Configuration for the full builder catalog.

Most modules ship a legacy (v1) and a new (v2) UI; the active one is selected by the SDK. See Customization.

Danger

Ordering Matters

Some modules depend on others running earlier in the flow. For example, ID OCR and Process ID run after ID Capture; NFC runs after ID Capture and Process ID; and Face Match runs after Selfie and at least one document-capturing module. See each module's page for its exact ordering requirements.

The following tables can help you choose which modules to use. They are divided by category. Module descriptions are general; exact behavior depends on your Flow or Workflow configuration.


Collect Identity Data

These modules gather raw inputs from users. Most simply receive and record without a pass/fail outcome, though Phone and Email can optionally verify ownership with a one-time password (OTP).

Module Description Variant
Document Capture Captures a supplementary document, such as a proof of address document, medical document, or bank statement. Users can upload a file or take a photo of the document with their device's camera. In Dashboard, this is the Document Capture module. All
Dynamic Forms Presents one or more custom screens to collect information from a user. In Dashboard, this is the Forms and Data Entry module. All
Email Collects a user's email address and can confirm email ownership by sending a one-time password (OTP) to that address. In Dashboard, this is the Email Input module. All
Full Name Collects the user's name and sends it to the server. All
Geolocation Requests location permission, then captures the precise physical location of the user's device, using its GPS sensor to record coordinates and location fields such as country, state, and city. In Dashboard, this is the Geolocation module. All
ID Capture Captures the front and back of a government-issued ID, with auto-capture and quality checks, and produces clean images for processing. It is the entry point for most identity-capture flows. Add it before ID OCR and Process ID. In Dashboard, this is the ID Capture module. All
ID OCR Extracts text from a captured identity document using Optical Character Recognition (OCR)​. It then shows that text to the user to confirm it's correct before the session continues. When enabled, users can correct missing or misread fields. Add it after Process ID, which must run after ID Capture. In Dashboard, this is Review OCR Data module. All
NFC Reads the secure NFC chip embedded in ICAO 9303-compliant travel documents, such as e-passports. It then returns the holder's data, including the chip portrait image. Add it after ID Capture and Process ID. When a flow captures multiple IDs, NFC applies only to the first ID. In Dashboard, this is the NFC Scan module. -nfc build, on NFC-capable devices
Phone Collects a user's phone number and can confirm ownership by sending a one-time password (OTP) via SMS. In Dashboard, this is the Phone Number Input module. All; -sna adds Silent Network Authentication
QR Scan Captures the QR code on the back of an ID, decodes its identity data, and sends it to the server. All
Selfie Captures the user's face with the device camera and runs configurable liveness, face-recognition, and image-quality checks. It can enroll new users so their face can be matched against an ID photo or used for later authentication. Most flows include this module. In Dashboard, this is the Face Capture module. All
Video Selfie Records a short video of the user performing a guided series of actions, including capturing their ID and selfie, to confirm physical presence and run liveness and face match checks. It can also capture voice consent. Add it after a module that captures a selfie, such as Selfie. In Dashboard, this is the Video Selfie module. All

Verify and Authenticate

These modules run checks against collected data to produce a pass/fail or match/no-match determination.

Module Description Variant
Antifraud Compares the current Session against prior Sessions and known identities to detect signs of fraud. In Dashboard, this is the Antifraud Check module. All
CURP Validation Validates a person's CURP (Clave Única de Registro de Población), a personal identification number issued in Mexico, against Mexico's RENAPO registry. Accepts a CURP extracted via OCR, entered manually, or generated from personal data. In Dashboard, this is the CURP Validation module. All (Mexico)
Custom Watchlist Screens the user's collected data, including biometric face data when available, against your organization's private watchlist of blocked or trusted users, and influences the Session outcome accordingly. In Dashboard, this is the Custom Watchlist module. All
eKYB (electronic Know Your Business) Collects and verifies a business entity's identity data, such as business name, address, and tax ID. In Dashboard, this is the eKYB module. All
eKYC (electronic Know Your Customer) Collects and verifies a user's personal identity data against authoritative data sources. This data can include the user's name, email, address, phone, tax ID, date of birth, and nationality. This module can prefill fields from data captured earlier in the flow, such as a scanned document, and validate them against your Incode configuration. In Dashboard, this is the eKYC module. All
Face Authentication Captures a returning user's face with the device camera and matches it against the face already enrolled for that user. It then returns a pass or fail result. In Dashboard, this is the Face Authentication module. All; local on-device matching requires the -l build
Face Match Compares the user's selfie against their ID photo, their NFC chip photo, or both in a 3-way match. It then returns a match decision and confidence score. Add it after Selfie and at least one document-capturing module. In Dashboard, this is the Face Match module. All
Global Watchlist Screens the user's identity against sources of sanctions, Politically Exposed Persons (PEP) databases, and adverse media, returning any matches found across the configured sources. In Dashboard, this is the Watchlist module. All
Government Validation Validates identity data extracted from a user's ID against an authoritative government registry. It can also match the user's photo in the government database against their captured selfie. Add it after Selfie and one document-capturing module. In Dashboard, this is the Government Data Verification and Government Record Verification modules. All (region-gated, Mexico)
Process ID Determines whether a submitted identity document is authentic. It analyzes the images captured by the ID Capture module against known parameters for the document type, runs a set of authenticity checks, and produces a validation result and the OCR data used by later steps. Add it before ID OCR and after ID Capture. In Dashboard, this is the ID Validation module. All

These modules capture legally binding signatures and record user consent.

Module Description Variant
AES (Advanced Electronic Signature) The AES (Advanced Electronic Signature) module shows the user the documents to sign, collects their consent, and captures a certificate-backed electronic signature. That digital certificate verifies their identity, making the signed document legally binding and compliant. In Dashboard, this is the Advanced Electronic Signature module. All
Combined Consent Shows the user one preconfigured consent to review and accept, then records their agreement. Consents obtain the user's permission to collect and process their data. Most jurisdictions require this at the start of an identity verification journey. In Dashboard, this is the Data Sharing Consent module. All
Machine Learning Consent Captures the user's consent to process their biometric data for machine-learning purposes. You choose the consent text variant (US, GDPR, or worldwide) that matches your compliance needs. All
QES (Qualified Electronic Signature) Shows the user documents to sign, collects their consent, and captures a Qualified Electronic Signature (QES), the highest-assurance electronic signature under the EU eIDAS Regulation. A qualified certificate from a Qualified Trust Service Provider (QTSP) backs the signature, making it legally equivalent to a handwritten signature across EU member states. In Dashboard, this is the Qualified Electronic Signature module. All
Signature Captures a signature the user hand-draws on screen, optionally presenting documents to sign. It is typically placed at the end of a verification journey to capture explicit consent. In Dashboard, this is the Electronic Signature module. All
User Consent Shows a custom consent agreement for the user to review and accept. All

Add Human-Assisted Verification

These modules introduce a live agent into the verification process.

Module Description Variant
Video Conference Connects the user to a live agent over video and audio to conduct an identity verification interview. The agent can request that documents be shown on camera and complete any verifications needed to meet regulatory or business requirements. In Dashboard, this is the Video Conference module. -vc build

Configure the User Experience

Module Description Variant
Custom Fields Pauses a Workflow and hands control to your application, which runs custom logic and returns a result that determines how the Workflow continues. It does this by handing your app a callbackName, then resuming the Workflow at the next node once you report a result. In Dashboard, this is the Custom Module. All

View Results

Module Description Variant
Results Shows a screen summarizing the data captured during onboarding, including OCR fields, captured images, and identity scores. It returns an overall user score. Add it after the modules that add or process the data it summarizes, such as ID Capture and Selfie. In Dashboard this is the Show Results module. All

Configure iOS-Specific Experiences

These modules have no Dashboard equivalent. They exist only in the iOS SDK.

Module Description Variant
Approval Finalizes an onboarding flow by deciding whether to approve the user, then registers approved users in the Incode database. Add it after the modules that add or process the data it summarizes, such as ID Capture and Selfie. All
Captcha Presents a CAPTCHA challenge during onboarding to verify human interaction and reduce automated abuse. It then returns the user's response to your app. In Dashboard, this feature can be enabled when adding the Email Input or Phone Number Input module. All
Intro Displays an introduction screen. It lists the documents and checks the user will need to complete. All

Additional Flow Steps

These public flow-builder steps exist for narrower use cases. They do not have a dedicated page yet; configure them with the matching flowConfig.addXxx(...) builder and read the result on the listed callback.

  • Barcode: addBarcodeScan(showTutorials:), onBarcodeScanCompleted(_:)
  • Credit card CCV: addCreditCardCCV(), onCreditCardCCVCompleted(_:)

Helpers Used by Every Integration

These aren't modules, but every integration uses them to configure a session and receive results. See Integration Approaches for end-to-end usage and API Reference for the full surface.

Helper Purpose
IncdOnboardingSessionConfiguration Configures the onboarding session: Flow or Workflow ID, validation modules, session token or external ID, and custom fields.
IncdOnboardingFlowConfiguration Declares which modules run and in what order. Build it with the addXxx(...) methods shown on each individual module's page.
IncdOnboardingDelegate The callback interface that delivers each module's result object and flow-level events. onSuccess() and onError(_:) are required.
startOnboarding(...) / startFlow(...) / startWorkflow(...) Entry points on IncdOnboardingManager that launch a code-defined flow or a Dashboard-defined Flow or Workflow.

Non-UI Capture

You can run selected capture steps without showing Incode's UI. For example, ID Capture exposes a public non-UI builder (addIdScanNonUI(...)) that captures and delivers results through the normal callbacks without presenting the standard screens.

For a broader integration that keeps your own UI while still capturing and processing through the SDK, see Capture-Only Mode.


Was this page helpful?