Biometric Verification

Verify a user's face against the stored enrollment template — for login, payments or contract signing.

SDK Installation

Before integrating, install the SDK in Getting Started → Install the SDK →

POST /api/kyc/verify
When to use this flow

Secure login, transfer authorization, payment approval, contract signing — any operation where you need to confirm the person is the enrolled user.

Flow

1

Environment validation

RASP checks before any capture.

2

Face capture

Face capture with liveness check.

3

Encrypted payload

The SDK returns the encrypted template + payload to your banking app.

4

Verify request

Your backend forwards template + payload to /api/kyc/verify, which compares against the stored template.

SDK call

Kotlin
// Step-up auth — login, payment, contract signing, etc.
SmartId
    .getInstance()
    .captureBiometric(getApplicationContext())
    .onSuccess { template, payload ->
        // forward to your backend → POST /api/kyc/verify
    }
    .onFailure { message, errorCode ->
        // capture failed
    }
    .start()
Swift
SID.shared.startLocation()

SID.shared
    .captureBiometric()
    .onSuccess(success: { template, payload in
        // forward to your backend → POST /api/kyc/verify
    })
    .onFailure(failure: { message, errorCode in
        // capture failed
    })
    .start()

Backend call

cURL
curl -X POST https://<api-url>/api/kyc/verify \\
  -H "Content-Type: application/json" \\
  -H "X-Api-Key: <your-api-key>" \\
  -d '{
    "User": "[email protected]",
    "Template": "<template from SDK>",
    "PayLoad": "<payload from SDK>"
  }'

Request body

FieldTypeRequiredDescription
UserstringRequiredUnique user identifier (must be previously enrolled)
TemplatestringRequiredEncrypted biometric template from the SDK
PayLoadstringRequiredAdditional metadata from the SDK

Response codes

CodeMeaning
200Verification successful
406User not found (not previously enrolled)
407Template validation failed
409Face comparison failed
413Similarity below threshold
414User channel disabled
425/426Timestamp invalid / template expired
500/701Internal error / service call error