---
title: "US Smart Capture"
url: "https://developer.incode.com/sdk-reference/android-us-smart-capture/"
section: "sdk-reference"
group: "Android SDK / Android Getting Started"
version: "v1.1"
status: "live"
---
# 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](https://developer.incode.com/docs/mobile-flow) and [Workflows](https://developer.incode.com/docs/mobile-workflow) with `startFlow()` or `startWorkflow()`. Local `FlowConfig` composition cannot enable this option.

***

## Prerequisites

Complete [Android setup](/sdk-reference/android-installation/) 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](#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](#supported-start-apis).
- Use `SdkMode.STANDARD` (the default). US Smart Capture is not supported in Capture Only or Delayed mode. See [SDK Modes](#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](/sdk-reference/android-customization#enable-v2-ui) in the SDK Customization guide.

<Callout icon="📘" theme="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.
</Callout>

***

## 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

```kotlin
val sessionConfig = SessionConfig.Builder()
    .setConfigurationId(FLOW_ID)
    .build()

IncodeWelcome.getInstance().startFlow(
    activityContext,
    sessionConfig,
    onboardingListener
)
```
```java
SessionConfig sessionConfig = new SessionConfig.Builder()
    .setConfigurationId(FLOW_ID)
    .build();

IncodeWelcome.getInstance().startFlow(
    activityContext,
    sessionConfig,
    onboardingListener);
```

### Example: Workflow

```kotlin
val sessionConfig = SessionConfig.Builder()
    .setConfigurationId(WORKFLOW_ID)
    .build()

IncodeWelcome.getInstance().startWorkflow(
    activityContext,
    sessionConfig,
    onboardingListener
)
```
```java
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](#sdk-modes). |

***

## Related Guides

- [Android setup](/sdk-reference/android-installation/)
- [Mobile Integration: Flows](https://developer.incode.com/docs/mobile-flow)
- [Mobile Integration: Workflows](https://developer.incode.com/docs/mobile-workflow)
- [SDK Customization - Enabling the `V2` UI](/sdk-reference/android-customization#enable-v2-ui)
- [Government Verification Sources](https://developer.incode.com/docs/government-verification)
- [User Guide](https://developer.incode.com/docs/user-guide)