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

Archive API

Deposit a record set, reconcile receipts and query state; distinguish acceptance from evidence readiness.

VI–EN terminology

openapi.yamlopenapi.jsonasyncapi.yamlpostman-target.json

LOCAL SIMULATION · Target contracts · No network requests

POST/v1/archives
TARGET CONTRACT · API 3.0.0-draft
PropertyValue
Technical ownerArchive Service
Application scopearchives:write
HTTP202
Call processingAsynchronous work: inspect Job and the result-resource state.
EventArchiveRequested

Reuse the original key only for an identical retry; inspect the existing result before starting a new command.

cURL
curl --fail-with-body --request POST \
  "${BASE_URL%/}/v1/archives" \
  --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
{
  "profileId": "profile-test-01",
  "policyId": "policy-test-v1",
  "mimeType": "text/plain",
  "metadata": {
    "title": "LTANS-SYN-001 / r1",
    "sourceId": "LTANS-SYN-001",
    "sourceRevision": "r1"
  },
  "custody": "CUSTOMER_MANAGED",
  "dataReference": "https://storage.example.invalid/test/primary-record.txt",
  "digest": {
    "algorithm": "SHA-256",
    "value": "35bc4fcffc4a16c8a9db81d1a8f9042c27a1daaf51628b4c880f312178fe3085"
  },
  "archivalPeriod": {
    "endAt": "2036-10-15T00:00:00Z"
  },
  "clientReference": "LTANS-SYN-001/r1",
  "requestTime": "2026-10-15T05:00:00Z",
  "groupId": "grp-syn-001"
}
Target response
{
  "archiveId": "arc-test-001",
  "jobId": "job-test-001",
  "policyId": "policy-test-v1",
  "policyVersion": "1",
  "receivedAt": "2026-10-15T05:00:01Z",
  "state": "ACCEPTED"
}
GET/v1/archives
TARGET CONTRACT · API 3.0.0-draft
PropertyValue
Technical ownerArchive Service
Application scopearchives:read
HTTP200
Call processingAuthentication/authorization → HTTP handling; not a resource-state enum.
EventAudit or internal event

Reuse the original key only for an identical retry; inspect the existing result before starting a new command.

cURL
curl --fail-with-body --request GET \
  "${BASE_URL%/}/v1/archives" \
  --header "Authorization: Bearer ${ACCESS_TOKEN}" \
  --header "X-Correlation-ID: ${CORRELATION_ID}"
Target response
{
  "items": [
    {
      "archiveId": "arc-test-001",
      "profileId": "profile-test-01",
      "policyId": "policy-test-v1",
      "custody": "CUSTOMER_MANAGED",
      "mimeType": "application/pdf",
      "metadata": {
        "title": "Synthetic record"
      },
      "state": "EVIDENCE_READY",
      "evidenceVersion": 1
    }
  ]
}
GET/v1/archives/{archiveId}
TARGET CONTRACT · API 3.0.0-draft
PropertyValue
Technical ownerArchive Service
Application scopearchives:read
HTTP200
Call processingAuthentication/authorization → HTTP handling; not a resource-state enum.
EventAudit or internal event

Reuse the original key only for an identical retry; inspect the existing result before starting a new command.

cURL
curl --fail-with-body --request GET \
  "${BASE_URL%/}/v1/archives/${ARCHIVE_ID}" \
  --header "Authorization: Bearer ${ACCESS_TOKEN}" \
  --header "X-Correlation-ID: ${CORRELATION_ID}"
Target response
{
  "archiveId": "arc-test-001",
  "profileId": "profile-test-01",
  "policyId": "policy-test-v1",
  "custody": "CUSTOMER_MANAGED",
  "mimeType": "application/pdf",
  "metadata": {
    "title": "Synthetic record"
  },
  "state": "EVIDENCE_READY",
  "evidenceVersion": 1
}
GET/v1/archives/{archiveId}/status
TARGET CONTRACT · API 3.0.0-draft
PropertyValue
Technical ownerArchive Service
Application scopearchives:read
HTTP200
Call processingAuthentication/authorization → HTTP handling; not a resource-state enum.
EventAudit or internal event

Reuse the original key only for an identical retry; inspect the existing result before starting a new command.

cURL
curl --fail-with-body --request GET \
  "${BASE_URL%/}/v1/archives/${ARCHIVE_ID}/status" \
  --header "Authorization: Bearer ${ACCESS_TOKEN}" \
  --header "X-Correlation-ID: ${CORRELATION_ID}"
Target response
{
  "archiveId": "arc-test-001",
  "profileId": "profile-test-01",
  "policyId": "policy-test-v1",
  "custody": "CUSTOMER_MANAGED",
  "mimeType": "application/pdf",
  "metadata": {
    "title": "Synthetic record"
  },
  "state": "EVIDENCE_READY",
  "evidenceVersion": 1
}
POST/v1/archives/{archiveId}/dispositions
TARGET CONTRACT · API 3.0.0-draft
PropertyValue
Technical ownerStorage Service
Application scopedisposition:write
HTTP202
Call processingAsynchronous work: inspect Job and the result-resource state.
EventDispositionRequested

Reuse the original key only for an identical retry; inspect the existing result before starting a new command.

cURL
curl --fail-with-body --request POST \
  "${BASE_URL%/}/v1/archives/${ARCHIVE_ID}/dispositions" \
  --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
{
  "scope": "PAYLOAD",
  "approvalId": "approval-test-004",
  "reason": "Synthetic expiry test"
}
Target response
{
  "jobId": "job-disposition-001",
  "state": "QUEUED",
  "resourceId": "arc-test-001",
  "correlationId": "corr-test-001",
  "pollAfterSeconds": 2
}

Next steps

Archive API reference
Archive API reference · Target interface illustration.

Search LTANS documentation

Expanded illustration