COUNTCOUNT
Sign Up

API Reference

Opening Balance

Read and publish the workspace opening (conversion) balance as of the cutover date. Total debits must equal total credits.

Last updated 2026-07-28

Overview

The Opening Balance API manages the workspace conversion balance — the summarized balances as of the cutover date, after which COUNT tracks activity line by line.

Set the cutover date first with PATCH /partners/workspace when needed, then GET the current opening balance and POST rows to draft-and-publish in one call. Partners never drive the multi-step UI staging flow.

Key concepts

Balanced rows

POST requires a non-empty `rows` array. Sum of debits must equal sum of credits or publish validation fails.

replaceExisting

Pass `replaceExisting: true` to overwrite an existing draft or published opening balance. Omit or false rejects with 409 when one already exists — check with GET first.

Onboarding only for publish

POST drafts and immediately publishes. Publish only works while the workspace is still onboarding (`team.isOnboarding === true`) and rejects with 400 once onboarding is complete.

Draft survives failed publish

Draft create and publish are separate service transactions. If publish-time validation fails after the draft was saved, the draft persists — retry with `replaceExisting: true` after fixing rows.

The opening balance state

Returned by GET. Status is typically `none`, `draft`, or `published`.

Attributes

statusenum

Lifecycle of the conversion balance.

One of: none, draft, published

cutoverDatedate

YYYY-MM-DD cutover date the balance is anchored to, when set.

rowsarray

Balance rows keyed by account UUID.

accountUuiduuid

Chart-of-accounts account UUID.

accountNamestring

Account display name.

accountTypestring

Account type (Assets, Liabilities, Equity, Income, Expenses).

debitstring

Debit amount (string decimal, max 2 places).

creditstring

Credit amount (string decimal, max 2 places).

Example
{
  "status": "published",
  "cutoverDate": "2026-03-01",
  "rows": [
    {
      "accountUuid": "c8d9e0f1-a2b3-4567-cdef-789012345678",
      "accountName": "Business Checking",
      "accountType": "Assets",
      "debit": "12500.00",
      "credit": "0.00"
    },
    {
      "accountUuid": "d4e5f6a7-b8c9-0123-defa-234567890123",
      "accountName": "Opening Balance Equity",
      "accountType": "Equity",
      "debit": "0.00",
      "credit": "12500.00"
    }
  ]
}

Set cutover first

Use PATCH /partners/workspace with `{ "cutoverDate": "YYYY-MM-DD" }` before publishing an opening balance when the cutover is not already set.

MCP equivalents

COUNT_get_opening_balance and COUNT_set_opening_balance. Prefer COUNT_update_workspace for the cutover date.

Recent changes

2026-07-28

Connections, reconciliations, opening balance, workspace cutover, and transaction bulk ops

Documented Partner API groups for bank Connections (including Plaid Hosted Link connect/complete/reconnect), Reconciliations (create draft + complete), Opening Balance (get/set conversion balance), and Workspace (PATCH cutoverDate). Added PATCH /partners/transactions/change-category-bulk and exclude-bulk. Removed non-existent POST /partners/bills/bulk and /partners/invoices/bulk from the reference. Extended the MCP tool catalog with the matching COUNT_* tools plus remote-only COUNT_get_bulk_task_status and COUNT_remember/recall/forget.

Endpoints