In this article
- The 2026 Zambia statutory position to configure
- PAYE bands: use monthly chargeable pay
- NAPSA: calculate precisely, then apply the ceiling
- NHIMA: apply it to basic salary, not gross pay
- SDL: assess the exemption before creating the liability
- Configure the salary rules in Odoo Payroll
- Step 1: define the salary inputs and bases
- Step 2: set rule sequencing before deductions
- Step 3: create the progressive PAYE computation
- Step 4: cap NAPSA without rounding the base
- Step 5: map liabilities and employer expenses separately
- Worked payroll configuration examples
- Illustrative example: a Lusaka distributor with variable allowances
- Illustrative example: a Ndola manufacturer above the NAPSA ceiling
- Payroll controls before each statutory due date
- Official sources used for the 2026 configuration
- Frequently Asked Questions
- Does NAPSA reduce PAYE chargeable income in Zambia?
- What is the maximum NAPSA contribution for 2026?
- Is SDL deducted from an employee’s salary?
- Can we use one payroll base for PAYE, NAPSA, NHIMA and SDL?
A payroll manager closes the March payroll, only to find NAPSA has been calculated on earnings above the statutory ceiling. The employee payslip looks plausible, but the employer liability is wrong and the correction now affects journals, remittances and management reporting.
That is where Zambia payroll deductions need more than a payslip template. They need controlled salary rules, clear statutory bases and an approval process that can stand up to review. For organisations operating across the region, Odoo payroll (Zimbabwe, Zambia, South Africa) should give finance teams one payroll control model while retaining country-specific tax localisation.
As of 10 October 2026, the Zambia configuration must account for 2026 PAYE bands, the revised NAPSA ceiling, NHIMA’s basic-salary basis and the Skills Development Levy, or SDL. We recommend configuring each item separately, then testing it against worked payslips before the first live run.
The 2026 Zambia statutory position to configure
The first control is to separate employee deductions from employer costs. PAYE, the employee NAPSA contribution and the employee NHIMA contribution reduce net pay. Employer NAPSA, employer NHIMA and SDL are company costs. They must not be deducted from an employee’s net pay.
| Statutory item | 2026 rate or band | Payroll basis | Odoo treatment | | PAYE | 0% to 37% progressive bands | Monthly chargeable pay | Employee deduction and tax liability | | NAPSA, employee | 5% | Pensionable earnings, capped at K37,236 monthly | Employee deduction | | NAPSA, employer | 5% | Pensionable earnings, capped at K37,236 monthly | Employer cost and liability | | NHIMA, employee | 1% | Basic salary | Employee deduction | | NHIMA, employer | 1% | Basic salary | Employer cost and liability | | SDL | 0.5% | Gross emoluments | Employer cost and liability | This separation matters because a payslip can produce the correct-looking net amount while posting the wrong employer expense. The resulting payroll journals will understate staff costs and create an avoidable reconciliation problem at month end.
PAYE bands: use monthly chargeable pay
The Zambia Revenue Authority, or ZRA, identifies the following monthly PAYE bands as the 2026 tax bands, effective 1 January 2026:
| Monthly chargeable pay | PAYE rate | | K0 to K5,100 | 0% | | K5,100.01 to K7,100 | 20% | | K7,100.01 to K9,200 | 30% | | K9,200.01 and above | 37% | Configure these as progressive salary rules. A payroll system should not apply 37% to the whole salary once an employee crosses K9,200. Each slice of chargeable income is taxed at its applicable band, which is why the rule structure and sequence need review.
Do not reduce PAYE chargeable income by NAPSA or other allowable pension contributions. ZRA states that this has not been necessary since 1 January 2018. Taxable cash allowances and employer-paid personal liabilities should also enter the PAYE base where applicable. This is a frequent configuration error when a team carries forward an old spreadsheet method into Odoo.
NAPSA: calculate precisely, then apply the ceiling
For 2026, NAPSA is 5% from the employee and 5% from the employer. Monthly pensionable earnings are capped at K37,236, giving a maximum employee contribution of K1,861.80 and a maximum combined contribution of K3,723.60. The revised ceiling took effect on 1 January 2026.
Do not round earnings before applying the 5% rate. Calculate the contribution on the relevant pensionable earnings, subject to the ceiling, then apply the payroll rounding policy at the final result where required. Rounding early can create small differences per employee that become material across a large monthly payroll.
NHIMA: apply it to basic salary, not gross pay
NHIMA is 1% from the employee and 1% from the employer, calculated on basic salary. This is not the same as gross emoluments where an employee receives allowances, overtime or taxable benefits.
Employers must register employees within 30 days of contract commencement. Monthly premiums are remitted through eNHIMA by the 10th. Late non-remittance attracts a penalty of 10% of the outstanding monthly total, capped at K60,000. The system should therefore report NHIMA liabilities separately from PAYE and NAPSA, so the payroll team can reconcile the remittance file before the due date.
SDL: assess the exemption before creating the liability
SDL is an employer-only levy of 0.5% of gross emoluments. It does not belong on an employee deduction line. Employers with annual turnover below K800,000 are exempt, along with listed public-service, public-benefit organisation, income-tax-exempt and diplomatic categories.
The monthly SDL return and payment are due through ZRA by the 10th of the following month. Late filing carries a penalty of 1,000 penalty units per month or part thereof. Late payment attracts 5% of the unpaid levy, plus interest at the Bank of Zambia discount rate plus 2%.
If turnover is below K800,000, do not configure an automatic SDL expense without first documenting the exemption decision. If turnover is above that threshold, do not omit SDL simply because it does not appear on the employee payslip.
Configure the salary rules in Odoo Payroll
Odoo’s salary rule framework allows payroll teams to define categories, conditions, computations and rule sequencing. Official Odoo 19.0 payroll documentation confirms that rule order matters because later rules can depend on gross pay, statutory bases and prior deductions.
We recommend six distinct statutory salary rules, rather than one combined deductions rule:
1. PAYE employee deduction.
2. NAPSA employee deduction.
3. NAPSA employer contribution.
4. NHIMA employee deduction.
5. NHIMA employer contribution.
6. SDL employer levy.
Create matching salary rule categories and separate general ledger mappings. This produces an auditable trail from payslip to payroll journal to statutory liability account.
Step 1: define the salary inputs and bases
Start by identifying the payroll components your business actually pays. Typical inputs may include basic salary, housing allowance, transport allowance, overtime and taxable benefits. The payroll team must determine which inputs form part of PAYE chargeable pay, pensionable earnings, basic salary and gross emoluments.
Create bases that reflect the legal distinction:
● PAYE chargeable pay should include taxable cash allowances and employer-paid personal liabilities where applicable.
● NAPSA pensionable earnings should be capped at K37,236 per month before calculating the 5% employee and 5% employer amounts.
● NHIMA basic salary should use basic salary only.
● SDL gross emoluments should use the gross-emoluments definition adopted for the levy.
One base cannot safely serve all four statutory items. NHIMA is the clearest example: using gross pay rather than basic salary overstates both the employee deduction and employer contribution.
Step 2: set rule sequencing before deductions
Sequence gross earnings and statutory bases before the statutory rules. Then place employee deductions after the relevant gross and base calculations. Employer costs should calculate after the same bases but remain outside employee net pay.
A practical sequence is:
7. Basic salary and earnings inputs.
8. Gross earnings and statutory calculation bases.
9. PAYE calculation.
10. Employee NAPSA and NHIMA deductions.
11. Net salary calculation.
12. Employer NAPSA, employer NHIMA and SDL costs.
The precise numbering can differ by payroll design. What cannot differ is the dependency: an employee deduction cannot reliably reference a base that has not yet been calculated.
Step 3: create the progressive PAYE computation
Configure PAYE as a progressive computation using the four 2026 bands. Build the tax formula so that it calculates only the portion of chargeable pay within each range.
Keep the band thresholds as effective-dated configuration values. The 2026 bands apply from 1 January 2026, and annual tax changes should be handled through a controlled update, not by editing historical payslip logic. This protects year-to-date reporting and gives auditors a clear record of when the rule changed.
Before go-live, run the numbers through a PAYE calculator or a separately controlled spreadsheet test. The independent check is useful because a formula can be syntactically valid in Odoo while still applying a tax band incorrectly.
Step 4: cap NAPSA without rounding the base
The NAPSA rule should use the lower of pensionable earnings or K37,236. Multiply that amount by 5% for the employee rule and 5% for the employer rule.
For an employee with pensionable earnings of K40,000, both contributions should calculate on K37,236. The employee contribution is K1,861.80, and the employer contribution is K1,861.80. The combined amount is K3,723.60.
This cap is a control point worth testing every month. A configuration that works for employees below the ceiling can still overstate liabilities for senior staff and sales teams with variable earnings.
Step 5: map liabilities and employer expenses separately
Map PAYE, employee NAPSA and employee NHIMA to statutory liability accounts. Map employer NAPSA, employer NHIMA and SDL to payroll expense accounts and their respective liability accounts.
Do not net employer contributions against employee deductions in one account. Finance needs separate visibility to reconcile remittances, investigate variances and produce auditable month-end schedules across multiple entities.
Odoo should not be assumed to contain a current Zambia payroll localisation with all rates, bases and ceilings preloaded. Validate salary rules, bases, ceilings, payslip output and accounting mappings before live payroll.
Worked payroll configuration examples
Illustrative example: a Lusaka distributor with variable allowances
Take a Lusaka distribution business with 48 staff, including drivers who receive basic pay plus transport and overtime allowances. Its finance manager initially used gross pay for both NHIMA and NAPSA because the payroll sheet had one consolidated earnings column. For an employee on K12,000 basic salary and K3,000 taxable allowances, NHIMA should be based on K12,000, not K15,000.
The revised configuration creates a basic-salary base for NHIMA, a pensionable-earnings base for NAPSA and a separate PAYE chargeable-pay base. At 1% each, the employee and employer NHIMA amounts are K120 each, rather than K150 each. The K60 monthly overstatement across both sides looks small for one person, but it becomes a recurring reconciliation issue across a payroll of this size.
The team should also test whether each allowance belongs in pensionable earnings before adding it to the NAPSA base. The step often skipped is documenting that payroll interpretation and having finance approve it before the rule reaches production.
Illustrative example: a Ndola manufacturer above the NAPSA ceiling
Take a manufacturer with 140 employees and a US-dollar-linked senior management package paid in kwacha. One executive has monthly pensionable earnings of K45,000. If the payroll rule applies 5% to the entire K45,000, it calculates K2,250 for the employee and K2,250 for the employer, overstating each side by K388.20.
With the 2026 ceiling, the calculation must stop at K37,236, producing K1,861.80 on each side. The payroll manager should test employees below the ceiling, exactly at the ceiling and above the ceiling. Those three tests expose the common error of writing a rule that works only in the middle of the pay range.
If the manufacturer’s annual turnover exceeds K800,000, it should also configure SDL at 0.5% of gross emoluments as a separate employer cost. The controller should not wait for an employee complaint to find the omission, because SDL will not reduce anyone’s net pay.
Payroll controls before each statutory due date
A good configuration is not enough if monthly changes bypass review. Use a short control process before payroll is posted and remitted.
13. Confirm effective dates. Check that the 2026 PAYE bands and K37,236 NAPSA ceiling apply to the payroll period. This prevents an old rate table from continuing after a statutory change.
14. Review employee master data. Confirm basic salary, contract commencement date and taxable earnings inputs. NHIMA registration is required within 30 days of contract commencement, so HR data and payroll data must agree.
15. Run exception reports. Review employees at or above the NAPSA ceiling, employees with zero statutory deductions and large movements in allowances. Exceptions find setup mistakes more reliably than reviewing every payslip line by line.
16. Reconcile statutory liabilities. Compare payroll rule totals to the general ledger liability accounts before payment. This is the point at which an employer cost wrongly configured as a deduction becomes visible.
17. Approve remittances before the 10th. NHIMA premiums and SDL returns and payments have monthly deadlines on the 10th. A shared payroll calendar should assign ownership for preparation, review and payment release.
For multi-entity groups, apply the same control design across entities but keep each legal entity’s payroll journal, tax registrations and statutory liabilities distinct. Unified reporting is valuable, but it must not blur legal obligations.
Official sources used for the 2026 configuration
The PAYE bands and treatment of pension contributions follow ZRA Tax Information, current as of October 2026. NAPSA rates and the K37,236 ceiling follow the 2026 statutory instrument effective 1 January 2026. NHIMA rates, registration timing, eNHIMA remittance timing and penalties follow NHIMA guidance. SDL rates, exemption threshold, due date and penalties follow ZRA’s 2025 Skills Development Levy guidance. Salary-rule design follows official Odoo 19.0 Payroll documentation.
Keep copies of the approved statutory source, the effective-dated rule change and the payroll test results with the implementation record. That evidence is more useful to a CFO or auditor than a screenshot showing that a payslip happened to calculate once.
Frequently Asked Questions
Does NAPSA reduce PAYE chargeable income in Zambia?
No. ZRA states that PAYE chargeable income should not be reduced by NAPSA or other allowable pension contributions, a position in effect since 1 January 2018. Configure PAYE from its own chargeable-pay base rather than from net salary after NAPSA.
What is the maximum NAPSA contribution for 2026?
The 2026 monthly pensionable earnings ceiling is K37,236. At 5% each, the maximum employee contribution is K1,861.80 and the maximum employer contribution is K1,861.80, making K3,723.60 combined.
Is SDL deducted from an employee’s salary?
No. SDL is an employer-only cost of 0.5% of gross emoluments. Employers with annual turnover below K800,000 are exempt, subject to the listed category exemptions and the business’s circumstances.
Can we use one payroll base for PAYE, NAPSA, NHIMA and SDL?
No. PAYE uses monthly chargeable pay, NAPSA uses capped pensionable earnings, NHIMA uses basic salary and SDL uses gross emoluments. Separate bases make the logic visible and reduce the risk of over- or under-calculation.
Payroll statutory configuration deserves the same implementation discipline as your finance integration and chart-of-accounts design. Request a Consultation to review your Zambia Odoo Payroll rules, statutory mappings and go-live controls.