> ## Documentation Index
> Fetch the complete documentation index at: https://eurusys-6c0957fa.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# MBKYC SDK

> The Multi-Biometrics KYC (MBKYC) SDK — read UAE Emirates ID cards and match fingerprints against ICP records, across every platform you ship on.

The **Multi-Biometrics KYC SDK** (**MBKYC**) is the on-device component of the **Validation Gateway (VG)** platform operated by the **Federal Authority for Identity, Citizenship, Customs & Port Security (ICP)**. It lets your application capture a customer's identity — by reading their Emirates ID, or by entering the details manually — optionally capture a fingerprint, and submit it for a verification decision.

<Info>
  The SDK **collects** identity and biometric data and submits it over an encrypted, authenticated channel. It does **not** make the verification decision — the Validation Gateway does. The SDK never sees or stores your API secret.
</Info>

## What it does

<CardGroup cols={2}>
  <Card title="Read Emirates ID" icon="id-card">
    Read the Emirates ID directly from the physical card or over NFC, or submit its details by manual entry.
  </Card>

  <Card title="Biometric verification" icon="fingerprint">
    Capture a fingerprint and match it against the resident's enrolled fingers, guided by a quality-ranked recommendation from the Validation Gateway.
  </Card>

  <Card title="Validate passports" icon="passport">
    Submit passport details by manual entry for validation against ICP records.
  </Card>

  <Card title="Device registration" icon="shield-check">
    Register each device and run all traffic over an encrypted, session-authenticated channel.
  </Card>
</CardGroup>

<Info>
  **Reading** (chip/NFC capture) applies to the **Emirates ID** only. Passports are validated by **manual entry**.
</Info>

## Supported platforms

We provide the SDK for every platform you're likely to ship on, with an idiomatic API for each:

| Platform                          | Language      | Distribution                  |
| --------------------------------- | ------------- | ----------------------------- |
| Android                           | Kotlin        | AAR via Nexus                 |
| Desktop (Windows · Linux · macOS) | Kotlin / Java | JAR via Nexus                 |
| macOS                             | Swift         | XCFramework via Nexus         |
| Windows · Linux                   | C# (.NET)     | NuGet (`MBKYC.Sdk`)           |
| Windows · Linux · macOS           | C             | Library + headers · installer |
| Browser                           | TypeScript    | npm (`@mbkyc/sdk`)            |

See the [package matrix](/distribution/package-matrix) for exact coordinates, and the [SDK guides](/sdks/android) for per-platform reference.

## Supported hardware

<Tabs>
  <Tab title="Smart card readers">
    * Any PC/SC-compatible reader on Windows, macOS, and Linux (e.g. ACS, Feitian) via the generic driver
    * Any USB CCID reader on Android via the generic driver
    * NFC on Android
  </Tab>

  <Tab title="Fingerprint sensors">
    * IDEMIA (Morpho) MSO 1350 on all platforms
    * Suprema (BioMini) on all platforms
    * NEXUS / Zhiang on Windows and Android
  </Tab>
</Tabs>

See [Supported devices](/distribution/supported-devices) for the full validated hardware matrix and per-platform support.

## How a verification works, end to end

1. You onboard on the **[Client Portal](/dashboard/onboarding)**, create an **API key**, and note which **verification methods** are enabled for your organization.
2. Your application embeds the MBKYC SDK, configured with the **base URL**, the **API key ID**, and a **token signer** that holds the API secret server-side.
3. The SDK **[registers the device](/concepts/backend-protocol)**, opens an encrypted session, then submits a **validate** request (Emirates ID or passport, with or without a fingerprint).
4. The Validation Gateway checks the data against ICP records and returns a result.

<Card title="Start here" icon="rocket" href="/overview/quickstart">
  Jump to the Quickstart to get a working integration in a few minutes.
</Card>

## Where to go next

<CardGroup cols={3}>
  <Card title="Architecture" icon="diagram-project" href="/overview/architecture">
    The trust model and how the SDK reaches the Validation Gateway.
  </Card>

  <Card title="Get the SDK" icon="box-open" href="/distribution/nexus-overview">
    Pull packages from Nexus for your platform.
  </Card>

  <Card title="Client Portal" icon="gauge" href="/dashboard/onboarding">
    Onboard, create API keys, register devices, view methods.
  </Card>
</CardGroup>
