> ## Documentation Index
> Fetch the complete documentation index at: https://entendre.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get balance sheet

> Returns assets, liabilities and equity for each accounting period.

Filter by `accounting_period_ids`, or by `start_date` and `end_date`. Do not combine them. Without a filter, every accounting period is a column.


## OpenAPI

````yaml openapi-public-preview.json GET /v1/reports/balance-sheet
openapi: 3.1.0
info:
  title: Entendre API
  version: 1.0.0
  description: Programmatic access to crypto-native accounting and treasury operations.
servers:
  - url: https://api.entendre.finance
    description: Production API.
security:
  - ApiKey: []
tags:
  - name: Organization
    description: Read your organization profile and find members for agent assignments.
  - name: Transactions
    description: Find transactions, inspect their details and create manual records.
  - name: Sources
    description: >-
      Manage wallets, exchange accounts, bank accounts and other transaction
      sources.
  - name: Assets
    description: Inspect asset acquisitions, remaining quantities and cost basis.
  - name: Journals
    description: >-
      Create and post journal entries, correct eligible entries and sync posted
      journals to a connected general ledger.
  - name: Documents
    description: >-
      Upload documents, check processing status and link supporting evidence to
      transactions.
  - name: Legal Entities
    description: Manage the legal entities used in your accounting records.
  - name: Ledger Accounts
    description: Manage your chart of accounts and find accounts for journal entries.
  - name: Tags
    description: Create and manage tags to classify your records.
  - name: Accruals
    description: >-
      Create and post accruals, inspect their status and reverse eligible
      entries.
  - name: Cash Application
    description: Match deposits to invoices and manage the resulting cash applications.
  - name: Classification
    description: >-
      Classify transactions in a batch, post eligible entries and inspect the
      results.
  - name: Revaluation
    description: Run asset revaluations for an accounting period and check their results.
  - name: Accounting Periods
    description: Check whether a period is ready to close, then close or reopen it.
  - name: Income Statement
    description: View revenue, expenses and net income for a reporting period.
  - name: Balance Sheet
    description: View assets, liabilities and equity as of a reporting date.
  - name: Trial Balance
    description: Review ledger account balances and debit and credit totals.
  - name: Closing Positions
    description: View asset positions at the end of a reporting period.
  - name: Treasury Balances
    description: Review treasury balances by asset and source.
  - name: Realized Gains & Losses
    description: Review realized gains and losses from asset dispositions.
  - name: Asset Tax Lots
    description: Inspect asset tax lots, remaining quantities and cost basis.
  - name: Schedule of Dispositions
    description: >-
      Review asset dispositions and their proceeds, cost basis and gains or
      losses.
  - name: Financial Insights
    description: Review financial insights for your selected reporting context.
  - name: Agents
    description: Create agents, schedule their work and inspect their runs.
  - name: Memory
    description: Read, search and maintain the memory files your agents use.
  - name: Connections
    description: Connect providers, manage authorization and disconnect.
  - name: GL Mapping
    description: >-
      Map ledger accounts and legal entities to your ERP. Import legal entities,
      tags and chart of accounts.
  - name: Request
    description: Request information, documents or connections from a client.
  - name: Client
    description: Manage your firm’s client relationships.
  - name: Team
    description: Invite team members and manage their access to your firm.
  - name: Settings
    description: Read and update your firm settings.
paths:
  /v1/reports/balance-sheet:
    get:
      tags:
        - Balance Sheet
      summary: Get balance sheet
      description: >-
        Returns assets, liabilities and equity by accounting period. Filter by
        accounting period IDs or by a start_date/end_date pair; do not combine
        them. Omit both to return every accounting period as a column.
      operationId: get_balance_sheet
      parameters:
        - name: tag_id
          in: query
          schema:
            type: string
          description: >-
            Prefixed tag ID (`tag_`). Filters the report to one tag. Get tag IDs
            from List tags.
        - name: start_date
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: >-
            Start of the window (ISO 8601, inclusive). Send with `end_date`. A
            date inside a period returns the full period. You cannot send it
            with `accounting_period_id` or `accounting_period_ids`.
        - name: end_date
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: >-
            Inclusive end of the window (ISO 8601). Send it with `start_date`.
            Each column is a whole accounting period, so a date inside a period
            returns the full period.
        - name: include_zero_rows
          in: query
          schema:
            type: boolean
            default: true
          description: >-
            Set to `false` to omit accounts that are zero in every period.
            Defaults to `true`.
        - name: legal_entity_ids
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              description: Legal entity ID (`le_…`).
              example: le_507f1f77bcf86cd799439011
            maxItems: 100
            uniqueItems: true
          style: form
          explode: true
          description: Legal entities to include (`le_…`). Omit to include all.
        - name: accounting_period_id
          in: query
          required: false
          description: Accounting period ID (`ap_…`).
          schema:
            type: string
            example: ap_507f1f77bcf86cd799439011
        - name: accounting_period_ids
          in: query
          schema:
            type: array
            items:
              type: string
          description: >-
            Accounting period IDs (`ap_…`), up to 100. Omit to return every
            period.
          style: form
          explode: true
        - name: verbosity
          in: query
          schema:
            type: string
            enum:
              - faithful
              - compact
            default: faithful
          description: >-
            `faithful` (the default) returns all fields. `compact` returns the
            same figures in a smaller shape.
        - name: as_of
          in: query
          schema:
            type: boolean
            default: false
          description: >-
            Set to `true` to include every period from the first period through
            `end_date`. Requires `end_date`; `start_date`,
            `accounting_period_id` or `accounting_period_ids` return HTTP 400.
            Defaults to `false`.
      responses:
        '200':
          description: The request succeeded.
          headers:
            X-Request-Id:
              description: Support correlation ID.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/BalanceSheet'
                required:
                  - data
                additionalProperties: false
              example:
                data:
                  ledger_accounts:
                    - id: lac_507f1f77bcf86cd799439011
                      name: Cash
                      type: Asset
                      normal_balance: debit
                      sequence_number: 1000
                      parent_account_id: null
                      is_postable: true
                      is_clearing_account: false
                      is_archived: false
                      archived_at: null
                      asset_type: null
                      created_at: '2026-08-31T12:00:00Z'
                  balances:
                    lac_507f1f77bcf86cd799439011:
                      2026-08:
                        credit_debit:
                          opening_balance:
                            value: '0.00'
                          closing_balance:
                            value: '0.00'
                          current_balance:
                            value: '0.00'
                          debits:
                            value: '0.00'
                          credits:
                            value: '0.00'
                          accounting_period_start_date_utc: null
                          legal_entity_ids:
                            - le_507f1f77bcf86cd799439011
                        tag_balance:
                          value: '0.00'
                  data_quality:
                    negative_asset_periods:
                      - period: 2026-09
                        total: '100.00'
                    unbalanced_periods:
                      - period: 2026-09
                        assets: '100.00'
                        liabilities_plus_equity: '90.00'
                        difference: '10.00'
                    warnings: []
        '400':
          description: >-
            The request is invalid. `error.fields` lists the fields to correct.
            Nothing was changed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: VALIDATION_ERROR
                  message: Invalid path, query or request body.
                  request_id: req_example
        '401':
          description: The API key is missing, invalid or expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: UNAUTHORIZED
                  message: Authentication is required.
                  request_id: req_example
        '403':
          description: >-
            The API key does not have the required scope or is not associated
            with a user, or the action needs a review in the dashboard.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: FORBIDDEN
                  message: Insufficient access to organization
                  request_id: req_example
        '404':
          description: The resource does not exist, or your organization cannot access it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: RESOURCE_NOT_FOUND
                  message: Resource not found
                  request_id: req_example
        '429':
          description: >-
            Too many requests. If the response has a `Retry-After` header, wait
            that many seconds before you retry. Otherwise, read `error.message`.
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
                minimum: 1
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: RATE_LIMITED
                  message: Rate limit exceeded. Retry after 30s.
                  request_id: req_example
        '500':
          description: >-
            An unexpected error occurred. A write can still have taken effect;
            check the resource before you retry. Give the `request_id` to
            support.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: INTERNAL_ERROR
                  message: Internal server error
                  request_id: req_example
        '503':
          description: >-
            A service that this operation needs is unavailable. If the response
            has a `Retry-After` header, wait that many seconds. Check for
            earlier accepted work before you send the request again.
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
                minimum: 1
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: SERVICE_UNAVAILABLE
                  message: Service unavailable.
                  request_id: req_example
components:
  schemas:
    BalanceSheet:
      type: object
      properties:
        ledger_accounts:
          type: array
          description: >-
            The ledger accounts on the report, in the same shape as List ledger
            accounts.
          items:
            $ref: '#/components/schemas/LedgerAccount'
        balances:
          type: object
          description: Keyed by prefixed ledger account ID → period name → balance row.
          additionalProperties:
            type: object
            additionalProperties:
              $ref: '#/components/schemas/FinancialReportRow'
        data_quality:
          type: object
          description: >-
            Checks for periods with negative total assets and periods where
            assets do not equal liabilities plus equity.
          properties:
            negative_asset_periods:
              type: array
              description: >-
                Periods whose total assets are negative. Each entry is `{
                period, total }` (decimal-string total).
              items:
                type: object
                properties:
                  period:
                    type: string
                    description: Accounting period name.
                  total:
                    type: string
                    description: Total assets (decimal string).
            unbalanced_periods:
              type: array
              description: Periods where assets do not equal liabilities plus equity.
              items:
                type: object
                properties:
                  period:
                    type: string
                    description: Accounting period name.
                  assets:
                    type: string
                    description: Total assets (decimal string).
                  liabilities_plus_equity:
                    type: string
                    description: Total liabilities plus equity (decimal string).
                  difference:
                    type: string
                    description: Assets minus liabilities plus equity (decimal string).
            warnings:
              type: array
              items:
                type: string
              description: >-
                Human-readable `[WARNING]` strings for any raised condition
                (negative-asset, or does-not-foot).
      required:
        - ledger_accounts
        - balances
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - request_id
          properties:
            code:
              type: string
              description: Machine-readable error code.
            message:
              type: string
              description: Technical description for developers.
            fields:
              type: object
              additionalProperties:
                type: string
              description: >-
                Present only on VALIDATION_ERROR. Maps failing field paths to
                reason strings.
            details:
              type: object
              additionalProperties: true
              description: >-
                Optional redacted diagnostic details. Request validation uses
                fields or field_errors.
            suggested_action:
              type: string
              description: A suggested next step.
            documentation_url:
              type: string
              format: uri
              description: Link to documentation about this error.
            request_id:
              type: string
              description: Unique request ID for support escalation.
          description: Error details.
    LedgerAccount:
      type: object
      required:
        - id
        - name
        - type
        - normal_balance
        - is_postable
        - is_archived
        - created_at
      properties:
        id:
          type: string
          examples:
            - lac_789abc
          description: Ledger account ID (`lac_…`).
        name:
          type: string
          description: Ledger account name.
        type:
          type: string
          enum:
            - Asset
            - Liability
            - Equity
            - Income
            - Expense
          description: Account type.
        normal_balance:
          type: string
          enum:
            - debit
            - credit
          description: >-
            Computed from type. Asset/Expense = debit, Liability/Equity/Income =
            credit.
        sequence_number:
          type:
            - integer
            - 'null'
          description: >-
            Chart-of-accounts ordering code. Null when the stored value is not a
            valid non-negative integer.
        parent_account_id:
          type:
            - string
            - 'null'
          description: Parent account (`lac_…`), or `null` for a top-level account.
        is_postable:
          type: boolean
          description: >-
            `true` for a postable child account that accepts journal lines;
            `false` for a parent grouping account.
        is_clearing_account:
          type: boolean
          description: >-
            `true` for a clearing account used for internal transfers and
            payables.
        is_archived:
          type: boolean
          description: >-
            `true` when the account is archived. Earlier journal entries can
            still refer to it. List ledger accounts excludes archived accounts
            unless you set `include_archived=true`.
        archived_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Time the account was archived, or `null` when it is not archived.
        asset_type:
          type:
            - string
            - 'null'
          description: Asset or currency that the account tracks, such as `ETH` or `USD`.
        created_at:
          type: string
          format: date-time
          description: Time the ledger account was created (ISO 8601).
        organization_id:
          type:
            - string
            - 'null'
          description: Organization ID (`org_…`).
        updated_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Time the record was last updated (ISO 8601).
    FinancialReportRow:
      type: object
      description: >-
        Balance data for one ledger account in one accounting period. Decimals
        are `{ value }` objects.
      required:
        - credit_debit
        - tag_balance
      properties:
        credit_debit:
          type: object
          required:
            - opening_balance
            - closing_balance
            - current_balance
            - debits
            - credits
            - accounting_period_start_date_utc
            - legal_entity_ids
          properties:
            opening_balance:
              $ref: '#/components/schemas/DecimalValue'
            closing_balance:
              $ref: '#/components/schemas/DecimalValue'
            current_balance:
              $ref: '#/components/schemas/DecimalValue'
            debits:
              $ref: '#/components/schemas/DecimalValue'
            credits:
              $ref: '#/components/schemas/DecimalValue'
            accounting_period_start_date_utc:
              type:
                - string
                - 'null'
              format: date-time
              description: UTC start date of the accounting period this row belongs to.
            legal_entity_ids:
              type: array
              items:
                type: string
              description: >-
                Prefixed legal entity IDs (`le_`) whose balances contribute to
                this row.
          description: Debit and credit figures for the row.
        tag_balance:
          $ref: '#/components/schemas/DecimalValue'
          description: >-
            Balance attributable to the requested tag. `0` unless the report was
            filtered with `tag_id`.
    DecimalValue:
      type: object
      description: Decimal amount as an object. `value` is a decimal string, never a float.
      required:
        - value
      properties:
        value:
          type: string
          examples:
            - '1250.00'
          description: Decimal string.
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        Your organization API key. Some operations also need a key that is
        associated with a user; their pages say so.

````