{
  "openapi": "3.1.0",
  "info": {
    "title": "Common Ridge API",
    "version": "1.0.0",
    "description": "REST API for Common Ridge workspaces. Authenticate with `Authorization: Bearer <api key>`. Lists are cursor paginated (default page size 50, maximum 200; these are page-size conventions). Writes accept an `Idempotency-Key` header. Scopes: investors:read, investors:write, entities:read, funds:read, commitments:read, commitments:write, capital_accounts:read, transactions:read, capital_calls:read, distributions:read, documents:read, documents:write, statements:read, envelopes:read, tax_documents:read, webhooks:manage."
  },
  "servers": [
    {
      "url": "/api/v1",
      "description": "Relative to your workspace API host"
    }
  ],
  "security": [
    {
      "apiKey": []
    }
  ],
  "tags": [
    {
      "name": "Investors"
    },
    {
      "name": "Entities"
    },
    {
      "name": "Funds"
    },
    {
      "name": "Commitments"
    },
    {
      "name": "Capital accounts"
    },
    {
      "name": "Transactions"
    },
    {
      "name": "Capital calls"
    },
    {
      "name": "Distributions"
    },
    {
      "name": "Documents"
    },
    {
      "name": "Statements"
    },
    {
      "name": "Envelopes"
    },
    {
      "name": "Tax documents"
    },
    {
      "name": "Webhooks"
    }
  ],
  "paths": {
    "/investors": {
      "get": {
        "operationId": "list_investors",
        "summary": "List investors",
        "description": "Required scope: `investors:read` (or the matching :write scope).",
        "tags": [
          "Investors"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": "string",
              "maxLength": 512
            }
          },
          {
            "in": "query",
            "name": "kind",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvestorsPage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "create_investor",
        "summary": "Create an investor",
        "description": "Required scope: `investors:write`. Accepts an Idempotency-Key header.",
        "tags": [
          "Investors"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInvestor"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Investor"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "`request_in_progress` or `idempotency_conflict`: a request with the same Idempotency-Key is still running",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/investors/{id}": {
      "get": {
        "operationId": "get_investor",
        "summary": "Get one of investors",
        "description": "Required scope: `investors:read` (or the matching :write scope).",
        "tags": [
          "Investors"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Investor"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/entities": {
      "get": {
        "operationId": "list_entities",
        "summary": "List investing entities",
        "description": "Required scope: `entities:read` (or the matching :write scope).",
        "tags": [
          "Entities"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": "string",
              "maxLength": 512
            }
          },
          {
            "in": "query",
            "name": "kind",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntitiesPage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/entities/{id}": {
      "get": {
        "operationId": "get_entitie",
        "summary": "Get one of investing entities",
        "description": "Required scope: `entities:read` (or the matching :write scope).",
        "tags": [
          "Entities"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Entity"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/funds": {
      "get": {
        "operationId": "list_funds",
        "summary": "List funds",
        "description": "Required scope: `funds:read` (or the matching :write scope).",
        "tags": [
          "Funds"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": "string",
              "maxLength": 512
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FundsPage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/funds/{id}": {
      "get": {
        "operationId": "get_fund",
        "summary": "Get one of funds",
        "description": "Required scope: `funds:read` (or the matching :write scope).",
        "tags": [
          "Funds"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Fund"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/commitments": {
      "get": {
        "operationId": "list_commitments",
        "summary": "List commitments",
        "description": "Required scope: `commitments:read` (or the matching :write scope).",
        "tags": [
          "Commitments"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": "string",
              "maxLength": 512
            }
          },
          {
            "in": "query",
            "name": "fund_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "investor_entity_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommitmentsPage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "create_commitment",
        "summary": "Record an accepted commitment (creates the capital account)",
        "description": "Required scope: `commitments:write`. Accepts an Idempotency-Key header.",
        "tags": [
          "Commitments"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCommitment"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedCommitment"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "`commitment_exists`: the investor entity already holds a commitment in that fund and share class; nothing is created; `request_in_progress` or `idempotency_conflict`: a request with the same Idempotency-Key is still running",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/commitments/{id}": {
      "get": {
        "operationId": "get_commitment",
        "summary": "Get one of commitments",
        "description": "Required scope: `commitments:read` (or the matching :write scope).",
        "tags": [
          "Commitments"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Commitment"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/capital-accounts": {
      "get": {
        "operationId": "list_capital_accounts",
        "summary": "List capital accounts",
        "description": "Required scope: `capital_accounts:read` (or the matching :write scope).",
        "tags": [
          "Capital accounts"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": "string",
              "maxLength": 512
            }
          },
          {
            "in": "query",
            "name": "fund_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "investor_entity_id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Capital accountsPage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/capital-accounts/{id}": {
      "get": {
        "operationId": "get_capital_account",
        "summary": "Get one of capital accounts",
        "description": "Required scope: `capital_accounts:read` (or the matching :write scope).",
        "tags": [
          "Capital accounts"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CapitalAccount"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/transactions": {
      "get": {
        "operationId": "list_transactions",
        "summary": "List investor transactions",
        "description": "Required scope: `transactions:read` (or the matching :write scope).",
        "tags": [
          "Transactions"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": "string",
              "maxLength": 512
            }
          },
          {
            "in": "query",
            "name": "fund_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "capital_account_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "kind",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionsPage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/transactions/{id}": {
      "get": {
        "operationId": "get_transaction",
        "summary": "Get one of investor transactions",
        "description": "Required scope: `transactions:read` (or the matching :write scope).",
        "tags": [
          "Transactions"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Transaction"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/capital-calls": {
      "get": {
        "operationId": "list_capital_calls",
        "summary": "List capital calls",
        "description": "Required scope: `capital_calls:read` (or the matching :write scope).",
        "tags": [
          "Capital calls"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": "string",
              "maxLength": 512
            }
          },
          {
            "in": "query",
            "name": "fund_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Capital callsPage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/capital-calls/{id}": {
      "get": {
        "operationId": "get_capital_call",
        "summary": "Get one of capital calls",
        "description": "Required scope: `capital_calls:read` (or the matching :write scope).",
        "tags": [
          "Capital calls"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CapitalCall"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/distributions": {
      "get": {
        "operationId": "list_distributions",
        "summary": "List distributions",
        "description": "Required scope: `distributions:read` (or the matching :write scope).",
        "tags": [
          "Distributions"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": "string",
              "maxLength": 512
            }
          },
          {
            "in": "query",
            "name": "fund_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DistributionsPage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/distributions/{id}": {
      "get": {
        "operationId": "get_distribution",
        "summary": "Get one of distributions",
        "description": "Required scope: `distributions:read` (or the matching :write scope).",
        "tags": [
          "Distributions"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Distribution"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/documents": {
      "get": {
        "operationId": "list_documents",
        "summary": "List documents (metadata only)",
        "description": "Required scope: `documents:read` (or the matching :write scope).",
        "tags": [
          "Documents"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": "string",
              "maxLength": 512
            }
          },
          {
            "in": "query",
            "name": "fund_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "type",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentsPage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "create_document",
        "summary": "Create a document record and get an upload target",
        "description": "Required scope: `documents:write`. Accepts an Idempotency-Key header.",
        "tags": [
          "Documents"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDocument"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateDocumentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "`request_in_progress` or `idempotency_conflict`: a request with the same Idempotency-Key is still running",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/documents/{id}": {
      "get": {
        "operationId": "get_document",
        "summary": "Get one of documents (metadata only)",
        "description": "Required scope: `documents:read` (or the matching :write scope).",
        "tags": [
          "Documents"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Document"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/statements": {
      "get": {
        "operationId": "list_statements",
        "summary": "List published capital account statements",
        "description": "Required scope: `statements:read` (or the matching :write scope).",
        "tags": [
          "Statements"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": "string",
              "maxLength": 512
            }
          },
          {
            "in": "query",
            "name": "capital_account_id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatementsPage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/statements/{id}": {
      "get": {
        "operationId": "get_statement",
        "summary": "Get one of published capital account statements",
        "description": "Required scope: `statements:read` (or the matching :write scope).",
        "tags": [
          "Statements"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Statement"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/envelopes": {
      "get": {
        "operationId": "list_envelopes",
        "summary": "List e-sign envelopes (status)",
        "description": "Required scope: `envelopes:read` (or the matching :write scope).",
        "tags": [
          "Envelopes"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": "string",
              "maxLength": 512
            }
          },
          {
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnvelopesPage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/envelopes/{id}": {
      "get": {
        "operationId": "get_envelope",
        "summary": "Get one of e-sign envelopes (status)",
        "description": "Required scope: `envelopes:read` (or the matching :write scope).",
        "tags": [
          "Envelopes"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Envelope"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/tax-documents": {
      "get": {
        "operationId": "list_tax_documents",
        "summary": "List tax documents",
        "description": "Required scope: `tax_documents:read` (or the matching :write scope).",
        "tags": [
          "Tax documents"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": "string",
              "maxLength": 512
            }
          },
          {
            "in": "query",
            "name": "fund_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "investor_entity_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tax_year",
            "schema": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tax documentsPage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/tax-documents/{id}": {
      "get": {
        "operationId": "get_tax_document",
        "summary": "Get one of tax documents",
        "description": "Required scope: `tax_documents:read` (or the matching :write scope).",
        "tags": [
          "Tax documents"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaxDocument"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/documents/{id}/complete": {
      "post": {
        "operationId": "complete_document_upload",
        "summary": "Tell us the upload finished: the file is scanned now (the document is published separately, once the scan is clean)",
        "description": "Required scope: `documents:write`. Accepts an Idempotency-Key header.",
        "tags": [
          "Documents"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Document"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "`request_in_progress` or `idempotency_conflict`: a request with the same Idempotency-Key is still running",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/documents/{id}/publish": {
      "post": {
        "operationId": "publish_document",
        "summary": "Publish a document to its audience; only a scanned, sanitized file (scan_status READY) can be published",
        "description": "Required scope: `documents:write`. Accepts an Idempotency-Key header.",
        "tags": [
          "Documents"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Document"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "`not_ready`: the file has not finished scanning and sanitizing; publish once scan_status is READY; `request_in_progress` or `idempotency_conflict`: a request with the same Idempotency-Key is still running",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/webhooks": {
      "get": {
        "operationId": "list_webhooks",
        "summary": "List webhook endpoints",
        "description": "Required scope: `webhooks:manage`.",
        "tags": [
          "Webhooks"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Webhook"
                      }
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "create_webhook",
        "summary": "Create a webhook endpoint (secret shown once)",
        "description": "Required scope: `webhooks:manage`. Accepts an Idempotency-Key header.",
        "tags": [
          "Webhooks"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWebhook"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateWebhookResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "`request_in_progress` or `idempotency_conflict`: a request with the same Idempotency-Key is still running",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/webhooks/{id}": {
      "delete": {
        "operationId": "delete_webhook",
        "summary": "Delete a webhook endpoint",
        "description": "Required scope: `webhooks:manage`. Accepts an Idempotency-Key header.",
        "tags": [
          "Webhooks"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean",
                      "const": true
                    }
                  },
                  "required": [
                    "deleted"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, revoked or expired API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Missing scope, fund outside key scope, IP not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "`request_in_progress` or `idempotency_conflict`: a request with the same Idempotency-Key is still running",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (only when a limit is configured)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  },
  "webhooks": {
    "investor.created": {
      "post": {
        "summary": "investor.created",
        "description": "An investor was created. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"investor_id\":\"inv_123\",\"legal_name\":\"Example Family Trust\",\"kind\":\"TRUST\"}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "investor.created"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    },
    "investor.updated": {
      "post": {
        "summary": "investor.updated",
        "description": "An investor record changed. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"investor_id\":\"inv_123\",\"changed\":[\"display_name\"]}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "investor.updated"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    },
    "subscription.status_changed": {
      "post": {
        "summary": "subscription.status_changed",
        "description": "A subscription moved to a new status. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"subscription_id\":\"sub_123\",\"fund_id\":\"fund_1\",\"investor_entity_id\":\"ent_1\",\"from\":\"SIGNING\",\"to\":\"FUNDING\"}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "subscription.status_changed"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    },
    "commitment.accepted": {
      "post": {
        "summary": "commitment.accepted",
        "description": "A commitment was accepted. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"commitment_id\":\"com_1\",\"fund_id\":\"fund_1\",\"investor_entity_id\":\"ent_1\",\"amount\":\"250000.0000\",\"accepted_on\":\"2026-10-29\"}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "commitment.accepted"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    },
    "capital_call.issued": {
      "post": {
        "summary": "capital_call.issued",
        "description": "A capital call was issued to investors. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"capital_call_id\":\"cc_1\",\"fund_id\":\"fund_1\",\"number\":3,\"due_date\":\"2026-11-15\",\"total_amount\":\"1000000.0000\"}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "capital_call.issued"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    },
    "capital_call.item_paid": {
      "post": {
        "summary": "capital_call.item_paid",
        "description": "An investor's capital call item was paid. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"capital_call_id\":\"cc_1\",\"item_id\":\"cci_1\",\"investor_entity_id\":\"ent_1\",\"amount\":\"25000.0000\"}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "capital_call.item_paid"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    },
    "capital_call.closed": {
      "post": {
        "summary": "capital_call.closed",
        "description": "A capital call was fully collected or closed. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"capital_call_id\":\"cc_1\",\"fund_id\":\"fund_1\",\"closed_at\":\"2026-11-20T15:00:00Z\"}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "capital_call.closed"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    },
    "distribution.approved": {
      "post": {
        "summary": "distribution.approved",
        "description": "A distribution was approved. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"distribution_id\":\"dist_1\",\"fund_id\":\"fund_1\",\"number\":2,\"gross_amount\":\"500000.0000\"}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "distribution.approved"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    },
    "distribution.paid": {
      "post": {
        "summary": "distribution.paid",
        "description": "A distribution was paid out. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"distribution_id\":\"dist_1\",\"fund_id\":\"fund_1\",\"pay_date\":\"2026-12-01\"}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "distribution.paid"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    },
    "payment.status_changed": {
      "post": {
        "summary": "payment.status_changed",
        "description": "A payment changed status. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"payment_id\":\"pay_1\",\"from\":\"PROCESSING\",\"to\":\"SETTLED\"}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "payment.status_changed"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    },
    "document.published": {
      "post": {
        "summary": "document.published",
        "description": "A document was published to investors. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"document_id\":\"doc_1\",\"fund_id\":\"fund_1\",\"type\":\"QUARTERLY_REPORT\",\"title\":\"Q3 2026 report\"}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "document.published"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    },
    "document.viewed": {
      "post": {
        "summary": "document.viewed",
        "description": "An investor viewed a document. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"document_id\":\"doc_1\",\"investor_entity_id\":\"ent_1\",\"viewed_at\":\"2026-11-02T14:00:00Z\"}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "document.viewed"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    },
    "statement.published": {
      "post": {
        "summary": "statement.published",
        "description": "A capital account statement was published. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"statement_id\":\"st_1\",\"capital_account_id\":\"ca_1\",\"version\":1}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "statement.published"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    },
    "envelope.completed": {
      "post": {
        "summary": "envelope.completed",
        "description": "All signers completed an envelope. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"envelope_id\":\"env_1\",\"completed_at\":\"2026-11-02T14:00:00Z\"}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "envelope.completed"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    },
    "envelope.declined": {
      "post": {
        "summary": "envelope.declined",
        "description": "A signer declined an envelope. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"envelope_id\":\"env_1\",\"signer_id\":\"sg_1\"}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "envelope.declined"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    },
    "period.closed": {
      "post": {
        "summary": "period.closed",
        "description": "An accounting period was closed. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"period_id\":\"per_1\",\"fund_id\":\"fund_1\",\"period_end\":\"2026-09-30\"}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "period.closed"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    },
    "nav.published": {
      "post": {
        "summary": "nav.published",
        "description": "A NAV was approved and published. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"nav_run_id\":\"nav_1\",\"fund_id\":\"fund_1\",\"as_of\":\"2026-09-30\"}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "nav.published"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    },
    "tax_document.delivered": {
      "post": {
        "summary": "tax_document.delivered",
        "description": "A tax document was delivered to an investor. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"tax_document_id\":\"tax_1\",\"investor_entity_id\":\"ent_1\",\"tax_year\":2026,\"type\":\"K1\"}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "tax_document.delivered"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    },
    "bank_account.changed": {
      "post": {
        "summary": "bank_account.changed",
        "description": "An investor or fund bank account changed. Signed with `X-CommonRidge-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)`; timestamp in `X-CommonRidge-Timestamp`. Sample data: `{\"investor_entity_id\":\"ent_1\",\"bank_account_id\":\"ba_1\",\"change\":\"ADDED\"}`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "bank_account.changed"
                  },
                  "created": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "type",
                  "created",
                  "tenant_id",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return any 2xx to acknowledge; other responses are retried for 24 hours."
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "CreateInvestor": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "enum": [
              "INDIVIDUAL",
              "JOINT",
              "TRUST",
              "LLC",
              "LP",
              "IRA",
              "OTHER"
            ]
          },
          "legal_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "display_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          }
        },
        "required": [
          "kind",
          "legal_name"
        ]
      },
      "CreateCommitment": {
        "type": "object",
        "properties": {
          "fund_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "share_class_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "investor_entity_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "amount": {
            "type": "string",
            "pattern": "^\\d+(\\.\\d{1,4})?$"
          },
          "accepted_on": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "investor_number": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          }
        },
        "required": [
          "fund_id",
          "share_class_id",
          "investor_entity_id",
          "amount",
          "accepted_on"
        ]
      },
      "CreateDocument": {
        "type": "object",
        "properties": {
          "fund_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "type": {
            "type": "string",
            "enum": [
              "PPM",
              "LPA_OR_OA",
              "SUBSCRIPTION_AGREEMENT",
              "SIDE_LETTER",
              "CAPITAL_CALL_NOTICE",
              "DISTRIBUTION_NOTICE",
              "QUARTERLY_REPORT",
              "CAPITAL_STATEMENT",
              "NAV_STATEMENT",
              "K1",
              "K1_ESTIMATE",
              "FORM_1099",
              "FORM_1042S",
              "W9",
              "W8",
              "AUDITED_FINANCIALS",
              "VALUATION_REPORT",
              "ADHOC"
            ]
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 300
          },
          "visibility": {
            "default": "STAFF_ONLY",
            "type": "string",
            "enum": [
              "FUND_WIDE",
              "CLASS",
              "ENTITY",
              "STAFF_ONLY"
            ]
          },
          "share_class_ids": {
            "default": [],
            "description": "Required for visibility CLASS",
            "type": "array",
            "items": {
              "type": "string",
              "description": "Resource id",
              "example": "ckx1y2z3a0000"
            }
          },
          "investor_entity_ids": {
            "default": [],
            "description": "Required for visibility ENTITY",
            "type": "array",
            "items": {
              "type": "string",
              "description": "Resource id",
              "example": "ckx1y2z3a0000"
            }
          },
          "file_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "content_type": {
            "type": "string",
            "minLength": 1,
            "maxLength": 127
          },
          "size_bytes": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          }
        },
        "required": [
          "type",
          "title",
          "file_name",
          "content_type",
          "size_bytes",
          "sha256"
        ]
      },
      "CreateWebhook": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "uri"
          },
          "events": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "investor.created",
                "investor.updated",
                "subscription.status_changed",
                "commitment.accepted",
                "capital_call.issued",
                "capital_call.item_paid",
                "capital_call.closed",
                "distribution.approved",
                "distribution.paid",
                "payment.status_changed",
                "document.published",
                "document.viewed",
                "statement.published",
                "envelope.completed",
                "envelope.declined",
                "period.closed",
                "nav.published",
                "tax_document.delivered",
                "bank_account.changed",
                "*"
              ]
            }
          }
        },
        "required": [
          "url",
          "events"
        ]
      },
      "InvestorsPage": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Investor"
            }
          },
          "next_cursor": {
            "type": [
              "string",
              "null"
            ]
          },
          "has_more": {
            "type": "boolean"
          }
        },
        "required": [
          "data",
          "next_cursor",
          "has_more"
        ],
        "additionalProperties": false
      },
      "Investor": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "kind": {
            "type": "string",
            "enum": [
              "INDIVIDUAL",
              "JOINT",
              "TRUST",
              "LLC",
              "LP",
              "IRA",
              "OTHER"
            ]
          },
          "legal_name": {
            "type": "string"
          },
          "display_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "accreditation_status": {
            "type": "string"
          },
          "kyc_status": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          },
          "updated_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          }
        },
        "required": [
          "id",
          "kind",
          "legal_name",
          "display_name",
          "accreditation_status",
          "kyc_status",
          "created_at",
          "updated_at"
        ],
        "additionalProperties": false
      },
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "request_id": {
                "type": "string"
              }
            },
            "required": [
              "code",
              "message",
              "request_id"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "error"
        ],
        "additionalProperties": false
      },
      "EntitiesPage": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Entity"
            }
          },
          "next_cursor": {
            "type": [
              "string",
              "null"
            ]
          },
          "has_more": {
            "type": "boolean"
          }
        },
        "required": [
          "data",
          "next_cursor",
          "has_more"
        ],
        "additionalProperties": false
      },
      "Entity": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "kind": {
            "type": "string",
            "enum": [
              "INDIVIDUAL",
              "JOINT",
              "TRUST",
              "LLC",
              "LP",
              "IRA",
              "OTHER"
            ]
          },
          "legal_name": {
            "type": "string"
          },
          "display_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "accreditation_status": {
            "type": "string"
          },
          "kyc_status": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          },
          "updated_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          },
          "tax_id_on_file": {
            "type": "boolean"
          },
          "access_count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "id",
          "kind",
          "legal_name",
          "display_name",
          "accreditation_status",
          "kyc_status",
          "created_at",
          "updated_at",
          "tax_id_on_file",
          "access_count"
        ],
        "additionalProperties": false
      },
      "FundsPage": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Fund"
            }
          },
          "next_cursor": {
            "type": [
              "string",
              "null"
            ]
          },
          "has_more": {
            "type": "boolean"
          }
        },
        "required": [
          "data",
          "next_cursor",
          "has_more"
        ],
        "additionalProperties": false
      },
      "Fund": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "name": {
            "type": "string"
          },
          "legal_name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "legal_form": {
            "type": "string"
          },
          "structure_type": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "vintage_year": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          }
        },
        "required": [
          "id",
          "name",
          "legal_name",
          "code",
          "legal_form",
          "structure_type",
          "currency",
          "vintage_year",
          "status",
          "created_at"
        ],
        "additionalProperties": false
      },
      "CommitmentsPage": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Commitment"
            }
          },
          "next_cursor": {
            "type": [
              "string",
              "null"
            ]
          },
          "has_more": {
            "type": "boolean"
          }
        },
        "required": [
          "data",
          "next_cursor",
          "has_more"
        ],
        "additionalProperties": false
      },
      "Commitment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "fund_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "share_class_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "investor_entity_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "amount": {
            "type": "string",
            "pattern": "^-?\\d+(\\.\\d+)?$",
            "description": "Decimal amount as a string",
            "example": "250000.0000"
          },
          "accepted_on": {
            "type": "string",
            "description": "Calendar date, YYYY-MM-DD",
            "example": "2026-10-29"
          },
          "status": {
            "type": "string"
          },
          "investor_number": {
            "type": [
              "string",
              "null"
            ]
          },
          "created_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          }
        },
        "required": [
          "id",
          "fund_id",
          "share_class_id",
          "investor_entity_id",
          "amount",
          "accepted_on",
          "status",
          "investor_number",
          "created_at"
        ],
        "additionalProperties": false
      },
      "CreatedCommitment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "fund_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "share_class_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "investor_entity_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "amount": {
            "type": "string",
            "pattern": "^-?\\d+(\\.\\d+)?$",
            "description": "Decimal amount as a string",
            "example": "250000.0000"
          },
          "accepted_on": {
            "type": "string",
            "description": "Calendar date, YYYY-MM-DD",
            "example": "2026-10-29"
          },
          "status": {
            "type": "string"
          },
          "investor_number": {
            "type": [
              "string",
              "null"
            ]
          },
          "created_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          },
          "capital_account_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          }
        },
        "required": [
          "id",
          "fund_id",
          "share_class_id",
          "investor_entity_id",
          "amount",
          "accepted_on",
          "status",
          "investor_number",
          "created_at",
          "capital_account_id"
        ],
        "additionalProperties": false
      },
      "Capital accountsPage": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CapitalAccount"
            }
          },
          "next_cursor": {
            "type": [
              "string",
              "null"
            ]
          },
          "has_more": {
            "type": "boolean"
          }
        },
        "required": [
          "data",
          "next_cursor",
          "has_more"
        ],
        "additionalProperties": false
      },
      "CapitalAccount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "fund_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "share_class_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "investor_entity_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "commitment_id": {
            "anyOf": [
              {
                "type": "string",
                "description": "Resource id",
                "example": "ckx1y2z3a0000"
              },
              {
                "type": "null"
              }
            ]
          },
          "commitment_amount": {
            "type": "string",
            "pattern": "^-?\\d+(\\.\\d+)?$",
            "description": "Decimal amount as a string",
            "example": "250000.0000"
          },
          "contributed": {
            "type": "string",
            "pattern": "^-?\\d+(\\.\\d+)?$",
            "description": "Decimal amount as a string",
            "example": "250000.0000"
          },
          "distributed": {
            "type": "string",
            "pattern": "^-?\\d+(\\.\\d+)?$",
            "description": "Decimal amount as a string",
            "example": "250000.0000"
          },
          "unfunded": {
            "type": "string",
            "pattern": "^-?\\d+(\\.\\d+)?$",
            "description": "Decimal amount as a string",
            "example": "250000.0000"
          },
          "recallable_balance": {
            "type": "string",
            "pattern": "^-?\\d+(\\.\\d+)?$",
            "description": "Decimal amount as a string",
            "example": "250000.0000"
          },
          "management_fees": {
            "type": "string",
            "pattern": "^-?\\d+(\\.\\d+)?$",
            "description": "Decimal amount as a string",
            "example": "250000.0000"
          },
          "performance_fees": {
            "type": "string",
            "pattern": "^-?\\d+(\\.\\d+)?$",
            "description": "Decimal amount as a string",
            "example": "250000.0000"
          },
          "expenses": {
            "type": "string",
            "pattern": "^-?\\d+(\\.\\d+)?$",
            "description": "Decimal amount as a string",
            "example": "250000.0000"
          },
          "capital_balance": {
            "type": "string",
            "pattern": "^-?\\d+(\\.\\d+)?$",
            "description": "Decimal amount as a string",
            "example": "250000.0000"
          },
          "units": {
            "type": "string",
            "pattern": "^-?\\d+(\\.\\d+)?$",
            "description": "Decimal amount as a string",
            "example": "250000.0000"
          },
          "nav": {
            "type": "string",
            "pattern": "^-?\\d+(\\.\\d+)?$",
            "description": "Decimal amount as a string",
            "example": "250000.0000"
          },
          "created_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          },
          "updated_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          }
        },
        "required": [
          "id",
          "fund_id",
          "share_class_id",
          "investor_entity_id",
          "commitment_id",
          "commitment_amount",
          "contributed",
          "distributed",
          "unfunded",
          "recallable_balance",
          "management_fees",
          "performance_fees",
          "expenses",
          "capital_balance",
          "units",
          "nav",
          "created_at",
          "updated_at"
        ],
        "additionalProperties": false
      },
      "TransactionsPage": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            }
          },
          "next_cursor": {
            "type": [
              "string",
              "null"
            ]
          },
          "has_more": {
            "type": "boolean"
          }
        },
        "required": [
          "data",
          "next_cursor",
          "has_more"
        ],
        "additionalProperties": false
      },
      "Transaction": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "fund_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "capital_account_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "kind": {
            "type": "string"
          },
          "effective_date": {
            "type": "string",
            "description": "Calendar date, YYYY-MM-DD",
            "example": "2026-10-29"
          },
          "amount": {
            "type": "string",
            "pattern": "^-?\\d+(\\.\\d+)?$",
            "description": "Decimal amount as a string",
            "example": "250000.0000"
          },
          "units": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?\\d+(\\.\\d+)?$",
                "description": "Decimal amount as a string",
                "example": "250000.0000"
              },
              {
                "type": "null"
              }
            ]
          },
          "memo": {
            "type": [
              "string",
              "null"
            ]
          },
          "reverses_id": {
            "anyOf": [
              {
                "type": "string",
                "description": "Resource id",
                "example": "ckx1y2z3a0000"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          }
        },
        "required": [
          "id",
          "fund_id",
          "capital_account_id",
          "kind",
          "effective_date",
          "amount",
          "units",
          "memo",
          "reverses_id",
          "created_at"
        ],
        "additionalProperties": false
      },
      "Capital callsPage": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CapitalCall"
            }
          },
          "next_cursor": {
            "type": [
              "string",
              "null"
            ]
          },
          "has_more": {
            "type": "boolean"
          }
        },
        "required": [
          "data",
          "next_cursor",
          "has_more"
        ],
        "additionalProperties": false
      },
      "CapitalCall": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "fund_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "number": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "kind": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "notice_date": {
            "anyOf": [
              {
                "type": "string",
                "description": "Calendar date, YYYY-MM-DD",
                "example": "2026-10-29"
              },
              {
                "type": "null"
              }
            ]
          },
          "due_date": {
            "type": "string",
            "description": "Calendar date, YYYY-MM-DD",
            "example": "2026-10-29"
          },
          "total_amount": {
            "type": "string",
            "pattern": "^-?\\d+(\\.\\d+)?$",
            "description": "Decimal amount as a string",
            "example": "250000.0000"
          },
          "issued_at": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO-8601 timestamp",
                "example": "2026-10-29T15:04:05.000Z"
              },
              {
                "type": "null"
              }
            ]
          },
          "closed_at": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO-8601 timestamp",
                "example": "2026-10-29T15:04:05.000Z"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          }
        },
        "required": [
          "id",
          "fund_id",
          "number",
          "kind",
          "status",
          "notice_date",
          "due_date",
          "total_amount",
          "issued_at",
          "closed_at",
          "created_at"
        ],
        "additionalProperties": false
      },
      "DistributionsPage": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Distribution"
            }
          },
          "next_cursor": {
            "type": [
              "string",
              "null"
            ]
          },
          "has_more": {
            "type": "boolean"
          }
        },
        "required": [
          "data",
          "next_cursor",
          "has_more"
        ],
        "additionalProperties": false
      },
      "Distribution": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "fund_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "number": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "kind": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "record_date": {
            "type": "string",
            "description": "Calendar date, YYYY-MM-DD",
            "example": "2026-10-29"
          },
          "pay_date": {
            "type": "string",
            "description": "Calendar date, YYYY-MM-DD",
            "example": "2026-10-29"
          },
          "gross_amount": {
            "type": "string",
            "pattern": "^-?\\d+(\\.\\d+)?$",
            "description": "Decimal amount as a string",
            "example": "250000.0000"
          },
          "created_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          }
        },
        "required": [
          "id",
          "fund_id",
          "number",
          "kind",
          "status",
          "record_date",
          "pay_date",
          "gross_amount",
          "created_at"
        ],
        "additionalProperties": false
      },
      "DocumentsPage": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Document"
            }
          },
          "next_cursor": {
            "type": [
              "string",
              "null"
            ]
          },
          "has_more": {
            "type": "boolean"
          }
        },
        "required": [
          "data",
          "next_cursor",
          "has_more"
        ],
        "additionalProperties": false
      },
      "Document": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "fund_id": {
            "anyOf": [
              {
                "type": "string",
                "description": "Resource id",
                "example": "ckx1y2z3a0000"
              },
              {
                "type": "null"
              }
            ]
          },
          "type": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "visibility": {
            "type": "string"
          },
          "published_at": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO-8601 timestamp",
                "example": "2026-10-29T15:04:05.000Z"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          },
          "latest_version": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DocumentVersion"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "fund_id",
          "type",
          "title",
          "visibility",
          "published_at",
          "created_at",
          "latest_version"
        ],
        "additionalProperties": false
      },
      "DocumentVersion": {
        "type": "object",
        "properties": {
          "version": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "file_name": {
            "type": "string"
          },
          "content_type": {
            "type": "string"
          },
          "size_bytes": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "sha256": {
            "type": "string"
          },
          "scan_status": {
            "type": "string"
          }
        },
        "required": [
          "version",
          "file_name",
          "content_type",
          "size_bytes",
          "sha256",
          "scan_status"
        ],
        "additionalProperties": false
      },
      "CreateDocumentResponse": {
        "type": "object",
        "properties": {
          "document": {
            "$ref": "#/components/schemas/Document"
          },
          "upload": {
            "$ref": "#/components/schemas/UploadTarget"
          }
        },
        "required": [
          "document",
          "upload"
        ],
        "additionalProperties": false
      },
      "UploadTarget": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "method": {
            "type": "string",
            "const": "PUT"
          },
          "headers": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "type": "string"
            }
          },
          "expires_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          },
          "storage_key": {
            "type": "string"
          }
        },
        "required": [
          "url",
          "method",
          "headers",
          "expires_at",
          "storage_key"
        ],
        "additionalProperties": false
      },
      "StatementsPage": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Statement"
            }
          },
          "next_cursor": {
            "type": [
              "string",
              "null"
            ]
          },
          "has_more": {
            "type": "boolean"
          }
        },
        "required": [
          "data",
          "next_cursor",
          "has_more"
        ],
        "additionalProperties": false
      },
      "Statement": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "statement_run_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "capital_account_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "version": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "status": {
            "type": "string"
          },
          "sha256": {
            "type": [
              "string",
              "null"
            ]
          },
          "document_id": {
            "anyOf": [
              {
                "type": "string",
                "description": "Resource id",
                "example": "ckx1y2z3a0000"
              },
              {
                "type": "null"
              }
            ]
          },
          "published_at": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO-8601 timestamp",
                "example": "2026-10-29T15:04:05.000Z"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          }
        },
        "required": [
          "id",
          "statement_run_id",
          "capital_account_id",
          "version",
          "status",
          "sha256",
          "document_id",
          "published_at",
          "created_at"
        ],
        "additionalProperties": false
      },
      "EnvelopesPage": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Envelope"
            }
          },
          "next_cursor": {
            "type": [
              "string",
              "null"
            ]
          },
          "has_more": {
            "type": "boolean"
          }
        },
        "required": [
          "data",
          "next_cursor",
          "has_more"
        ],
        "additionalProperties": false
      },
      "Envelope": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "parent_type": {
            "type": [
              "string",
              "null"
            ]
          },
          "parent_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "sent_at": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO-8601 timestamp",
                "example": "2026-10-29T15:04:05.000Z"
              },
              {
                "type": "null"
              }
            ]
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO-8601 timestamp",
                "example": "2026-10-29T15:04:05.000Z"
              },
              {
                "type": "null"
              }
            ]
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO-8601 timestamp",
                "example": "2026-10-29T15:04:05.000Z"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          },
          "signers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Resource id",
                  "example": "ckx1y2z3a0000"
                },
                "role": {
                  "type": "string"
                },
                "order": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "status": {
                  "type": "string"
                },
                "signed_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "ISO-8601 timestamp",
                      "example": "2026-10-29T15:04:05.000Z"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "id",
                "role",
                "order",
                "status",
                "signed_at"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "title",
          "status",
          "parent_type",
          "parent_id",
          "sent_at",
          "completed_at",
          "expires_at",
          "created_at",
          "signers"
        ],
        "additionalProperties": false
      },
      "Tax documentsPage": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaxDocument"
            }
          },
          "next_cursor": {
            "type": [
              "string",
              "null"
            ]
          },
          "has_more": {
            "type": "boolean"
          }
        },
        "required": [
          "data",
          "next_cursor",
          "has_more"
        ],
        "additionalProperties": false
      },
      "TaxDocument": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "fund_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "investor_entity_id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "tax_year": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "type": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "document_id": {
            "anyOf": [
              {
                "type": "string",
                "description": "Resource id",
                "example": "ckx1y2z3a0000"
              },
              {
                "type": "null"
              }
            ]
          },
          "expected_final_date": {
            "anyOf": [
              {
                "type": "string",
                "description": "Calendar date, YYYY-MM-DD",
                "example": "2026-10-29"
              },
              {
                "type": "null"
              }
            ]
          },
          "delivered_at": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO-8601 timestamp",
                "example": "2026-10-29T15:04:05.000Z"
              },
              {
                "type": "null"
              }
            ]
          },
          "viewed_at": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO-8601 timestamp",
                "example": "2026-10-29T15:04:05.000Z"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          }
        },
        "required": [
          "id",
          "fund_id",
          "investor_entity_id",
          "tax_year",
          "type",
          "status",
          "document_id",
          "expected_final_date",
          "delivered_at",
          "viewed_at",
          "created_at"
        ],
        "additionalProperties": false
      },
      "Webhook": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "url": {
            "type": "string"
          },
          "events": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "active": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          }
        },
        "required": [
          "id",
          "url",
          "events",
          "active",
          "created_at"
        ],
        "additionalProperties": false
      },
      "CreateWebhookResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Resource id",
            "example": "ckx1y2z3a0000"
          },
          "url": {
            "type": "string"
          },
          "events": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "active": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string",
            "description": "ISO-8601 timestamp",
            "example": "2026-10-29T15:04:05.000Z"
          },
          "secret": {
            "type": "string",
            "description": "Signing secret; shown once"
          }
        },
        "required": [
          "id",
          "url",
          "events",
          "active",
          "created_at",
          "secret"
        ],
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "apiKey": {
        "type": "http",
        "scheme": "bearer",
        "description": "Workspace API key (crk_...)"
      }
    }
  }
}
