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).
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: 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