Bookkeeping

Run a report

books_report · Reads only · Markdown

A report: profit and loss, balance sheet, trial balance, ledger, tax, the VAT or OSS return, the cash flow ahead or a snapshot of the business.

Free*

*Free up to 1,000,000 reads a month for the whole account, then $0.50 per 10,000 reads.

An example

How much profit have we made so far this year?

Your agent callsbooks_reportFree*

The example business is Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff. The reply is the one the tool really gives.

With these arguments
{
  "report": "profit_and_loss",
  "from": "2026-01-01",
  "to": "2026-10-31"
}
What comes back
{
  "report": "profit_and_loss",
  "from": "2026-01-01",
  "to": "2026-10-31",
  "currency": "EUR",
  "income": [
    {
      "account": "4000",
      "name": "Sales",
      "amount": "1890.00"
    }
  ],
  "total_income": "1890.00",
  "expenses": [
    {
      "account": "6800",
      "name": "Utilities and phone",
      "amount": "200.00"
    }
  ],
  "total_expenses": "200.00",
  "net_profit": "1690.00"
}

Use it when

Someone asks how the business is doing, what it owns and owes, how much tax is due, what goes in the VAT return or the quarterly OSS return, or how much cash there will be in a few weeks.

  • For a page that shows the report to a person, use view_show.

What it does

A report in the base currency. profit_and_loss and tax cover from-to (default: this fiscal year so far); balance_sheet and trial_balance are as of to (default today); general_ledger lists each account's lines from-to with running balances (one account, or all, paged); oss is a quarter's sales to consumers in other EU countries for the One Stop Shop return, per country and VAT rate in euros (quarter, default the last one ended; no books needed); reconciliation holds each bank account's books against the closing balance its latest statement on or before to stated: reconciled, to_match (statement lines and entries still to pair explain the difference) or off (unexplained). Like Xero's: profit_and_loss with compare adds columns for earlier months, quarters or years; cash_summary shows the money accounts at the start and end of from-to and what came in and went out, by account; executive_summary (default this month so far) gives cash, profit, margins, what is owed both ways, debtor and creditor days and invoices issued, against the same days a month before; budget_variance holds a budget (books_save_budget) against the actual figures for the months from-to touches; vat_return gives from-to by the boxes of the VAT return the business files itself, Germany's advance return by Kennzahl or the UK's nine boxes (country, default the business's), with what the books can't tell yet. Like Xero's short-term cash flow, cash_forecast projects the money accounts `days` ahead (default 30, up to 180) from open invoices and bills on their due, expected or planned dates and what repeating templates will make, by day and week, with the lowest point and the overdue invoices and bills it leaves out until they have a date to come (each with the id that invoices_set_expected_date or purchasing_set_planned_date takes). snapshot is the year so far (default) against the same days a year before: profit, margins, income and expenses by month, the largest costs, the balance sheet, cash, and the average days from an invoice's or a bill's date to the payment that settled it, for those paid in the period. To show a person, put it in a view (view_show).

What comes back

The report's name, period and currency, and its sections with accounts and totals: for profit and loss the income, the expenses and the net profit; for vat_return each box with the form's own words, its base and tax, and what the books can't tell yet; for oss the rows per country and VAT rate in euros, corrections of earlier quarters and the VAT in all; for cash_forecast the balance by day and week, the lowest point and the overdue invoices and bills it leaves out. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
reportRequiredstringOne of: profit_and_loss,balance_sheet,trial_balance,general_ledger,tax,oss,reconciliation,cash_summary,executive_summary,budget_variance,vat_return,cash_forecast,snapshot.
fromstringYYYY-MM-DD. Matches ^\d{4}-\d{2}-\d{2}$.
tostringYYYY-MM-DD. Matches ^\d{4}-\d{2}-\d{2}$.
accountstringAn account code from the chart, e.g. "6600". 1 to 20 characters.
comparestringFor profit_and_loss: add columns for the same days `periods` months, quarters or years before. One of: month,quarter,year.
periodsintegerWith compare; default 1. 1 to 11.
budgetstringFor budget_variance: the budget's name (books_list_budgets). Up to 80 characters.
by_trackingstringFor profit_and_loss: a tracking category to split by, one column per option and one for what is not tracked. Up to 60 characters.
trackingobjectFor profit_and_loss: only lines with these options, e.g. {"Department": "Service"}.
quarterstringFor oss: like 2026-Q3. Matches ^\d{4}-[Qq][1-4]$.
countrystringFor vat_return: whose form. Default the business's country. One of: DE,GB.
daysintegerFor cash_forecast: how many days ahead. 1 to 180. Default: 30.
limitinteger1 to 2,000. Default: 500.
offsetintegerAt least 0. Default: 0.

The call

Over MCP, call books_report on https://api.conecto.chat/mcp/books. Over REST:

Terminal
curl -X POST https://api.conecto.chat/v1/tools/books_report \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"report":"profit_and_loss","from":"2026-01-01","to":"2026-10-31"}'

When it refuses

A refused call costs nothing and says what to do next.

CodeWhenWhat to do
no_books409The business keeps no books yet.Set them up with books_setup (base currency, start date).
not_found404No account, tax, entry or file of the books has that code, name or id.Check the codes with books_list_accounts and the taxes with books_get.
archived409The account or tax is archived.Use another one, or un-archive it with books_save_accounts.
invalid_input400A date is not a date like 2026-10-01, or from is after to.Fix the date.
invalid_input400For oss: the quarter is not like 2026-Q3, or the business is not in the EU; for vat_return: no form for the business's country (DE and GB so far).Give a quarter like 2026-Q3, or country; set the business's country with invoices_set_profile.

Give this to your agent.

Set up Conecto from https://conecto.chat/SKILL.md