Odoo is the world's easiest all-in-one management software. It includes hundreds of business apps:
CRM | e-Commerce | Accounting | Inventory | PoS | Project management | MRP | etc.
Questions to ask yourself before starting
Does the company provide social advantages to his employees? Which ones?
Does the company have a collective insurance?
Does the company and/or its employees contribute to a pension fund (RVER, RPA)?
Wat is the salary structure of the company?
Does the company pay per annual wage or hourly rate, or both?
Does the company manage hourly rate individually for each employee or by salary class?
Does the company have employees with tax exemption or other source deductions?
Does the company allow employee to be paid with holidays accumulated in the current year?
Data to collect
Please use the csv files provided with the modules and available on the module description.
login : only alphanumeric characters, no space, no accents
name : complete name of the employee, must be unique
This file contains employees addresses with their Social Insurance Number
All fields are mandatory except street2
name : must be unique
street et street2 : 30 characters maximum for each line
zip : no space in the middle
sin : no space in the social insurance number
is_company and supplier : leave False
lastname : no initials at the end
lastname_initial : one upper case letter or nothing
address_home_id : the name field set in address_home.csv
user_id : the name field set in users.csv. All employees using timesheets must be related to a user.
journal_id : Timesheet Journa
Use it only if the company is using hourly rates to pay its employees
If the company is using salary class to manage hourly rates, many employees will have the same salary class. If hourly rates are managed individually, create one salary class for each employee. In both cases, create one line for each salary class for each planned rate increase.
struct_id : l10n_ca_qc_hr_payroll.hr_structure_qc
schedule_pay : Weekly (52), Bi-weekly (26) or Monthly (12)
Annual Wage → employee payed based on annual wage
Hourly Rate → employee paid based on hourly rate
For each position of an employee, create a line. There must be one main position per contract (is_main_job is True)
If the employee is paid based on hourly rate, hourly_rate_class_id must contain the id of one salary class set in hourly_rate.csv. Otherwise, hourly_rate_class_id must be empty
Install the following modules:
l10n_ca_qc_hr_payroll (Canada – Quebec - Payroll)
If the company uses timesheet, install :
hr_worked_days_activity_from_timesheet (Worked Days Activities From Timesheet)
Import the csv files in the following order:
- users.csv in Settings → Users → Users
- address_home.csv in Invoicing → Supplier
- employee.csv in Human Ressources → Employee
- departments.csv in Human Ressources → Configuration → Departments
- jobs.csv in Human Ressources → Configuration → Job Positions
- hourly_rate.csv in Human Ressources → Hourly Rate Classes
- contract.csv in Human Ressources → Contracts
- contract_jobs.csv in Human Ressources → Contracts
- public_holidays.csv in Human Ressources → Configuration →Public Holidays
Configure the company
In Setting → Companies → Companies
No space in the ZIP code
30 characters maximum on each street line
Canada Payroll Tab
Fill in the following fields:
Default province of employment
Used for fiscal slips
Canada Revenu Agency Transmitter Number
Number provided by ARC to transfer slips via Internet.
Allow current year vacations
Check this box if the company allows the employees to get paid using their holidays accumulated during the current year.
CRA Payroll Number
15 characters number. Example : 123456789RP1234
The first 9 characters are the canadian Business Number.
Quebec Payroll Tab
The following fields are not required for the moment. They are related to transferring the slips via Internet:
Revenu Québec Identification Number
Revenu Québec File Number
Revenu Québec Preparator Number
Fill in the following fields:
First Sequencial Number et Last Sequencial Number
Revenu Québec provides a 8-digits sequenced number serie (+1 digit computed by the software), used for the transfer by mail or Internet. In Odoo, you need to enter the first and the last digit in its respective field. Each sequential number identifies a slip, a type and a year. For example, each Relevé 1 for a given year has a unique number.
Contribution Rate to the CSST
Enter the rate corresponding to the amount per 100 $ payroll (example : 1.94)
Contribution Rate to the HSF
The rate of contribution to the HSF is usually calculated each year.
It will change in regard to the total payroll of the buisness for the preceding year and whether the company is a manufacturing SMB.
Refer to http://www.revenuquebec.ca/en/sepf/formulaires/tp/tp-1015_f/default.aspx for details on how to find your company's rate for the current year.
Every pay period operations
Create a Single Payslip
Go to : Human Ressources → Payroll → Employee Payslip
- Select the employee
- Select the date from and date to of the payslip
- Select the contract
- Click on Import from Timesheets (optional)
- For an employee paid by wage :
It is not necessary that the employee fills a timesheet. However, if the employee takes leaves, they must be entered in the worked days of the payslip. The hourly rate will be 0. This is normal behavior for an employee paid by wage and the salary will be computed properly.
- For an employee paid by wage :
- Enter lump-sum payments in the section Other Inputs (optional)
- Unpaid vacations / sick leaves, bonus, retroactive pay increases
- Never create a single payslip only for these amounts. Always compute it with the regular payslip of the employee.
- Click on Compute Sheet
- Click on Print, then Employee Payslip (YTD Amount)
Create Payslips in Batch
Go to : Human Ressources → Payroll → Payslip Batches
- Enter a name for your payslip batch
- Enter the period dates from and to
- Click on Generate Payslips
- Check the option Import Worked Days From Timesheet if you use timesheets.
- Select the employees for which to create the payslips
- Click on Generate
- Go inside each payslip and confirm
- When every payslip has the status Done, click on Close in the payslip batch form
Create a contribution to the CSST or the HSF
Each pay perio, you must remit your contribution of CSST and HSF to Revenu Québec. The procedure is the same for both.
Go to : Human Ressources → Payroll → Quebec Contributions → [CSST / HSF] Contributions
- Enter your period (Date From and Date To)
- Click on Sum Salaries for the period
- If you have exempted salaries, you may enter the amount in Salaries Exempted for the Period
- Click on Save, then Confirm
- The amount in the Contribution field gives the amount that you must remit to Revenu Quebec for the period.
Get the amount of remittance to Revenu Quebec and the Canada Revenu Agency
Each pay period, you must remit to Revenu Quebec and the CRA amounts of employer contributions and source deductions. These amounts are computed directly with the employee's payslip.
Go to: Reporting →Human Resources → Payroll Analysis
In the wizard :
- select Analysis Type : By Salary Rule
- Start Date : Enter the beginning of the payroll period
- End Date : Enter the end date of the payroll period
- Click on Generate the Report
A view will appear containing the amounts of source deductions and employer contribution to remit :
The following amounts must be remitted to the CRA :
- FIT - Federal Income Tax
- EI – Employee Contribution
- EI – Employer Contribution
The following amounts must be remitted to Revenu Québec :
- QIT – Quebec Income Tax
- QPP – Employee Contribution
- QPP – Employer Contribution
- QPIP – Employee Contribution
- QPIP – Employer Contribution
Enter tax credits / tax deductions for next year
- Go to Human Ressources -> Human Ressources -> Employees
- Select your employee and go to tab Canadian Payroll
- Add an End Date to the current tax deductions
- Add new deduction records for the year to come.
You may create each T4 manually, but it is not recommended. The standard workflow is to create a T4 summary and from the summary, generate the T4 slips automatically.
Go to Human Resources → Payroll → Canada Fiscal Slips → T4 Slips - Summary
Complete the summary
- Select the employee and the year of reference
- Click on Generate T4 Slips
- You need to check and approve each T4 generated before confirming the Summary
- You may enter additional information in the tab Additional Information
- Click on Print, then T4 – Empoyee Copy. Never send this PDF to the CRA. It is meant to be remitted to the employee. You must remit 2 copies (identicals) to the employee
Create the summary XML for the T4
Each year, you need to send one xml file to ARC containing the data of all the T4 of a given fiscal year. The xml can be printed like any report in the box « Print ». You then need to upload it on the ARC website.
Go to Human Resources → Payroll → Canada Fiscal Slips → T4 Slips –Summary
Click on Print, then T4 Summary XML. This downloads the XML to transmit to the CRA by the web service (https://apps.cra-arc.gc.ca/ebci/leb0/upload/pub/entry-f.do).
When it is transmitted, click on Confirm Sent. This will update the state of every T4 in the batch.
Generate Relevés 1
Go to Human Resources → Payroll → Canada Fiscal Slips → Relevés 1 - Summary
Filling the Relevé 1 and printing the slips is almost the same process as for the T4. The difference is that you must generate 2 different copies, one for Revenu Québec (with the Datamatrix barcode) and one for the employee.
The Copy #1 is for Revenu Québec. Every copies #1 of the Relevé 1 must be sent by post with the Summary of the Relevés 1.
If your company has more than 50 employees, you may not send the copies #1 by post. In this case, you need to send a XML containing the Relevés 1 data by the web service of Revenu Québec. For now, the summary XML for the Relevé 1 is not implemented in Odoo.
The Copy #2 is for the employee.