MOBILE-ID · TRUSTED LTANS
Renewal API
Submit TIMESTAMP or HASH_TREE renewal decisions; check data access, approval and continuity results.
Two renewal modes
| Decision | Input | Result |
|---|---|---|
| Timestamp renewal | Previous evidence; tree hash remains suitable. | New archive timestamp in the applicable chain. |
| Hash-tree renewal | Original data and prior evidence under the processing model. | Rehash, new tree, new timestamp and new chain. |
Hash-Tree Renewal requires access to the archived data and prior evidence required by the applicable Evidence Record processing model.
LOCAL SIMULATION · Target contracts · No network requests
POST/v1/renewals
TARGET CONTRACT · API 3.0.0-draft
| Property | Value |
|---|---|
| Technical owner | Renewal Service |
| Application scope | renewals:write |
| HTTP | 202 |
| Call processing | Asynchronous work: inspect Job and the result-resource state. |
| Event | RenewalStarted |
Restore owner-approved access before hash-tree renewal.
curl --fail-with-body --request POST \
"${BASE_URL%/}/v1/renewals" \
--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}"{
"archiveId": "arc-test-001",
"evidenceVersion": 1,
"mode": "HASH_TREE",
"dataReference": "https://storage.example.invalid/test/object-001",
"approvalId": "approval-test-001",
"reason": "Scheduled synthetic test"
}{
"renewalId": "ren-test-001",
"archiveId": "arc-test-001",
"jobId": "job-test-002",
"mode": "HASH_TREE",
"state": "APPROVED"
}{
"type": "object",
"properties": {
"archiveId": {
"type": "string"
},
"evidenceVersion": {
"type": "integer",
"minimum": 1
},
"mode": {
"type": "string",
"enum": [
"TIMESTAMP",
"HASH_TREE"
]
},
"dataReference": {
"type": "string",
"format": "uri"
},
"approvalId": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"archiveId",
"evidenceVersion",
"mode",
"reason"
],
"additionalProperties": false,
"allOf": [
{
"if": {
"properties": {
"mode": {
"const": "HASH_TREE"
}
},
"required": [
"mode"
]
},
"then": {
"required": [
"dataReference",
"approvalId"
]
}
}
],
"examples": [
{
"archiveId": "arc-test-001",
"evidenceVersion": 1,
"mode": "HASH_TREE",
"dataReference": "https://storage.example.invalid/test/object-001",
"approvalId": "approval-test-001",
"reason": "Scheduled synthetic test"
}
]
}{
"type": "https://example.invalid/problems/renew-data-unavailable",
"title": "Renew Data Unavailable",
"code": "RENEW_DATA_UNAVAILABLE",
"detail": "Original bytes cannot be read.",
"correlationId": "corr-test-001",
"requestId": "req-test-001",
"retryable": false,
"service": "Renewal Service",
"timestamp": "2026-10-15T05:00:01Z",
"errors": [],
"status": 409,
"instance": "urn:ltans:request:req-test-001"
}GET/v1/renewals/{renewalId}
TARGET CONTRACT · API 3.0.0-draft
| Property | Value |
|---|---|
| Technical owner | Renewal Service |
| Application scope | renewals:read |
| HTTP | 200 |
| Call processing | Authentication/authorization → HTTP handling; not a resource-state enum. |
| Event | Audit or internal event |
Restore owner-approved access before hash-tree renewal.
curl --fail-with-body --request GET \
"${BASE_URL%/}/v1/renewals/${RENEWAL_ID}" \
--header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header "X-Correlation-ID: ${CORRELATION_ID}"{
"renewalId": "ren-test-001",
"archiveId": "arc-test-001",
"jobId": "job-test-002",
"mode": "HASH_TREE",
"state": "APPROVED"
}{
"type": "object",
"properties": {
"renewalId": {
"type": "string"
},
"archiveId": {
"type": "string"
},
"jobId": {
"type": "string"
},
"mode": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"DUE",
"ASSESSED",
"APPROVED",
"RUNNING",
"COMPLETED",
"BLOCKED_DATA_ACCESS",
"FAILED"
]
}
},
"required": [
"renewalId",
"archiveId",
"jobId",
"state"
],
"additionalProperties": false,
"examples": [
{
"renewalId": "ren-test-001",
"archiveId": "arc-test-001",
"jobId": "job-test-002",
"mode": "HASH_TREE",
"state": "APPROVED"
}
]
}{
"type": "https://example.invalid/problems/renew-data-unavailable",
"title": "Renew Data Unavailable",
"code": "RENEW_DATA_UNAVAILABLE",
"detail": "Original bytes cannot be read.",
"correlationId": "corr-test-001",
"requestId": "req-test-001",
"retryable": false,
"service": "Renewal Service",
"timestamp": "2026-10-15T05:00:01Z",
"errors": [],
"status": 409,
"instance": "urn:ltans:request:req-test-001"
}