API Reference
Read-only accounting and financial reporting endpoints
Access chart of accounts, journal entries, financial reports, and deal-scoped accounting data. All accounting endpoints are read-only.
Entity filtering: Syndicator-bound keys only see entries for deals where they have participation. Broker-bound keys only see entries for their deals.
GET /api/public/v1/accounting/chart-of-accounts
Required Scope: accounting:read
GET /api/public/v1/accounting/chart-of-accounts/tree
Returns accounts in a parent-child tree structure.
GET /api/public/v1/accounting/chart-of-accounts/{accountId}
GET /api/public/v1/accounting/entries
| Parameter | Type | Default | Description |
|---|---|---|---|
page | number | 1 | Page number |
limit | number | 50 | Items per page (max 100) |
status | string | — | draft, posted, voided |
source_type | string | — | Filter by source type |
date_after | string | — | ISO date |
date_before | string | — | ISO date |
account_code | string | — | Filter by account code |
deal_id | string | — | Filter by deal |
Required Scope: accounting:read
GET /api/public/v1/accounting/entries/{id}
The following paths are supported for backward compatibility:
GET /api/public/v1/accounting/journal-entries
GET /api/public/v1/accounting/journal-entries/{id}
GET /api/public/v1/accounting/journal-entries/deal/{dealId}
Deal-scoped journal entries and revenue recognition.
GET /api/public/v1/deals/{dealId}/accounting/entries
Returns all posted journal entries related to a specific deal, grouped by journal entry.
| Parameter | Type | Description |
|---|---|---|
date_after | string | ISO date |
date_before | string | ISO date |
account_code | string | Filter by account code |
Required Scope: accounting:read
Response:
{
"dealId": "deal_123",
"entries": [
{
"id": "je_456",
"entryNumber": "JE-2026-0042",
"entryDate": "2026-01-15T00:00:00Z",
"postingDate": "2026-01-15T00:00:00Z",
"description": "Deal funding - Acme Coffee",
"reference": "deal_123",
"status": "posted",
"sourceType": "dealFunding",
"sourceId": "deal_123",
"totalDebit": 10000,
"totalCredit": 10000,
"createdAt": "2026-01-15T08:30:00Z",
"lines": [
{
"id": "le_789",
"accountId": "acct_001",
"accountCode": "1200",
"accountName": "MCA Receivable",
"accountType": "asset",
"description": "Funded amount",
"debitAmount": 10000,
"creditAmount": 0,
"dealId": "deal_123",
"syndicatorId": null
},
{
"id": "le_790",
"accountId": "acct_002",
"accountCode": "1000",
"accountName": "Cash",
"accountType": "asset",
"description": "Cash disbursement",
"debitAmount": 0,
"creditAmount": 10000,
"dealId": "deal_123",
"syndicatorId": null
}
]
}
],
"total": 5
}
GET /api/public/v1/deals/{dealId}/accounting/revenue
Returns revenue-related journal entries with a summary of recognized vs deferred revenue.
Required Scope: accounting:read
Response:
{
"dealId": "deal_123",
"method": "effective_interest",
"entries": [ ... ],
"summary": {
"totalRevenueRecognized": 1250.50,
"totalDeferredRevenue": 1749.50,
"entryCount": 12
}
}
GET /api/public/v1/accounting/reports/trial-balance
| Parameter | Type | Description |
|---|---|---|
fiscal_period_id | string | Specific fiscal period |
as_of_date | string | Point-in-time balance |
GET /api/public/v1/accounting/reports/balance-sheet
| Parameter | Type | Description |
|---|---|---|
as_of_date | string | Point-in-time snapshot |
GET /api/public/v1/accounting/reports/income-statement
| Parameter | Type | Description |
|---|---|---|
fiscal_period_id | string | Specific period |
date_from | string | Start date |
date_to | string | End date |
GET /api/public/v1/accounting/reports/cash-flow
| Parameter | Type | Description |
|---|---|---|
date_from | string | Start date |
date_to | string | End date |
GET /api/public/v1/accounting/reports/ar-aging
| Parameter | Type | Description |
|---|---|---|
as_of_date | string | Aging as of date |
GET /api/public/v1/accounting/reports/general-ledger/{accountId}
| Parameter | Type | Description |
|---|---|---|
fiscal_period_id | string | Period filter |
date_from | string | Start date |
date_to | string | End date |
GET /api/public/v1/accounting/reports/subledger/deal/{dealId}
All journal entries and ledger lines for a specific deal.
GET /api/public/v1/accounting/reports/subledger/syndicator/{syndicatorId}
Ledger entries for a specific syndicator. Syndicator-bound keys can only access their own subledger.
All accounting endpoints require accounting:read scope.