- APPS
- Payroll 17.0
| Lines of Code | 11078 |
| Technical name | to_hr_payroll |
| License | OPL-1 |
| Website | https://viindoo.com/apps/modules/17.0/to_hr_payroll |
| Read description for | v 13.0 v 14.0 v 15.0 v 16.0 v 18.0 |
| Required Apps | Time Off (hr_holidays) Discuss (mail) Employees (hr) Calendar (calendar) Employee Contracts (hr_contract) |
| Included Dependencies | Employee Relatives Viindoo Base HR Contracts (Viindoo) Advanced HR Management Work Entry Work Entry - Contract Base Addendum Viindoo Holiday & WorkDay Manager Viin Time-Off Viin - Holiday Work Entry |
| Extensions | HR Payroll Accounting Vietnam - Payroll Payroll Attendance Payroll Timesheet Integrator Overtime Payroll HR Meal Order & Payroll Integration Documents - Payroll HR Contracts Suspension & Payroll Payroll By Administrative Regions Activate Payroll Features Payroll Payment ACB bank Templates |
Key Features
Built natively on Odoo/Viindoo to streamline real business operations:
This module is developed to resolve the above points
So, it can be integrated with the data of several modules such as Attendances, Time Off, Contract, HR Payroll Accounting, etc. to calculate salary scientifically and transparently.
Benefits
Automates the salary calculation process, significantly reducing the time and effort spent on payroll tasks.
Provides precise calculations and documentation for salaries, taxes, and contributions, minimizing errors.
Seamlessly integrates with modules like Attendances, Time Off, and Expenses for holistic payroll management.
Offers multidimensional reports for detailed salary cost breakdowns by department, project, or other criteria, enabling better financial planning and decision-making.
Adapts to enterprises with diverse payroll requirements, from flexible shifts to multiple contracts per employee.
Where local law requires it, income paid after a labour contract has ended is withheld at a flat rate at source instead of the progressive scale. Each payslip shows why the system chose that treatment, and an accountant can override the choice by hand without editing the contract.
Salary rules
Personal Income Tax Analysis
Payroll Contribution History
Payroll analysis report
Personal tax rule
HR Advantage Templates
See Payroll in Action
See how this module solves real business problems in a working Viindoo environment.
Need help with Payroll?
For questions, implementation support, or consulting services, contact Viindoo.
Pre-Sales & Partnership
When contacting us, please include:
- Odoo/Viindoo version (CE/EE).
- Number of users and business scope.
- Other modules currently in use.
Technical Support
For faster troubleshooting, please provide:
- Order number or app reference.
- Odoo/Viindoo version & edition.
- Steps to reproduce the issue.
- Screenshots/logs if available.
Technical Requirement
Changes log
We continuously improve this module. Recent updates from the official Viindoo repository:
- 2026-03-15 Improved Support effective periods for PIT brackets and deductions.
- 2025-12-02 Fixed Wrong website URLs.
- 2025-04-28 Fixed Multi company when get work duration.
- 2025-04-16 Fixed Missing import in wizard.
- 2025-04-14 Fixed Empty leave summary report.
- 2024-09-25 Improved Contract Addendum (hr.contract).
Works Great With These Modules
Extend Payroll with complementary Viindoo apps:
Vietnam - Payroll
Simplify payroll management with localized salary rules, tax compliance, and contribution rates for Vietnam.
Module l10n_vn_viin_hr_payrollHR Payroll Accounting
Allows the entire Payroll Accounting to be automatically calculated through pre-established rules
Module to_hr_payroll_accountPayroll Attendance
Attendance and Payroll Integration
Module to_hr_payroll_attendanceHR Meal Order & Payroll Integration
Deduct Meal Order price in Employee Payslip
Module to_hr_payroll_mealPayroll Timesheet Integrator
Effortlessly integrate employee timesheets with Viindoo HR Payroll for automated, accurate, and streamlined salary computation.
Module to_hr_timesheet_payrollPayroll Payment ACB bank Templates
Allow downloading ACB (Asia Commercial Joint Stock Bank) payslip batch payment sheet in Excel format after confirming the payroll.
Module to_payroll_payment_acb_templatesWho Should Use This Module?
Built for teams that need this capability fully integrated into their Odoo/Viindoo stack.
Executives & Business Owners
Need clear visibility into operations and a stack that scales without bespoke development.
Operations / Department Leaders
Want to streamline daily workflows, remove manual handoffs, and keep data consistent across teams.
Implementers & Odoo Partners
Looking for production-ready Viindoo modules to deliver projects faster and at lower risk.
Installation
- Navigate to Apps;
- Search with keyword to_hr_payroll;
- Press Install.
Instruction
Instruction video: Payroll
1. Initial configurations for payroll
- Salary cycle: The salary cycle of the business. The default will be from the beginning to the end of the current month. You can create a new one in case your company has a different Salary cycle. Example: Salary cycle from the 25th of this month to the next 25th.
- Salary Structure: A salary structure is a set of rules used to determine how much employees will be paid. The system allows the creation of many salary structures such as salary structure for the office department, salary structure for the production department, etc.
- Salary rule: Salary rules are also understood as calculation formulas for items on payslips. The system has automatically added a set of basic salary rules.
- Personal tax rule: Rules for calculating Personal Income Tax.
A personal tax rule now also carries a Withholding Regime: either Standard Payroll (the rule is selected from the employee's contract, as before) or Detached Payment - a flat rate applied to income paid once none of the employee's labour contracts is in force any more, for example a payment settled after the contract has ended. A Detached Payment rule also has a Withholding Threshold per Payment and an Effective Period (start and end date) - both are plain data on the rule itself, so the rate, the threshold, or the effective date can be corrected at any time without a new release.
This module ships no Detached Payment rule for any country by itself, so nothing changes for any company until someone configures one. Only one Detached Payment rule can be in force per country at a time: saving a second one whose effective period overlaps the first is refused with an error naming the existing rule. To schedule a rate change ahead of a fixed date, set the outgoing rule's end date, then create the incoming rule starting the next day - consecutive, non-overlapping rules are allowed on purpose.
- HR Advantage Templates: Allowances for employees according to company policy. For example Harmful Subsidies, Hard Working Award, Performance Award, etc.
- Payroll Contribution Register: Deductions from salaries of Employees and Enterprises.
- Contribution Registers/Contribution Register Category: Helps to classify contributions by entities involved in salary formation such as Employees, insurance agencies, unions, etc.
2. Set up information on employee contract
After completing the configuration in step 1, you need to set this information on the employee contract:
Go to Payroll ‣ Employees ‣ Contracts, create a new employee contract:
3. Create Payslips Batches & Payslips
Go to Payroll ‣ Payslips ‣ Payslips to create payslips for each employee:
Every payslip now carries a Payment Date - the date the income is actually disbursed, not the payslip period - because that is the date that decides which tax rule applies. It defaults from the payslip batch's end date or from the payslip's own period, and can be edited by hand. If, on the Payment Date, none of the employee's labour contracts is in force any more, the payslip is marked Detached Payment. Nothing changes for a payslip whose contract is still open on the Payment Date - it is taxed on the progressive table exactly as before.
The withholding threshold is checked per PAYMENT EVENT, not per payslip: every payslip paid to the same employee, in the same company, on the same Payment Date is added together and compared with the threshold. If the total reaches it, every payslip in that group is withheld - splitting one payment into several payslips dated the same day does not avoid withholding.
On the Personal Income Tax tab, the Withholding Reason field explains in plain language why a payslip is taxed the way it is, in this order:
- a tax rule picked by hand (Tax Rule Set Manually ticked) always wins;
- otherwise, a labour contract still in force on the Payment Date is used, as before;
- otherwise, a confirmed withholding commitment (see below) blocks withholding entirely;
- otherwise, the payment is withheld once it reaches the threshold, or when the employee explicitly asked for it (Withholding Requested ticked) even below the threshold.
To pick the tax rule for one payslip by hand, tick Tax Rule Set Manually: the automatic selection then stops overwriting the Personal Income Tax Policy and the Tax Rule on that payslip, including every time Compute Sheet is clicked again. Untick it to hand the choice back to the system. A duplicated payslip never inherits this override, so review the tax rule on any duplicate.
Warning
Severance pay is fully tax-exempt by law once a labour contract ends. If it is entered as ordinary income, this feature will withhold 10% of it - the opposite of what the law requires, and a compliance risk. Record any such allowance through the Allowance (tax exemption) category (technical code ALWNOTAX) instead of ordinary income, so it is excluded from the taxable base before withholding is even considered.
Or go to Payroll ‣ Payslips ‣ Payslips Batches to create payslips batches for departments or the company:
4. View analysis report
Go to Payroll ‣ Reports ‣ Payroll Analysis to view payroll analysis report:.
Go to Payroll ‣ Reports ‣ Payroll Contribution History to see analysis of payroll contribution history::
Go to Payroll ‣ Reports ‣ Payslip Personal Income Tax Analysis to view Personal Income Tax Analysis Report:
5. Register a personal tax withholding commitment
An employee who expects their taxable income for the year to stay under the threshold can file a written commitment asking not to be withheld on detached payments for that tax year. Go to Payroll ‣ Configuration ‣ Withholding Commitments, click New, select the Employee and the Tax Year, then click Confirm. Only a Confirmed commitment blocks withholding - a Draft or Cancelled one has no effect, and withholding proceeds as usual.
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.