# Incode React Native SDK reference

Orientation and routing hub for the Incode React Native SDK - identity capture, liveness, NFC, face authentication, dashboard flows, and native UI modules for Android and iOS.

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.

This page routes you to the page you need next. If you are starting fresh, begin with [Getting Started](react-native-getting-started/index.md) and [Common Implementation Patterns](react-native-common-implementation-patterns/index.md).

## Start here

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

## 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 or workflow on the Incode Dashboard, pass its `configurationId` through `sessionConfig`, and call the corresponding start method (`startWorkflow()` for Workflows, `startFlow()` for Flows). The SDK owns the native UI from the first screen to the last and returns progress through listeners.

See [Run Flows Configured Online](react-native-common-implementation-patterns/react-native-run-flows-configured-online.md).

### 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 [Configure Flows Locally and Run End to End](react-native-common-implementation-patterns/react-native-configure-flows-locally-and-run-end-to-end.md).

### 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 [Configure Flows Locally and Run Step by Step](react-native-common-implementation-patterns/react-native-configure-flows-locally-and-run-step-by-step.md).

## Variants

The SDK is published in several variants (Standard, Streaming, Face Login, NFC). See [Installation](https://developer.incode.com/docs/react-native-installation#variant-explanation) for the full variant list and when to use each.

## 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](react-native-face-login.md).
- **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 error? See [Troubleshooting](react-native-getting-started/react-native-troubleshooting.md).
- Hit a runtime limitation? See [Known Issues](react-native-known-issues.md).
- Looking for a method or parameter? See [API Reference](react-native-api-reference.md).
- Looking for a module payload? See [Results](react-native-results.md).
- Still stuck? Contact your Incode representative or email [help@incode.com](mailto:help@incode.com).

<br />
