Odoo Payroll for Pakistan: Income Tax, EOBI and Social Security Setup
Odoo Payroll for Pakistan enables organisations to manage employee salaries, FBR income tax withholding, Employees' Old-Age Benefits Institution (EOBI) contributions, and provincial social security obligations, including PESSI and SESSI. Accurate payroll configuration requires employee contracts, salary structures, statutory deduction rules, contribution rates, and payslip calculations aligned with applicable Pakistani regulations.
This guide from SK Technology, led by CEO Shakil Khan, explains how to configure Pakistan payroll localisation in Odoo, apply income tax slabs, calculate employer and employee EOBI contributions, set up provincial social security salary rules, and validate gross-to-net salary calculations. It also covers payroll accounting, statutory compliance checks, and common configuration errors to help Odoo implementers, HR professionals, and finance teams understand the complete payroll setup process.
How Does Odoo Payroll Work in Pakistan?
Odoo Payroll in Pakistan processes employee salaries through configured contracts, salary structures, work entries, and statutory deduction rules. It calculates gross pay, Federal Board of Revenue (FBR) income tax withholding, Employees' Old-Age Benefits Institution (EOBI) contributions, and applicable provincial social security contributions, including PESSI and SESSI. These calculations generate employee payslips showing earnings, deductions, and net payable salary. Accuracy depends on the installed payroll localisation and current Pakistani tax and labour regulations.
Pakistan Payroll Localization and Required Modules
Pakistan payroll localisation adapts Odoo's salary calculation framework to country-specific taxation, employee benefits, and statutory contributions. Odoo 19 lists Pakistan among its supported payroll localisations, although individual tax rules and social security calculations must be verified against applicable regulations.
The core configuration involves:
Payroll: Salary structures, salary rules, payslips, and payroll processing.
Employees: Employee profiles and employment information.
Contracts: Salary amounts, working schedules, and employment conditions.
Attendances and Time Off: Worked time, absences, and leave-related payroll inputs when applicable.
Accounting Integration: Salary expenses, employee deductions, and statutory liabilities where supported.
Configure the appropriate localisation through Payroll → Configuration → Settings, then verify the salary rules and contribution parameters before processing payroll.
Employee Contracts, Salary Structures and Payslips
Odoo uses employee contracts to establish wages, working schedules, and compensation conditions. Salary structures organise calculation rules for basic pay, allowances, taxable income, statutory deductions, and employer contributions.
During payroll processing, Odoo evaluates applicable salary rules and work entries to calculate the employee's payslip. A Pakistan payroll structure should distinguish:
Gross Salary: Basic salary and applicable allowances.
Income Tax: FBR salary withholding calculated under the relevant tax year.
EOBI: Applicable employee contributions and separately recorded employer contributions.
Social Security: Provincial employer contributions determined by employee eligibility and statutory requirements.
Net Salary: Employee earnings after applicable deductions.
The validated payslip records salary components and can generate payroll accounting entries when the required accounting integration is configured.
Community vs Enterprise Payroll Availability
Odoo Enterprise includes the official payroll application, supporting salary structures, work entries, payslip processing, and payroll localisation.
Odoo Community does not provide the same complete official payroll functionality by default. Payroll processing generally requires compatible third-party modules or custom development to implement salary calculations, income tax withholding, EOBI deductions, and provincial social security rules.
For both editions, Pakistan payroll compliance is not guaranteed by module installation alone. Salary rules, statutory contribution rates, tax-year parameters, and accounting mappings must be validated before processing employee payroll.
How to Configure Income Tax in Odoo Payroll Pakistan
Income tax configuration in Odoo Payroll Pakistan involves applying Federal Board of Revenue (FBR) salary tax slabs, calculating annual taxable income, and deducting withholding tax from employee payslips. Under Section 149 of the Income Tax Ordinance, 2001, employers must deduct salary tax using the employee's estimated taxable income and applicable tax rates. Odoo processes these deductions through configured salary rules and tax parameters.
FBR Salary Tax Slabs and
Section 149
The FBR salary income tax slabs determine the tax payable on an employee's annual taxable salary. For Tax Year 2027 (July 1, 2026–June 30, 2027), the published salary tax rates are progressive, with annual taxable income up to PKR 600,000 exempt from income tax and higher income bands taxed at applicable rates ranging from 1% to 35%.
Under Section 149, employers calculate salary withholding based on estimated annual taxable income, accounting for applicable adjustments and previous deductions. Odoo salary rules must use the correct tax-year slabs, thresholds, and statutory calculation methods rather than a single fixed tax percentage.
Annual Taxable Salary and Monthly Withholding Calculations
Odoo calculates monthly salary tax deductions using the employee's estimated annual taxable salary, applicable allowances, taxable benefits, and relevant tax adjustments.
For example, an employee earning PKR 100,000 in taxable salary per month, consistently throughout Tax Year 2027, has:
Annual taxable salary: PKR 1,200,000
Annual income tax: (1,200,000 − 600,000) × 1% = PKR 6,000
Monthly withholding tax: PKR 6,000 ÷ 12 = PKR 500
This simplified calculation assumes unchanged monthly taxable income and no other tax adjustments. Actual withholding must account for salary revisions, bonuses, previous tax deductions, and remaining payroll periods.
Configuring Income Tax Salary Rules and Parameters
In Odoo 19, navigate to Payroll → Configuration → Rules to inspect the existing Pakistan income tax rule or create one if the required rule is unavailable.
Configure the following elements:
Salary Rule: Income Tax Deduction, with a unique code such as PK_INCOME_TAX.
Salary Structure: Assign the rule to the appropriate Pakistan employee payroll structure.
Tax Parameters: Define FBR income thresholds, progressive rates, and effective dates through applicable rule parameters.
Calculation Logic: Apply the estimated annual taxable salary, statutory tax formula, and withholding adjustments.
Pay slip Deduction: Ensure the calculated income tax reduces employee net salary and is mapped to the correct tax payable account where payroll accounting is enabled.
Odoo supports Python Code, Percentage, and Fixed Amount salary-rule computations. Progressive salary taxation generally requires appropriate conditional calculation logic and effective-dated parameters, unless the installed Pakistan localization already supplies them.
Testing Income Tax Deductions on Payslips
To validate the Odoo income tax withholding calculation, open Payroll → Payslips → Payslips, select an employee with a valid payroll contract, and generate a test payslip.
Check the following:
Taxable Salary: Confirm that taxable allowances and benefits are included correctly.
FBR Tax Slab: Verify that the calculation applies the correct tax-year threshold and progressive rate.
Monthly Deduction: Compare the Odoo withholding amount with an independently calculated tax figure.
Net Salary: Confirm income tax reduces take-home pay without affecting employer-only contributions.
Tax Adjustments: Test salary increases, bonuses, prior withholding, and applicable tax-year changes.
Use Compute Sheet to recalculate the payslip after correcting payroll inputs. Validate all deductions before processing the payroll or posting accounting entries.
How to Set Up EOBI Contributions in Odoo Payroll
EOBI configuration in Odoo Payroll Pakistan involves defining employee eligibility, statutory contribution rates, minimum wage-based calculations, and employer liabilities. The Employees' Old-Age Benefits Institution (EOBI) administers retirement and related benefits under the Employees' Old-Age Benefits Act, 1976. Odoo calculates EOBI contributions through salary rules, rule parameters, and employee payroll records.
EOBI Eligibility and Contribution Requirements
Under Pakistan's EOBI regulations, establishments with 10 or more employees are generally required to register with EOBI. Eligible employees must be covered under the institution's contributory social insurance scheme.
Payroll configuration should identify each employee's EOBI eligibility, insurance registration details, contribution period, and applicable statutory minimum wage. Employers must verify registration obligations, employee coverage, and current EOBI notifications before processing contributions.
Employer vs Employee EOBI Contributions
EOBI contributions consist of separate employer and employee shares, calculated using the applicable statutory minimum wage rather than automatically using the employee's actual gross salary.
Contribution | Statutory rate |
Employer EOBI contribution | 5% of applicable minimum wage |
Employee EOBI contribution | 1% of applicable minimum wage |
Total EOBI contribution | 6% of applicable minimum wage |
For example, using an illustrative contribution base of PKR 40,000, the employer contributes PKR 2,000, while PKR 400 is deducted from the employee's salary. The combined monthly contribution is PKR 2,400. The example base must not be treated as a verified current statutory minimum wage.
Configuring EOBI Salary Rules and Contribution Bases
In Odoo 19, navigate to Payroll → Configuration → Rules and review existing Pakistan EOBI rules before creating new ones.
Configure the following:
Employee EOBI Rule: Create EOBI_EMPLOYEE with a 1% deduction from the applicable minimum wage contribution base.
Employer EOBI Rule: Create EOBI_EMPLOYER with a 5% employer contribution, excluded from employee net salary.
Contribution Base: Define an effective-dated minimum wage parameter under Payroll → Configuration → Rule Parameters.
Eligibility Conditions: Apply calculations only to employees covered by EOBI.
Accounting Mapping: Record employee deductions and employer contributions against the appropriate EOBI payable liability accounts.
Use separate salary rules to distinguish employee deductions from employer payroll costs and prevent incorrect net salary calculations.
Validating EOBI Deductions and Employer Costs
Generate a test payslip in Payroll → Payslips and verify the EOBI calculations against the applicable statutory contribution base.
Employee Deduction: Confirm the 1% EOBI contribution reduces net salary.
Employer Contribution: Verify the 5% contribution appears as an employer cost without reducing employee take-home pay.
Contribution Base: Check that calculations use the correct minimum wage parameter.
Employee Eligibility: Ensure EOBI rules apply only to covered employees.
Payroll Accounting: Reconcile employee deductions and employer contributions with EOBI payable balances.
Recalculate the payslip after correcting contribution rates, eligibility settings, or salary rule parameters. Validate the combined EOBI liability before payroll posting and statutory remittance.
How to Configure Social Security Contributions in Odoo
Social security configuration in Odoo Payroll Pakistan involves calculating employer contributions under provincial employee social security laws. Punjab Employees Social Security Institution (PESSI) and Sindh Employees Social Security Institution (SESSI) administer social protection schemes covering eligible workers. Odoo uses salary rules, contribution parameters, and payroll accounting to calculate statutory liabilities without incorrectly reducing employee net salary.
PESSI and SESSI: Provincial Social Security Requirements
PESSI administers employee social security in Punjab under the Provincial Employees Social Security Ordinance, 1965, while SESSI operates under the Sindh Employees Social Security Act, 2016.
Both institutions provide eligible workers with medical and social security benefits funded primarily through employer contributions. Odoo payroll configuration must distinguish Punjab and Sindh requirements because employee coverage, wage thresholds, contribution bases, and statutory notifications may differ.
Contribution Rates, Wage Ceilings and Employee Eligibility
Provincial social security contributions are generally calculated at 6% of the applicable wage base, subject to the relevant institution's rules.
Institution | Employer contribution | Calculation requirements |
PESSI (Punjab) | Generally 6% | Applicable minimum wage, notified limits, employee eligibility |
SESSI (Sindh) | 6% | Applicable wage base, statutory wage ceiling, employee coverage |
SESSI's published contribution guidance references a PKR 37,000 monthly coverage ceiling alongside newer minimum wage information. Because wage limits and contribution bases may change through notifications, the applicable calculation must be verified before configuring payroll.
Employee eligibility depends on establishment coverage, employment classification, statutory wage limits, and provincial regulations.
Creating Provincial Social Security Salary Rules
In Odoo 19, navigate to Payroll → Configuration → Rules and review the existing Pakistan localization before creating additional contribution rules.
Configure:
PESSI Salary Rule: Use a code such as PESSI_EMPLOYER for eligible Punjab employees.
SESSI Salary Rule: Use SESSI_EMPLOYER for eligible Sindh employees.
Contribution Parameters: Define the verified contribution percentage, applicable wage base, and effective dates.
Eligibility Conditions: Apply the relevant provincial rule according to employee coverage and establishment registration.
Employer Cost: Enables contributions to employer cost and excludes employer-only contributions from net salary calculations.
Keep PESSI and SESSI rules separate to prevent incorrect provincial contribution calculations.
Recording Employer Contributions in Payroll Accounting
Odoo payroll accounting records provincial social security contributions as employer expenses and statutory liabilities. Configure the appropriate debit and credit accounts on each salary rule.
A typical accounting entry includes:
Debit: Employer Social Security Expense
Credit: PESSI Payable or SESSI Payable
When contributions are remitted, debit the applicable payable account and credit the bank account.
Before posting payroll, verify employee eligibility, contribution amounts, employer costs, and statutory payable balances. Reconcile recorded contributions against the relevant provincial institution's contribution statements to maintain accurate payroll accounting.
How to Calculate and Validate a Pakistan Payroll Payslip in Odoo
Pakistan payroll payslip calculation in Odoo combines employee earnings, Federal Board of Revenue (FBR) income tax withholding, EOBI deductions, and applicable provincial social security contributions. Odoo uses employee contracts, salary structures, work entries, and salary rules to calculate gross salary, statutory deductions, net salary, and employer payroll costs.
Gross Salary, Taxable Salary and Statutory Deductions
An Odoo payroll payslip separates employee compensation into three calculation components:
Gross Salary: Basic salary, allowances, bonuses, and other earnings before deductions.
Taxable Salary: Earnings subject to FBR income tax under applicable exemptions and tax rules.
Statutory Deductions: Employee income tax withholding and the employee's applicable EOBI contribution.
Employer EOBI and PESSI/SESSI contributions are recorded separately as payroll expenses and liabilities rather than deducted from employee take-home salary.
Net Salary Calculation with an Example
The standard net salary formula is:
Net Salary = Gross Salary − Income Tax − Employee EOBI − Other Applicable Employee Deductions
Consider an employee with a monthly taxable and gross salary of PKR 100,000 during Tax Year 2027.
Payroll component | Amount (PKR) |
Gross monthly salary | 100,000 |
Annual taxable salary | 1,200,000 |
Monthly FBR income tax | 500 |
Employee EOBI (1% of illustrative PKR 40,000 contribution base) | 400 |
Net monthly salary | 99,100 |
Employer EOBI (5% of illustrative contribution base) | 2,000 |
The income tax calculation assumes unchanged annual earnings and no tax adjustments. The EOBI base is illustrative and must be replaced with the verified applicable statutory base. Provincial social security employer contributions, where applicable, increase employer payroll costs but do not reduce this net salary.
Common Payroll Configuration Errors
Incorrect Odoo Pakistan payroll calculations commonly result from:
Outdated FBR Tax Slabs: Applying income tax rates from an incorrect tax year.
Incorrect EOBI Contribution Base: Calculating contributions on gross salary instead of the applicable minimum wage.
Missing Salary Rules: Omitting tax, EOBI, or provincial social security calculations.
Incorrect Rule Sequence: Processing deductions before the required earnings or taxable salary values are computed.
Provincial Rule Mismatch: Applying PESSI or SESSI contributions to ineligible employees.
Accounting Misconfiguration: Recording employer contributions as employee deductions or mapping liabilities to incorrect accounts.
Review salary rule conditions, calculation parameters, employee eligibility, and contract details before validating payslips.
Payroll Reconciliation and Statutory Reporting
Odoo payroll reconciliation verifies that payslip calculations, payroll journal entries, employee payments, and statutory liabilities match.
Navigate to Payroll → Payslips → Payslips, open the relevant payslip, and select Compute Sheet to review salary calculations before validation.
Reconcile the following records:
FBR Income Tax: Match salary withholding totals with payroll tax records and applicable statutory filings.
EOBI Contributions: Reconcile employee deductions and employer contributions against EOBI payable balances.
PESSI/SESSI Contributions: Verify provincial employer liabilities against contribution statements.
Net Salary Payments: Match employee payslips with bank payments and payroll journal entries.
After verification, validate the payslip and post the corresponding accounting entries. Statutory returns and payment challans must follow the respective authority's requirements; Odoo payslip generation alone does not constitute statutory filing.
FAQs
1. How does Odoo Payroll calculate income tax in Pakistan?
Odoo Payroll calculates employee income tax using FBR salary tax slabs, estimated annual taxable income, and Section 149 withholding rules. Configured salary rules deduct the applicable monthly tax from employee payslips.
2. How do you configure EOBI contributions in Odoo?
Configure separate salary rules for the 5% employer contribution and 1% employee contribution, calculated using the applicable statutory minimum wage base. Assign these rules to eligible employees.
3. Does Odoo Payroll support PESSI and SESSI contributions?
Odoo can calculate PESSI and SESSI contributions through configured salary rules. Provincial contribution rates, wage limits, and employee eligibility must follow applicable regulations.
4. Is Odoo Payroll available in Community Edition?
Odoo Enterprise includes the official Payroll application. Odoo Community generally requires compatible third-party modules or custom development for payroll processing and Pakistani statutory deductions.
5. How is net salary calculated in Odoo Payroll Pakistan?
Net salary equals gross salary minus applicable employee deductions, including FBR income tax and employee EOBI contributions. Employer-only EOBI and provincial social security contributions do not reduce net salary.
6. Why is Odoo calculating incorrect payroll tax or EOBI deductions?
Incorrect calculations may result from outdated FBR tax slabs, incorrect EOBI contribution bases, missing salary rules, employee eligibility errors, or improperly configured payroll parameters.
7. Can Odoo generate payroll accounting entries for statutory contributions?
Yes. With payroll accounting integration, Odoo can record salary expenses, income tax liabilities, EOBI contributions, and provincial social security payables through configured salary rules and accounting mappings.