SDK reference · Android SDK / Android Getting Started

US Smart Capture

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.0 or later for the Dashboard option
  • Android SDK 5.43.0 or later for the PDF417 barcode-first path on IdScan V2
  • 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.0 or later for the barcode-first V2 path. The Dashboard option exists from 5.41.0.
  • Complete Dashboard and GovFace Match setup with your Incode representative.
  • Enable the V2 UI on the Flow or Workflow. The barcode-first UX runs only on the V2 IdScan path. If the session runs on legacy V1 UI, the SDK falls back to ordinary front-and-back capture with no error. See Enable the V2 UI.
  • Pass the Flow ID to SessionConfig.setConfigurationId(...) when you call startFlow(), or the Workflow ID when you call startWorkflow().
  • Prefer startFlow() or startWorkflow(). US Smart Capture is not supported on startOnboarding(...) with a configurationId. 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.

Was this page helpful?