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.

Transaction Details API

Purpose of This Page

Documents GET /api/v2/transaction?transactionId=UUID - used to retrieve the full payload for a specific operation attempt for audit, billing, and dispute resolution.

Step 3 - Transaction Details API

Use this API to retrieve the full result payload for any individual operation attempt. This is essential for billing reconciliation - VIDA sends you a list of transaction IDs for billing, and this API lets you match and verify each one.

Endpoint

GET /api/v2/transaction?transactionId=UUID

When to Call

  • When you need the full OCR result, ID verification scores, or face match details for a specific attempt

  • When reconciling billed transaction IDs against your own records

  • When auditing a specific operation for a support or dispute case

  • When fetching a document image URL (note: URL expires in 60 seconds)

This API only serves My-Verify transactions

This endpoint serves OCR, ID Verification, and Face Match transactions only.

Liveness transaction details are NOT available here. For liveness details, use the Liveness Service's own GET transaction API with the transactionId from livenessDetails.

Note: Clarification on Transaction API vs KYC Status

Note: Transaction Details API vs KYC Status API This API returns the result of a single operation attempt (e.g., one OCR attempt, one Face Match attempt). It does NOT return the overall KYC decision. To determine the overall KYC outcome:

  • Use the SDK callback response as your primary signal for real-time decision-making.

  • If the SDK returns a success callback, confirm with GET /api/v2/verify/status?verificationId=UUID.

  • If the SDK returns an error callback (failedOperation is not null), treat it as a failed verification. The GET KYC Status API may still show IN_PROGRESS, but the session is effectively terminal.

Use this Transaction Details API specifically for audit, billing reconciliation, and dispute resolution of individual operation attempts.

Request

Parameter
Location
Type
Required
Description

transactionId

Query variable

string (uuid)

Yes

A transactionId from the SDK response or from any latestExecution / previousTransactionIds in GET /verify/status

includeDocuments

Query string

boolean

No

Default: false. When true, includes a documents object with presigned S3 URLs for ID front, ID back, and portrait images (each expires 60 seconds after the response).

Supported by this API

Operation
Supported
Where to Get transactionId

OCR

Yes

SDK: frontCardVerificationDetails.transactionId or backCardVerificationDetails.transactionId

ID Verification

Yes

Same transactionId as OCR (same call)

Face Match

Yes

SDK: faceMatchDetails.transactionId

Liveness

No - use Liveness Service

SDK: livenessDetails.transactionId

Querying a Liveness transaction

Liveness runs on a separate service, so GET /api/v2/transaction?transactionId=UUID does not accept a liveness transactionId. If you send one, the transaction will not be found. To get liveness results, take livenessDetails.transactionId from the SDK response and call the Liveness Service API instead:

GET<LIVENESS_SERVICE_ENDPOINT>

What you need
Where to get it

transactionId

livenessDetails.transactionId in the SDK response

The liveness score is also returned directly in the SDK response, in livenessDetails.livenessScore and livenessDetails.manipulationScore. If you only need the score, you do not need to call this API at all. For full details, see the Liveness Service page.

Response Fields

Field
Description

transactionId

The queried transaction ID

partnerTrxId

Your own reference for this operation. Not identical to the value you sent - the SDK adds the operation name and attempt number.

groupId

The verificationId this transaction belongs to

card

Document country, type, and ISO codes

ocrResult

Extracted text fields (name, ID number, DOB, address, etc.)

idVerificationResult

Spoofing check scores, landmark detection results, and forgery detection scores

imageQualityResult

Blur (blurriness) and low-light scores for front and/or back

documents

Only present when includeDocuments=true. Contains documents.idFrontSide, documents.idBackSide, and documents.portrait - each with a url and expiresAt. Fields are omitted if not captured for this transaction.

Presigned image URLs expire after 60 seconds

Each URL in the documents object is a short-lived presigned S3 URL that expires 60 seconds after the API response is received.

Fetch and store the image bytes immediately. Cached URLs will return HTTP 403 from S3 after expiry.

Call the API again with includeDocuments=true to get a fresh set of URLs.

Sample Response (with includeDocuments=true)

JSON Response

Last updated