Digits Parties API

List and retrieve parties - the vendors, suppliers, customers, and other business relationships that Digits hydrates and enriches from transaction data (LedgerPartyService get and list).

OpenAPI Specification

digits-com-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Digits Connect API
  version: 1.0.0
  description: >-
    The Digits Connect API provides programmatic access to the Autonomous
    General Ledger (AGL), Digits' AI-native general ledger. Partners send raw
    transaction, party, and dimension data via source sync endpoints, where the
    AGL researches vendors, enriches profiles, and posts fully categorized
    entries. Read endpoints return ledger transactions, parties, categories
    (chart of accounts), dimensions, and standard financial statements.


    Authentication is OAuth 2.0 (authorization code grant). List endpoints use
    cursor-based pagination. Source sync endpoints are idempotent and
    deduplicated via the external_id field.


    NOTE (API Evangelist honesty note): Digits does expose a real, documented
    public first-party API (the Digits Connect API) at
    https://connect.digits.com/v1 with OAuth 2.0 and an interactive reference at
    https://developer.digits.com. This document is a hand-authored, honest
    representation of the documented service methods; it is NOT the vendor's
    machine-generated OpenAPI. The public https://digits.com/openapi.json file
    describes only marketing-site/MCP-discovery metadata, not the Connect API.
    Request/response schemas below are summarized, not exhaustive. Verify exact
    paths, parameters, and payloads against developer.digits.com.
  contact:
    name: Digits Developer
    url: https://developer.digits.com
  license:
    name: Proprietary
    url: https://digits.com
servers:
- url: https://connect.digits.com/v1
  description: Digits Connect API production base URL
security:
- OAuth2: []
tags:
- name: Transactions
  description: Read AI-categorized ledger transactions and journal entries.
- name: Sources
  description: Push raw source data into the AGL for enrichment and categorization.
- name: Parties
  description: Vendors, suppliers, customers, and other business relationships.
- name: Chart of Accounts
  description: Ledger categories and dimensional axes (departments, locations, projects).
- name: Financial Statements
  description: Balance Sheet, P&L, Cash Flow, Trial Balance, aging reports, and summaries.
- name: Connections
  description: Connected data sources feeding the ledger.
- name: Organizations
  description: Accounting-firm organizations, clients, entities, and employees.
- name: Webhooks
  description: Event delivery to partner-configured endpoints.
paths:
  /ledger/transactions/entries:
    get:
      tags: [Transactions]
      operationId: ledgerTransactionServiceEntries
      summary: List ledger transaction entries
      description: Returns categorized ledger entries from the AGL. Cursor-paginated.
      parameters:
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageToken'
      responses:
        '200':
          description: A page of ledger entries.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionList'
  /ledger/transactions/query:
    post:
      tags: [Transactions]
      operationId: ledgerTransactionServiceQueryEntries
      summary: Query ledger transaction entries
      description: Query entries by date range, category, party, or dimension filters.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionQuery'
      responses:
        '200':
          description: Matching ledger entries.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionList'
  /ledger/transactions/{transactionId}:
    get:
      tags: [Transactions]
      operationId: ledgerTransactionServiceGetTransaction
      summary: Get a ledger transaction
      parameters:
      - name: transactionId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: A single ledger transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
        '404':
          description: Transaction not found.
  /sources/transactions/sync:
    post:
      tags: [Sources]
      operationId: sourceTransactionServiceSync
      summary: Sync source transactions into the AGL
      description: >-
        Push raw transactions to the Autonomous General Ledger for vendor
        research, enrichment, and automatic categorization. Idempotent and
        deduplicated via external_id.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SourceTransactionSync'
      responses:
        '200':
          description: Sync accepted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SyncResult'
  /sources/parties/sync:
    post:
      tags: [Sources]
      operationId: sourcePartyServiceSync
      summary: Sync source parties into the AGL
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SyncBatch'
      responses:
        '200':
          description: Sync accepted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SyncResult'
  /ledger/parties:
    get:
      tags: [Parties]
      operationId: ledgerPartyServiceList
      summary: List parties
      parameters:
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageToken'
      responses:
        '200':
          description: A page of parties.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartyList'
  /ledger/parties/{partyId}:
    get:
      tags: [Parties]
      operationId: ledgerPartyServiceGet
      summary: Get a party
      parameters:
      - name: partyId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: A single party.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Party'
  /ledger/categories:
    get:
      tags: [Chart of Accounts]
      operationId: ledgerCategoryServiceList
      summary: List ledger categories (chart of accounts)
      responses:
        '200':
          description: A list of ledger categories.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryList'
  /ledger/departments:
    get:
      tags: [Chart of Accounts]
      operationId: ledgerDepartmentServiceList
      summary: List departments
      responses:
        '200':
          description: A list of departments.
          content:
            application/json:
              schema:
                type: object
  /ledger/locations:
    get:
      tags: [Chart of Accounts]
      operationId: ledgerLocationServiceList
      summary: List locations
      responses:
        '200':
          description: A list of locations.
          content:
            application/json:
              schema:
                type: object
  /ledger/projects:
    get:
      tags: [Chart of Accounts]
      operationId: ledgerProjectServiceList
      summary: List projects
      responses:
        '200':
          description: A list of projects.
          content:
            application/json:
              schema:
                type: object
  /ledger/statements/balance-sheet:
    get:
      tags: [Financial Statements]
      operationId: ledgerStatementsServiceBalanceSheet
      summary: Get the balance sheet
      parameters:
      - $ref: '#/components/parameters/AsOfDate'
      responses:
        '200':
          description: Balance sheet statement.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Statement'
  /ledger/statements/profit-and-loss:
    get:
      tags: [Financial Statements]
      operationId: ledgerStatementsServiceProfitAndLoss
      summary: Get the profit and loss statement
      parameters:
      - $ref: '#/components/parameters/StartDate'
      - $ref: '#/components/parameters/EndDate'
      responses:
        '200':
          description: Profit and loss statement.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Statement'
  /ledger/statements/cash-flow:
    get:
      tags: [Financial Statements]
      operationId: ledgerStatementsServiceCashFlow
      summary: Get the cash flow statement
      parameters:
      - $ref: '#/components/parameters/StartDate'
      - $ref: '#/components/parameters/EndDate'
      responses:
        '200':
          description: Cash flow statement.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Statement'
  /ledger/statements/trial-balance:
    get:
      tags: [Financial Statements]
      operationId: ledgerStatementsServiceTrialBalance
      summary: Get the trial balance
      parameters:
      - $ref: '#/components/parameters/AsOfDate'
      responses:
        '200':
          description: Trial balance statement.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Statement'
  /ledger/statements/ap-aging:
    get:
      tags: [Financial Statements]
      operationId: ledgerStatementsServiceApAging
      summary: Get accounts payable aging
      responses:
        '200':
          description: A/P aging report.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Statement'
  /ledger/statements/ar-aging:
    get:
      tags: [Financial Statements]
      operationId: ledgerStatementsServiceArAging
      summary: Get accounts receivable aging
      responses:
        '200':
          description: A/R aging report.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Statement'
  /ledger/summarize:
    post:
      tags: [Financial Statements]
      operationId: ledgerSummaryServiceSummarize
      summary: Summarize ledger data
      description: Aggregate and summarize ledger data across dimensions and periods.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Ledger summary.
          content:
            application/json:
              schema:
                type: object
  /connections/sources:
    get:
      tags: [Connections]
      operationId: connectionSourceServiceList
      summary: List connected data sources
      responses:
        '200':
          description: A list of connected sources.
          content:
            application/json:
              schema:
                type: object
  /connections/sources/sync:
    post:
      tags: [Connections]
      operationId: connectionSourceServiceSync
      summary: Sync a connected data source
      responses:
        '200':
          description: Sync accepted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SyncResult'
  /organizations/clients:
    get:
      tags: [Organizations]
      operationId: organizationClientServiceList
      summary: List an organization's client books
      responses:
        '200':
          description: A list of client organizations.
          content:
            application/json:
              schema:
                type: object
    post:
      tags: [Organizations]
      operationId: organizationClientServiceCreate
      summary: Create a client book
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Client created.
  /organizations/clients/bulk:
    post:
      tags: [Organizations]
      operationId: organizationClientServiceBulkCreate
      summary: Bulk-create client books
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Bulk create result.
  /webhooks/events:
    post:
      tags: [Webhooks]
      operationId: receiveWebhookEvent
      summary: Webhook event delivery (partner-hosted)
      description: >-
        Digits POSTs a JSON event body to the partner-configured webhook
        endpoint. Documented here for reference; the partner hosts this
        endpoint and acknowledges with a 2xx response.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookEvent'
      responses:
        '200':
          description: Event acknowledged.
components:
  securitySchemes:
    OAuth2:
      type: oauth2
      description: OAuth 2.0 authorization code grant.
      flows:
        authorizationCode:
          authorizationUrl: https://connect.digits.com/v1/oauth/authorize
          tokenUrl: https://connect.digits.com/v1/oauth/token
          scopes:
            ledger.read: Read ledger data and statements
            ledger.write: Sync source data into the ledger
  parameters:
    PageSize:
      name: page_size
      in: query
      required: false
      schema:
        type: integer
      description: Maximum number of items to return per page.
    PageToken:
      name: page_token
      in: query
      required: false
      schema:
        type: string
      description: Cursor token from a previous response for the next page.
    AsOfDate:
      name: as_of
      in: query
      required: false
      schema:
        type: string
        format: date
    StartDate:
      name: start_date
      in: query
      required: false
      schema:
        type: string
        format: date
    EndDate:
      name: end_date
      in: query
      required: false
      schema:
        type: string
        format: date
  schemas:
    Money:
      type: object
      properties:
        amount:
          type: integer
          description: Minor units (e.g. cents).
        currency_code:
          type: string
          example: USD
    Transaction:
      type: object
      properties:
        id:
          type: string
        external_id:
          type: string
        date:
          type: string
          format: date
        description:
          type: string
        amount:
          $ref: '#/components/schemas/Money'
        category_id:
          type: string
        party_id:
          type: string
    TransactionList:
      type: object
      properties:
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/Transaction'
        next_page_token:
          type: string
    TransactionQuery:
      type: object
      properties:
        start_date:
          type: string
          format: date
        end_date:
          type: string
          format: date
        category_id:
          type: string
        party_id:
          type: string
        page_size:
          type: integer
        page_token:
          type: string
    SourceTransactionSync:
      type: object
      required: [transactions]
      properties:
        transactions:
          type: array
          items:
            type: object
            required: [external_id]
            properties:
              external_id:
                type: string
                description: Idempotency/dedupe key.
              date:
                type: string
                format: date
              description:
                type: string
              amount:
                $ref: '#/components/schemas/Money'
    SyncBatch:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              external_id:
                type: string
    SyncResult:
      type: object
      properties:
        accepted:
          type: integer
        deduplicated:
          type: integer
    Party:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        kind:
          type: string
          enum: [vendor, customer, other]
    PartyList:
      type: object
      properties:
        parties:
          type: array
          items:
            $ref: '#/components/schemas/Party'
        next_page_token:
          type: string
    Category:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        type:
          type: string
    CategoryList:
      type: object
      properties:
        categories:
          type: array
          items:
            $ref: '#/components/schemas/Category'
    Statement:
      type: object
      properties:
        name:
          type: string
        period_start:
          type: string
          format: date
        period_end:
          type: string
          format: date
        lines:
          type: array
          items:
            type: object
    WebhookEvent:
      type: object
      properties:
        type:
          type: string
        created_at:
          type: string
          format: date-time
        data:
          type: object