get_unreconciled_bank_lines Get Unreconciled Bank Lines List unreconciled bank statement lines with optional filters for journal, date range, and minimum amount. bank_reconciliation 1 {"type": "object", "properties": {"journal_id": {"type": "integer", "description": "Journal ID to filter by"}, "date_from": {"type": "string", "description": "Start date (YYYY-MM-DD)"}, "date_to": {"type": "string", "description": "End date (YYYY-MM-DD)"}, "min_amount": {"type": "number", "description": "Minimum absolute amount"}, "limit": {"type": "integer", "description": "Max records to return", "default": 50}}} account.bank.statement.line.search_read get_unreconciled_receipts Get Unreconciled Receipts List unreconciled Outstanding Receipts entries on the specified account (default 1122). bank_reconciliation 1 {"type": "object", "properties": {"account_code": {"type": "string", "description": "Account code prefix", "default": "1122"}}} match_bank_line_to_payments Match Bank Line to Payments Match a bank statement line to one or more payment journal items for reconciliation. bank_reconciliation 3 {"type": "object", "properties": {"statement_line_id": {"type": "integer", "description": "Bank statement line ID"}, "move_line_ids": {"type": "array", "items": {"type": "integer"}, "description": "Journal item IDs to match"}}, "required": ["statement_line_id", "move_line_ids"]} fusion_accounting.group_fusion_accounting_manager auto_reconcile_bank_lines Auto-Reconcile Bank Lines Run Odoo's built-in auto-reconciliation engine on all unreconciled bank statement lines. bank_reconciliation 3 {"type": "object", "properties": {"company_id": {"type": "integer"}}} fusion_accounting.group_fusion_accounting_manager apply_reconcile_model Apply Reconciliation Model Apply a specific reconciliation model to a bank statement line. bank_reconciliation 3 {"type": "object", "properties": {"model_id": {"type": "integer"}, "statement_line_id": {"type": "integer"}}, "required": ["model_id", "statement_line_id"]} fusion_accounting.group_fusion_accounting_manager unmatch_bank_line Unmatch Bank Line Undo a bank statement line reconciliation. bank_reconciliation 3 {"type": "object", "properties": {"statement_line_id": {"type": "integer"}}, "required": ["statement_line_id"]} fusion_accounting.group_fusion_accounting_manager get_reconcile_suggestions Get Reconciliation Suggestions Get available reconciliation models for a bank statement line. bank_reconciliation 1 {"type": "object", "properties": {"statement_line_id": {"type": "integer"}}, "required": ["statement_line_id"]} sum_payments_by_date Sum Payments by Date Sum payment journal items for a date range. IMPORTANT: You MUST pass journal_ids to filter to specific journals (e.g., the card/POS journal). Without journal_ids, returns totals across ALL company journals which will be misleadingly large. Use this to verify card batch deposit amounts against the card payment journal for the prior business day. bank_reconciliation 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}, "journal_ids": {"type": "array", "items": {"type": "integer"}}}, "required": ["date_from", "date_to"]} calculate_hst_balance Calculate HST Balance Calculate net HST position (collected minus ITCs) for a period. hst_management 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}} get_tax_report Get Tax Report Generate a tax report for a period using Odoo's reporting engine. hst_management 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}, "report_ref": {"type": "string", "default": "account.generic_tax_report"}}} find_missing_tax_invoices Find Missing Tax Invoices Find customer invoices with taxable products but no tax applied. hst_management 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}} find_missing_itc_bills Find Missing ITC Bills Find vendor bills without input tax credits. hst_management 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}} get_tax_return_status Get Tax Return Status Check the status of periodic tax returns. hst_management 1 {"type": "object", "properties": {}} generate_tax_return Generate Tax Return Refresh all tax return data. hst_management 2 {"type": "object", "properties": {}} fusion_accounting.group_fusion_accounting_manager validate_tax_return Validate Tax Return Mark a tax return as validated. hst_management 3 {"type": "object", "properties": {"return_id": {"type": "integer"}}, "required": ["return_id"]} fusion_accounting.group_fusion_accounting_manager get_ar_aging Get AR Aging Get accounts receivable aging buckets (current, 30, 60, 90+ days). accounts_receivable 1 {"type": "object", "properties": {}} get_overdue_invoices Get Overdue Invoices List invoices past due with partner contact information. accounts_receivable 1 {"type": "object", "properties": {"min_days_overdue": {"type": "integer", "default": 1}, "limit": {"type": "integer", "default": 50}}} get_partner_balance Get Partner Balance Get a single partner's AR balance and open items. accounts_receivable 1 {"type": "object", "properties": {"partner_id": {"type": "integer"}}, "required": ["partner_id"]} send_followup Send Follow-Up Draft and send a follow-up email to a partner about overdue invoices. accounts_receivable 2 {"type": "object", "properties": {"partner_id": {"type": "integer"}, "send_email": {"type": "boolean"}, "print_letter": {"type": "boolean"}, "email_subject": {"type": "string"}, "body": {"type": "string"}}, "required": ["partner_id"]} fusion_accounting.group_fusion_accounting_manager get_followup_report Get Follow-Up Report Get the HTML follow-up report for a partner. accounts_receivable 1 {"type": "object", "properties": {"partner_id": {"type": "integer"}}, "required": ["partner_id"]} reconcile_payment_to_invoice Reconcile Payment to Invoice Match a payment to an invoice by reconciling journal items. accounts_receivable 3 {"type": "object", "properties": {"move_line_ids": {"type": "array", "items": {"type": "integer"}}}, "required": ["move_line_ids"]} fusion_accounting.group_fusion_accounting_manager get_unmatched_payments Get Unmatched Payments List payments not matched to invoices. accounts_receivable 1 {"type": "object", "properties": {}} get_ap_aging Get AP Aging Get accounts payable aging buckets. accounts_payable 1 {"type": "object", "properties": {}} find_duplicate_bills Find Duplicate Bills Detect potential duplicate vendor bills (same vendor + amount + date within window). accounts_payable 1 {"type": "object", "properties": {"window_days": {"type": "integer", "default": 7}}} match_bill_to_po Match Bill to PO Cross-reference bill lines to purchase order lines. accounts_payable 1 {"type": "object", "properties": {"bill_id": {"type": "integer"}}, "required": ["bill_id"]} get_unpaid_bills Get Unpaid Bills List vendor bills with outstanding balance. accounts_payable 1 {"type": "object", "properties": {"partner_id": {"type": "integer"}, "limit": {"type": "integer", "default": 50}}} verify_bill_taxes Verify Bill Taxes Check that bill tax matches fiscal position expectation. accounts_payable 1 {"type": "object", "properties": {"bill_id": {"type": "integer"}}, "required": ["bill_id"]} get_payment_schedule Get Payment Schedule Bills sorted by due date for cash planning. accounts_payable 1 {"type": "object", "properties": {"days_ahead": {"type": "integer", "default": 30}}} find_wrong_direction_balances Find Wrong Direction Balances Find accounts where balance direction contradicts account type. journal_review 1 {"type": "object", "properties": {}} find_duplicate_entries Find Duplicate Entries Detect entries with matching partner + amount + date + journal. journal_review 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}} find_wrong_account_entries Find Wrong Account Entries Product lines on unlikely accounts (e.g., revenue on tax account). journal_review 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}} find_sequence_gaps Find Sequence Gaps Find journal entries where made_sequence_gap is true. journal_review 1 {"type": "object", "properties": {}} find_draft_entries Find Draft Entries Draft entries older than specified days that should be posted or deleted. journal_review 1 {"type": "object", "properties": {"min_age_days": {"type": "integer", "default": 30}}} find_unreconciled_suspense Find Unreconciled Suspense Suspense/clearing accounts with non-zero balance. journal_review 1 {"type": "object", "properties": {}} verify_reconciliation_integrity Verify Reconciliation Integrity Check account.partial.reconcile consistency. journal_review 1 {"type": "object", "properties": {}} get_close_checklist Get Close Checklist Aggregate all domain checks into a period close checklist. month_end 1 {"type": "object", "properties": {"period": {"type": "string", "description": "YYYY-MM format"}}} get_unreconciled_counts Get Unreconciled Counts Per-account count of unreconciled items. month_end 1 {"type": "object", "properties": {}} find_entries_in_locked_period Find Entries in Locked Period Find entries after lock dates. month_end 1 {"type": "object", "properties": {}} get_accrual_status Get Accrual Status Balance on accrual accounts (vacation, sick, etc.). month_end 1 {"type": "object", "properties": {"account_codes": {"type": "array", "items": {"type": "string"}}}} run_hash_integrity_check Run Hash Integrity Check Verify journal entry hash chain integrity. month_end 1 {"type": "object", "properties": {}} get_period_summary Get Period Summary Trial balance for the closing period. month_end 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}, "required": ["date_from", "date_to"]} get_payroll_entries Get Payroll Entries Journal entries in payroll-related journals. payroll_verification 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}, "journal_id": {"type": "integer"}}} compare_payroll_to_bank Compare Payroll to Bank Cross-reference payroll cheques to bank statement lines. payroll_verification 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}, "required": ["date_from", "date_to"]} verify_source_deductions Verify Source Deductions CPP + EI + tax calculation verification against CRA tables. payroll_verification 1 {"type": "object", "properties": {}} get_cra_remittance_status Get CRA Remittance Status CRA payable balance vs payments made. payroll_verification 1 {"type": "object", "properties": {}} find_unmatched_payroll_cheques Find Unmatched Payroll Cheques Bank cheques without matching payroll entry. payroll_verification 1 {"type": "object", "properties": {}} get_stock_valuation Get Stock Valuation Stock In Hand balance and layers. inventory 1 {"type": "object", "properties": {}} get_price_differences Get Price Differences Entries on price difference account (PO price vs bill price). inventory 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}} get_cogs_ratio_by_category Get COGS Ratio COGS vs revenue per product category. inventory 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}} find_unusual_adjustments Find Unusual Adjustments Large inventory adjustment entries. inventory 1 {"type": "object", "properties": {"threshold": {"type": "number", "default": 1000}}} get_inventory_turnover Get Inventory Turnover Sales vs average inventory calculation. inventory 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}} get_adp_receivable_aging Get ADP Receivable Aging Aging on ADP Receivable account (1101). adp 1 {"type": "object", "properties": {}} match_adp_payment_to_invoice Match ADP Payment to Invoice Match ADP deposit to ADP invoices. adp 3 {"type": "object", "properties": {"move_line_ids": {"type": "array", "items": {"type": "integer"}}}, "required": ["move_line_ids"]} fusion_accounting.group_fusion_accounting_manager verify_adp_split Verify ADP Split Check customer + ADP portion = invoice total. adp 1 {"type": "object", "properties": {"invoice_id": {"type": "integer"}}, "required": ["invoice_id"]} find_adp_without_payment Find ADP Without Payment ADP invoices without matching government deposit. adp 1 {"type": "object", "properties": {}} get_adp_summary Get ADP Summary Period summary of ADP billing vs collection. adp 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}} get_profit_loss Get Profit & Loss Generate P&L report for a period. reporting 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}} get_balance_sheet Get Balance Sheet Generate balance sheet report. reporting 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}} get_trial_balance Get Trial Balance Generate trial balance report. reporting 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}} get_cash_flow Get Cash Flow Generate cash flow statement. reporting 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}} compare_periods Compare Periods Two period reports side by side for comparison. reporting 1 {"type": "object", "properties": {"report_ref": {"type": "string"}, "period1_from": {"type": "string"}, "period1_to": {"type": "string"}, "period2_from": {"type": "string"}, "period2_to": {"type": "string"}}, "required": ["period1_from", "period1_to", "period2_from", "period2_to"]} answer_financial_question Answer Financial Question Natural language to report query for financial questions. reporting 1 {"type": "object", "properties": {"question": {"type": "string"}}, "required": ["question"]} export_report Export Report Export a report to PDF or XLSX. reporting 2 {"type": "object", "properties": {"report_ref": {"type": "string"}, "format": {"type": "string", "enum": ["pdf", "xlsx"]}, "date_from": {"type": "string"}, "date_to": {"type": "string"}}, "required": ["report_ref"]} fusion_accounting.group_fusion_accounting_manager audit_posted_entry Audit Posted Entry Run all entry-level checks on a single journal entry. audit 1 {"type": "object", "properties": {"move_id": {"type": "integer"}}, "required": ["move_id"]} audit_account_balances Audit Account Balances Run all account-level checks (wrong direction, stale items). audit 1 {"type": "object", "properties": {}} audit_tax_compliance Audit Tax Compliance All tax checks (missing tax, wrong rate, exempt verification). audit 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}} audit_reconciliation_integrity Audit Reconciliation Integrity Verify partial/full reconcile consistency. audit 1 {"type": "object", "properties": {}} check_hash_chain Check Hash Chain Verify journal entry hash chain integrity. audit 1 {"type": "object", "properties": {}} check_sequence_gaps Check Sequence Gaps Check for sequence gaps in journals. audit 1 {"type": "object", "properties": {}} flag_entry Flag Entry Create a chatter note on a journal entry with flag and recommendation. audit 2 {"type": "object", "properties": {"move_id": {"type": "integer"}, "flag": {"type": "string"}, "recommendation": {"type": "string"}}, "required": ["move_id"]} fusion_accounting.group_fusion_accounting_manager get_audit_status Get Audit Status Account audit status per tax return. audit 1 {"type": "object", "properties": {}} set_audit_status Set Audit Status Update review status (todo / reviewed / supervised / anomaly). audit 2 {"type": "object", "properties": {"status_id": {"type": "integer"}, "status": {"type": "string", "enum": ["todo", "reviewed", "supervised", "anomaly"]}}, "required": ["status_id", "status"]} fusion_accounting.group_fusion_accounting_manager get_audit_trail Get Audit Trail Get mail.message history for a journal entry. audit 1 {"type": "object", "properties": {"move_id": {"type": "integer"}}, "required": ["move_id"]} run_full_audit Run Full Audit All checks across all domains for a period. audit 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}} get_audit_report Get Audit Report Summary of all audit findings with severity ratings. audit 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}} parse_payroll_summary Parse Payroll Summary Read pasted/uploaded payroll data from QBO or fusion_payroll. payroll_management 1 {"type": "object", "properties": {"data": {"type": "string"}}, "required": ["data"]} create_payroll_journal_entry Create Payroll Journal Entry Create a payroll journal entry with debit/credit lines. payroll_management 3 {"type": "object", "properties": {"journal_id": {"type": "integer"}, "date": {"type": "string"}, "ref": {"type": "string"}, "lines": {"type": "array", "items": {"type": "object", "properties": {"account_id": {"type": "integer"}, "name": {"type": "string"}, "debit": {"type": "number"}, "credit": {"type": "number"}, "partner_id": {"type": "integer"}}}}}, "required": ["journal_id", "date", "lines"]} fusion_accounting.group_fusion_accounting_manager match_payroll_cheques Match Payroll Cheques Match bank cheques to payroll liabilities. payroll_management 3 {"type": "object", "properties": {"statement_line_id": {"type": "integer"}, "move_line_ids": {"type": "array", "items": {"type": "integer"}}}, "required": ["statement_line_id", "move_line_ids"]} fusion_accounting.group_fusion_accounting_manager prepare_cra_payment Prepare CRA Payment Create CRA remittance payment entry. payroll_management 3 {"type": "object", "properties": {"journal_id": {"type": "integer"}, "date": {"type": "string"}, "lines": {"type": "array"}}, "required": ["journal_id", "date", "lines"]} fusion_accounting.group_fusion_accounting_manager generate_t4 Generate T4 Trigger T4 generation via fusion_payroll. payroll_management 2 {"type": "object", "properties": {}} fusion_accounting.group_fusion_accounting_manager generate_roe Generate ROE Trigger ROE generation via fusion_payroll. payroll_management 2 {"type": "object", "properties": {}} fusion_accounting.group_fusion_accounting_manager get_payroll_cost_report Get Payroll Cost Report Period summary by employee/department. payroll_management 1 {"type": "object", "properties": {"date_from": {"type": "string"}, "date_to": {"type": "string"}}} search_partners Search Partners Search for vendors/contacts by name keyword. Use this to resolve bank line descriptions (e.g., "AMAZON") to the correct Odoo partner record before creating bills. Pass supplier_only=true to filter to vendors only. accounts_payable 1 {"type": "object", "properties": {"keyword": {"type": "string", "description": "Name keyword to search (min 2 chars)"}, "supplier_only": {"type": "boolean", "description": "Only return suppliers/vendors"}, "limit": {"type": "integer"}}, "required": ["keyword"]} find_similar_bank_lines Find Similar Bank Lines Search past RECONCILED bank lines with similar payment_ref descriptions. Returns the expense account, tax treatment, and partner used for each historical match. Use this to check how similar expenses were coded in the past before proposing a new bill. accounts_payable 1 {"type": "object", "properties": {"keyword": {"type": "string", "description": "Keyword from payment_ref to search (min 3 chars)"}, "limit": {"type": "integer"}}, "required": ["keyword"]} get_bank_line_details Get Bank Line Details Get full details of a single unreconciled bank statement line. Also searches for existing vendor bills matching the amount and date, and suggests a partner based on the payment description. Use this to check if a bill already exists before creating a new one. bank_reconciliation 1 {"type": "object", "properties": {"line_id": {"type": "integer", "description": "Bank statement line ID"}}, "required": ["line_id"]} create_vendor_bill Create Vendor Bill [Tier 3: Requires user approval] Create a vendor bill (account.move in_invoice) with expense lines and tax. Use after confirming the expense details with the user. Pass post=true to auto-post the bill after creation. accounts_payable 3 {"type": "object", "properties": {"partner_id": {"type": "integer", "description": "Vendor partner ID"}, "invoice_date": {"type": "string", "description": "Bill date (YYYY-MM-DD)"}, "lines": {"type": "array", "items": {"type": "object", "properties": {"description": {"type": "string"}, "account_id": {"type": "integer"}, "price_unit": {"type": "number"}, "quantity": {"type": "number"}, "tax_ids": {"type": "array", "items": {"type": "integer"}}}}, "description": "Invoice line items"}, "post": {"type": "boolean", "description": "Auto-post the bill after creation"}}, "required": ["partner_id", "invoice_date", "lines"]} register_bill_payment Register Bill Payment [Tier 3: Requires user approval] Register a payment on a posted vendor bill from a specific bank journal. Optionally reconcile the payment to a bank statement line. Use after create_vendor_bill to complete the full bill+payment+reconciliation flow. accounts_payable 3 {"type": "object", "properties": {"bill_id": {"type": "integer", "description": "Posted bill ID (account.move)"}, "journal_id": {"type": "integer", "description": "Bank journal ID for payment"}, "payment_date": {"type": "string", "description": "Payment date (YYYY-MM-DD)"}, "amount": {"type": "number", "description": "Payment amount (defaults to bill total)"}, "statement_line_id": {"type": "integer", "description": "Bank statement line ID to reconcile with"}}, "required": ["bill_id", "journal_id"]} check_recurring_pattern Check Recurring Pattern Check if a bank line matches a known recurring payment pattern. Returns the historical account coding, HST treatment, partner, and reconciliation model if one exists. ALWAYS call this FIRST for every unreconciled bank line — if a recurring pattern exists, follow its instructions instead of asking the user. Pass line_id to auto-extract ref and amount. bank_reconciliation 1 {"type": "object", "properties": {"line_id": {"type": "integer", "description": "Bank statement line ID"}, "payment_ref": {"type": "string", "description": "Payment reference text (auto-extracted if line_id provided)"}, "amount": {"type": "number", "description": "Transaction amount (auto-extracted if line_id provided)"}}, "required": []} match_internal_transfers Match Internal Transfers [Tier 3: Requires user approval] Find and match inter-account transfers between two bank journals (e.g., Scotia Current ↔ Scotia Visa). Matches EXACT amounts within 2 days. ONLY matches when there is exactly one candidate — skips ambiguous cases. First call with execute=false to preview pairs, then execute=true to reconcile. Scotia Current=50, Scotia Visa=51, RBC Chequing=53, RBC Visa=28. bank_reconciliation 3 {"type": "object", "properties": {"journal_a_id": {"type": "integer", "description": "First bank journal ID"}, "journal_b_id": {"type": "integer", "description": "Second bank journal ID"}, "date_from": {"type": "string"}, "date_to": {"type": "string"}, "max_days_apart": {"type": "integer", "description": "Max days between matching lines (default 2)"}, "execute": {"type": "boolean", "description": "false=preview pairs only, true=actually reconcile"}}, "required": ["journal_a_id", "journal_b_id"]} create_expense_entry Create Direct GL Expense [Tier 3: Requires user approval] Create a direct GL expense entry in the Miscellaneous Operations journal. Alternative to creating a vendor bill — posts immediately. If has_hst=true, automatically splits the amount into net expense + 13% HST ITC on the 2006 account. Use this for small expenses where a formal vendor bill is not needed. hst_management 3 {"type": "object", "properties": {"date": {"type": "string", "description": "Entry date (YYYY-MM-DD)"}, "description": {"type": "string", "description": "Expense description"}, "expense_account_id": {"type": "integer", "description": "GL expense account ID"}, "amount": {"type": "number", "description": "Total amount including HST if applicable"}, "has_hst": {"type": "boolean", "description": "Whether HST (13%) is included in the amount"}, "bank_journal_id": {"type": "integer", "description": "Bank journal for the credit side"}}, "required": ["date", "description", "expense_account_id", "amount"]}