answer_question
ChatGPTAnswers a review question from list_questions (the review queue): categorizes all its transactions and, unless always is false, saves a rule so the vendor never asks again. Call it with mode "preview" first (the default), which changes nothing, then with mode "apply" and the preview_id to make the change. Undo it with undo_change.
categorize_transactions
ChatGPTSets the category of one or more transactions in open months. The preview lists every transaction with its category before and after. Pass always to also save a rule for this vendor. Call it with mode "preview" first (the default), which changes nothing, then with mode "apply" and the preview_id to make the change. Undo it with undo_change.
compare_reports
ChatGPTCompares a statement at two points: what was known at a moment (known_at), a closed month's frozen version, or now. Returns only the lines that differ, with the change ids that explain each difference (read them with get_change).
create_journal_entry
ChatGPTPosts a balanced journal entry (accruals, reclassifications, corrections). Debits must equal credits to the cent, every account must be active, and the month must be open. Entries at or over the owner's limit ($5,000 unless changed) wait for an owner; everything is logged and can be undone. Call it with mode "preview" first (the default), which changes nothing, then with mode "apply" and the preview_id to make the change. Undo it with undo_change.
create_rule
ChatGPTSaves a rule that categorizes matching transactions: by vendor text (several with also_match), amount over/under or at least/up to, a date range, memo text or funding account; to one category or a split by percent; optionally also renaming the vendor, setting a memo and tags, and marking reviewed. With apply_to_existing it also recategorizes past transactions in open months that fit the date range: the preview lists every affected transaction, and closedTransactions/closedMonths list the ones in closed months (change those with apply_batch and closed_month). Rewriting past transactions in open months applies at once under the default guardrails and can be undone; closed months are left alone. Call it with mode "preview" first (the default), which changes nothing, then with mode "apply" and the preview_id to make the change. Undo it with undo_change.
explain_change
ChatGPTWhy an account or a metric moved between two months, split into drivers (new_vendor, lost_vendor, annual_prepayment, price_change, volume_change, headcount_change, one_off, timing, recategorization, other). The drivers add up to the change exactly and each lists its transactions. Movements under $500 or under 10% are not broken down.
get_aging
ChatGPTOpen invoices (receivable) or bills (payable) by customer or vendor, bucketed by days past due, and whether the total ties to the Accounts receivable or payable balance.
get_audit_log
ChatGPTEvery change to the books, newest first: who (person, Accountable AI, or which agent via whose connection), what, why, who approved it, and whether it was undone.
get_bill
ChatGPTOne bill with its lines and accounts, what does not add up, approval state, payments, and the outgoing transactions that could have paid it. books_into is where its cost lands on the accrual view: its service period's months (an invoice for July usage dated Aug 1 is a July cost), else its bill date. closed_month is set when those months are closed: the bill waits for an owner, who posts it there or in the first open month in Accountable; you can prepare it but never post it. payment_on_approval is the bank payment approving it will match (same vendor, exact amount, from the start of its service period to 180 days after the bill date, so one made before the bill arrived counts). Reading a bill never pays it; Accountable never moves money.
get_change
ChatGPTOne change from the audit log with its full before and after, its status (applied or undone), and how to undo it. Use it to check an undo_change or an approved proposal.
get_close_checklist
ChatGPTWhat still blocks closing a month: each step (categorize, review, reconcile, adjust, report) with what is left, every account's reconciliation, and can_lock. propose_close fails at preview until can_lock is true.
get_close_status
ChatGPTWhich months are closed, the month the books are closed through, months that were reopened and why, and the next month to close. Also the daily close: the day the books are closed through (every bank and card account matched its bank at the end of each day and nothing waited for a person), and why the next day is open with a link to fix it.
get_company
ChatGPTOne company's profile: legal name, basis, fiscal year, closed-through month, open months, feeds and their health, your role and what you can change.
get_entry
ChatGPTOne journal entry with its lines, who posted it, and whether it was reversed.
get_invoice
ChatGPTOne invoice with its lines, tax and discount, whether it was sent and viewed, payments, and incoming transactions that could pay it.
get_lineage
ChatGPTTraces a number to its sources: for one or more accounts over a period, the total, the entries and lines behind it, the changes that posted them (who, when, why, approved by whom, and the cause: feed, rule, import, AI, agent or person), the bank transactions and the documents.
get_metrics
ChatGPTCash, net burn, gross burn, runway (months and the month cash runs out), revenue and net income, each with the sentence that explains how it was computed. Revenue and net income are on the company's reporting basis unless you ask for the other; cash, burn and runway are always cash. Includes the same readiness warnings as get_report.
get_plan_vs_actual
ChatGPTThe company's locked plan against the books, month by month: planned and actual net burn, revenue, spend and cash, and the line that explains most of the gap. Owners and admins lock the plan in Accountable; agents read it.
get_plugin_settings
ChatGPTReads this connection's Accountable settings for ChatGPT: the default company and whether it is read only.
get_proposal
ChatGPTOne proposal: its status (waiting, applied, rejected, expired, needs_review), who decided and why, the full diff, and the change_id once applied.
get_report
ChatGPTProfit and loss (pl), balance sheet (bs), trial balance (tb), cash flow (cf) or general ledger (gl) for whole months or exact days. Includes warnings[] when the books are not ready: stale feeds, open months, negative cash that suggests missing opening balances, and the share uncategorized.
get_spend_or_revenue
ChatGPTSpend or revenue for a period by category and vendor, with what drove each change against the prior period (new vendor, price change, one-off, headcount…).
get_transaction
ChatGPTOne transaction with its category, who categorized it, the ledger lines it posted, and why it sits in its category: the rule or what Accountable learned, who taught it and when, and the correction it came from.
label_alert
ChatGPTMarks an alert Expected (a normal pattern; the same vendor and amount stay quiet next time) or Real problem. Labels never change the books; they feed the live precision number. Call it with mode "preview" first (the default), which changes nothing, then with mode "apply" and the preview_id to make the change. Undo it with undo_change.
list_accounts
ChatGPTThe chart of accounts: id, code, name, type, and each account's balance at the end of a month (default: this month). Use an account's id, code or exact name in write tools.
list_alerts
ChatGPTWhat the detectors found as transactions posted: duplicate payments, unusual amounts, large first payments, lookalike payees, vendors paid to new accounts, foreign card charges, assets below zero, transfers posted to equity, refunds counted as revenue. Nothing here changed the books. Label with label_alert.
list_bills
ChatGPTBills from vendors by tab: review (just read from email or uploads), approval (waiting for a person), unpaid, paid, closed (void and rejected). Shows totals for unpaid, due soon and overdue. Search by vendor, number or amount with q, or one vendor with vendor. Accountable never pays a bill or moves money: asked to pay one, say so first, then offer to show what is due or record a payment made elsewhere.
list_companies
ChatGPTLists every company this connection can open, with the person's role in each, the month its books are closed through, feed health, and whether this connection may change them. Every other tool takes one of these companies' id or exact name as company.
list_invoices
ChatGPTInvoices to customers by tab (draft, sent, paid), with the amount owed, overdue, and incoming payments that look like they pay an open invoice.
list_questions
ChatGPTThe review queue: uncategorized transactions grouped into one question per vendor and direction, with the AI's suggestion, confidence and reason. Answer with answer_question. When the person asks you to answer the questions, decide each one as their bookkeeper: take the suggestion when it fits the vendor, and ask only when two categories are equally likely and the amount matters. Also counts transactions that only need a light look.
list_rules
ChatGPTEvery categorization rule, yours first then Accountable's, with what it matches, the account it sets, and how many transactions it categorized.
list_scenarios
ChatGPTRunway on current burn and on each saved scenario: months of runway, the month cash runs out, and net burn in 6 months. Numbers come from the planning engine over the live books.
list_transactions
ChatGPTBank, card and Stripe transactions, newest first, 25 per page with next_cursor. Filter by dates, funding account, category, uncategorized only, text, or amount. Amounts are signed: negative is money out.
open_accountable
ChatGPTOpens Accountable for one company: its Home (cash, net burn, runway, revenue and what changed), transactions and the close. Without a company, opens the one this connection uses by default.
query_ledger
ChatGPTJournal entries with their debit and credit lines, newest first, 25 per page. Filter by dates, an account, or text in memos.
reverse_entry
ChatGPTPosts the mirror of an entry and links the two. Posted entries are never edited or deleted. In a closed month the reversal is dated today unless you pass a date. Call it with mode "preview" first (the default), which changes nothing, then with mode "apply" and the preview_id to make the change. Undo it with undo_change.
save_journal_draft
ChatGPTSaves a journal entry without posting it, or changes a saved draft (pass draft_id). A draft may be unfinished or not balance yet; post_journal_draft posts it after the same checks as create_journal_entry. Call it with mode "preview" first (the default), which changes nothing, then with mode "apply" and the preview_id to make the change. Undo it with undo_change.
save_scenario
ChatGPTCreates a scenario, or replaces one's name and changes (pass scenario_id). Plans never post entries; the change is audited and can be undone. Call it with mode "preview" first (the default), which changes nothing, then with mode "apply" and the preview_id to make the change. Undo it with undo_change.
set_transaction_fields
ChatGPTSets the clean vendor name (description) and/or the memo on transactions. Call it with mode "preview" first (the default), which changes nothing, then with mode "apply" and the preview_id to make the change. Undo it with undo_change.
undo_change
ChatGPTUndoes any change by its change_id (from a write tool's response or get_audit_log): preview lists every restoration, apply performs it through the same approval rules. Undo never deletes history: it posts the reversing change and links the two. Check the result with get_change. Call it with mode "preview" first (the default), which changes nothing, then with mode "apply" and the preview_id to make the change. Undo it with undo_change.
update_plugin_settings
ChatGPTChanges this connection's Accountable settings for ChatGPT: the default company, and read only (it can be turned off here only if it was turned on here).
what_if
ChatGPTAnswers "what if we hire X / cut Y / raise Z" with the planning engine's numbers. Computes only; nothing is saved. Use save_scenario to keep it.