Disallowed Expenses Odoo 18
By Braincuber Team
Published on December 30, 2025
Tax audits reveal expensive mistakes: company deducted $15,000 client entertainment expenses during tax filing but tax law only allows 50% deduction, accountant claimed full $8,000 penalty fine as business expense when fines are completely non-deductible, year-end reconciliation shows $25,000 in personal expenses mixed with business costs reducing legitimate deductions—resulting in $12,000 tax penalty, interest charges, and audit flags because no system separating deductible from non-deductible expenses.
Odoo 18 Disallowed Expenses feature automates tax compliance by identifying and tracking non-deductible or partially deductible expenses through dedicated expense accounts, configurable disallowance rates (0-100%), automatic calculation during tax reporting, separate tracking in financial statements, and integration with tax return preparation—ensuring accurate taxable income calculation, preventing audit penalties, and maintaining clean separation between accounting profit and taxable profit.
Core Concept: Accounting profit ≠ Taxable profit. Some expenses reduce accounting profit (recorded in books) but don't reduce taxable income (government doesn't allow deduction). Disallowed expenses bridge this gap for compliance.
What Are Disallowed Expenses?
Disallowed expenses (also called non-deductible expenses) are business costs recorded in accounting books but not fully deductible when calculating taxable income. Tax authorities limit or prohibit deductions for certain expense categories to prevent tax avoidance and maintain tax base integrity.
Why Expenses Get Disallowed:
Prohibited Expenses
Completely non-deductible: fines/penalties, political contributions, personal expenses, illegal payments. Tax law explicitly forbids deductions regardless of business purpose.
Partially Limited
Deductible with caps: entertainment (50%), luxury vehicle depreciation (capped amount), executive compensation over thresholds, home office expenses (percentage-based).
Policy-Based
Government policy limits: R&D expenses requiring capitalization, certain interest expenses, accelerated vs standard depreciation differences, meals and travel restrictions.
Common Disallowed Expense Categories
| Expense Type | Disallowance Rate | Example |
|---|---|---|
| Fines & Penalties | 100% disallowed | $5,000 late tax filing penalty = $0 tax deduction |
| Client Entertainment | 50% disallowed | $2,000 client dinner = $1,000 deductible, $1,000 disallowed |
| Political Contributions | 100% disallowed | $10,000 campaign donation = $0 tax deduction |
| Personal Vehicle Use | Variable (based on personal %) | $6,000 car expense, 40% personal = $2,400 disallowed |
| Luxury Depreciation | Amount over cap disallowed | $80,000 luxury car, $18,000 cap = $62,000 disallowed first year |
| Excessive Compensation | Amount over $1M disallowed | $1.5M executive salary = $1M deductible, $500K disallowed |
| Interest on Tax Debt | 100% disallowed | $1,200 interest on unpaid taxes = $0 deduction |
⚠️ Regional Variation: Disallowance rules differ by country/jurisdiction. Example: UK allows 0% entertainment deduction, US allows 50%, some countries allow 100%. Configure based on your tax jurisdiction requirements.
Enabling Disallowed Expenses in Odoo 18
Disallowed expenses feature must be activated in accounting settings. Path: Accounting → Configuration → Settings
Access Accounting Settings
Navigate to: Accounting → Configuration → Settings
Scroll to the Taxes section
Enable Feature
Find and activate: Disallowed Expenses
Check the box to enable the feature
Save Configuration
Click Save to apply changes. The disallowed expenses field will now appear on expense accounts.
Configuring Expense Accounts
After enabling the feature, configure which accounts track disallowed expenses and set disallowance percentages. Path: Accounting → Configuration → Chart of Accounts
Setting Up Disallowed Expense Accounts:
Locate Expense Account
Go to Accounting → Configuration → Chart of Accounts
Find the expense account needing disallowance configuration (e.g., "Entertainment Expenses", "Fines and Penalties")
Edit Account Settings
Click the account name to open configuration form
Locate the Disallowed Expenses section (appears after feature enabled)
Configure Disallowance Rate
Set the Disallowed Expenses % field:
- 0% = Fully deductible (no disallowance)
- 50% = Half disallowed (common for entertainment)
- 100% = Completely non-deductible (fines, penalties)
- Custom % = Any percentage based on tax rules
Link Disallowed Expense Account
In Disallowed Expense Account field, select account for tracking non-deductible portion:
This separate account accumulates disallowed amounts for tax reporting. Create dedicated account like "Non-Deductible Expenses" (account code 6999 or similar).
Example Account Configuration:
Account Code: 6120 Account Name: Client Entertainment Account Type: Expenses Disallowed Expenses %: 50% Disallowed Expense Account: 6999 - Non-Deductible Expenses Result: $2,000 entertainment expense booked - Journal Entry: DR Client Entertainment (6120): $2,000 CR Cash/Bank: $2,000 - Automatic Disallowance Entry: DR Non-Deductible Expenses (6999): $1,000 CR Client Entertainment (6120): $1,000 Net Tax Deduction: $1,000 (50% of $2,000)
Account Code: 6450 Account Name: Fines and Penalties Account Type: Expenses Disallowed Expenses %: 100% Disallowed Expense Account: 6999 - Non-Deductible Expenses Result: $5,000 tax penalty booked - Journal Entry: DR Fines and Penalties (6450): $5,000 CR Cash/Bank: $5,000 - Automatic Disallowance Entry: DR Non-Deductible Expenses (6999): $5,000 CR Fines and Penalties (6450): $5,000 Net Tax Deduction: $0 (100% disallowed)
Creating Disallowed Expense Tracking Account
You need a dedicated account to accumulate all disallowed expense amounts for consolidated tax reporting.
Create New Account
Go to Accounting → Configuration → Chart of Accounts → New
- Code: 6999 (or suitable number in your chart)
- Account Name: "Non-Deductible Expenses" or "Disallowed Expenses"
- Type: Expenses
- Internal Group: Expense (or create "Tax Adjustments" group)
- Reconcile: Optional (recommended for tracking)
Use in Disallowance Configuration
Reference this account (6999) in the "Disallowed Expense Account" field when configuring all partially/fully non-deductible expense accounts. This centralizes tracking.
How Automatic Calculation Works
Once configured, Odoo automatically calculates and records disallowed portions when you post expense transactions.
Automatic Process Flow:
- Record Expense: User creates vendor bill or expense entry using configured account
- Post Journal Entry: When posted, Odoo checks if account has disallowance configured
- Calculate Disallowed Amount: System multiplies expense by disallowance percentage
- Create Offsetting Entry: Automatically generates journal entry moving disallowed portion to tracking account
- Update Balances: Original expense account shows deductible amount, tracking account accumulates non-deductible total
STEP 1: Record Vendor Bill Date: 2024-12-29 Vendor: Luxury Restaurant Inc. Account: 6120 - Client Entertainment (50% disallowed) Amount: $4,000 STEP 2: Post Bill (User Action) Initial Journal Entry Created: DR Client Entertainment (6120): $4,000 CR Accounts Payable: $4,000 STEP 3: Automatic Disallowance Calculation (Odoo Background) Disallowed Amount = $4,000 × 50% = $2,000 STEP 4: Automatic Offsetting Entry (Odoo Background) Secondary Journal Entry Auto-Generated: DR Non-Deductible Expenses (6999): $2,000 CR Client Entertainment (6120): $2,000 STEP 5: Final Account Balances Client Entertainment (6120): $2,000 (tax deductible) Non-Deductible Expenses (6999): $2,000 (tax adjustment) Accounts Payable: $4,000 (payment owed) TAX REPORTING RESULT: Accounting Books Expense: $4,000 Tax Return Deduction: $2,000 Disallowed (Add Back): $2,000
Recording Expenses with Disallowance
Day-to-day expense recording remains unchanged. Disallowance calculations happen automatically in the background.
Method 1: Vendor Bills
Create Vendor Bill
Go to Accounting → Vendors → Bills → New
- Select vendor
- Enter bill date and due date
- Add invoice line with configured expense account
- Enter amount
Post Bill
Click Confirm to post the bill
Odoo automatically creates disallowance entry based on account configuration
Method 2: Manual Journal Entries
Create Journal Entry
Go to Accounting → Accounting → Miscellaneous → Journal Entries → New
Add debit line with configured disallowed expense account and corresponding credit
Post Entry
Click Post. System automatically generates disallowance offset entry.
Method 3: Employee Expense Reports
Submit Expense Report
Employee submits expense via Expenses → My Expenses → New
Selects expense product linked to disallowed expense account
Approve and Post
Manager approves, accountant posts expense report. Disallowance automatically calculated based on underlying expense account configuration.
Reporting and Tax Compliance
Access disallowed expense reports for tax return preparation and compliance verification.
Viewing Disallowed Expenses:
Account Reports
Go to Accounting → Reporting → General Ledger. Filter by account 6999 (Non-Deductible Expenses) to see total disallowed amounts by period.
Profit & Loss Adjustment
Run P&L report. Find "Non-Deductible Expenses" line showing total tax adjustments needed. Accounting profit - disallowed expenses = taxable profit base.
Tax Return Preparation
Export disallowed expenses account balance. Add this amount back to accounting profit on tax return Schedule M-1 or equivalent tax adjustment form.
Tax Return Reconciliation Example:
ACCOUNTING BOOKS (Per Odoo P&L): Revenue: $500,000 Less: Expenses: - Salaries: $200,000 - Rent: $50,000 - Client Entertainment: $10,000 - Fines & Penalties: $5,000 - Other Expenses: $85,000 Total Expenses: $350,000 NET PROFIT (Accounting): $150,000 TAX ADJUSTMENT (Disallowed Expenses Report): Client Entertainment (50% of $10,000): $5,000 Fines & Penalties (100% of $5,000): $5,000 Total Disallowed Expenses: $10,000 TAXABLE INCOME CALCULATION: Net Profit (Accounting): $150,000 Add Back: Disallowed Expenses: $10,000 TAXABLE INCOME (Tax Return): $160,000 Tax Rate: 21% Income Tax Owed: $160,000 × 21% = $33,600
Common Disallowed Expense Scenarios
Scenario 1: Business Meals (50% Disallowed)
Account: 6130 - Meals and Entertainment Disallowance: 50% Tracking Account: 6999 Example Transaction: Client lunch meeting: $240 Quarterly team dinner: $1,200 Total meals expense: $1,440 Accounting Entry: DR Meals and Entertainment: $1,440 CR Bank: $1,440 Auto Disallowance: DR Non-Deductible Expenses: $720 (50%) CR Meals and Entertainment: $720 Tax Deduction: $720
Scenario 2: Personal Use of Company Assets
Account: 6210 - Vehicle Expenses Disallowance: 30% (personal use percentage) Tracking Account: 6999 Example Transaction: Annual vehicle expenses: $12,000 Personal use: 30% Accounting Entry: DR Vehicle Expenses: $12,000 CR Bank/Credit Card: $12,000 Auto Disallowance: DR Non-Deductible Expenses: $3,600 (30%) CR Vehicle Expenses: $3,600 Tax Deduction: $8,400
Scenario 3: Regulatory Fines (100% Disallowed)
Account: 6450 - Fines and Penalties Disallowance: 100% Tracking Account: 6999 Example Transaction: Late tax filing penalty: $2,500 OSHA safety violation fine: $7,500 Total fines: $10,000 Accounting Entry: DR Fines and Penalties: $10,000 CR Bank: $10,000 Auto Disallowance: DR Non-Deductible Expenses: $10,000 (100%) CR Fines and Penalties: $10,000 Tax Deduction: $0
Best Practices
✅ Follow These Guidelines:
- Verify tax rules: Consult tax advisor for correct disallowance percentages in your jurisdiction
- Separate accounts: Don't mix fully deductible and partially deductible expenses in same account
- Document policies: Create written policy for expense categorization and approval
- Regular reconciliation: Monthly review of disallowed expense account for accuracy
- Audit trail: Keep documentation supporting business purpose and disallowance calculations
- Year-end review: Verify all disallowed expenses captured before tax return preparation
- Update percentages: Tax laws change—review disallowance rates annually
Common Mistakes to Avoid
🚨 Mistake #1: Not Creating Tracking Account
Enabling disallowance on expense account without creating dedicated tracking account = system can't record offset entries. Solution: Always create disallowed expense account (6999) first.
🚨 Mistake #2: Wrong Disallowance Percentage
Using 100% for meals when should be 50% = overcalculating tax liability, paying excess taxes. Solution: Research correct rates for your jurisdiction, document sources.
🚨 Mistake #3: Forgetting to Enable Feature
Configuring accounts before enabling disallowed expenses setting = fields won't appear, configuration impossible. Solution: Enable feature in settings first, then configure accounts.
🚨 Mistake #4: Manual Entry Errors
Manually recording disallowance instead of using automated feature = double-counting, inconsistent calculations. Solution: Let Odoo handle calculations automatically, don't create manual offsetting entries.
Multi-Company Considerations
Companies operating in multiple jurisdictions need different disallowance configurations per legal entity.
- Separate charts of accounts: Each company can have different disallowance percentages for same expense type
- Jurisdiction-specific rules: Configure based on local tax law (US entertainment 50%, UK 0%, Germany 70%)
- Consolidated reporting: Export disallowed expenses per company for group tax returns
- Intercompany transactions: Ensure disallowance rules apply correctly to cross-company charges
Integration with Tax Returns
Disallowed expenses directly impact tax return schedules and forms.
Common Tax Forms Using This Data:
- US Form 1120 Schedule M-1: Reconciliation of income per books with income per return
- UK CT600 Computation: Adjustments to accounting profit for taxable profit
- Canada T2 Schedule 1: Net income reconciliation
- Australia Company Tax Return: Income and deduction reconciliation items
Pro Tip: Export "Non-Deductible Expenses" account balance directly into tax software or provide to tax preparer. This single number represents total adjustments needed to reconcile book income to taxable income.
Conclusion
Odoo 18 Disallowed Expenses feature automates tax compliance by tracking non-deductible and partially deductible expenses through configurable expense accounts, percentage-based disallowance rates, automatic calculation and recording, and dedicated tracking accounts. Enable feature in accounting settings, configure disallowance percentages on relevant expense accounts, create dedicated tracking account (6999), and let system automatically calculate adjustments when posting expenses. This ensures accurate tax return preparation, prevents audit penalties, maintains compliance with jurisdiction-specific rules, and provides clear reconciliation between accounting profit and taxable income without manual calculations.
🎯 Key Takeaway: Proper disallowed expense tracking = accurate tax compliance. Configure once based on tax rules = automatic calculations forever. Skip this feature = manual year-end adjustments, errors, penalties, and audit headaches.
