openapi: 3.1.0
info:
title: Digits Connect Chart of Accounts Sources 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: Sources
description: Push raw source data into the AGL for enrichment and categorization.
paths:
/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'
components:
schemas:
SyncResult:
type: object
properties:
accepted:
type: integer
deduplicated:
type: integer
SyncBatch:
type: object
properties:
items:
type: array
items:
type: object
properties:
external_id:
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'
Money:
type: object
properties:
amount:
type: integer
description: Minor units (e.g. cents).
currency_code:
type: string
example: USD
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