---
title: "SDK Modes"
url: "https://developer.incode.com/sdk-reference/flutter-sdk-modes/"
section: "sdk-reference"
group: "Flutter SDK / Flutter Getting Started"
version: "v1.1"
status: "live"
---
# SDK Modes

The SDK supports three modes that control whether captured images are uploaded and validated server-side.

## Available modes

- `SdkMode.standard`: The default. Captured images are uploaded to Incode's servers and validated. Use this mode for standard onboarding flows.
- `SdkMode.captureOnly`: Skips image upload and server validation for ID and Selfie scans. Use this mode when you want to capture images on the device without server-side processing.
- `SdkMode.submitOnly`: Submit previously captured data without performing new captures.

## Set the SDK mode

Pass `sdkMode` to the `init` [method](./flutter-api-reference#init) or call `setSdkMode` after initialization. If you do neither, the SDK uses `SdkMode.standard`.

```dart
// Pass sdkMode to init:
IncodeOnboardingSdk.init(
  apiKey: 'YOUR_API_KEY',
  apiUrl: 'YOUR_API_URL',
  sdkMode: SdkMode.captureOnly,
  onError: (String error) {},
  onSuccess: () {},
);

// Or change mode after init:
IncodeOnboardingSdk.setSdkMode(sdkMode: SdkMode.captureOnly);
```

### When to call setSdkMode

Call `setSdkMode` after [`init`](./flutter-api-reference#init) and before [`startOnboarding`](./flutter-api-reference#startonboarding) (or [`setupOnboardingSession`](./flutter-api-reference#setuponboardingsession)). Do not call `setSdkMode` mid-session; doing so is not an error, but it can cause undefined behavior.

The SDK preserves the set mode for the next session.