| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Payroll (hr_payroll)
• Invoicing (account) • Discuss (mail) • Notes (note) • Employee Contracts (hr_contract) • Employees (hr) • Time Off (hr_holidays) • Calendar (calendar) |
| Lines of code | 1695 |
| Technical Name |
eh_l10n_ie_hr_payroll |
| License | OPL-1 |
| Website | https://www.erpheritage.com.au |
| Versions | 16.0 17.0 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Payroll (hr_payroll)
• Invoicing (account) • Discuss (mail) • Notes (note) • Employee Contracts (hr_contract) • Employees (hr) • Time Off (hr_holidays) • Calendar (calendar) |
| Lines of code | 1695 |
| Technical Name |
eh_l10n_ie_hr_payroll |
| License | OPL-1 |
| Website | https://www.erpheritage.com.au |
| Versions | 16.0 17.0 18.0 19.0 |
Ireland Payroll for Odoo
PAYE, USC and PRSI computed correctly on the Odoo Payroll engine, with pension, Auto-Enrolment and Benefit in Kind, and every Revenue rate kept as dated data.
Why this module
Ireland Payroll for Odoo
Correct by construction
Irish payroll is a three base model. A pension contribution lowers the income tax base only, while USC and PRSI stay on the full gross. The engine keeps the three bases separate and a test asserts it, so the most common Irish payroll error simply cannot occur.
Rates are dated, not hard coded
Every statutory figure is a date-versioned parameter: the 1 October PRSI steps, the 2025 and 2026 USC bands, the cut off and credits, the BIK matrices and the Auto-Enrolment phases. A Budget change is a dated row, checked against revenue.ie and the SW14 guides.
Tested to the cent, on four versions
Golden master tests assert exact cent values for cumulative refunds, the Week 53 case, emergency basis and the PRSI threshold. The same suite runs on Odoo 16, 17, 18 and 19. The PPS number is encrypted at rest.
Day in the life
A monthly Irish pay run on a EUR 4,000 salary.
An employee on EUR 4,000 a month, cumulative basis, a EUR 44,000 cut off and EUR 4,000 of credits. The structure computes gross, then PAYE of 533.33, USC of 81.07 and employee PRSI of 168.00, for a net of 3,217.60. Employer PRSI of 450.00 sits on the employer side. Add a pension contribution and only the income tax falls, while USC and PRSI stay on the full gross, exactly as Revenue requires. Every figure is reproduced by the test suite.
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.
On the cumulative basis a drop in pay can owe the employee a refund, so the period tax is negative. The engine returns it as a refund rather than flooring at zero, which is where a cheaper module quietly keeps the money.
Employer PRSI is a step, not a band. One cent over the weekly threshold moves the higher rate onto the whole pay, not just the excess. The boundary at 527 and 552 is unit tested.
PRSI rates step on 1 October, in the middle of the tax year. Rates resolve by the pay date, not the calendar year, so an October run uses the new rate and a September run the old one.
When a weekly pay date lands on 31 December a 53rd insurable week appears. That period runs on a Week 1 basis with an extra period of credit, so the employee is not under credited.
A new starter with no RPN runs on the emergency basis, with the four week cut offs when the PPS number is known and all income at the higher rate when it is not, plus emergency USC.
The PPS number is encrypted in the database with a separate searchable index, and wiped along with the keys when a database is neutralised for testing.
What is inside
Built to do the job, end to end.
- PAYE on three bases. Cumulative, Week 1 and emergency, with the cut off, credits and basis taken from the RPN.
- USC. Banded and cumulative, with exempt and reduced status and the emergency flat rate.
- PRSI. Employee and employer Class A with the tapered credit and the employer step, plus Class S and J.
- Pension and Auto-Enrolment. Occupational and PRSA relief on the income tax base only, and My Future Fund date gated to 2026 with the qualifying scheme suppression and the earnings cap.
- Benefit in Kind and LPT. Company car and van by CO2 and mileage, and Local Property Tax spread at source from the RPN.
- RPN, structures and report. An RPN import wizard, regular and termination structures, dashboard warnings and a grouped payslip report.
Honest about the edges
What this does not do, so nothing surprises you.
- It requires Odoo Enterprise Payroll. It computes payroll, not the general ledger; the accounting companion posts the entries.
- Public sector ASC and PRD, PRSI classes other than A, S and J, and share based remuneration are out of scope.
- Maternity, paternity and parent's benefit are paid by the State, so those leaves are markers in payroll rather than paid lines; an employer top up is an input.
- Rates are seeded for 2025 and 2026. A later year is a dated row you add when Revenue publishes it.
- The pension relief age ladder and the attachment of earnings priority should be confirmed against current Revenue guidance for your case.
Ireland payroll Odoo, Irish payroll localisation, PAYE income tax, USC Universal Social Charge, PRSI Class A, tapered credit, emergency tax, cumulative basis, Week 1 month 1, standard rate cut off point, tax credits, Auto-Enrolment, My Future Fund, Benefit in Kind company car, Local Property Tax, RPN, Revenue Payroll Notification, PAYE Modernisation, Odoo Enterprise payroll
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module