Payroll for Quebec, Canada

David Dufresne

How to install, configure and use the Quebec Payroll modules ?

2 Answers
David Dufresne
Best Answer

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.

  • users.csv

    • login : only alphanumeric characters, no space, no accents

    • name : complete name of the employee, must be unique

  • address_home.csv

    • 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

  • employee.csv

    • 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

  • hourly_rate.csv

    • 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.

  • contract.csv

    • struct_id : l10n_ca_qc_hr_payroll.hr_structure_qc

    • schedule_pay : Weekly (52), Bi-weekly (26) or Monthly (12)

    • salary_computation_method :

      • Annual Wage → employee payed based on annual wage

      • Hourly Rate → employee paid based on hourly rate

  • contract_jobs.csv

    • 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:

  1. users.csv in Settings → Users → Users
  2. address_home.csv in Invoicing → Supplier
  3. employee.csv in Human Ressources → Employee
  4. departments.csv in Human Ressources → Configuration → Departments
  5. jobs.csv in Human Ressources → Configuration → Job Positions
  6. hourly_rate.csv in Human Ressources → Hourly Rate Classes
  7. contract.csv in Human Ressources → Contracts
  8. contract_jobs.csv in Human Ressources → Contracts
  9. public_holidays.csv in Human Ressources → Configuration →Public Holidays

Configure the company

In Setting → Companies → Companies

  • Company name

  • Company address

    • 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 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.
  • 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

Annual operations

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.

Generate T4

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 (

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.

1 Comment
Hamid Darabi

First of all I should say this post is great. I really appreciate the effort. My problem is I can't find the csv files in the module description.

Best Answer

Do you want more information ?

Join our team and users during next meetup