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.

KYC Status API

Purpose Of This Page

Documents GET /api/v2/verify/status? - the primary post-SDK call to retrieve the overall KYC outcome and per-operation status breakdown.

Step 2 - KYC Status API

Call this API immediately after your backend receives the SDK response. It returns the overall KYC decision and the status of every individual operation (OCR, IDV, Liveness, FaceMatch).

Endpoint

GET /api/v2/verify/status?verificationId=UUID

When to Call

  1. Mobile app receives the SDK response

  2. App forwards the payload to your backend

  3. Backend calls GET /api/v2/verify/status? using the verificationId

  4. Backend acts on overallStatus to route the user

Request

Parameter
Location
Type
Required
Description

verificationId

Query string

string (uuid)

Yes

The verificationId from the SDK response

Response Fields

Field
Type
Description

verificationId

string

The KYC case ID

overallStatus

string (enum)

Overall outcome: VERIFIED, REVIEW, ERROR, IN_PROGRESS, or FAILED

updatedTime

ISO 8601 string

Timestamp of the last status update

documentCaptureMode

string

FRONT_BACK_SEPARATE or BOTH_SIDE

requiredOperations

string[]

Operations that must complete for this flow type (determined by SDK kycFlowType)

fraudResult

object

Fraud Shield evaluation (if enabled). Empty object if not applicable.

operations

object

Per-operation status and transaction ID breakdown (see below)

operations Object

Each operation contains its latest result and a list of all previous attempt IDs.

JSON Response

Null status means not yet attempted If an operation has not been attempted, latestExecution will contain: status: null, transactionId: null, updatedTime: null.

This results in an overallStatus of IN_PROGRESS if that operation is in the requiredOperations list.

overallStatus Values

Status
When It Applies
Precedence

FAILED

KYC session remained IN_PROGRESS beyond the configured timeout (user abandoned, SDK crashed, etc.). Terminal - no further updates accepted. The configured timeout determines how long an IN_PROGRESS session remains open before automatically transitioning to FAILED. Customers who need faster resolution should use the SDK callback response as the primary signal for failure cases (see Important Note below).

1 (highest)

IN_PROGRESS

At least one required operation has not been attempted yet. Note: An IN_PROGRESS status does not guarantee the user will complete the flow. If the SDK has already returned an error callback to the host app, the user can no longer resume this verificationId.

In this case, treat the KYC outcome as not verified. See the Important Note section below for recommended decision-making logic.

2

ERROR

All required operations have been attempted, and at least one latest result is ERROR.

3

REVIEW

All required operations are complete, none are ERROR, but one or more are REVIEW.

4

VERIFIED

All required operations are complete and every latest result is VERIFIED.

5 (lowest)

Important Note

Interpreting KYC Status for Decision-Making When using the GET KYC Status API to determine a user's KYC outcome, we recommend the following approach:

  • VERIFIED -> The user has successfully passed KYC. You may proceed with granting access or completing onboarding.

  • Any other status (including IN_PROGRESS or FAILED) -> The user has NOT successfully completed KYC. Your application should treat this as a non-verified outcome and handle accordingly (e.g., prompt the user to retry, or restrict access). Additionally, use the SDK callback response as your primary signal for real-time decision-making:

  • If the SDK returns a success callback, poll the GET KYC Status API to confirm the VERIFIED status.

  • If the SDK returns an error callback (containing failedOperation in the operations array), the session is considered terminal. You may treat this as a failed verification without waiting for the GET KYC Status API to update.

Sample JSON Response

Verified - All Checks Passed

JSON Response

IN_PROGRESS - Liveness and FaceMatch not yet done

JSON Response

ERROR - Fraud detected on Face Match

JSON Response

Using previous TransactionIds for Reconciliation

The operations object returns not only the latest transactionId per operation, but also all previous attempt IDs from retries. You can pass any of these to the Transaction Details API.

Responses

Last updated