Tools

The connector exposes 14 tools: 7 that read and 7 that write. An app only sees the tools its permissions allow: finance:read for the read tools, finance:write for the write tools.

Conventions

Read tools finance:read

list_transactions

Lists transactions, newest first, at most 200 per call. Defaults to the last 30 days. Pass next_cursor from a previous result to get the next page with the same filters.

ParameterTypeNotes
fromdateDefaults to 30 days before to.
todateDefaults to tomorrow (UTC).
category_idstringIncludes child categories.
account_idstring
searchstringMatches merchant, note or tags. Up to 100 characters.
limitinteger1–200, default 50.
cursorstringThe next_cursor from the previous page.

Returns from, to, transactions and next_cursor, which is missing on the last page.

get_transaction

Gets one transaction by id.

ParameterTypeNotes
idstringRequired.

get_spending_summary

Summarises spending and income for a date range: totals per currency, and expense totals per category and currency. Defaults to this month so far. Pending transactions are left out.

ParameterTypeNotes
fromdateDefaults to the 1st of this month.
todateDefaults to tomorrow (UTC).

Returns totals (one per currency, with spent and received) and categories (category_id, category_name, total, transaction_count), largest first, up to 200 rows.

list_categories

Lists the categories the user can assign: Outlai's defaults plus the user's own. Each has id, name, parent_id and custom. No parameters.

list_accounts

Lists accounts with their currency. Each has id, name, type, currency and archived. Account numbers and bank identifiers are never returned. No parameters.

list_budgets

Lists budgets: an optional overall budget (empty category_id) and per-category budgets. Each has id, category_id, limit and period. No parameters.

list_recurring_rules

Lists recurring payment rules (subscriptions and bills), both active and paused. No parameters.

Write tools finance:write

create_transaction

Records one transaction. idempotency_key makes retries safe: send the same key again and the original transaction comes back, with replayed: true and nothing created or changed.

ParameterTypeNotes
idempotency_keystringRequired. 8–128 characters from A-Z a-z 0-9 . _ : -.
amountdecimal stringRequired. Positive.
directionexpense | incomeRequired.
currencystringRequired. Must match the account's currency.
datedateRequired. At most 1 day in the future.
merchantstringRequired. Up to 200 characters.
category_idstringRequired. From list_categories.
account_idstringDefaults to the user's manual account.
notestringUp to 1000 characters.

Returns transaction and replayed.

update_transaction

Changes fields of one transaction. Only the fields you pass change, and you must pass at least one. The previous values are kept so the user can undo the change.

ParameterTypeNotes
idstringRequired.
amount, currency, date, merchant, category_id, account_idSame rules as create_transaction.
directionexpense | incomePassed on its own, it flips the direction and keeps the amount.
notestring or null"" clears it.

set_budget

Sets the monthly budget for one category, or the overall budget when category_id is left out. Replaces that category's existing budget if there is one.

ParameterTypeNotes
amountdecimal stringRequired.
currencystringRequired.
category_idstringLeave out for the overall budget.

Returns budget and created, which is false when an existing budget was replaced.

delete_budget

Deletes one budget by id (required, from list_budgets). The user can undo it.

create_recurring_rule

Creates a recurring payment rule (a subscription or bill) that matches the user's transactions by merchant. A rule never records transactions by itself. Rules created here are always expenses. idempotency_key works as in create_transaction.

ParameterTypeNotes
idempotency_keystringRequired.
namestringRequired. Up to 100 characters.
merchant_patternstringRequired. Up to 100 characters.
amountdecimal stringRequired.
currencystringRequired.
cadencedaily | weekly | monthly | yearlyRequired.
anchor_datedateRequired. Between 1970 and 2100.
category_idstring
end_datedateNot before anchor_date.
notestring

update_recurring_rule

Changes fields of one recurring rule, or pauses it (active: false) and resumes it (active: true). Takes id (required) plus any of the create_recurring_rule fields except idempotency_key. end_date and note accept "" to clear them.

delete_recurring_rule

Deletes one recurring rule by id (required, from list_recurring_rules). Transactions it matched are kept, just no longer linked to it. Returns deleted_id and unlinked_transactions. The user can undo it.

Returned objects

Transaction

{
  "id": "…",
  "date": "2026-10-30",
  "amount": "12.50",
  "currency": "USD",
  "direction": "expense",
  "merchant": "Chipotle",
  "description": "…",
  "note": "…",
  "tags": ["lunch"],
  "category_id": "food",
  "account_id": "…",
  "pending": false,
  "recurring_rule_id": "…"
}

recurring_rule_id appears only when the transaction is linked to a rule. Text fields come back at most 200 characters long, with hidden control characters removed. Tags are capped at 20, each up to 50 characters.

Not supported