Introduction
drukverify is an identity-verification platform built for banks and fintechs operating in Bhutan. It exposes five primitives over a single REST API:
- Document scanning — extract structured fields from a Bhutanese citizenship ID card, special resident card, passport or work permit, with a fail-closed eligibility verdict.
- Document fraud detection — screen-recapture, photocopy, tamper and cross-submission checks on the same document photos.
- Face verification — 1:1 selfie-vs-ID match, plus 1:N gallery search for fraud + dedupe flows.
- Liveness detection — passive, burst, and challenge-based checks that run anti-spoof and deepfake models server-side.
- Verification sessions — one object that binds a document scan, a liveness check and a face match into a single decision under a tenant policy.
The platform is multi-tenant by design: every customer organization gets its own dedicated Postgres data plane database; PII never crosses tenant boundaries.
Where to go next
- Quickstart — mint your first session token from a server, complete a passive liveness check from a mobile client. Expect ~5 minutes.
- Authentication — read this before integrating
with any non-trivial flow. The
sk_/tok_split is the single most important concept. - API reference — every public endpoint, with request/response shapes and an interactive try-it panel.
SDKs
The platform ships first-class SDKs for the two languages most commonly used to integrate with it: server-side Go for backends that mint session tokens, and Flutter for mobile apps that consume them. Other languages can call the public REST API directly.
| SDK | Reference |
|---|---|
| JavaScript / TypeScript | @drukverify/ekyc-sdk-js on npm. See Install. |
| Go | pkg.go.dev/github.com/cloudbhutan/ekyc-sdk-go/v2 |
| Flutter | drukverify_flutter v2.1.3 — distributed via a private GitHub repo under the DrukVerify org. Ask your integration contact for access. See Install & configure. |
Install instructions and walkthroughs live under SDKs in the sidebar.