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

# Get balance sheet report

> 
        Retrieve a Balance Sheet report for a business as of a specific date.

        **Important:** Both posted and draft journal entries are included in the calculations.

        **Summary metrics returned:**
        - total_assets_cents: Non-current Assets + Current Assets
        - total_non_current_assets_cents: Sum of Non-current Assets subtype
        - total_current_assets_cents: Sum of Current Assets subtype
        - total_liabilities_cents: Current Liabilities + Non-current Liabilities
        - total_current_liabilities_cents: Sum of Current Liabilities subtype
        - total_non_current_liabilities_cents: Sum of Non-current Liabilities subtype
        - total_equity_cents: Share Capital + Share Premium + Reserves + Retained Earnings (+ current period P&L)
        - net_assets_cents: Total Assets - Total Liabilities (equals Total Equity)

        **Retained Earnings includes:**
        - Historical retained earnings from RETAINED_EARNINGS accounts
        - Current fiscal period P&L (auto-calculated from revenue/expense accounts)

        **Detail levels:**
        - `summary` (default): Returns only summary metrics
        - `detailed`: Returns summary + line item breakdown by AccountSubtype

        All values are in cents. Currency is the business's base currency.
        



## OpenAPI

````yaml GET /v1/platform/businesses/{business_id}/reports/balance-sheet/
openapi: 3.0.3
info:
  title: Thredfi Accounting Platform API
  version: 1.0.0
  description: >-
    Comprehensive API for accounting, invoice management, open banking, and
    intelligence services.
servers: []
security: []
paths:
  /v1/platform/businesses/{business_id}/reports/balance-sheet/:
    get:
      tags:
        - Reports
      summary: Get balance sheet report
      description: |2-

                Retrieve a Balance Sheet report for a business as of a specific date.

                **Important:** Both posted and draft journal entries are included in the calculations.

                **Summary metrics returned:**
                - total_assets_cents: Non-current Assets + Current Assets
                - total_non_current_assets_cents: Sum of Non-current Assets subtype
                - total_current_assets_cents: Sum of Current Assets subtype
                - total_liabilities_cents: Current Liabilities + Non-current Liabilities
                - total_current_liabilities_cents: Sum of Current Liabilities subtype
                - total_non_current_liabilities_cents: Sum of Non-current Liabilities subtype
                - total_equity_cents: Share Capital + Share Premium + Reserves + Retained Earnings (+ current period P&L)
                - net_assets_cents: Total Assets - Total Liabilities (equals Total Equity)

                **Retained Earnings includes:**
                - Historical retained earnings from RETAINED_EARNINGS accounts
                - Current fiscal period P&L (auto-calculated from revenue/expense accounts)

                **Detail levels:**
                - `summary` (default): Returns only summary metrics
                - `detailed`: Returns summary + line item breakdown by AccountSubtype

                All values are in cents. Currency is the business's base currency.
                
      operationId: get_balance_sheet
      parameters:
        - in: query
          name: as_of_date
          schema:
            type: string
            format: date
          description: Balance sheet date - point in time (YYYY-MM-DD)
          required: true
        - in: path
          name: business_id
          schema:
            type: string
            format: uuid
          description: Business UUID
          required: true
        - in: query
          name: detail_level
          schema:
            type: string
            enum:
              - detailed
              - summary
            default: summary
          description: 'Level of detail: ''summary'' or ''detailed'''
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BalanceSheet'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
          description: Validation errors in request data
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Authentication required - missing or invalid API key
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Permission denied - insufficient privileges
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Resource not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict - resource already exists or invalid state transition
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unprocessable entity - business logic validation failed
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal server error
      security:
        - PartnerJWT: []
        - BusinessScopedJWT: []
        - BasicAuth: []
        - BearerUnscoped: []
        - BearerBusinessScoped: []
components:
  schemas:
    BalanceSheet:
      type: object
      description: >-
        Complete Balance Sheet report response.


        Subtype group keys are AccountSubtype.value:

        - "non_current_assets" (from
        Account.AccountSubtype.NON_CURRENT_ASSETS.value)

        - "current_assets" (from Account.AccountSubtype.CURRENT_ASSETS.value)

        - "current_liabilities" (from
        Account.AccountSubtype.CURRENT_LIABILITIES.value)

        - "non_current_liabilities" (from
        Account.AccountSubtype.NON_CURRENT_LIABILITIES.value)

        - "share_capital" (from Account.AccountSubtype.SHARE_CAPITAL.value)

        - "share_premium" (from Account.AccountSubtype.SHARE_PREMIUM.value)

        - "reserves" (from Account.AccountSubtype.RESERVES.value)

        - "retained_earnings" (from
        Account.AccountSubtype.RETAINED_EARNINGS.value)
      properties:
        business_id:
          type: string
          format: uuid
          description: Business UUID
        as_of_date:
          type: string
          format: date
          description: Balance sheet date (point in time)
        currency:
          type: string
          description: Business base currency
        detail_level:
          enum:
            - summary
            - detailed
          type: string
          x-spec-enum-id: 42d5883c5aa0b3a9
          description: |-
            'summary' or 'detailed'

            * `summary` - summary
            * `detailed` - detailed
        summary:
          allOf:
            - $ref: '#/components/schemas/BalanceSheetSummary'
          description: Calculated Balance Sheet totals
        non_current_assets:
          $ref: '#/components/schemas/BalanceSheetSubtypeGroup'
        current_assets:
          $ref: '#/components/schemas/BalanceSheetSubtypeGroup'
        current_liabilities:
          $ref: '#/components/schemas/BalanceSheetSubtypeGroup'
        non_current_liabilities:
          $ref: '#/components/schemas/BalanceSheetSubtypeGroup'
        share_capital:
          $ref: '#/components/schemas/BalanceSheetSubtypeGroup'
        share_premium:
          $ref: '#/components/schemas/BalanceSheetSubtypeGroup'
        reserves:
          $ref: '#/components/schemas/BalanceSheetSubtypeGroup'
        retained_earnings:
          $ref: '#/components/schemas/BalanceSheetSubtypeGroup'
      required:
        - as_of_date
        - business_id
        - currency
        - detail_level
        - summary
    ValidationErrorResponse:
      type: object
      description: Validation error response with field-specific errors
      properties:
        error_code:
          type: string
          description: Error code (e.g., 'validation_error')
        message:
          type: string
          nullable: true
          description: Human-readable error message
        detail:
          type: object
          additionalProperties: {}
          description: Contains field_errors and additional context
        request_id:
          type: string
          description: Request ID for tracing
      required:
        - detail
        - error_code
        - message
    ErrorResponse:
      type: object
      description: Standard error response format
      properties:
        error_code:
          type: string
          description: Error code for programmatic handling
        message:
          type: string
          nullable: true
          description: Human-readable error message
        detail:
          type: object
          additionalProperties: {}
          description: Additional error details including field_errors and debug info
        request_id:
          type: string
          description: Request ID for tracing
      required:
        - error_code
        - message
    BalanceSheetSummary:
      type: object
      description: >-
        Calculated Balance Sheet totals.


        Each field is calculated from AccountSubtype totals:

        - total_assets_cents = NON_CURRENT_ASSETS + CURRENT_ASSETS

        - total_liabilities_cents = CURRENT_LIABILITIES +
        NON_CURRENT_LIABILITIES

        - total_equity_cents = SHARE_CAPITAL + SHARE_PREMIUM + RESERVES +
        RETAINED_EARNINGS (+ current period P&L)

        - net_assets_cents = total_assets - total_liabilities (should equal
        total_equity)
      properties:
        total_assets_cents:
          type: integer
          description: Total assets (non-current + current)
        total_non_current_assets_cents:
          type: integer
          description: Sum of AccountSubtype.NON_CURRENT_ASSETS
        total_current_assets_cents:
          type: integer
          description: Sum of AccountSubtype.CURRENT_ASSETS
        total_liabilities_cents:
          type: integer
          description: Total liabilities (current + non-current)
        total_current_liabilities_cents:
          type: integer
          description: Sum of AccountSubtype.CURRENT_LIABILITIES
        total_non_current_liabilities_cents:
          type: integer
          description: Sum of AccountSubtype.NON_CURRENT_LIABILITIES
        total_equity_cents:
          type: integer
          description: Total equity (all equity subtypes + current period P&L)
        net_assets_cents:
          type: integer
          description: Net assets = total_assets - total_liabilities
      required:
        - net_assets_cents
        - total_assets_cents
        - total_current_assets_cents
        - total_current_liabilities_cents
        - total_equity_cents
        - total_liabilities_cents
        - total_non_current_assets_cents
        - total_non_current_liabilities_cents
    BalanceSheetSubtypeGroup:
      type: object
      description: |-
        Grouped accounts by AccountSubtype.

        - display_name: From AccountSubtype.label
        - total_cents: Sum of all line items
        - line_items: Individual accounts with this subtype
      properties:
        display_name:
          type: string
          description: Display name from AccountSubtype.label
        total_cents:
          type: integer
          description: Subtotal in cents
        line_items:
          type: array
          items:
            $ref: '#/components/schemas/BalanceSheetLineItem'
          description: Individual accounts
      required:
        - display_name
        - total_cents
    BalanceSheetLineItem:
      type: object
      description: >-
        Individual account line item in Balance Sheet report.


        Represents a single Account with its cumulative balance as of the report
        date.
      properties:
        account_id:
          type: string
          format: uuid
          description: Account UUID (from Account.id)
        account_code:
          type: string
          description: Account code (from Account.code)
        account_name:
          type: string
          description: Account name (from Account.custom_name or Account.name)
        value_cents:
          type: integer
          description: Cumulative balance in cents as of as_of_date
      required:
        - account_code
        - account_id
        - account_name
        - value_cents
  securitySchemes:
    PartnerJWT:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Partner-level JWT token (unscoped). Token payload includes `partner_id`.
        Business access is validated via partner ownership. Format: `Bearer
        <your-jwt-token>`


        **Use this for**: Multi-business operations where the business_id is
        specified in the URL and partner has access to multiple businesses.
    BusinessScopedJWT:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Business-scoped JWT token. Token payload includes `business_id` to
        automatically scope requests. Format: `Bearer <your-jwt-token>`


        **Use this for**: Business-specific operations where the business
        context is embedded in the token.
    BasicAuth:
      type: http
      scheme: basic
      description: >-
        Basic authentication for OAuth2 token endpoint. Use partner_uuid:api_key
        as username:password. Example: Authorization: Basic
        base64(partner_uuid:api_key)
    BearerUnscoped:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Partner (unscoped) JWT Bearer token. Obtain via POST
        /v1/platform/oauth2/token with Basic auth (partner_uuid:api_key). Use
        header: Authorization: Bearer {access_token}
    BearerBusinessScoped:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Business-scoped JWT Bearer token. Obtain via POST
        /v1/platform/{business_id}/oauth2/token/ using a partner Bearer token.
        Only valid for endpoints whose URL contains that business_id.

````