DollarBooks

API Reference

The current LedgerHQ-ready DollarBooks REST API contract.

DollarBooks serves the public integration API from the same deployed app that users sign into. The current public contract is the LedgerHQ-ready accounting surface: organization scoping, accounts, entries, LedgerHQ bank activity, transaction reclass/reconciliation actions, report packet JSON, MCP, and webhooks.

OpenAPI

Machine-readable contract:

https://go.dollarbooks.app/api/openapi.json

The OpenAPI document intentionally covers the validated LedgerHQ integration surface first. Routes outside that contract are not public partner docs yet.

Base URL

https://go.dollarbooks.app/api/v1

Authentication

Server-to-server requests use a DollarBooks API key:

Authorization: Bearer dk_live_your_key
x-organization-id: org_id

Browser-session requests can call the same routes with the signed-in user's cookies. Include x-organization-id when the user has access to more than one organization.

Response Shape

Errors use:

{ "error": "Message" }

Money values in the documented integration contract are integer cents unless a field says otherwise. Example: 1250 means $12.50.

Supported REST Surface

Health

MethodPathPurpose
GET/api/healthPublic deployment health check

Accounts

MethodPathPurpose
GET/api/v1/accountsList accounts for classification and reporting
POST/api/v1/accountsCreate an account
GET/api/v1/accounts/:idGet account and ledger detail
PATCH/api/v1/accounts/:idUpdate account metadata
DELETE/api/v1/accounts/:idDelete an unused account

Journal Entries

MethodPathPurpose
GET/api/v1/entriesList entries
POST/api/v1/entriesCreate a draft entry
GET/api/v1/entries/:idGet an entry with lines
POST/api/v1/entries/:id/postPost a draft entry
POST/api/v1/entries/:id/voidVoid a posted entry

LedgerHQ Bank Activity

MethodPathPurpose
GET/api/v1/bank-accountsList bank accounts that can receive LedgerHQ rows
POST/api/v1/bank-accountsCreate a bank account
GET/api/v1/bank-accounts/:id/transactionsList bank transactions
GET/api/v1/integrations/ledgerhq/bank-feedList LedgerHQ-sourced transactions
POST/api/v1/integrations/ledgerhq/bank-feedImport normalized LedgerHQ rows

DollarBooks does not connect directly to bank providers. LedgerHQ supplies the bank activity, and DollarBooks stores it as bank transactions with sourceType: "ledgerhq_bank_feed".

Bank Transaction Actions

MethodPathPurpose
POST/api/v1/bank-transactions/:id/reclassifyUpdate account/contact/tax classification and linked editable journal line
POST/api/v1/bank-transactions/:id/matchMatch a transaction to an invoice or bill payment
POST/api/v1/bank-transactions/:id/splitSplit a transaction across invoices or bills
POST/api/v1/bank-transactions/:id/reconcileMark a transaction reconciled
POST/api/v1/bank-transactions/:id/excludeMark a transaction excluded

Reports

MethodPathPurpose
GET/api/v1/reports/financial-packetLedgerHQ-ready financial packet JSON
GET/api/v1/reports/trial-balanceTrial balance
GET/api/v1/reports/balance-sheetBalance sheet
GET/api/v1/reports/profit-and-lossProfit and loss
GET/api/v1/reports/general-ledgerGeneral ledger
GET/api/v1/reports/bank-reconciliation-statusBank reconciliation status

Webhooks

MethodPathPurpose
GET/api/v1/webhooksList webhook subscriptions
POST/api/v1/webhooksCreate webhook subscription

Example: Import LedgerHQ Rows

curl -X POST \
  -H "Authorization: Bearer dk_live_your_key" \
  -H "x-organization-id: org_id" \
  -H "Content-Type: application/json" \
  -d '{
    "bankAccountId": "bank_account_id",
    "feedName": "LedgerHQ checking activity",
    "ledgerHqAccountId": "ledgerhq_account_id",
    "rows": [
      {
        "externalTransactionId": "txn_123",
        "postedDate": "2026-06-07",
        "description": "Office supplies",
        "amount": -4299,
        "currencyCode": "USD"
      }
    ]
  }' \
  https://go.dollarbooks.app/api/v1/integrations/ledgerhq/bank-feed

Example: Reclassify Transaction

curl -X POST \
  -H "Authorization: Bearer dk_live_your_key" \
  -H "x-organization-id: org_id" \
  -H "Content-Type: application/json" \
  -d '{ "accountId": "expense_account_id", "reason": "LedgerHQ review" }' \
  https://go.dollarbooks.app/api/v1/bank-transactions/bank_transaction_id/reclassify

Example: Fetch Report Packet

curl -H "Authorization: Bearer dk_live_your_key" \
  -H "x-organization-id: org_id" \
  "https://go.dollarbooks.app/api/v1/reports/financial-packet?startDate=2026-01-01&endDate=2026-06-30"

On this page