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 - Malaysia v 17.0
  4. Sales Conditions FAQ

EH HR Payroll - Malaysia

by ERP Heritage https://www.erpheritage.com.au/
Odoo
v 17.0 Third Party 18
Download for v 17.0 Deploy on Odoo.sh
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Versions 16.0 17.0 18.0 19.0
You bought this module and need support? Click here!
Versions 16.0 17.0 18.0 19.0
  • Description
  • Manifest
ERP Heritage · HR Platform
Malaysia statutory payroll for Odoo 17

EH HR Payroll Malaysia

EPF, SOCSO, EIS and PCB computed on the EH salary-rule engine, with editable statutory tables you keep current.

Free · LGPL-3Odoo 17 CommunityEPF wage-bandedv1.0.0
EPF employee 11%
EPF employer 13% / 12%
SOCSO fixed-amount bands
EIS fixed-amount bands
RM6,000 ceiling

Why this module

EH HR Payroll Malaysia

The real statutory shape

EPF is banded, SOCSO and EIS are not percentages

EPF is a percentage of wages with the employer rate stepping at RM5,000 (13% at or below, 12% above; employee 11%). SOCSO and EIS are fixed-amount band tables, not percentages, capped at the RM6,000 ceiling. This module models each one the way it is actually published instead of flattening all four into a single rate.

Yours to keep current

Statutory tables are editable data, not buried constants

The SOCSO and EIS Jadual Caruman bands, the LHDN tax brackets, and the EPF rates and threshold all live in editable records and company settings. When PERKESO or LHDN revise a figure, an HR admin updates the table in the UI; no code change, no redeploy. The lookup and tax methods stay fixed while the seeded numbers stay yours.

On a hardened engine

Computes inside an audited, sandboxed payroll core

Payslips inherit the EH engine: salary rules run in a closed safe_eval sandbox that cannot reach the ORM, every create, write and unlink is written to a sha256 hash-chained audit log, and company scoping is enforced by the platform mixins. The Malaysia layer adds the statutory math through a documented hook rather than forking the engine.

Day in the life

Run a clean Malaysian monthly payslip

Assign the Malaysia Standard structure to an employee and compute a monthly slip. EPF applies the banded employer rate for the wage, SOCSO and EIS read their fixed band amounts from the Jadual Caruman tables, and PCB annualises the wage, deducts the standard individual relief and the capped EPF relief, taxes it across the LHDN brackets, and divides back to the month. Employer EPF posts as a company contribution and does not reduce net; the employee EPF, SOCSO, EIS and PCB do. Every figure traces to a seeded, cited table you can open and verify.

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.

Above the ceiling

A wage over RM6,000 does not scale: the SOCSO and EIS lookups return the top band's fixed amount, never a percentage of the higher wage. Tested at RM10,000 and RM25,000, both yielding the ceiling amounts.

EPF rate step

The employer EPF rate steps down at the threshold: 13% at or below RM5,000 and 12% above it, so a RM5,000 slip and a RM6,000 slip carry different employer percentages. Both points are pinned by tests.

Zero and sub-band wages

A wage of zero or below returns no contribution, and a wage that falls below the first seeded band still resolves through the band lookup rather than erroring.

PCB below the tax-free line

When annualised wage minus the RM9,000 individual relief and the capped RM4,000 EPF relief lands at or below zero chargeable income, PCB is zero rather than negative.

Sandbox isolation

Each statutory amount is produced by a safe callable injected into the rule context; a salary rule can call epf_employer or mtd but cannot read the cursor, the recordset, or the internal stores behind them.

Immutable history

Computing or recomputing a payslip appends to the sha256 hash-chained audit log whose writes are serialized by a Postgres advisory lock, so a later edit to a slip's history is detectable by verify_chain.

Pay-period inference

PCB annualises using the engine's pay-period count inferred from the period span, so a fortnightly or weekly period is annualised correctly rather than assuming twelve months.

What is inside

Built to do the job, end to end.

  • Malaysia Standard salary structure. A seeded structure with ordered rules for Basic, Gross, EPF employee and employer, SOCSO employee and employer, EIS employee and employer, PCB, and Net, wired to the engine's salary-rule categories so deductions and employer contributions land on the right side of the slip.
  • SOCSO and EIS band tables (Jadual Caruman). Sixty-three-row Category 1 contribution tables each for SOCSO and EIS, modelled as fixed RM amounts per wage band with employer and employee columns, capped at the RM6,000 ceiling, editable in admin-gated list views.
  • LHDN income tax brackets. The resident individual progressive schedule as editable bracket records, summed band by band over chargeable income, driving the simplified MTD / PCB monthly-deduction formula with the standard individual relief and capped EPF relief.
  • EPF company settings. Company fields for the EPF employee rate, the two employer rates, and the wage threshold, defaulted to the statutory figures so the banded employer logic is configurable per company.
  • Statutory helpers on the rule seam. epf_employee, epf_employer, socso_employee, socso_employer, eis_employee, eis_employer and mtd are exposed to salary rules through the engine's documented _get_rule_helpers hook, keeping the Malaysia math out of the core engine.
  • Access control and tests. Admin, officer and self ACLs on every statutory table, admin-gated menus, and a test suite that pins real published EPF, SOCSO, EIS and PCB figures against the seeded data and a full computed payslip.

Honest about the edges

What this does not do, so nothing surprises you.

  • This is the contribution and tax calculation layer only. It does not generate statutory forms or submission files (no Form E, EA, CP39, Borang, or EPF/SOCSO/EIS contribution files).
  • PCB uses the simplified computerised formula (annualise, deduct the standard RM9,000 individual relief and the capped RM4,000 EPF relief, tax progressively, divide by pay periods). It is not the full official MTD schedule and does not model spouse, child, lifestyle, zakat, or other reliefs.
  • The seeded SOCSO and EIS amounts are generated from the Category 1 statutory rates applied to each band's upper wage and rounded to the nearest 5 sen, reflecting the RM6,000 ceiling effective 1 October 2024. You must confirm them against the current PERKESO Jadual Caruman before live use.
  • SOCSO is modelled for Category 1 (employees below age 60). Other PERKESO categories are not seeded.
  • Tax brackets and rates are seeded from a published LHDN schedule and must be verified against the current assessment year before use; the figures are yours to maintain.
  • Requires the EH HR payroll engine (eh_hr_payroll) and Odoo 17 Community HR. It does not bundle banking, EPF i-Akaun, or LHDN e-filing integrations.
Search

Malaysia payroll Odoo 17, EPF Odoo payroll, KWSP contribution Odoo, SOCSO PERKESO Odoo, EIS SIP Odoo payroll, PCB MTD Odoo, Potongan Cukai Bulanan, Jadual Caruman, LHDN income tax brackets, Malaysia salary structure Odoo, RM6000 wage ceiling, Employees Provident Fund Act payroll, statutory deductions Malaysia, Odoo 17 Community payroll, Malaysia statutory contributions

Work with ERP Heritage

Need this fitted to the way you work?

ERP Heritage delivers end to end Odoo work: Odoo Implementation, Customization and Development, Integration, Migration, Consultation, Support and Training. We help teams put this module into production, shape it to their process, and keep it running.

Build and tailor
Odoo Implementation, Customization and Development, scoped to your workflow.
Connect and move
Odoo Integration and Migration across systems and Odoo versions.
Run and support
Odoo Support and Training so your team stays productive after go live.
Plan and advise
Odoo Consultation and ERP Consulting, from discovery to roadmap.

We work with businesses across Australia (Melbourne, Sydney, Brisbane, Perth, Adelaide, Canberra) and the Middle East (Dubai, Abu Dhabi, Riyadh, Jeddah, Doha, Kuwait City, Muscat). Start a conversation at erpheritage.com.au or email info@erpheritage.com.au.

Languages

Available in 19 languages

The interface ships translated out of the box. Switch language in Odoo and the fields, menus, and messages follow.

العربية简体中文繁體中文NederlandsFrançaisDeutschहिन्दीBahasa IndonesiaItaliano日本語한국어PolskiPortuguês (Brasil)РусскийEspañolSvenskaไทยTürkçeTiếng Việt
More from ERP Heritage

Modules teams pair with this one.

Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.

USD 39
Employment Hero Planning

Sync Employment Hero rosters into Odoo Planning shifts

USD 39
Employment Hero Sync Engine

A reusable two way synchronisation engine that keeps Odoo in step with the people and payroll platform, idempoten...

USD 99
Ireland - Payroll ROS

Real-time PAYE Modernisation for Irish payroll

USD 199
Project Gantt Pro

PMO grade upgrade for the Project Gantt planner

USD 9
Employment Hero Australia

The Australia country pack for the ERP Heritage Employment Hero integration

USD 19
Employment Hero Documents

Sync certifications, qualifications and employee document metadata from the Employment Hero people platform into...

ERP Heritage

v1.0.0 · LGPL-3 · Odoo 17 Community

Developed by ERP Heritage - Top Odoo Partner • LinkedIn

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 3521
Technical Name eh_hr_payroll_my
LicenseLGPL-3
Websitehttps://www.erpheritage.com.au/

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