The Odoo integration with PayrollPanda lets you connect your Odoo HR modules directly to PayrollPanda’s payroll system. This means you can automatically pull in attendance data, leave records, and overtime hours from Odoo — and even publish payslips back to your employees’ Odoo profiles.
The integration supports the following Odoo modules: Attendance, Time Off, Employees and, Expenses (coming soon!).
This article covers:
Setting Up the Integration
Step 1: Connect Odoo to PayrollPanda
- In PayrollPanda, go to Settings > Integrations > Odoo.
- Click Connect with Odoo.
- Log in to your Odoo account and authorize the connection.
Once connected, you’ll see the Odoo integration settings where you can configure attendance, leave, overtime, and payslip options.
Step 2: Configure Employee Matching
When syncing data, PayrollPanda needs to match employees in Odoo with employees in PayrollPanda. Employees are matched using the following fields, in this order:
- Email Address: An employee with a matching email address is searched first.
- Full Name: If no email match is found (or multiple employees share the same email), the system checks for a matching full name.
- Identification Number / Passport Number: If there is still no match, PayrollPanda checks the employee’s Identification Number or Passport Number from Odoo.
Note: If no unique match is found after all checks, the employee will be skipped during syncing.
Step 3: Enable Integration Settings
Overtime Hours (Monthly-Paid Employees)
You can sync overtime hours from Odoo for employees with a Monthly salary period. To configure overtime syncing:
- Go to Integrations > Odoo.
- Select the monthly-paid employees whose overtime should be synced.
- Set the date range for the overtime data. You can choose dates relative to the payroll month, previous month, or subsequent month.
When overtime hours are synced, PayrollPanda will automatically add the appropriate overtime payroll item to the employee’s payroll and recalculate it. If the overtime payroll item doesn’t already exist, it will be set as recurring.
Regular Hours (Hourly-Paid Employees)
For employees with an Hourly salary period, PayrollPanda can pull regular worked hours from Odoo. To configure regular hours syncing:
- Go to Integrations > Odoo.
- Select the hourly-paid employees whose regular hours should be synced from Odoo.
- Set the date range for the regular hours data.
When synced, the Salary Units field in PayrollPanda will be updated with the regular hours, and the employee’s payroll will be automatically recalculated.
Leave Data
The integration pulls leave records from Odoo for each employee within your specified date range. To configure leave syncing:
- Go to Integrations > Odoo > Leaves.
- Map your Odoo leave types to PayrollPanda leave categories.
- Configure the leave date range.
- Select the employees whose leave data should be synced.
You’ll need to map the following PayrollPanda leave categories to the corresponding Odoo Time Off types:
| PayrollPanda Leave Type | Required? |
| Annual Leave | Mandatory |
| Medical Leave | Mandatory |
| Hospitalisation Leave | Mandatory |
| Unpaid Leave (Days) | Mandatory |
| Unpaid Leave (Hours) | Optional |
When an employee has unpaid leave days synced from Odoo, the Automatic Unpaid Leave field in the payroll editor will be updated, and the payroll will be recalculated.
Syncing Attendance Data
Once the integration has been configured, syncing payroll data each payroll cycle is simple.
- Go to Payroll and open the relevant payroll month.
- Click Sync Payroll Data.
- Select Odoo as the data source.
- PayrollPanda will pull in regular hours, overtime, and unpaid leave from Odoo and recalculate each employee’s payroll automatically.
Payslip Integration
Leave and Attendance Information on Payslips
When payroll is approved — or when payslips are regenerated — PayrollPanda retrieves attendance and leave information from Odoo and displays it in the payslip footnotes. The following information may appear on employee payslips:
- Number of days worked (total calendar days minus off-days, public holidays, and leave days)
- Number of annual leave days taken and remaining balance
- Number of medical leave days taken and remaining balance
- Number of hospitalisation leave days taken and remaining balance
- Number of public holidays in the period
Publishing Payslips to Odoo
After payroll has been approved in PayrollPanda, you can publish payslips directly to employees’ Odoo accounts. Here’s how it works:
- Publishing: Click the Publish Payslips button after approving payroll. Payslips are not auto-published — you need to click the button manually on PayrollPanda.
- Regenerating payslips: If you’ve already published and then regenerate payslips, the old payslips in Odoo will be automatically replaced with the new ones. If you haven’t published yet, regenerating has no effect on Odoo.
- Unapproving payroll: If payroll is unapproved or reverted, the payslips will be removed from the employees’ Odoo accounts.
