# Orientation and routing hub for the Incode React Native SDK

The Incode React Native SDK exposes Incode's native onboarding SDKs through a typed JavaScript API. Apps initialize `IncodeSdk`, configure a dashboard flow or local `flowConfig`, subscribe to step events, and then launch native UI for ID capture, selfie, face match, NFC, consent, scoring, approval, and other verification modules.

## Start here

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

## How the SDK fits together

The SDK supports three integration paths. They differ in where the flow is configured and how much orchestration your app owns.

### Path 1: Online flow

Build a flow on the Incode Dashboard, pass its `configurationId` through `sessionConfig`, and call `startFlow()` or `startWorkflow()`. The SDK owns the native UI from the first screen to the last and returns progress through listeners.

See [Common Implementation Patterns](https://developer.incode.com/docs/react-native-common-implementation-patterns#run-flows-configured-online).

### Path 2: Local full onboarding flow

Build a local `flowConfig` array with modules such as `IdScan`, `SelfieScan`, and `FaceMatch`, then pass it to `startOnboarding()`. The SDK runs the configured modules in order and returns the final flow status.

See [Common Implementation Patterns](https://developer.incode.com/docs/react-native-common-implementation-patterns#configure-flows-locally-and-run-end-to-end).

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

Create a session with `setupOnboardingSession()`, run one or more `startOnboardingSection()` calls, and close the session with `finishOnboardingFlow()`. Use this when your app needs to show custom screens or business logic between Incode modules. You can start multiple sections, but only one at a time; `startOnboardingSection` accepts the same config and modules as `startOnboarding`.

See [Common Implementation Patterns](https://developer.incode.com/docs/react-native-common-implementation-patterns#configure-flows-locally-and-run-step-by-step).

## Variants

Install the package variant that matches the features you need.

| Variant   | Package version suffix | Description                                                 |
|-----------|-----------------------|-------------------------------------------------------------|
| Standard  | none                  | Base SDK package.                                          |
| Streaming  | `-vc`                 | Enables streaming camera frames during ID and Selfie capture. |
| Face Login | `-l`                  | Adds Face Login APIs.                                     |
| NFC      | `-nfc`                | Adds NFC scanning for passports or supported ID chips.    |

## What the SDK can do

- **Identity capture** - ID scan, document capture, OCR extraction, and manual review screens.
- **Liveness and biometrics** - selfie, video selfie, face match, face authentication, and Face Login.
- **NFC / e-passport** - read and validate supported NFC chip data.
- **Compliance steps** - consent, government validation, watchlists, AES, user score, and approval.
- **Customization** - theming, localization, close-button behavior, UX config, and dynamic strings.

## Need help?

- Hit a build or runtime error? See [Known Issues](https://developer.incode.com/docs/react-native-known-issues).
- Looking for a method or parameter? See [API Reference](https://developer.incode.com/docs/react-native-api-reference).
- Looking for a module payload? See [Results](https://developer.incode.com/docs/react-native-results).
- Still stuck? Contact your Incode representative or email [help@incode.com](mailto:help@incode.com).
