---
name: "books_save_budget"
area: "books"
title: "Save a budget"
price: "$0.001"
method: "POST"
url: "https://api.conecto.chat/v1/tools/books_save_budget"
mcp_server: "https://api.conecto.chat/mcp/books"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/books/books_save_budget"
---

# Save a budget (`books_save_budget`)

Saves a budget per income and expense account and month, like Xero's budget manager: amounts, monthly or yearly.

A budget, like Xero's budget manager: an amount per income or expense account for each month from start (12 months unless months says otherwise). Each line gives amounts (one per month), monthly (the same every month) or yearly (spread evenly); a line for an account already in it replaces that line, and remove takes one out. Hold it against what happened with books_report budget_variance. Matched by name. Not a team's spending budget at Conecto.

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

## Use it when

The business plans its year, or a plan changes; then compare with books_report budget_variance.

- For a cap on what a team's bots spend at Conecto, use [account_save_team](https://conecto.chat/tools/account/account_save_team.md).

## Say this to your agent

> Plan 2026: 25,000 euros of sales a month, rent 2,400 a month and 6,000 for advertising over the year.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `name` | string | yes | The budget's name, e.g. "2026". 1 to 80 characters. |  |  |
| `new_name` | string | no | Up to 80 characters. |  |  |
| `start` | string | no | Its first month, like 2026-01. Up to 7 characters. |  |  |
| `months` | integer | no | 1 to 36. |  |  |
| `lines` | array of objects | no | Up to 300 items. |  |  |
| `lines[].account` | string | yes, in each item of `lines` | An account code from the chart, e.g. "6600". 1 to 20 characters. |  |  |
| `lines[].amounts` | array of number or string | no | One amount per month of the budget. 1 to 36 items. |  |  |
| `lines[].monthly` | number or string | no | The same amount every month. Up to 24 characters. |  |  |
| `lines[].yearly` | number or string | no | A year's amount, spread evenly over the months. Up to 24 characters. |  |  |
| `lines[].remove` | boolean | no | Take the account out of the budget. |  |  |

## Example

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

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

```json
{
  "name": "2026",
  "start": "2026-01",
  "lines": [
    {
      "account": "4000",
      "monthly": 25000
    },
    {
      "account": "6500",
      "monthly": 2400
    },
    {
      "account": "6000",
      "yearly": 6000
    }
  ]
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/books_save_budget \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "2026", "start": "2026-01", "lines": [{"account": "4000", "monthly": 25000}, {"account": "6500", "monthly": 2400}, {"account": "6000", "yearly": 6000}]}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "books_save_budget",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.001",
  "balance_usd": "$19.75",
  "result": {
    "budget": {
      "name": "2026",
      "start": "2026-01",
      "months": 12,
      "currency": "EUR",
      "lines": [
        {
          "account": "4000",
          "name": "Sales",
          "type": "income",
          "amounts": [
            "25000.00",
            "25000.00"
          ],
          "total": "300000.00"
        },
        {
          "account": "6000",
          "name": "Advertising",
          "type": "expense",
          "amounts": [
            "500.00",
            "500.00"
          ],
          "total": "6000.00"
        }
      ]
    }
  }
}
```

`result`: budget: its name, first month, number of months, currency and each line with its monthly amounts and total.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `no_books` | 409 | The business keeps no books yet. | Set them up with books_setup (base currency, start date). |
| `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. |
| `invalid_input` | 400 | start is not a month like 2026-01, a line is not for an income or expense account, gives no amount or more than one way, or its amounts are not one per month. | Fix what the message names. |
| `name_taken` | 409 | new_name is another budget's name. | Pick another name. |
| `limit_reached` | 409 | The account has 20 budgets. | Delete one with books_delete_budget. |

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_setup](https://conecto.chat/tools/books/books_setup.md): Starts the business's double-entry books (currency, start date, chart of accounts) or changes their settings. $0.001 a call.
- [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_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.
