Bookkeeping

Register a fixed asset

books_save_asset · Changes data · Markdown

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

From your agent’s balance. A call that fails costs nothing.

An example

We bought a service van for 36,000 euros on March 14. Depreciate it over five years down to 6,000.

Your agent callsbooks_save_asset$0.001 a call

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
{
  "name": "Service van",
  "purchase_date": "2026-03-14",
  "cost": "36000",
  "account": "1500",
  "method": "straight_line",
  "life_years": 5,
  "residual": "6000"
}
What comes back
{
  "asset": {
    "number": "FA-0001",
    "name": "Service van",
    "status": "registered",
    "purchase_date": "2026-03-14",
    "cost": "36000.00",
    "account": "1500",
    "method": "straight_line",
    "averaging": "full_month",
    "life_months": 60,
    "life_years": "5",
    "rate_percent": null,
    "residual": "6000.00",
    "depreciation_start": "2026-03-14",
    "expense_account": "6950",
    "accumulated_account": "1590",
    "opening_accumulated": null,
    "accumulated": "0.00",
    "book_value": "36000.00",
    "depreciated_through": null,
    "depreciation_per_month": "500.00",
    "fully_depreciated": false,
    "tracking": null,
    "description": null,
    "serial_number": null,
    "warranty_until": null
  }
}

Use it when

The business bought something it will use for more than a year and its purchase is booked to an asset account; or an asset's name, serial number, warranty or tracking changes.

What it does

Put an asset the business bought in the register, like Xero's fixed assets: a van, a machine, a laptop, with its cost, purchase date and the asset account its purchase was booked to (registering books nothing). method: straight_line over its life down to residual, declining_balance at rate_percent of its book value at the start of each fiscal year, full (all of it in the month it starts, for something cheap enough to write off at once) or none (land). averaging: full_month counts the month it starts in full, actual_days counts days. Depreciation goes to the depreciation expense and accumulated depreciation accounts (made as 6950 and 1590 when missing) unless expense_account and accumulated_account say otherwise. An asset depreciated before the books started brings opening_accumulated. To change one, pass asset: once its depreciation is booked, only its name, description, serial number, warranty and tracking change.

What comes back

asset: its number, cost, accounts, method, life or rate, residual value, accumulated depreciation, book value, the month it is depreciated through and an ordinary month's depreciation. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
assetstringThe asset to change, by its number. Leave out to register one. 1 to 20 characters.
numberstringA new asset's number. Default: the next FA-0001. Up to 20 characters.
namestring1 to 120 characters.
purchase_datestringYYYY-MM-DD. Matches ^\d{4}-\d{2}-\d{2}$.
costnumber or stringWhat it cost before tax, in the base currency. Up to 24 characters.
accountstringThe asset account its purchase was booked to, e.g. "1500". 1 to 20 characters.
methodstringOne of: straight_line,declining_balance,full,none. Default: straight_line.
averagingstringOne of: full_month,actual_days. Default: full_month.
life_yearsnumber0.1 to 100.
life_monthsinteger1 to 1,200.
rate_percentnumber or stringDeclining balance: the share of its book value a year. Up to 24 characters.
residualnumber or stringWhat it is worth at the end of its life. Default 0. Up to 24 characters.
depreciation_startstringWhen it was first used, if after the purchase date. Matches ^\d{4}-\d{2}-\d{2}$.
opening_accumulatednumber or stringDepreciation booked before the books started. Up to 24 characters.
expense_accountstringAn account code from the chart, e.g. "6600". 1 to 20 characters.
accumulated_accountstringAn account code from the chart, e.g. "6600". 1 to 20 characters.
trackingobjectTracking options by category, e.g. {"Department": "Service"} (books_list_tracking).
descriptionstringUp to 500 characters.
serial_numberstringUp to 80 characters.
warranty_untilstringYYYY-MM-DD, "" for none. Matches ^(\d{4}-\d{2}-\d{2})?$.

The call

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

Terminal
curl -X POST https://api.conecto.chat/v1/tools/books_save_asset \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Service van","purchase_date":"2026-03-14","cost":"36000","account":"1500","method":"straight_line","life_years":5,"residual":"6000"}'

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).
archived409The account or tax is archived.Use another one, or un-archive it with books_save_accounts.
invalid_input400A new asset lacks its name, purchase date, cost or account; the account is not an asset account of its own; straight line has no life or declining balance no rate; the residual value is above the cost; or an asset depreciated before the books started has no opening_accumulated.Fix what the message names.
not_found404No account has that code, or no asset that number.Check books_list_accounts and books_list_assets.
name_taken409number is another asset's.Leave it out for the next number.
has_depreciation409Its depreciation is booked, so its cost, dates, method and accounts stay.Undo it with books_depreciate undo_after and asset, change it, then book depreciation again.
asset_disposed409It was sold or written off.Undo that with books_dispose_asset undo.
limit_reached409The register holds 2,000 assets.Delete assets registered by mistake.

Give this to your agent.

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