| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) • Employees (hr) |
| Community Apps Dependencies | Show |
| Lines of code | 3096 |
| Technical Name |
wt_hrms_payroll_accounting |
| License | OPL-1 |
| Website | https://way4tech.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) • Employees (hr) |
| Community Apps Dependencies | Show |
| Lines of code | 3096 |
| Technical Name |
wt_hrms_payroll_accounting |
| License | OPL-1 |
| Website | https://way4tech.com |
WT HRMS Payroll — Accounting Integration
Post confirmed payslips to Odoo accounting in one click. Per-rule debit / credit accounts, salary journal in Settings, batch-post a whole period, auto-reverse on cancel, smart-button to the journal entry. Closes the gap between WT HRMS Payroll and your books.
payroll · accounting · journal entry · salary journal · debit credit · account.move · payslip post · batch post · reverse · reconciliation · HRMS Odoo 19 · Odoo 19 · Odoo 18 · community edition · enterprise alternative · open hrms · HR software · HR automation · way4tech
Live Preview
A real screenshot from a working WT HRMS install on Odoo 19.
The Problem This Solves
Your payslips compute beautifully — then the accountant types every line into the journal by hand.
Payslip data does not flow to GL
Without a bridge, every salary, allowance, deduction and employer contribution must be manually re-entered as a journal entry. Errors creep in, periods don't tie out.
Cancellations leave dangling entries
Even when payroll is posted, cancelling a payslip later means hunting down the original move and reversing it — usually missed in practice.
No per-rule account routing
"Tax goes to Tax Payable, PF goes to PF Payable, Salaries go to Salary Expense" — but where do you store that mapping?
The Solution — Per-Rule Accounts + One-Click Post
Configure debit / credit accounts on each payroll rule once. Then every payslip / batch posts itself.
- ✓ Per-rule Debit Account & Credit Account on every
wt.hrms.payroll.rule - ✓ Per-rule Journal Override — route specific rules (e.g. EOBI) to a different journal
- ✓ "Skip in Journal" toggle — informational rules like NET don't pollute the GL
- ✓ Default Salary Journal in Settings — one config parameter, applied to every new payslip
- ✓ "Post to Journal" button on each payslip — creates a posted
account.movewith one balanced pair per rule - ✓ "Post All Confirmed" on the batch — bulk-post a whole period in one click with a success notification
- ✓ Auto-reverse on cancel — cancelling a posted payslip auto-creates a reversal move
- ✓ "View Journal Entry" smart button on every payslip with a posted move
- ✓ Live
move_stateindicator — see if the entry is draft / posted right on the payslip - ✓ Skips zero amounts — clean books, no noise lines
- ✓ Skips rules without accounts — prevents accidental "missing account" crashes; logs an info message
- ✓ Partner-stamped lines — each move line carries the employee's
work_contact_idfor analytics - ✓ Handles negative amounts — sign-aware debit / credit assignment
- ✓ Multi-company / company-checked accounts —
check_company=Trueacross the board
Step-by-Step User Guide
Install (depends on Accounting + WT HRMS Payroll)
Apps → "WT HRMS Payroll — Accounting Integration". Both account and wt_hrms_payroll are auto-installed if missing.
Set the default Salary Journal
Go to Settings → Search "Salary Journal". Pick a General-type journal (e.g. "Salaries"). Save. Every new payslip will default to this journal.
Map debit / credit accounts on each rule
Go to WT HRMS → Configuration → Payroll Config → Payroll Rules. Open BASIC: set Debit = Salary Expense, Credit = Salary Payable. Open TAX: Debit = Salary Payable, Credit = Tax Payable. Open NET: tick Skip in Journal (informational only).
Post a single payslip
Open a confirmed payslip. Verify the Salary Journal field in the new Accounting group. Click Post to Journal. The button creates and posts an account.move using the rule mapping. Click View Journal Entry to inspect the lines.
Bulk-post a whole batch
Open a confirmed payslip batch (e.g. "April 2026"). Optionally set Default Salary Journal on the batch. Click Post All Confirmed. Every confirmed payslip without a posted move is processed; the success toast tells you how many were posted.
Cancel cleanly when needed
If you cancel a payslip that already has a posted move, the module auto-creates a reversal entry with reference "Reversal of <original>" and posts it. The book is balanced — no manual intervention.
Every Feature That Matters
Per-Rule Accounts
Debit + Credit account on every payroll rule. Multi-company-aware check_company domain.
Per-Rule Journal Override
Route, e.g., social-security to a separate journal while everything else hits the main Salary journal.
Skip in Journal Toggle
Informational rules (e.g. NET, Gross, Employer-only) can be excluded from the GL with one tick.
Default Salary Journal
Stored as ir.config_parameter. Default applied at payslip create time.
One-Click Posting
Single payslip Post to Journal button. Validates state & journal before creating the move.
Bulk Post
Batch Post All Confirmed — processes every confirmed payslip without an existing posted move.
Auto Reverse
Cancelling a posted payslip auto-creates and posts the reversal — the journal stays balanced.
Smart Button + State
"View Journal Entry" button + live move_state field on every payslip.
Sign-Aware Lines
Negative amounts swap debit and credit automatically — refunds and corrections "just work".
Compatibility & Requirements
| Odoo Edition | Community & Enterprise |
| Odoo Version | 19.0 |
| Dependencies | wt_hrms_payroll, account |
| Python Packages | None — uses only stdlib |
| External Services | None |
| License | LGPL-3 |
About Waqas Riasat & Way4Tech
WT HRMS is a community-first HR + payroll suite for Odoo 19. Pair this module with the country localization (e.g. Pakistan), Bank Disbursement Files, and the Employee Portal to build a complete payroll-to-books pipeline.
way4tech.com · info@way4tech.com · WhatsApp +92 315 411 4748
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