Skip to content
Dark MatterDark Matter
API

Documents API

API reference for legal document viewing, listing, and acceptance.

Overview

Legal documents (operating agreements, transfer agreements, subscription agreements, consent forms, opinion letters) are generated automatically during fund formation and settlement. The Documents API provides viewing, listing, and acceptance endpoints.

GET /v1/documents/:id

Retrieve document metadata. Add ?format=html to receive the rendered HTML body instead.

Response (JSON — default)

{
  "document_id": "doc-ta-txn-001",
  "document_type": "transfer_agreement",
  "template_version": "1.0.0",
  "parties": ["part-gp-a", "part-buyer-001"],
  "positions": ["pos-rd-gp-b-saronic"],
  "transfer_id": "txn-001",
  "content_hash": "sha256:a1b2c3d4e5...",
  "status": "draft",
  "required_signers": ["part-gp-a", "part-buyer-001"],
  "created_at": "2026-03-20T10:00:00Z"
}

Response (HTML — ?format=html)

Returns the rendered HTML of the legal document directly. Content-Type: text/html.


GET /v1/documents/:id/html

Returns the rendered HTML body of the document directly.


POST /v1/documents/:id/accept

Record a signature/acceptance on a document. The signer must be a party to the document.

Request

{
  "signer_id": "part-gp-a",
  "signer_name": "John Komkov",
  "role": "managing_member"
}

Response

{
  "document_id": "doc-ta-txn-001",
  "status": "partially_signed",
  "signatures": [
    {
      "signer_id": "part-gp-a",
      "signer_name": "John Komkov",
      "role": "managing_member",
      "signed_at": "2026-03-20T12:00:00Z"
    }
  ],
  "all_signed": false
}

Status transitions

FromToCondition
draftpartially_signedFirst signer accepts
partially_signedexecutedAll required signers have accepted

When all required signers have accepted, the document transitions to executed and a document.executed event is recorded in the audit chain with the content hash for integrity verification.


GET /v1/documents/

List documents by type or transfer ID. One query parameter is required.

Query parameters

ParameterDescription
typeFilter by document type (e.g., transfer_agreement, operating_agreement)
transfer_idFilter by associated transfer

Response

[
  {
    "document_id": "doc-ta-txn-001",
    "document_type": "transfer_agreement",
    "status": "draft",
    "created_at": "2026-03-20T10:00:00Z"
  }
]

The html content is excluded from list responses for performance.

Edit this page on GitHub

Last reviewed: March 24, 2026

Was this page helpful?