Export the evidence packet
const url = 'http://localhost:8080/v1/loans/example/evidence/export';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url http://localhost:8080/v1/loans/example/evidence/exportVerifies the hash chain first and prints the result in the packet. format=json (default) returns the machine bundle: loan, documents with SHA-256 hashes, findings of the latest run, approval events, every evidence event and the chain verification. format=pdf returns the human-readable packet as a download (Content-Disposition: attachment; filename=evidence_{ref}.pdf). Any staff role or an API key with evidence:read. 404 for an unknown loan.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Query Parameters
Section titled “Query Parameters”Responses
Section titled “Responses”OK
The machine bundle: everything an examiner needs, with document hashes and the chain verification result.
object
object
object
object
Stored as findings.detail_json: the human sentence plus every source the finding points at.
object
Where a finding points (document / page / box); the provenance the workstation deep-links to.
object
object
A validated JSON document destined for a jsonb / nvarchar(max) ISJSON column. Distinct from
string so the persistence layer can bind it with the right provider type on each dialect.
object
A validated JSON document destined for a jsonb / nvarchar(max) ISJSON column. Distinct from
string so the persistence layer can bind it with the right provider type on each dialect.
object
Examplegenerated
{ "generator": "example", "generatedAt": "2026-04-15T12:00:00Z", "generatedBy": "example", "loan": { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "externalRef": "example", "packageVersion": 1, "borrowerName": "example", "expectedPrincipal": "example", "state": "example", "hasExceptions": true, "assigneeId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "createdBy": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "createdAt": "2026-04-15T12:00:00Z", "updatedAt": "2026-04-15T12:00:00Z" }, "institutionName": "example", "documents": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "loanId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "docType": "example", "originalName": "example", "sha256": "example", "byteSize": 1, "pageCount": 1, "isScanned": true, "isLar": true, "larProfileId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "uploadedAt": "2026-04-15T12:00:00Z" } ], "findings": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "runId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "loanId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "ruleId": "example", "severity": "example", "status": "example", "title": "example", "detail": { "message": "example", "sources": [ { "documentId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "source": "example", "field": "example", "value": "example", "pageNo": 1, "bbox": { "x": 1, "y": 1, "w": 1, "h": 1 } } ], "data": "example" }, "createdAt": "2026-04-15T12:00:00Z", "blocksApproval": true } ], "approvals": [ { "id": 1, "seq": 1, "eventType": "example", "actorType": "example", "actorId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "payload": "example", "payloadSha256": "example", "prevSha256": "example", "chainSha256": "example", "occurredAt": "2026-04-15T12:00:00Z" } ], "events": [ { "id": 1, "seq": 1, "eventType": "example", "actorType": "example", "actorId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "payload": "example", "payloadSha256": "example", "prevSha256": "example", "chainSha256": "example", "occurredAt": "2026-04-15T12:00:00Z" } ], "verification": { "intact": true, "brokenAtSeq": 1, "length": 1 }}