How to Use the Odoo 18 Payroll Module: Complete Guide
By Braincuber Team
Published on February 28, 2026
A 52-employee D2C brand we onboarded was running payroll on an Excel spreadsheet with 14 tabs and 23 formulas—three of which were broken. Nobody noticed the broken VLOOKUP until an employee filed a complaint about being underpaid by $340 for 2 months straight. The Odoo 18 Payroll module replaces the entire circus: contracts, work entries, salary rules, payslips, batch processing, and reporting—all in one place. No more spreadsheet roulette. This beginner guide is the complete tutorial.
What You'll Learn:
- Navigating the Payroll Dashboard (warnings, batches, employer costs)
- Managing employee contracts and salary attachments
- Handling work entries and resolving conflicts
- Creating individual payslips and processing batch payroll
- Using payroll reports for cost analysis and compliance
- Configuring salary structures, work entry types, and settings
The Payroll Dashboard: Your Control Center
The dashboard is the first screen you see when opening the Payroll module. It shows warnings (unresolved conflicts, missing contracts), active batches, employer cost trends, and employment stats. If this dashboard has red warnings, your payroll cycle is going to have problems. Fix them before generating payslips.
Warnings Panel
Flags missing contracts, work entry conflicts, and unprocessed batches. One unresolved warning = one payslip error. We've seen companies ignore warnings for 3 months and end up with $7,400 in payroll corrections.
Employer Cost Trends
Shows weekly and annual employer cost graphs. Track salary expense trends over time without exporting to Excel. Spot spikes from overtime, new hires, or bonus cycles instantly.
Batches Overview
Create and approve payroll batches directly from the dashboard. See which batches are in draft, confirmed, or paid status. One-click access to the batch you need to process.
Notes Section
Add internal notes about payroll changes, exceptions, or deadlines. Your HR manager and accountant can leave context for each payroll cycle without sending emails back and forth.
Navigate the Payroll Module Step by Step
The Payroll module has five main sections: Dashboard, Contracts, Work Entries, Payslips, and Configuration. Each feeds into the next. Contracts define salary structures. Work entries define hours. Payslips calculate the actual pay. Here's how to work through each.
Review the Payroll Dashboard
Open the Payroll module. The Dashboard shows Warnings (fix these first), Batches (current and pending), Notes (internal comments), and Employer Cost trends. Check the warnings section—any red flags here mean your payslips will have issues if you proceed without resolving them.
Create Employee Contracts
Go to Contracts > Contracts. Click New to create a contract. Set the employee, salary structure, wage amount, working schedule, contract dates, and work entry source (Working Schedule or Attendance). The contract is the foundation—without it, Odoo can't generate payslips for the employee. Every employee needs an active contract.
Set Up Salary Attachments
Navigate to Contracts > Salary Attachments. Click New to add deductions like loan repayments, child support garnishments, or voluntary deductions. Fill in the Employee, Type, Monthly Amount, Start Date, and Description. These deductions are automatically applied to every payslip for that employee until the end date or total amount is reached.
Review and Manage Work Entries
Go to Work Entries > Work Entries. The Gantt chart view shows all employee work entries for the current period. Switch between Day, Week, and Month views. Check the Conflicts sub-menu for overlapping entries. Use Regenerate Work Entries to resolve conflicts. Work entries feed directly into payslip calculations—incorrect entries = incorrect pay.
Check Time Off Reports
Go to Work Entries > Time Off to Report. This shows all employee leave records: type (sick, paid, unpaid), start/end dates, duration, status, and payslip state. Filter by Status and Department using the left panel. Make sure all approved leaves are reflected before generating payslips, or you'll overpay employees who were on unpaid leave.
| Payroll Section | Purpose | Common Pitfall |
|---|---|---|
| Dashboard | Overview of warnings, batches, costs, and trends | Ignoring dashboard warnings before running payroll |
| Contracts | Employee salary structures, wages, and schedules | Expired contracts still active—payslips generate at old rates |
| Work Entries | Hours worked, leaves, attendance tracking | Unresolved conflicts inflating or reducing pay |
| Payslips | Individual and batch payslip generation | Validating payslips without reviewing computation details |
| Reporting | Payroll analysis, work entry analysis, cost reports | Not using reports to catch anomalies before month-end |
Create an Individual Payslip
Go to Payslips > All Payslips and click New. Select the Employee, Period, and Salary Structure. Click Compute Sheet to calculate the payslip based on the employee's contract, work entries, and salary rules. Review the computation details (basic wage, deductions, net wage). Click Confirm to finalize.
Process Payroll in Batches
Go to Payslips > Batches and click New. Name the batch (e.g., "February 2025 Payroll"), set the date range, and choose the grouping: By Employee, By Department, By Job Position, By Salary Structure, or By Employee Tags. Click Generate Payslips to create payslips for all matching employees in one action.
Review the To Pay Queue
Go to Payslips > To Pay. This shows all payslips ready for payment. Review each payslip's Status, Basic Wage, Net Wage, Employee, and Batch Name. Use Print to generate PDF payslips or Export All to download the data. Don't pay without reviewing—one wrong number here costs you real money.
Always Resolve Work Entry Conflicts Before Batches
If you generate a payslip batch while work entry conflicts exist, Odoo will either skip those employees or calculate their pay incorrectly. Check Work Entries > Conflicts and resolve every single one before clicking Generate Payslips. We've seen a 34-employee batch come out $2,100 short because 4 employees had unresolved attendance conflicts.
Generate Payroll Reports
Go to Reporting > Payroll. The Pivot view shows Net Wage, Gross Wage, Days of Paid Time Off, and Days of Unpaid Time Off. Use the Measures button to add Work Days, Hours, and other metrics. Switch to Graph view for pie, bar, and line charts. Use Work Entry Analysis under Reporting for attendance and time-off breakdowns.
Configure Module Settings
Navigate to Configuration > Settings. Configure salary structure types, work entry types, salary rules, and job positions. The Salary Package Configurator lets you build flexible compensation packages. Set up Contract templates for faster onboarding. These settings define how every payslip is calculated—get them wrong and every employee's pay is affected.
MONTHLY PAYROLL CYCLE:
1. Dashboard: Check warnings (fix ALL before proceeding)
2. Contracts: Verify all active, no expired contracts
3. Work Entries: Resolve ALL conflicts
4. Time Off: Confirm approved leaves are reflected
5. Batches: Create batch > Generate Payslips
6. To Pay: Review each payslip computation
7. Validate and process payments
8. Print payslip PDFs for employee records
9. Reporting: Run payroll analysis for anomalies
10. Lock the period to prevent retroactive changes
Frequently Asked Questions
How do I create a payslip in Odoo 18?
Go to Payslips > All Payslips, click New, select the employee and period, click Compute Sheet to calculate, review the breakdown, then click Confirm. The employee must have an active contract.
How do I process batch payroll in Odoo 18?
Go to Payslips > Batches, click New, set the date range and grouping method (by department, employee, etc.), then click Generate Payslips. Review the generated payslips before validating.
What are salary attachments in Odoo 18 Payroll?
Salary attachments are deductions applied to payslips, such as loan repayments, wage garnishments, or voluntary deductions. Create them under Contracts > Salary Attachments with the employee, type, and monthly amount.
Can I export payslip data from Odoo 18?
Yes. In the To Pay or All Payslips view, select the records and click Export All. You can also print individual payslips as PDF. Reports under Reporting > Payroll can be exported as well.
Where do I find payroll reports in Odoo 18?
Go to Reporting in the Payroll module. You'll find Payroll reports (net/gross wage, paid/unpaid time), Work Entry Analysis, and Salary Attachment reports. Switch between Pivot and Graph views.
Need Help Setting Up Odoo 18 Payroll?
Our team sets up contracts, salary structures, work entry sources, batch processing, and payroll reporting—so your employees get paid accurately and on time, every single cycle.
