---
name: "books_setup"
area: "books"
title: "Set up the books"
price: "$0.001"
method: "POST"
url: "https://api.conecto.chat/v1/tools/books_setup"
mcp_server: "https://api.conecto.chat/mcp/books"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/books/books_setup"
---

# Set up the books (`books_setup`)

Starts the business's double-entry books (currency, start date, chart of accounts) or changes their settings.

Start the business's double-entry books, or change their settings. The first call needs currency (the base currency of every report; it can't change once something is booked) and makes the chart: "starter" (cash, bank, receivables, tax, equity, sales and common costs, numbered 1000-8000) or "minimal" (only the eight accounts the books post to on their own). The books start on start_date (default: the start of this fiscal year); enter what the business owned and owed that day as one entry against the opening balances account (3900), unpaid invoices and bills from before included. With post_invoices (default on), sent invoices and supplier bills, their payments and voids post on their own, those from start_date on right away. payment_accounts says where payments land per method, in and out (default: the bank account, cash in the cash account); rates are standing exchange rates for currencies the European Central Bank doesn't publish.

Price: $0.001 a call. A call that fails costs nothing.

## Use it when

The business wants books kept, or its fiscal year, payment accounts or exchange rates change.

## Say this to your agent

> Start our books in euros from January 1, with the standard chart of accounts.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `currency` | string | no | ISO 4217, e.g. "EUR". Matches ^[A-Za-z]{3}$. |  |  |
| `start_date` | string | no | The first day the books cover. Matches ^\\d{4}-\\d{2}-\\d{2}$. |  |  |
| `chart` | string | no | Only on the first call. | `"starter"`, `"minimal"` |  |
| `fiscal_year_start` | integer | no | The month the fiscal year starts. Default 1 (January). 1 to 12. |  |  |
| `post_invoices` | boolean | no |  |  |  |
| `payment_accounts` | object | no | Payment method -> account code, e.g. {"card": "1020"}; null goes back to the default. Methods: bank_transfer, card, cash, check, online, other. |  |  |
| `rates` | object | no | Currency -> one unit of it in the base currency, e.g. {"AED": "0.2486"}; null removes one. Used instead of the ECB's rate. |  |  |

## Example

Written for Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff.

MCP: call `books_setup` on the MCP server `https://api.conecto.chat/mcp/books` with these arguments:

```json
{
  "currency": "EUR",
  "start_date": "2026-01-01",
  "chart": "starter",
  "fiscal_year_start": 1
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/books_setup \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"currency": "EUR", "start_date": "2026-01-01", "chart": "starter", "fiscal_year_start": 1}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "books_setup",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.001",
  "balance_usd": "$19.75",
  "result": {
    "books": {
      "currency": "EUR",
      "start_date": "2026-01-01",
      "fiscal_year_start_month": 1,
      "locked_through": null,
      "closed_through": null,
      "post_invoices": true,
      "roles": {
        "cash": "1000",
        "bank": "1010",
        "receivable": "1100",
        "inventory": "1200",
        "input_tax": "1300",
        "payable": "2000",
        "sales_tax": "2100",
        "retained_earnings": "3200",
        "opening_balances": "3900",
        "sales": "4000",
        "cost_of_sales": "5000",
        "exchange": "7900"
      },
      "payment_accounts": {},
      "standing_rates": {},
      "taxes": [],
      "entries": 0,
      "last_entry": null,
      "bank_lines_to_match": 0,
      "today": "2026-10-14",
      "history": [
        {
          "at": "2026-10-14T08:00:00+00:00",
          "event": "created",
          "detail": "EUR, from 2026-01-01",
          "by": "key 4101 (Pip)"
        }
      ]
    },
    "created": true,
    "accounts": [
      {
        "account": "1000",
        "name": "Cash",
        "type": "asset",
        "role": "cash",
        "description": null,
        "balance": "0.00",
        "archived": false
      },
      {
        "account": "1010",
        "name": "Bank",
        "type": "asset",
        "role": "bank",
        "description": null,
        "balance": "0.00",
        "archived": false
      }
    ],
    "posted_from_invoices": {
      "invoices": 0,
      "credit_notes": 0,
      "payments": 0,
      "voids": 0,
      "bills": 0,
      "bill_payments": 0,
      "bill_voids": 0,
      "credits": 0,
      "credit_refunds": 0
    }
  }
}
```

`result`: books: the settings (currency, start date, fiscal year, locked period, roles, where payments land, taxes and counts), created, the accounts made, and posted_from_invoices: what was posted from invoices and bills sent before.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `invalid_input` | 400 | The first call has no currency, the chart was given again, or a payment account is not an asset account. | Fix what the message names. |
| `currency_fixed` | 409 | Entries are booked, so the base currency stays. | Keep the currency. |
| `start_fixed` | 409 | Entries are booked, so the start date stays. | Keep the start date. |
| `period_locked` | 409 | Invoices, bills or payments to post fall in a locked period. | Unlock it with books_lock, or leave post_invoices as it is. |
| `no_account` | 409 | A bill line to post has no expense or asset account. | Give the bill line an account with purchasing_update_bill. |
| `not_found` | 404 | No 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. |
| `archived` | 409 | The account or tax is archived. | Use another one, or un-archive it with books_save_accounts. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [books_get](https://conecto.chat/tools/books/books_get.md): The books' settings: currency, start date, fiscal year, locked period, roles, payment accounts, taxes, and what is waiting. Free up to 1,000,000 reads a month.
- [books_list_accounts](https://conecto.chat/tools/books/books_list_accounts.md): Every account with its code, type, role and balance on a day. Free up to 1,000,000 reads a month.
- [books_save_accounts](https://conecto.chat/tools/books/books_save_accounts.md): Adds accounts or changes them, matched by code: name, type, description, code, role or archived. $0.001 a call.
- [books_save_tax](https://conecto.chat/tools/books/books_save_tax.md): Adds or changes a tax rate the books use (VAT, GST, sales tax), matched by name. $0.001 a call.
- [books_record_expense](https://conecto.chat/tools/books/books_record_expense.md): Books a cost the business paid, with its tax split off and the receipt attached. $0.01 a call.
- [books_record_entry](https://conecto.chat/tools/books/books_record_entry.md): Books a journal entry of two or more balancing lines, for whatever the other tools do not cover. $0.01 a call.
- [books_attach_receipt](https://conecto.chat/tools/books/books_attach_receipt.md): Attaches a receipt from the file store to an entry that has none. $0.01 a call.
- [books_reverse_entry](https://conecto.chat/tools/books/books_reverse_entry.md): Undoes an entry by booking its mirror image; entries are never edited or deleted. $0.01 a call.
- [books_list_entries](https://conecto.chat/tools/books/books_list_entries.md): Entries, newest first, with their lines, by dates, account, source or text. Free up to 1,000,000 reads a month.
- [books_import_bank](https://conecto.chat/tools/books/books_import_bank.md): Reads a bank statement from the file store (CSV, CAMT.053 or OFX) onto a bank account, skipping lines imported before. Free.
- [books_bank_lines](https://conecto.chat/tools/books/books_bank_lines.md): Imported bank lines (by default the ones still to match), each with up to three suggestions of what it was. Free up to 1,000,000 reads a month.
- [books_match_bank_lines](https://conecto.chat/tools/books/books_match_bank_lines.md): Says what bank lines were: entries already booked, invoices or bills they pay, an account to book them to, or nothing to book. $0.02 per bank line matched.
- [books_save_bank_rule](https://conecto.chat/tools/books/books_save_bank_rule.md): Saves a bank rule, like Xero's: which new bank lines it matches and how they are booked, to one account or split by percent, each part with its own tax. $0.001 a call.
- [books_list_bank_rules](https://conecto.chat/tools/books/books_list_bank_rules.md): Lists the bank rules in the order they are tried, with where they book and how often they were used. Free up to 1,000,000 reads a month.
- [books_apply_bank_rules](https://conecto.chat/tools/books/books_apply_bank_rules.md): Books every new bank line a rule matches, each by the first rule that matches. $0.02 per bank line booked.
- [books_delete_bank_rule](https://conecto.chat/tools/books/books_delete_bank_rule.md): Deletes a bank rule; what it booked stays booked. Free.
- [books_report](https://conecto.chat/tools/books/books_report.md): 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 up to 1,000,000 reads a month.
- [books_save_tracking](https://conecto.chat/tools/books/books_save_tracking.md): Saves a tracking category with its options, like Xero's: a department, a region or a project line that any line of the books can carry. $0.001 a call.
- [books_list_tracking](https://conecto.chat/tools/books/books_list_tracking.md): Lists the tracking categories and their options. Free up to 1,000,000 reads a month.
- [books_save_budget](https://conecto.chat/tools/books/books_save_budget.md): Saves a budget per income and expense account and month, like Xero's budget manager: amounts, monthly or yearly. $0.001 a call.
- [books_list_budgets](https://conecto.chat/tools/books/books_list_budgets.md): Lists the budgets with every line's monthly amounts and total. Free up to 1,000,000 reads a month.
- [books_delete_budget](https://conecto.chat/tools/books/books_delete_budget.md): Deletes a budget; the books don't change. Free.
- [books_repay_claims](https://conecto.chat/tools/books/books_repay_claims.md): Pays someone back for costs they paid with their own money (expense claims), like Xero's, with a SEPA file when asked. $0.01 a call.
- [books_list_claims](https://conecto.chat/tools/books/books_list_claims.md): Lists expense claims: what people paid for the business privately, and what each is owed. Free up to 1,000,000 reads a month.
- [books_save_asset](https://conecto.chat/tools/books/books_save_asset.md): Registers a fixed asset (a van, a machine) and how it depreciates, like Xero's: straight line, declining balance, at once or not at all. $0.001 a call.
- [books_list_assets](https://conecto.chat/tools/books/books_list_assets.md): The fixed asset register: each asset's cost, accumulated depreciation and book value, what a run would book now, and the register held against the books. Free up to 1,000,000 reads a month.
- [books_depreciate](https://conecto.chat/tools/books/books_depreciate.md): Books the depreciation of every registered asset through a month's end, one entry a month, like Xero's run depreciation; or undoes it after a date. $0.01 a call.
- [books_dispose_asset](https://conecto.chat/tools/books/books_dispose_asset.md): Sells or writes off a fixed asset, like Xero's dispose: depreciation to the day it goes, then its cost, the price and the gain or loss. $0.01 a call.
- [books_delete_asset](https://conecto.chat/tools/books/books_delete_asset.md): Takes an asset registered by mistake out of the register; the books don't change. Free.
- [books_lock](https://conecto.chat/tools/books/books_lock.md): Locks the books through a date, so nothing new is booked on or before it; null unlocks. $0.001 a call.
- [books_close_year](https://conecto.chat/tools/books/books_close_year.md): Closes a fiscal year for good: nothing is booked on or before its last day again, and it can't be undone. $0.001 a call.
- [books_export](https://conecto.chat/tools/books/books_export.md): A CSV of the journal or the accounts, a DATEV Buchungsstapel for a German tax adviser or a French FEC, with a download link. $0.001 a call.
