Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Employees
  3. EH HR Payroll - United Kingdom v 17.0
  4. Sales Conditions FAQ

EH HR Payroll - United Kingdom

by ERP Heritage https://www.erpheritage.com.au/
Odoo
v 17.0 Third Party 11
Download for v 17.0 Deploy on Odoo.sh
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Employees (hr)
• Discuss (mail)
Community Apps Dependencies Show
• EH HR Payroll
• EH HR Compatibility
• EH HR Platform Core
• EH HR Workflow Engine
Lines of code 2506
Technical Name eh_hr_payroll_uk
LicenseLGPL-3
Websitehttps://www.erpheritage.com.au/
Versions 16.0 17.0 18.0 19.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Employees (hr)
• Discuss (mail)
Community Apps Dependencies Show
• EH HR Payroll
• EH HR Compatibility
• EH HR Platform Core
• EH HR Workflow Engine
Lines of code 2506
Technical Name eh_hr_payroll_uk
LicenseLGPL-3
Websitehttps://www.erpheritage.com.au/
Versions 16.0 17.0 18.0 19.0
ERP Heritage · HR Platform
UK PAYE and National Insurance for Odoo 17

UK Payroll: PAYE and NI

A ready UK salary structure that runs PAYE on a personal allowance and progressive tax bands, plus per-period employee and employer National Insurance by category letter, on the EH payroll engine.

Free · LGPL-3Odoo 17 CommunityPAYE personal allowance and bandsv1.0.0
PAYE on personal allowance plus 20/40/45 bands
Employee and employer NI per period
NI category letters A B C H M
Thresholds scaled to the pay period
Tax bands held as editable data

Why this module

UK Payroll: PAYE and NI

Method fixed, rates yours

Stay current without code

The PAYE and NI calculation is fixed in code, but the bands, NI category rates, personal allowance, and annual thresholds are data and company settings. When HMRC revises a figure for the new tax year, you edit a row or a setting, not the engine.

Honest by construction

The category letter does the work

Each worker carries an NI category letter, and that letter selects the employee main rate, the above-UEL rate, and the employer rate. Category C zeroes employee NI, categories H and M zero the employer rate, exactly as HMRC publishes.

Built on the engine

Clean salary-structure wiring

PAYE and both NI sides are exposed to the salary rules as safe helpers through the engine seam, with a seeded United Kingdom Standard structure of basic, gross, PAYE, employee NI, employer NI, and net. No raw recordset reaches a rule.

Day in the life

Run a monthly UK payslip

Set each worker NI category letter, then compute. On a monthly salary of GBP 5,000, PAYE annualises to GBP 60,000, applies the GBP 12,570 allowance, taxes the remainder at 20 and 40 percent, and divides back to GBP 952.67. Category A employee NI lands at GBP 267.55 and employer NI at GBP 687.50, both from per-period thresholds. Net is gross less PAYE and employee NI; employer NI sits on the employer side and does not reduce take-home. Switch the letter to C or M and the slip reflects the zero rates immediately.

Edge cases

The cases most modules quietly ignore.

In the shipped code today, each one a place where a cheaper module silently does the wrong thing.

Below the allowance

When annual gross is at or under the personal allowance, taxable income floors at zero and PAYE returns 0.00 with no negative tax.

Per-period non-cumulative NI

NI thresholds are the annual figures divided by periods per year, computed per period with no intermediate rounding; only the final contribution is rounded to two decimals, matching the HMRC table method.

Above the upper earnings limit

Employee NI applies the main rate between the primary threshold and the upper earnings limit, then the lower above-UEL rate on earnings beyond it, in two slices.

Unknown or empty category letter

The resolver falls back to category A (standard rate) when a worker has no letter or an unrecognised one, so a slip never fails for a missing category.

No category seeded

If the NI category data is absent entirely, the engine falls back to the company-level NI rate fields rather than erroring, as a last resort.

Multi-company thresholds

The personal allowance and the annual NI thresholds are read from the payslip company, so companies on different settings compute on their own figures.

Period length drives annualisation

Periods per year are inferred from the slip date span (weekly, fortnightly, monthly, annual), so PAYE annualises and NI thresholds scale to the actual period.

What is inside

Built to do the job, end to end.

  • Models and data. eh.hr.uk.tax.band holds the PAYE bands with the compute method; eh.hr.ni.category holds the category letters and their three rates with a resolver; res.company carries the personal allowance and the annual NI thresholds plus fallback rates; hr.employee carries the NI category letter.
  • Salary structure and rules. A seeded United Kingdom Standard structure with rules for basic, gross, PAYE, employee NI, employer NI, and net pay, calling the helpers paye_uk, ni_employee, and ni_employer that this module injects into the rule sandbox.
  • Admin views and access. Editable list views and payroll menu items for the UK tax bands and the NI categories, restricted to HR admins, with read and write access control rows for admin, officer, and employee-self groups on both data models.
  • Tests. A post-install test suite asserting real 2025/26 statutory outcomes: the allowance and bands on annual gross, monthly PAYE, employee and employer NI for categories A, C, and M, and that net equals gross less PAYE and employee NI.

Honest about the edges

What this does not do, so nothing surprises you.

  • This is a calculation and salary-structure module, not an HMRC filing tool. It does not submit RTI, FPS, or EPS returns and does not e-file to HMRC.
  • PAYE uses a flat personal allowance, not a parsed tax code. There is no tax-code engine, no Week 1 / Month 1 emergency-code handling, and no cumulative year-to-date PAYE; each period is annualised and divided back.
  • It covers the England, Wales and Northern Ireland income tax bands. Scottish and Welsh band variants are not seeded.
  • National Insurance is the per-period table method for Class 1. The directors' annual or alternative NI method is not implemented.
  • Out of scope: student loan and postgraduate loan deductions, pension auto-enrolment, statutory pay (SSP, SMP, SPP), the employment allowance, salary sacrifice, and P45/P60/P11D documents.
  • The seeded rates are the 2025/26 figures. HMRC revises them each tax year, so confirm every band, rate, threshold, and the allowance against current HMRC guidance before each new year. The module ships the method; keeping the tables current is your responsibility.
  • Requires the eh_hr_payroll engine; it is a localization layer, not a standalone payroll.
Search

UK payroll Odoo 17, PAYE Odoo, National Insurance Odoo, NI category letter, personal allowance payroll, UK income tax bands, employee employer NI, UK salary structure Odoo, per period National Insurance, HMRC rates payroll, Class 1 NI Odoo, UK PAYE calculation, Odoo 17 Community payroll, tax bands 20 40 45, ERP Heritage payroll

ERP Heritage

Production-grade Odoo accounting, built to an engineering bar and documented honestly. Support: info@erpheritage.com.au
Developed by Odoo Implementation UK

v1.0.0 · LGPL-3 · Odoo 17 Community

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with