Skip to main content
On desktop platforms (Windows, Linux, macOS), the SDK doesn’t drive USB hardware directly. Card reading and fingerprint capture run through small background services you install once per machine; the SDK discovers and talks to them locally. You install only the services for the hardware you use.
This applies to desktop apps (the C, C#, Swift, and Kotlin/Java desktop SDKs) and to the web SDK (which also needs the browser native host). On Android, hardware support ships as app/service packages instead — see the Android guide.
These services are a prerequisite for hardware. A card reader or fingerprint sensor will not be discovered until the matching service is installed and running — listSmartcardReaders() / listFingerprintReaders() simply return empty. Manual-entry verification needs no services.

Available services

Linux CCID fallback. macOS and Windows ship class-compliant CCID drivers that handle any CCID-conformant reader automatically. On Linux, pcscd/libccid only bind readers on their whitelist — install mbkyc-ccid-service alongside mbkyc-pcsc-service to cover the rest. The two coexist; each claims only readers it can, so a device never appears twice.
Windows driver gap — Zhiang & Suprema. The Zhiang ZA-K-240715 and Suprema BMS-2 (V408) fingerprint readers need a WinUSB driver that is not yet bundled in the MSI/Chocolatey packages. On a stock Windows machine these devices show Status=Error until the driver is installed manually. The PC/SC and Morpho services install cleanly with no custom driver. See Supported devices.

Which services do I install?

Install by platform

macOS (.pkg)

Signed .pkg installers, plus launchctl service management.

Linux (apt / yum)

Debian/Ubuntu via apt, RHEL/Fedora via dnf, plus service management.

Windows (Chocolatey / MSI)

Chocolatey, the MSI installer, and Windows service management.