The SDK runs in one of three modes, selected through the sdkMode property (type SDKMode) on IncdOnboardingManager.shared. The mode controls how and when captured data is sent to Incode. Choose the mode that matches your integration's network, privacy, and timing requirements.
| Mode | What It Does | When To Use It |
|---|---|---|
| Standard | Captures data and sends it to Incode in real time as the flow runs. Results are returned through the delegate callbacks. | The default. Use when the device has connectivity and you want server-side validation as each step completes. |
| Capture-Only | Captures media on-device without sending it to Incode. You retain the captured data and submit it later from your own back end. | Use when capture and submission must be decoupled, or capture happens in an environment without a direct path to Incode. See Capture-Only Mode. |
| Submit-Only | Submits previously captured data to Incode without showing the capture UI. | Use as the counterpart to Capture-Only, once data has already been captured and needs to be submitted for verification. |
The mode is set on the shared manager before a flow starts:
IncdOnboardingManager.shared.sdkMode = .standard
initIncdOnboarding authenticates the SDK and prepares it for use. In -tri builds there is an additional overload that accepts a Transactional Risk Intelligence (TRI) configuration; other variants expose only the non-TRI overload.
Standard Mode
Standard mode is the default (SDKMode.standard). The SDK captures each module's data and sends it to Incode as the flow progresses. Server-side validation results are available in real time through the IncdOnboardingDelegate result callbacks. No additional configuration is required.
IncdOnboardingManager.shared.sdkMode = .standard
See Getting Started for the standard integration.
Capture-Only Mode
Capture-Only mode (SDKMode.captureOnly) runs the capture UI on the device without sending the captured data to Incode during the flow. The result objects include the raw capture data, and your back end submits it separately. This mode uses a dedicated integration path.
IncdOnboardingManager.shared.sdkMode = .captureOnly
In the Public distribution variant, captureOnly is restricted and the SDK reverts to standard.
See Capture-Only Mode for the full guide, including how the raw captures and diagnostics are delivered to your app.
Submit-Only Mode
Submit-Only mode (SDKMode.submitOnly) is the counterpart to Capture-Only: it submits previously captured data to Incode without showing the capture UI.
IncdOnboardingManager.shared.sdkMode = .submitOnly
For fully programmatic capture and verification without presenting any SDK UI, use the headless APIs described in the API Reference.