# Orientation and routing hub for the Incode Flutter SDK

The Incode Flutter SDK adds end-to-end identity verification to your app: document and ID capture with OCR, selfie and video-selfie liveness, face match and NFC e-passport reading. The UI is fully themeable, so onboarding looks and feels like your product. The SDK ships through GitHub, and supports Android and iOS. The SDK is available in multiple variants, depending on the features you need.

This page orients you to what the SDK does and routes you to the page you need next. If you are starting fresh, begin with [Getting Started](https://developer.incode.com/docs/flutter-getting-started) and [Common Implementation Patterns](https://developer.incode.com/docs/flutter-common-implementation-patterns).

## Start here

| If you want to... | Go to |
| --- | --- |
| Add the SDK to your project | [Getting Started](https://developer.incode.com/docs/flutter-getting-started) |
| Get an onboarding flow running | [Common Implementation Patterns](https://developer.incode.com/docs/flutter-common-implementation-patterns) |
| Upgrade an existing integration | [Migration Guide](https://developer.incode.com/docs/flutter-migration-guide) |
| Checkout the available modules | [Modules](https://developer.incode.com/docs/flutter-modules) |
| Checkout the module results | [Results](https://developer.incode.com/docs/flutter-results) |
| Customize colors, fonts, and text | [Customization](https://developer.incode.com/docs/flutter-customization) |
| Browse the full public API | [API Reference](https://developer.incode.com/docs/flutter-api-reference) |
| Solve a build problem | [Known Issues](https://developer.incode.com/docs/flutter-known-issues) |

## How the SDK fits together

The SDK supports three integration paths. They differ in how much of the UI and orchestration the SDK owns. Start with the path that matches your needs.

### Path 1: Online onboarding flow

The simplest path. You build a Flow on the Incode Dashboard, pass its ID to `startFlow()` or `startWorkflow()` method, and the SDK owns the UI from the first screen to the last, returning results through a listener. This is the recommended starting point for most integrations.

See [Common Implementation Patterns](https://developer.incode.com/docs/flutter-common-implementation-patterns) for the quick start.

### Path 2: Full onboarding flow

You build a FlowConfig describing the sections you want (ID scan, selfie, NFC, and so on), pass it to `startOnboarding()`, and the SDK owns the UI from the first screen to the last, returning results through a listener.

See [Common Implementation Patterns](https://developer.incode.com/docs/flutter-common-implementation-patterns) for the quick start.

### Path 3: Section-by-section / split flow

You run modules individually and stitch them together. The SDK still owns each module screen (the camera UI, the capture experience, the on-device guidance), but you own the shell around them: navigation, your own intro and transition screens, and when each module launches. Use this when you need to interleave Incode steps with your own screens or run only part of a flow.

See [Common Implementation Patterns](https://developer.incode.com/docs/flutter-common-implementation-patterns) for the quick start.

## Variants

The SDK has multiple variants that you can use depending on the features you need, so you only ship what you use.

| Variant | Description |
| --- | --- |
| standard | Vanilla variant of the SDK that doesn't include any additional features. |
| vc | A variant that supports streaming the camera feed during Selfie and/or ID scan. |
| nfc | A variant that supports NFC scanning (reading data from a passport or ID chip). |
| l | A variant that supports manipulation of locally stored identities. |

## What the SDK can do

- **Identity capture** - ID scan, document capture, and OCR data extraction.
- **Liveness and biometrics** - selfie capture, video selfie, liveness detection, and face match.
- **NFC / e-passport** - read the chip in passports and supported ID documents.
- **Customization** - theming, localization, and custom assets so the experience matches your brand. See [Customization](https://developer.incode.com/docs/flutter-customization).

## Need help?

- Hit a build or runtime error? See the [Known Issues](https://developer.incode.com/docs/flutter-known-issues) page.
- Looking for a specific class, method, or parameter? See [API Reference](https://developer.incode.com/docs/flutter-api-reference).
- Still stuck? Contact your enterprise customer success manager or email [help@incode.com](mailto:help@incode.com).
