Skip to content

Money actions

18 actions. Each action calls the same API route with the same scopes on every surface.

List accounts.

Route GET /api/v1/money/budgets/{budget_id}/accounts
Tool name calternal_api_money_accounts
Surfaces cli, mcp, webmcp
Scopes data
Effect read only
Encoding request none, response json

path

Field Type Required Description
budget_id string yes
Terminal window
calternal action run money_accounts --input '{"path":{"budget_id":"<budget_id>"}}' --json

Set a Category Assignment. Body fields: amount..

Route PUT /api/v1/money/budgets/{budget_id}/months/{month}/categories/{category_id}/assigned
Tool name calternal_api_money_assign
Surfaces cli, mcp, webmcp
Scopes data
Effect destructive, needs --confirm
Encoding request json, response json

path

Field Type Required Description
budget_id string yes
category_id string yes
month string yes

body

Field Type Required Description
amount integer, int64 yes Minor units; may be negative.
Terminal window
calternal action run money_assign --input '{"path":{"budget_id":"<budget_id>","month":"<month>","category_id":"<category_id>"}}' --confirm --json

Create an account. Body fields: kind, name, opening_balance, opening_date..

Route POST /api/v1/money/budgets/{budget_id}/accounts
Tool name calternal_api_money_create_account
Surfaces cli, mcp, webmcp
Scopes data
Effect destructive, needs --confirm
Encoding request json, response json

path

Field Type Required Description
budget_id string yes

body

Field Type Required Description
kind string yes cash, card or tracking.
name string yes Display name.
opening_balance integer | null, int64 no Opening balance in minor units (a Card account’s debt is negative).
opening_date string | null no Date of the opening balance YYYY-MM-DD (required with a balance).
Terminal window
calternal action run money_create_account --input '{"path":{"budget_id":"<budget_id>"}}' --confirm --json

Create a budget. Body fields: currency, name..

Route POST /api/v1/money/budgets
Tool name calternal_api_money_create_budget
Surfaces cli, mcp, webmcp
Scopes data
Effect destructive, needs --confirm
Encoding request json, response json

body

Field Type Required Description
currency string yes Budget currency, ISO 4217 (for example EUR).
name string yes Budget name; also the folder name.
Terminal window
calternal action run money_create_budget --input '{}' --confirm --json

Create a Category. Body fields: group, name..

Route POST /api/v1/money/budgets/{budget_id}/categories
Tool name calternal_api_money_create_category
Surfaces cli, mcp, webmcp
Scopes data
Effect destructive, needs --confirm
Encoding request json, response json

path

Field Type Required Description
budget_id string yes

body

Field Type Required Description
group string yes Group name.
name string yes Category name.
Terminal window
calternal action run money_create_category --input '{"path":{"budget_id":"<budget_id>"}}' --confirm --json

Create a transaction. Body fields: account_id, amount, category_id, cleared, date, notes, payee..

Route POST /api/v1/money/budgets/{budget_id}/transactions
Tool name calternal_api_money_create_transaction
Surfaces cli, mcp, webmcp
Scopes data
Effect destructive, needs --confirm
Encoding request json, response json

path

Field Type Required Description
budget_id string yes

body

Field Type Required Description
account_id string yes Account ID (in the budget currency).
amount integer, int64 yes Minor units: outflow negative, inflow positive.
category_id string yes Expense, income or opening-balance category ID.
cleared boolean | null no Cleared flag (#cleared); defaults to false.
date string yes Date YYYY-MM-DD.
notes string | null no Separate notes; omitted on an edit to preserve existing notes (#1130).
payee string yes Payee text; transaction Notes use their own field (#1130).
Terminal window
calternal action run money_create_transaction --input '{"path":{"budget_id":"<budget_id>"}}' --confirm --json

Delete a transaction.

Route DELETE /api/v1/money/budgets/{budget_id}/transactions/{transaction_id}
Tool name calternal_api_money_delete_transaction
Surfaces cli, mcp, webmcp
Scopes data
Effect destructive, needs --confirm
Encoding request none, response json

path

Field Type Required Description
budget_id string yes
transaction_id string yes
Terminal window
calternal action run money_delete_transaction --input '{"path":{"budget_id":"<budget_id>","transaction_id":"<transaction_id>"}}' --confirm --json

Discard one prepared import and release its owner-bound pending slot (#462)..

Route DELETE /api/v1/money/imports/{import_id}
Tool name calternal_api_money_import_cancel
Surfaces cli, mcp, webmcp
Scopes data
Effect destructive, needs --confirm
Encoding request none, response json

path

Field Type Required Description
import_id string yes
Terminal window
calternal action run money_import_cancel --input '{"path":{"import_id":"<import_id>"}}' --confirm --json

Consume the owner’s preview and publish its files through calternal-fs. A request from another User must not consume or modify the preview; expiry is checked only after ownership is established (#462, DESIGN §48).. Body fields: confirm_inferred_opening_balances..

Route POST /api/v1/money/imports/{import_id}/confirm
Tool name calternal_api_money_import_confirm
Surfaces cli, mcp, webmcp
Scopes data
Effect destructive, needs --confirm
Encoding request json, response json

path

Field Type Required Description
import_id string yes

body

Field Type Required Description
confirm_inferred_opening_balances boolean yes
Terminal window
calternal action run money_import_confirm --input '{"path":{"import_id":"<import_id>"}}' --confirm --json

Cancel an in-flight import. The parser stops at its next bounded checkpoint..

Route DELETE /api/v1/money/imports/jobs/{job_id}
Tool name calternal_api_money_import_job_cancel
Surfaces cli, mcp, webmcp
Scopes data
Effect destructive, needs --confirm
Encoding request none, response json

path

Field Type Required Description
job_id string yes
Terminal window
calternal action run money_import_job_cancel --input '{"path":{"job_id":"<job_id>"}}' --confirm --json

Read an export form and retain verified Markdown under an owner-bound token. Source mismatches must not reach confirmation: a successful codec round trip alone does not prove that the source totals were preserved (#462, DESIGN §48)..

Route POST /api/v1/money/imports/preview
Tool name calternal_api_money_import_preview
Surfaces none (browser flow only)
Scopes data
Effect destructive, needs --confirm
Encoding request base64, response json

query

Field Type Required Description
progress_id string no

body: string. Base64 encoded bytes; send large uploads in chunks

Read one in-flight import’s safe progress without exposing its source data..

Route GET /api/v1/money/imports/jobs/{job_id}
Tool name calternal_api_money_import_progress
Surfaces cli, mcp, webmcp
Scopes data
Effect read only
Encoding request none, response json

path

Field Type Required Description
job_id string yes
Terminal window
calternal action run money_import_progress --input '{"path":{"job_id":"<job_id>"}}' --json

List budgets.

Route GET /api/v1/money/budgets
Tool name calternal_api_money_list_budgets
Surfaces cli, mcp, webmcp
Scopes data
Effect read only
Encoding request none, response json
Terminal window
calternal action run money_list_budgets --input '{}' --json

Read a budget month.

Route GET /api/v1/money/budgets/{budget_id}/months/{month}
Tool name calternal_api_money_month
Surfaces cli, mcp, webmcp
Scopes data
Effect read only
Encoding request none, response json

path

Field Type Required Description
budget_id string yes
month string yes
Terminal window
calternal action run money_month --input '{"path":{"budget_id":"<budget_id>","month":"<month>"}}' --json

Move an Assignment between Categories. Body fields: amount, from_category_id, to_category_id..

Route POST /api/v1/money/budgets/{budget_id}/months/{month}/moves
Tool name calternal_api_money_move
Surfaces cli, mcp, webmcp
Scopes data
Effect destructive, needs --confirm
Encoding request json, response json

path

Field Type Required Description
budget_id string yes
month string yes

body

Field Type Required Description
amount integer, int64 yes Minor units, greater than zero.
from_category_id string yes Category that gives the money.
to_category_id string yes Category that receives it.
Terminal window
calternal action run money_move --input '{"path":{"budget_id":"<budget_id>","month":"<month>"}}' --confirm --json

Set a transaction cleared state. Body fields: account_id, cleared..

Route PUT /api/v1/money/budgets/{budget_id}/transactions/{transaction_id}/cleared
Tool name calternal_api_money_set_cleared
Surfaces cli, mcp, webmcp
Scopes data
Effect destructive, needs --confirm
Encoding request json, response json

path

Field Type Required Description
budget_id string yes
transaction_id string yes

body

Field Type Required Description
account_id string | null no Select a transfer leg; absent means the primary Account (#1130).
cleared boolean yes New cleared state.
Terminal window
calternal action run money_set_cleared --input '{"path":{"budget_id":"<budget_id>","transaction_id":"<transaction_id>"}}' --confirm --json

List transactions.

Route GET /api/v1/money/budgets/{budget_id}/transactions
Tool name calternal_api_money_transactions
Surfaces cli, mcp, webmcp
Scopes data
Effect read only
Encoding request none, response json

path

Field Type Required Description
budget_id string yes

query

Field Type Required Description
account_id string no
month string no
Terminal window
calternal action run money_transactions --input '{"path":{"budget_id":"<budget_id>"}}' --json

Update a transaction. Body fields: account_id, amount, category_id, cleared, date, notes, payee..

Route PUT /api/v1/money/budgets/{budget_id}/transactions/{transaction_id}
Tool name calternal_api_money_update_transaction
Surfaces cli, mcp, webmcp
Scopes data
Effect destructive, needs --confirm
Encoding request json, response json

path

Field Type Required Description
budget_id string yes
transaction_id string yes

body

Field Type Required Description
account_id string yes Account ID (in the budget currency).
amount integer, int64 yes Minor units: outflow negative, inflow positive.
category_id string yes Expense, income or opening-balance category ID.
cleared boolean | null no Cleared flag (#cleared); defaults to false.
date string yes Date YYYY-MM-DD.
notes string | null no Separate notes; omitted on an edit to preserve existing notes (#1130).
payee string yes Payee text; transaction Notes use their own field (#1130).
Terminal window
calternal action run money_update_transaction --input '{"path":{"budget_id":"<budget_id>","transaction_id":"<transaction_id>"}}' --confirm --json