get_fund_balance
ChatGPTGet the current balance for a specific fund by name.
get_grant_status
ChatGPTGet budget, spent, and remaining amounts for a grant project by name.
get_organization_summary
ChatGPTGet organization name, fiscal year, plan tier, fund count, and active account count.
get_pending_action_status
ChatGPTCheck the status of a pending write action that requires approval. Status is one of: pending, approved, rejected, expired.
get_transaction
ChatGPTGet full detail for a single transaction including all line items.
list_accounts
ChatGPTList the chart of accounts with account type and net balance.
list_bank_accounts
ChatGPTList active bank/cash accounts. Use the name with any cash-movement write tool.
list_bills
ChatGPTList AP bills across all statuses (not just unpaid). Optionally filter by status.
list_fiscal_years
ChatGPTList fiscal years (accounting periods) with their locked state.
list_funds
ChatGPTList all funds with their type and current balance.
list_grants
ChatGPTList all grants with budget, spent, and remaining amounts. Use the returned name with get_grant_status for detail.
list_in_kind_categories
ChatGPTList in-kind contribution categories with their GAAP-recordable flag and whether account mappings are configured. Use the name with record_in_kind_contribution.
list_orgs
ChatGPTList organizations accessible to the token's user. Use with switch_org to change context.
list_programs
ChatGPTList active programs (mission areas) — the root of the Program → Project hierarchy.
list_projects
ChatGPTList active projects (initiatives/grants within programs). Optionally filter by program name.
list_report_types
ChatGPTList the report types run_report accepts and their required parameters.
list_tags
ChatGPTList active transaction tags, grouped by tag group.
list_unmatched_statement_lines
ChatGPTList unmatched bank-statement lines from in-progress reconciliations. Provides the statement_line_id values that match_bank_statement_line needs.
list_unpaid_bills
ChatGPTList unpaid AP bills. Returns empty list if no bills exist or on Starter tier.
list_vendors
ChatGPTList active vendor contacts. Use the returned name with receive_bill or record_expense.
match_bank_statement_line
ChatGPTMatch a bank statement line to an existing posted transaction during reconciliation. USE THIS FOR: reconciling imported statement lines against transactions already recorded in the ledger (find lines via list_unmatched_statement_lines). Do NOT use this for: creating a new transaction — record it first with the appropriate record_* tool, then match. Example: matching statement line 5 to transaction 2243.
pay_bill
ChatGPTPay (full or partial) an existing AP bill — DR Accounts Payable, CR Bank. USE THIS FOR: settling a bill previously created with receive_bill (find it via list_unpaid_bills). Do NOT use this for: a one-off cost with no prior bill (use record_expense). Example: paying $400 of bill #12 from Checking.
receive_bill
ChatGPTCreate an unpaid vendor bill (accounts payable, draft) — no cash moves yet. USE THIS FOR: recording a vendor invoice you will pay later. Do NOT use this for: a cost already paid (use record_expense) or paying a bill that already exists (use pay_bill). Example: a $400 bill from a printing vendor due in 30 days.
record_donation
ChatGPTRecord a charitable contribution (gift) received — DR Bank, CR Revenue. USE THIS FOR: donations, gifts, grants received, support given with nothing exchanged in return. Do NOT use this for: earned/exchange income such as fees or sales (use record_revenue), paying staff (use record_payroll), or recording a cost (use record_expense). Example: a $250 check from a donor deposited to the General Fund.
record_expense
ChatGPTRecord a cost paid immediately from a bank account — DR Expense, CR Bank. USE THIS FOR: a supply purchase, rent, utility, or any expense paid on the spot. Do NOT use this for: paying employees (use record_payroll), recording an unpaid vendor invoice to settle later (use receive_bill), or paying an existing bill (use pay_bill). Example: an $80 office-supply purchase paid from Checking.
record_in_kind_contribution
ChatGPTRecord a non-cash (in-kind) contribution of goods or services — DR Expense, CR In-Kind Revenue; no cash moves. USE THIS FOR: donated goods, professional/pro-bono services, or supplies, using a configured in-kind category (see list_in_kind_categories). Do NOT use this for: cash gifts (use record_donation) or volunteer hours (logged in the NP Ledger UI). Example: $1,200 of donated legal services.
record_payroll
ChatGPTRecord a payroll journal entry — DR wages_account (gross_wages), DR tax_expense_account (employer_taxes), CR tax_liability_account (employer_taxes), CR bank (net_pay). USE THIS FOR: paying employee wages and employer payroll taxes only. Do NOT use this for: donations (use record_donation), contractor/vendor payments (use record_expense or pay_bill), or any non-wage cost. wages_account must be an expense account. Example: $5,000 gross wages, $400 employer taxes, $4,600 net pay from Checking.
record_revenue
ChatGPTRecord earned/exchange revenue received — DR Bank, CR Revenue. USE THIS FOR: program fees, ticket or event sales, service income, merchandise sales — money earned in exchange for goods or services. Do NOT use this for: donations or gifts received with nothing exchanged (use record_donation). Example: $500 of event ticket sales deposited to Checking.
run_report
ChatGPTGenerate a financial report. Types: trial_balance, activities, financial_position, fund_transactions (requires fund param).
search_transactions
ChatGPTSearch transactions with optional filters. Returns up to 50 matches.
void_transaction
ChatGPTVoid (reverse) a posted transaction by creating an offsetting reversing entry — use this to undo a mistake, including one you just posted in error. USE THIS FOR: reversing an incorrect or duplicate posted entry. Do NOT use this for: editing an entry's amount/accounts (there is no edit tool — void it and re-record correctly with the right record_* tool), or removing a draft (only posted entries can be voided). Refuses to void reconciled or locked-period transactions — a person must handle those in the web app. Capture why in reason (recorded in the audit trail). Example: voiding transaction 2244 because record_payroll was used by mistake for a donation.