Introducing VIDA Identity Stack: All of VIDA, in one place 🎉
For the complete documentation index, see llms.txt. This page is also available as Markdown.

API Reference

Verify that a selfie shows a real, live person and that it matches a reference photo, using the VIDA Verify API V2. The same endpoint can also check the face against a blacklist.

Choose an operation

What you need
Operations to send
Result

Liveness check

imageLivenessVerification

Is the selfie a live person?

Biometric verification

imageFaceMatchVerification + imageLivenessVerification

Is it a live person, and does the face match the reference photo?

Blacklist check

Enabled on request

Is the face in the blacklist database?

How the checks depend on each other

Both operations in Biometric Verification run concurrently, but face match depends on liveness. Face matching only happens once a live person is confirmed. This prevents spoofed or unauthorized attempts.

imageLivenessVerification
 ├─ Fails → no imageFaceMatchVerification result is returned
 └─ Passes → Blacklist check (only if enabled)
              ├─ Face found → face match is skipped, blacklist response returned
              └─ No match   → imageFaceMatchVerification runs → success response

The overall result of Biometric Verification depends on passing liveness. For liveness details, see Liveness.

Request format

These fields are shared by every operation.

Endpoint

POST https://{vida-host}/api/v2/verify

Headers

Name
Type
Description

Authentication *

String

Bearer <Token>

Content-Type

String

Format type of the request body (application/json)

Body

Name
Type
Description

operations *

Array

Operations to run, for example ["imageLivenessVerification"]

payload *

Object

Data for each operation (see below)

userConsent *

Object

Proof of the user's consent (see below)

payload fields

Field
Type
Rule
Description

partnerTrxId

String

Required

A unique ID you generate for this transaction

groupId

String

Required

An ID that links this request to the rest of the KYC flow

faceImage

String (Base64)

Send this or livenessTransactionIds

The selfie image

livenessTransactionIds

Array

Send this or faceImage

Transaction ID from an earlier Liveness Verification call. Use it instead of sending a new selfie

idFrontSideImage

String (Base64)

Send this or croppedFaceImage (face match)

The front of the ID card

croppedFaceImage

String (Base64)

Send this or idFrontSideImage (face match)

A cropped face image from the reference photo

userConsent fields

Field
Type
Description

userIp

String

IP address of the user

country

String

Country code, for example MYS

obtained

Boolean

Whether consent was obtained

obtainedAt

String

Unix timestamp of when consent was obtained

Liveness check

Checks whether the selfie is a live photo. Send only imageLivenessVerification in operations.

JSON - Sample Request
JSON - Sample Response

Biometric verification

Checks liveness and matches the selfie to a reference photo. Include both imageFaceMatchVerification and imageLivenessVerification in operations, plus the reference photo in payload.

Choose how to send the selfie

Using faceImage

Using livenessTransactionIds

What you send

A new selfie image

Transaction ID(s) from an earlier Liveness Verification call

Use it when

Liveness and face match happen in one step

You already ran liveness and don't want to capture a new selfie

JSON - Sample Request Using faceImage
JSON - Sample Request Using livenessTransactionIds
JSON - Success Response

Blacklist check

Prevents onboarding or verification of users whose facial images appear in a blacklist database. The check runs before face match. If a match is found, the face match step is skipped.

How it works

1

Check if it is enabled

The system checks whether Blacklist Check is enabled for your product. If yes, the check runs.

2

Blacklist hit

If the face is found in the blacklist, the system returns a response with the matching code and message, and the face match step is skipped.

3

No blacklist match

If no blacklist image is found, the system returns the normal success response, with an empty faceReferences list.

Blacklist Check can run as part of a Liveness Check or as a standalone check, using the same endpoint: POST https://{vida-host}/api/v2/verify.

JSON - Success Response No Match

JSON - Success Response Match (Warning)

JSON - Error Response Match

Last updated