Disclose evidence to the authority
const url = 'https://example.com/api/v1/disclosures';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"process_id":"example","reason":"example","bundle":{"format":"example","participant_did":"example","environment":"example","process_id":"example","created_at":"2026-04-15T12:00:00Z","summary":{},"entries":[{"seq":1,"id":"example","at":"2026-04-15T12:00:00Z","kind":"example","process_id":"example","counterparty_did":"example","summary":"example","payload":"example","payload_sha256":"example","counterparty_signature":"example","meta":{},"content_hash":"example","prev_hash":"example","entry_hash":"example","signature":"example"}],"leaves":[{"leaf":{"id":"example","at":"2026-04-15T12:00:00Z","kind":"example","process_id":"example","counterparty_did":"example","content":{},"window_seq":1,"leaf_index":1},"tree_size":1,"proof":["example"]}],"chain":[{"seq":1,"prev_hash":"example","content_hash":"example","entry_hash":"example"}],"anchors":[{"id":"example","seq":1,"head":"example","anchored_at":"2026-04-15T12:00:00Z","receipt":"example","qualified":"example"}],"authority_did":"example","did_documents":[{}],"did_histories":[{}],"consent":"example","signature":"example"}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/v1/disclosures \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "process_id": "example", "reason": "example", "bundle": { "format": "example", "participant_did": "example", "environment": "example", "process_id": "example", "created_at": "2026-04-15T12:00:00Z", "summary": {}, "entries": [ { "seq": 1, "id": "example", "at": "2026-04-15T12:00:00Z", "kind": "example", "process_id": "example", "counterparty_did": "example", "summary": "example", "payload": "example", "payload_sha256": "example", "counterparty_signature": "example", "meta": {}, "content_hash": "example", "prev_hash": "example", "entry_hash": "example", "signature": "example" } ], "leaves": [ { "leaf": { "id": "example", "at": "2026-04-15T12:00:00Z", "kind": "example", "process_id": "example", "counterparty_did": "example", "content": {}, "window_seq": 1, "leaf_index": 1 }, "tree_size": 1, "proof": [ "example" ] } ], "chain": [ { "seq": 1, "prev_hash": "example", "content_hash": "example", "entry_hash": "example" } ], "anchors": [ { "id": "example", "seq": 1, "head": "example", "anchored_at": "2026-04-15T12:00:00Z", "receipt": "example", "qualified": "example" } ], "authority_did": "example", "did_documents": [ {} ], "did_histories": [ {} ], "consent": "example", "signature": "example" } }'A participant’s connector shares an evidence bundle of its own, for example to support a complaint. The bundle carries a consent record naming the authority, covered by the participant’s signature.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
The negotiation or transfer the evidence is about.
Why the participant shares it, e.g. a complaint.
The evidence bundle, with a consent record that names the authority.
object
Environment of the connector that made the bundle (decisions #39). Absent in bundles from before environments existed.
Human-oriented description of the process (type, state, dataset, …).
object
An entry of the evidence chain.
object
object
JWS by the log owner over {iss, seq, entry_hash}.
Data plane requests of the process, each with the proof that the
root of its window (an evidence.window entry above) holds it.
A leaf with the proof that its window root holds it.
object
A data plane request on record (a leaf of a window, decisions #44).
object
object
The chain entry of the window that holds this leaf, once sealed.
Number of leaves in the window.
Inclusion proof, hex, leaf side first.
Content-free chain links from the first entry up to the latest anchor (or head), proving the entries are part of one unbroken log.
Link of the chain without content (for proving continuity).
object
An anchor: the notary’s receipt for the head of the chain at seq.
object
JWS by the Trust Authority over {participant, seq, head, anchored_at}.
A qualified timestamp on the receipt (decisions #45), once the notary has stamped it.
Snapshots of every DID document needed for verification.
object
Did:webvh histories of the parties (docs/decisions.md #42). Where a history verifies, the key in force at the time of a signature comes from it instead of from the snapshot.
object
Present when the bundle is disclosed to a third party.
JWS by the participant over the canonical bundle (without this field).
Example generated
{ "process_id": "example", "reason": "example", "bundle": { "format": "example", "participant_did": "example", "environment": "example", "process_id": "example", "created_at": "2026-04-15T12:00:00Z", "summary": {}, "entries": [ { "seq": 1, "id": "example", "at": "2026-04-15T12:00:00Z", "kind": "example", "process_id": "example", "counterparty_did": "example", "summary": "example", "payload": "example", "payload_sha256": "example", "counterparty_signature": "example", "meta": {}, "content_hash": "example", "prev_hash": "example", "entry_hash": "example", "signature": "example" } ], "leaves": [ { "leaf": { "id": "example", "at": "2026-04-15T12:00:00Z", "kind": "example", "process_id": "example", "counterparty_did": "example", "content": {}, "window_seq": 1, "leaf_index": 1 }, "tree_size": 1, "proof": [ "example" ] } ], "chain": [ { "seq": 1, "prev_hash": "example", "content_hash": "example", "entry_hash": "example" } ], "anchors": [ { "id": "example", "seq": 1, "head": "example", "anchored_at": "2026-04-15T12:00:00Z", "receipt": "example", "qualified": "example" } ], "authority_did": "example", "did_documents": [ {} ], "did_histories": [ {} ], "consent": "example", "signature": "example" }}Responses
Section titled “Responses”OK.
object
Example generated
{ "id": "example", "shared_at": "2026-04-15T12:00:00Z"}No consent record naming the authority.
The body of every failed call to a management API.
object
object
Stable, machine-readable: invalid_request, unauthenticated,
forbidden, not_found, conflict, upstream_unavailable,
unavailable, internal, or a more specific code of the operation.
For people; may change between versions.
Example
{ "error": { "code": "not_found", "message": "unknown negotiation" }}Not authenticated.
The body of every failed call to a management API.
object
object
Stable, machine-readable: invalid_request, unauthenticated,
forbidden, not_found, conflict, upstream_unavailable,
unavailable, internal, or a more specific code of the operation.
For people; may change between versions.
Example
{ "error": { "code": "not_found", "message": "unknown negotiation" }}Not the participant’s own evidence.
The body of every failed call to a management API.
object
object
Stable, machine-readable: invalid_request, unauthenticated,
forbidden, not_found, conflict, upstream_unavailable,
unavailable, internal, or a more specific code of the operation.
For people; may change between versions.
Example
{ "error": { "code": "not_found", "message": "unknown negotiation" }}