This page covers Android SDK behavior for US Smart Capture: version gates, which start APIs honor the Dashboard flag, SdkMode limits, and code samples.
Dashboard enablement, GovFace Match provisioning, jurisdiction coverage, and conflicting ID options are configured by Incode. Contact your Incode representative for those steps.
US Smart Capture is a Dashboard option on ID Capture used with GovFace Match (DMV Face Match). The Android SDK applies usSmartCapture: true only when you start the session with certain APIs. There is no public IdScan.Builder API to turn it on in code.
US Smart Capture is available for:
- Android SDK
5.41.0or later for the Dashboard option - Android SDK
5.43.0or later for the PDF417 barcode-first path onIdScanV2 - Organizations provisioned for GovFace Match / DMV Face Match
Use Dashboard-configured Flows and Workflows with startFlow() or startWorkflow(). Local FlowConfig composition cannot enable this option.
Prerequisites
Complete Android setup and SDK initialization before you enable US Smart Capture.
- Use Android SDK
5.43.0or later for the barcode-firstV2path. The Dashboard option exists from5.41.0. - Complete Dashboard and GovFace Match setup with your Incode representative.
- Enable the
V2UI on the Flow or Workflow. The barcode-first UX runs only on theV2IdScanpath. If the session runs on legacyV1UI, the SDK falls back to ordinary front-and-back capture with no error. See Enable theV2UI. - Pass the Flow ID to
SessionConfig.setConfigurationId(...)when you callstartFlow(), or the Workflow ID when you callstartWorkflow(). - Prefer
startFlow()orstartWorkflow(). US Smart Capture is not supported onstartOnboarding(...)with aconfigurationId. See Supported Start APIs. - Use
SdkMode.STANDARD(the default). US Smart Capture is not supported in Capture Only or Delayed mode. See SDK Modes.
Enable the V2 UI
US Smart Capture's barcode UX exists only on the V2 IdScan path. For server-driven Flows and Workflows, turn on Enable new user experience on the Flow or Workflow Settings tab, then save and publish as required by the Dashboard.
Full detail for both server-driven and client-configured integrations lives in Enabling the V2 UI in the SDK Customization guide.
Info
Note
If US Smart Capture is on in the Dashboard but the session still uses V1 UI, the SDK proceeds as a normal front-and-back IdScan with no error. Turn on Enable new user experience on every Flow or Workflow that uses US Smart Capture.
Supported Start APIs
| Start API | Honors the Dashboard usSmartCapture flag? |
Notes |
|---|---|---|
startFlow(context, sessionConfig, listener) |
Yes | Pass a Flow ID via SessionConfig.setConfigurationId(...). The SDK builds the flow from the Dashboard and applies usSmartCapture from the ID Capture module. Recommended for Flows. |
startWorkflow(context, sessionConfig, listener) |
Yes | Pass a Workflow ID via SessionConfig.setConfigurationId(...). Applied per ID node from the workflow module configuration. Recommended for Workflows. |
startOnboarding(context, sessionConfig, flowConfig, listener) with SessionConfig.setConfigurationId(...) |
No | US Smart Capture is not supported on this entry point. The Dashboard checkbox can look enabled while capture stays front-and-back. Use startFlow() or startWorkflow() instead. |
startOnboarding(...) with a fully client-built FlowConfig |
N/A | There is no public IdScan.Builder API to enable US Smart Capture in code. |
startOnboardingSection(...) |
No | US Smart Capture is not supported on this entry point. Use startFlow() or startWorkflow() instead. |
SessionConfig.setConfigurationId(...) accepts the ID of the Dashboard configuration you intend to run. Use a Flow ID with startFlow(), and a Workflow ID with startWorkflow(). Do not pass a Workflow ID to startFlow().
Example: Flow
val sessionConfig = SessionConfig.Builder()
.setConfigurationId(FLOW_ID)
.build()
IncodeWelcome.getInstance().startFlow(
activityContext,
sessionConfig,
onboardingListener
)
SessionConfig sessionConfig = new SessionConfig.Builder()
.setConfigurationId(FLOW_ID)
.build();
IncodeWelcome.getInstance().startFlow(
activityContext,
sessionConfig,
onboardingListener);
Example: Workflow
val sessionConfig = SessionConfig.Builder()
.setConfigurationId(WORKFLOW_ID)
.build()
IncodeWelcome.getInstance().startWorkflow(
activityContext,
sessionConfig,
onboardingListener
)
SessionConfig sessionConfig = new SessionConfig.Builder()
.setConfigurationId(WORKFLOW_ID)
.build();
IncodeWelcome.getInstance().startWorkflow(
activityContext,
sessionConfig,
onboardingListener);
SDK Modes
US Smart Capture requires a Dashboard-driven Flow or Workflow started with startFlow() or startWorkflow(). Those APIs reject Capture Only and Delayed modes. Use SdkMode.STANDARD (the default) for this integration.
| SDK mode | US Smart Capture supported? | Notes |
|---|---|---|
SdkMode.STANDARD |
Yes | Use with startFlow() or startWorkflow() and a Dashboard configuration that has US Smart Capture enabled. |
SdkMode.CAPTURE_ONLY |
No | Capture Only does not support startFlow() or startWorkflow(). There is also no public IdScan.Builder API to enable US Smart Capture in a client-built FlowConfig. |
SdkMode.DELAYED |
No | Delayed mode does not support startFlow() or startWorkflow(). Offline capture also cannot use the barcode upload path that US Smart Capture depends on. |
If you need Capture Only or Delayed onboarding, use a standard front-and-back IdScan path instead of US Smart Capture.
Troubleshooting
| Symptom | Likely cause | What to check |
|---|---|---|
| US Smart Capture is on in the Dashboard, but the app still does front-then-back capture | Unsupported start API | Confirm you call startFlow() with a Flow ID, or startWorkflow() with a Workflow ID. Avoid startOnboarding() / startOnboardingSection() for this option. |
Same as above, but you already use startFlow() or startWorkflow() |
V2 UI off |
Turn on Enable new user experience on the Flow or Workflow Settings tab, then save and publish. |
| Back or barcode capture runs, but front is still required | Jurisdiction or provisioning | Confirm the driver's license state is covered under your GovFace Match provisioning with your Incode representative. |
| US Smart Capture is missing or unavailable in the ID Capture module | Feature not enabled for your organization | Ask your Incode representative to enable US Smart Capture / GovFace Match for your organization. |
| Capture behavior looks wrong when other ID Capture options are also on | Conflicting options in the Dashboard | Disable Barcode Capture and Back ID Only on the same ID Capture module. Leave only US Smart Capture enabled. |
| Capture Only or Delayed session ignores US Smart Capture | Unsupported SDK mode | Use SdkMode.STANDARD with startFlow() or startWorkflow(). See SDK Modes. |