Odoo HR Payroll Setup by Country: Complete Configuration Guide

Step-by-step guide to configuring Odoo HR Payroll for different countries including tax rules, social security, deductions, and statutory reporting.

E
ECOSIRE Research and Development Team
|March 16, 20269 min read1.9k Words|

Part of our Compliance & Regulation series

Read the complete guide

Odoo HR Payroll Setup by Country: Complete Configuration Guide

Payroll is the most country-specific module in any ERP system. Tax brackets, social security contributions, pension schemes, and statutory reporting requirements vary dramatically between jurisdictions. Odoo's payroll module addresses this through a localization framework that provides country-specific salary rules, tax tables, and report templates. This guide walks through the configuration process for major regions and the customization options for countries without official localizations.

Key Takeaways

  • Odoo 19 ships with payroll localizations for over 40 countries covering salary rules, tax tables, and statutory reports
  • The salary rule engine uses Python expressions for complex calculations while maintaining a full audit trail
  • Multi-country organizations can run payroll for different jurisdictions from a single Odoo instance
  • Custom localizations can be built using the salary structure framework for countries not officially supported
  • Integration with accounting ensures payroll journal entries post automatically with correct account mapping

Payroll Architecture Overview

Odoo payroll processes salary computations through a rule-based engine. The architecture consists of:

Salary Structures: Templates that define which salary rules apply to a category of employees. A company might have structures for monthly salaried employees, hourly workers, and contractors.

Salary Rules: Individual computation steps within a structure. Each rule has a Python expression that calculates its value based on inputs like base salary, worked days, and previous rule results. Rules execute in sequence based on their priority number.

Salary Rule Categories: Groupings that organize rules for reporting. Categories include gross salary, deductions, employer contributions, and net salary.

Payslip: The output document for a single employee for a single period, containing all computed rule values.

Navigate to Payroll > Configuration > Salary Structures to view and modify the salary structures available in your Odoo instance.

United States Configuration

Federal Tax Setup

US payroll requires configuring federal income tax withholding based on the employee's W-4 form:

  1. Navigate to Payroll > Configuration > Salary Rules and locate the Federal Income Tax rule
  2. The rule references the current IRS tax brackets, which Odoo updates annually
  3. Each employee's contract stores their filing status (Single, Married Filing Jointly, Head of Household) and allowances
  4. The computation accounts for pre-tax deductions (401k, health insurance, FSA) before calculating taxable income

State Tax Configuration

State income taxes require additional rules for each state where employees work:

State CategoryExamplesConfiguration Approach
No state income taxTX, FL, WA, NV, NH, TN, WY, SD, AKNo additional rules needed
Flat rateIL (4.95%), PA (3.07%), IN (3.05%)Single rule with flat percentage
Progressive bracketsCA, NY, NJ, ORMulti-bracket rule similar to federal
Local taxesNYC, Philadelphia, DetroitAdditional rules per locality

FICA and Medicare

Social Security (6.2% up to the wage base) and Medicare (1.45% with 0.9% additional above 200,000 USD) are configured as employer and employee contribution rules. The wage base limit updates annually---for 2026, configure the Social Security wage base at Payroll > Configuration > Parameters.

Benefits and Deductions

Common US deductions configured as salary rules:

  • 401(k): Pre-tax deduction with employer match (configurable percentage and cap)
  • Health insurance: Employee premium share (pre-tax under Section 125)
  • HSA/FSA: Pre-tax contributions to health savings or flexible spending accounts
  • Roth 401(k): Post-tax deduction (reduces net pay but not taxable income)
  • Garnishments: Court-ordered deductions with priority rules

European Union Countries

Germany

German payroll is among the most complex due to the church tax, solidarity surcharge, and the interaction between social security contributions:

Tax classes (Steuerklasse I through VI) determine the income tax withholding. Configure each employee's tax class on their contract at Payroll > Employees > Contracts.

Social security contributions in Germany are split equally between employer and employee:

ContributionEmployee RateEmployer RateCeiling (2026)
Health insurance7.3% + supplement7.3% + supplement62,100 EUR/year
Pension insurance9.3%9.3%90,600 EUR/year (West)
Unemployment insurance1.3%1.3%90,600 EUR/year
Long-term care1.7% (+ 0.6% childless)1.7%62,100 EUR/year

Church tax: 8% or 9% of income tax depending on the federal state (Bundesland).

France

French payroll uses the DSN (Declaration Sociale Nominative) for electronic reporting to social security agencies. Key configuration areas:

  • Cotisations sociales: Over 30 individual social contribution lines covering health, retirement, unemployment, and supplementary pension
  • CSG/CRDS: Social contribution taxes calculated on 98.25% of gross salary
  • Mutuelle: Mandatory complementary health insurance (employer pays minimum 50%)
  • Prevoyance: Death and disability insurance contributions
  • Reduction Fillon: Employer social security reduction for salaries near minimum wage

United Kingdom

UK payroll follows the PAYE (Pay As You Earn) system:

  • Tax codes: HMRC-assigned codes that determine the tax-free allowance (e.g., 1257L for the standard personal allowance)
  • National Insurance: Employee NI contributions at 8% (above primary threshold) and employer NI at 13.8% (above secondary threshold)
  • Student loan deductions: Plan 1, Plan 2, Plan 4, or Postgraduate rates
  • Pension auto-enrollment: Workplace pension at minimum 5% employee + 3% employer
  • RTI reporting: Real Time Information submissions to HMRC after each pay run

Middle East and Africa

United Arab Emirates

UAE payroll is simpler due to no income tax, but requires attention to:

  • Gratuity calculation: End-of-service gratuity based on years of service (21 days/year for first 5 years, 30 days/year thereafter)
  • WPS compliance: Wages Protection System electronic salary transfers through approved banks
  • DEWS: Difc Employee Workplace Savings plan for DIFC-based companies
  • Housing allowance: Typically 30-40% of basic salary, configured as a salary rule

Saudi Arabia

  • GOSI: General Organization for Social Insurance contributions (employer 12%, employee 10% for Saudi nationals; employer 2% for expats)
  • No income tax: For individuals (corporate tax applies to foreign entities)
  • Saudization: Tracking nationality percentages for compliance with Nitaqat program

South Africa

  • PAYE: Progressive tax brackets administered by SARS
  • UIF: Unemployment Insurance Fund (1% employee + 1% employer, capped)
  • SDL: Skills Development Levy (1% of total payroll)
  • Medical tax credits: Fixed monthly credits per dependant

Asia-Pacific

India

Indian payroll involves multiple components:

ComponentDescriptionTypical Percentage
BasicBase salary component40-50% of CTC
HRAHouse Rent Allowance40-50% of Basic
DADearness AllowanceVaries by sector
Special AllowanceFlexible componentBalance of CTC
PFProvident Fund (employee)12% of Basic
PFProvident Fund (employer)12% of Basic (3.67% EPF + 8.33% EPS)
ESIEmployee State Insurance0.75% employee + 3.25% employer
Professional TaxState-level taxVaries by state (max 2,500 INR/year)

TDS (Tax Deducted at Source): Employer calculates and deducts income tax monthly based on declared investments and the applicable tax regime (old vs new).

Australia

  • PAYG withholding: Pay As You Go income tax using ATO tax tables
  • Superannuation: Employer-mandated retirement contribution (11.5% for 2026)
  • HECS-HELP: Higher Education Loan repayments above income threshold
  • Medicare Levy: 2% of taxable income (with surcharge for higher earners without private health insurance)
  • STP reporting: Single Touch Payroll to ATO with each pay event

Building Custom Localizations

For countries without official Odoo localizations, you can build custom salary structures:

Step 1: Define Salary Structure

Create a new salary structure at Payroll > Configuration > Salary Structures with rules covering:

  • Gross salary computation
  • Tax withholding rules (reference the country's tax brackets)
  • Social security contributions (employee and employer portions)
  • Statutory deductions (pension, insurance, etc.)
  • Net salary calculation

Step 2: Create Salary Rules

Each salary rule requires:

  • Name and code: Descriptive name and unique reference code
  • Category: Gross, deduction, employer contribution, or net
  • Sequence: Execution order (lower numbers execute first)
  • Python expression: The calculation logic

Example rule for a progressive tax calculation:

The Python condition checks that the category total for gross salary is greater than zero. The computation expression references the tax bracket thresholds and rates for the specific country, applying marginal rates to each bracket. The payslip object provides access to all previous rule results and employee contract data.

Step 3: Configure Statutory Reports

Create report templates using Odoo's QWeb reporting engine for country-specific reports like tax certificates, social security declarations, and year-end summaries.

Multi-Country Payroll Operations

Organizations operating across multiple countries can run all payroll from a single Odoo instance:

  1. Create salary structures for each country
  2. Assign structures to employee contracts based on their work location
  3. Configure accounting with separate journal entries per country for proper GL posting
  4. Set pay periods per country (monthly is standard in most countries; bi-weekly in the US)
  5. Generate country-specific reports using localized report templates

The multi-company feature in Odoo supports separate legal entities per country while maintaining consolidated reporting at the group level.

Payroll Integration with Accounting

Every payslip batch generates journal entries that post to the general ledger. The account mapping is configured per salary rule:

  • Salary expense accounts: Debit entries for gross salary, employer contributions
  • Liability accounts: Credit entries for tax withholding, social security payable
  • Bank account: Credit entry for net salary payment

Navigate to Payroll > Configuration > Salary Rules and edit each rule to set the debit and credit accounts. The journal entry is created when the payslip batch is validated and can be reviewed before posting.

ECOSIRE Payroll Services

Configuring payroll correctly requires deep knowledge of both Odoo's technical architecture and local labor law. ECOSIRE's Odoo implementation services include payroll specialists who configure country-specific localizations, build custom salary rules, and validate calculations against manual payroll records. Our support services include annual updates for tax bracket changes and regulatory modifications.

How often do Odoo payroll localizations get updated for tax changes?

Official Odoo localizations are updated at least annually to reflect new tax brackets, social security ceilings, and regulatory changes. For Enterprise customers, these updates are included in the maintenance subscription and typically arrive before the new fiscal year begins. Custom localizations must be updated manually.

Can Odoo handle payroll for both salaried and hourly employees?

Yes. Create separate salary structures for salaried and hourly employees. Hourly structures reference the attendance module or timesheet entries to calculate worked hours, then apply hourly rates with overtime multipliers based on local labor law requirements.

Is Odoo payroll certified for regulatory compliance in all supported countries?

Certification varies by country. Some localizations (France, Belgium, South Africa) have been certified or validated by local authorities. Others are based on the published tax rules and rates but may not carry formal certification. Always verify payroll calculations against independent sources during initial setup.

E

Written by

ECOSIRE Research and Development Team

Building enterprise-grade digital products at ECOSIRE. Sharing insights on Odoo integrations, e-commerce automation, and AI-powered business solutions.

Chat on WhatsApp