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 Accounting v 16.0
  4. Sales Conditions FAQ

EH HR Payroll Accounting

by ERP Heritage https://www.erpheritage.com.au/
Odoo
v 16.0 Third Party 25
Download for v 16.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 • Invoicing (account)
• 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 2319
Technical Name eh_hr_payroll_account
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 • Invoicing (account)
• 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 2319
Technical Name eh_hr_payroll_account
LicenseLGPL-3
Websitehttps://www.erpheritage.com.au/
Versions 16.0 17.0 18.0 19.0
ERP Heritage · HR Platform
EH HR Platform · Payroll Accounting

EH HR Payroll Accounting

Turn confirmed payslips into balanced, posted journal entries, with a per-rule account map and an automatic reversal when a slip is cancelled.

Free · LGPL-3Odoo 16 CommunityFree · LGPL-3v1.0.0
Post on confirm
Per-rule account map
Net fallback pair
Savepoint isolation
Idempotent posting

Why this module

EH HR Payroll Accounting

01 / BALANCED

Every entry balances by construction

Each mapped salary rule emits a matched debit and credit for the absolute line total, so each pair is internally balanced and the whole entry nets to zero. When no rule carries accounts, the bridge falls back to a single net expense debit and payable credit. Either way the move balances before it posts.

02 / SAFE

One bad slip cannot block the run

Each payslip posts inside its own savepoint. A locked period or a move validation error rolls that one slip back and clears its move link so it stays retryable, without aborting the rest of the batch. A move_id guard makes a second posting attempt by any path a no-op.

03 / OPTIONAL

Install only if you run accounting

The automatic path skips payslips that have no journal or accounts configured, so turning on the bridge never makes confirming a payslip fail. The explicit Post to journal button is the strict path: it raises if the journal or accounts are missing, because the user asked for it.

Day in the life

A payroll officer confirms a pay run and ties it to the ledger.

The salary rules already carry debit and credit accounts, so confirming the run posts one balanced entry per slip straight to the payroll journal: basic wage debits salary expense and credits net payable, the tax deduction debits payable and credits the PAYG liability. Each slip posts inside its own savepoint, so a slip that hits a locked period rolls back alone and stays retryable while the rest of the run posts cleanly. One slip was confirmed before its accounts were set, so it skips silently at confirm and posts later from the Post to journal button. When a correction is needed, cancelling the slip posts a mirror-image reversal that points back at the original entry, so the ledger nets to zero with a clean audit trail.

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.

SAVEPOINT ISOLATION

Each payslip posts within its own database savepoint. A locked period or an account.move validation error rolls that single slip's half-built move back and clears its move_id, leaving it in a clean retryable state, so a batch of confirmations is never aborted by one failing entry.

IDEMPOTENT POSTING

A move_id link, checked by every posting path before it runs, is the double-post guard. Re-confirming, re-paying, or pressing Post to journal again on a slip that already posted is a no-op: no second move is ever created, as the no-double-post test asserts.

ACCOUNT FALLBACK

If salary rules carry both a debit and a credit account, the entry is built per rule. If they do not, the bridge falls back to a single net expense debit and payable credit pair, so it produces a balanced move whether or not the rules are mapped to accounts.

REVERSAL ON CANCEL

Cancelling a slip whose move is already posted books a mirror-image reversal that points back at the original entry, so the cancellation reaches the ledger. A move that was still in draft is simply cancelled instead of reversed.

STRICT VS SILENT

The automatic path at confirm and pay skips unconfigured slips silently so payroll never breaks. The manual Post to journal button raises a clear error if the journal or the expense and payable accounts are missing, because the user asked for it explicitly.

What is inside

Built to do the job, end to end.

  • Per-rule account mapping. Adds a debit account and a credit account to every salary rule, plus an Accounting page on the rule form. When set, the payslip entry is broken out per rule, with one balanced debit and credit line per rule whose total is non-zero.
  • Payslip posting fields. Adds a general journal, a fallback salary expense account, a fallback salary payable account, the posted journal entry link, and the reversal entry link to the payslip, all surfaced on the payslip form alongside the net amount.
  • Post on confirm, post on pay. Confirming a payslip creates and posts the move, not a draft. Paying acts as a safety net for slips confirmed before accounting was configured. Both paths are idempotent through the move_id guard.
  • Manual Post to journal button. A header button, visible on paid slips that have no move yet, posts the entry on demand and raises a clear UserError if the journal or the accounts are not set.
  • Test coverage. Ships tests for the balanced net fallback, the per-category breakdown, the journal-required guard, posting on confirm, the reversal on cancel, and the no-double-post guarantee.

Honest about the edges

What this does not do, so nothing surprises you.

  • This is a bridge, not a chart of accounts: it posts entries but does not create accounts, journals, or tax mappings for you. You configure those.
  • It depends on the EH HR payroll platform and the Odoo account module. It is not a standalone payroll engine and does not compute payslips.
  • There is no payment, bank reconciliation, or analytic distribution logic here. It books the salary expense and payable; settling the payable is a separate step.
  • Posting is triggered on confirm and pay, despite the legacy summary wording about paying. There is no scheduled or cron-driven posting in this module.
  • There is no approval ladder, no multi-company scoping logic, and no advisory locking beyond the per-slip savepoint. Those live elsewhere if you need them.
Search

odoo 16 payroll accounting, payslip journal entry odoo, post payroll to general ledger, salary expense payable journal, hr payroll account bridge, odoo community payroll posting, per rule debit credit account, payroll reversal on cancel, balanced payroll journal entry, erp heritage hr platform

ERP Heritage

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

v1.0.0 · LGPL-3 · Odoo 16 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