# 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

Call `setSdkMode` to change modes. If you do not call this method, the SDK uses `SdkMode.standard`.

```dart
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.
