Mobile-ID · Long-term digital evidence preservation
Customers and partnersWorkflow demoContact
Trusted LTANS
Evaluate
MOBILE-ID · TRUSTED LTANS

Verification API

Request a context-bound assessment, follow its job and read VALID, INVALID or INDETERMINATE reports.

VI–EN terminology

Read context-bound reports

VALID

Checks meet validation conditions under the selected context.

INVALID

One or more checks fail; the report explains why.

INDETERMINATE

Insufficient data or grounds for a conclusion; never automatically relabel as valid.

openapi.yamlopenapi.jsonasyncapi.yamlpostman-target.json

LOCAL SIMULATION · Target contracts · No network requests

POST/v1/archives/{archiveId}/verification
TARGET CONTRACT · API 3.0.0-draft
PropertyValue
Technical ownerVerification Service
Application scopeverification:write
HTTP202
Call processingAsynchronous work: inspect Job and the result-resource state.
EventVerificationRequested

Select an authorized versioned context; INDETERMINATE is a report outcome, not a transport failure.

cURL
curl --fail-with-body --request POST \
  "${BASE_URL%/}/v1/archives/${ARCHIVE_ID}/verification" \
  --header "Authorization: Bearer ${ACCESS_TOKEN}" \
  --header "X-Correlation-ID: ${CORRELATION_ID}" \
  --header "Idempotency-Key: ${IDEMPOTENCY_KEY}" \
  --header "Content-Type: application/json" \
  --data-binary "@${REQUEST_FILE}"
Request JSON
{
  "evidenceVersion": 1,
  "trustContextId": "trust-test-001",
  "dataReference": "https://storage.example.invalid/test/object-001"
}
Target response
{
  "jobId": "job-verification-001",
  "state": "QUEUED",
  "resourceId": "ver-test-001",
  "correlationId": "corr-test-001",
  "pollAfterSeconds": 2
}
GET/v1/verifications/{verificationId}
TARGET CONTRACT · API 3.0.0-draft
PropertyValue
Technical ownerVerification Service
Application scopeverification:read
HTTP200
Call processingAuthentication/authorization → HTTP handling; not a resource-state enum.
EventAudit or internal event

Select an authorized versioned context; INDETERMINATE is a report outcome, not a transport failure.

cURL
curl --fail-with-body --request GET \
  "${BASE_URL%/}/v1/verifications/${VERIFICATION_ID}" \
  --header "Authorization: Bearer ${ACCESS_TOKEN}" \
  --header "X-Correlation-ID: ${CORRELATION_ID}"
Target response
{
  "verificationId": "ver-test-001",
  "archiveId": "arc-test-001",
  "outcome": "INDETERMINATE",
  "evaluatedAt": "2026-10-15T05:00:00Z",
  "trustContextId": "trust-test-001",
  "policyId": "policy-test-v1",
  "policyVersion": "1",
  "toolVersion": "target-validator-1",
  "evidenceVersion": 1,
  "reasonCodes": [
    "TEST_TRUST_MATERIAL_NOT_SUPPLIED"
  ],
  "steps": [
    {
      "check": "timestamp-path",
      "outcome": "INDETERMINATE",
      "reasonCode": "TEST_TRUST_MATERIAL_NOT_SUPPLIED",
      "detail": "Synthetic response: no trusted TSA token is bundled."
    }
  ]
}

Next steps

Search LTANS documentation

Expanded illustration