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"]}