Skip to Content

Canadian Record of Employment (ROE) — Canada Payroll Foundation (Odoo Online)

Canadian Record of Employment ROE for Service Canada for Odoo Online — SaaS version with no Python code: Canada payroll base with dated CPP QPP EI QPIP CNESST WSIB rate tables: no ROE is issued without a reason for separation, a complete Block 15C, or a rate table in force.

0.00 € 0.00 €

Free
Cette application n'est pas vendue ici : utilisez les boutons Odoo Apps Store ou Omnifloo ci-dessous.
Terms and Conditions
30-day money-back guarantee
Shipping: 2-3 Business Days

Canadian Record of Employment ROE for Service Canada for Odoo Online — SaaS version with no Python code: Canada payroll base with dated CPP QPP EI QPIP CNESST WSIB rate tables: no ROE is issued without a reason for separation, a complete Block 15C, or a rate table in force.

View on the Odoo Apps StoreTry it on Omnifloo

Overview

Canadian Record of Employment — Canada payroll base

Free base, for Odoo 19 Community. It produces the Record of Employment that Service Canada requires at every separation, and it refuses to issue one that would be rejected.

The real problem

Without a Record of Employment, the former employee cannot receive Employment Insurance, and an employer who does not issue it on time is at fault. The deadline is a matter of days, not weeks: five calendar days on paper, five days after the end of the pay period electronically. It is not a year-end formality — it is urgent.

And the record gets rejected for mechanical reasons: box 16 empty, code K without a comment, last day paid earlier than the first day worked, insurable hours above the ceiling, pay periods missing in box 15C. Every rejection costs the waiting employee days.

What the module refuses to do

A record of employment cannot be issued:

  • without a reason for separation (box 16) — the rejection names the box and explains what it determines;

  • under code K “Other” without a comment in box 18 — the rule is Service Canada's;

  • with a last day paid earlier than the first day worked;

  • with insurable hours exceeding the ceiling: the lesser of 8,904 hours or 24 hours per day of employment;

  • with fewer pay periods in box 15C than the scheme requires, when the employment lasted long enough to provide them;

  • without an employment insurance rate table in force at the date of the interruption — and an outdated table becomes a gap again.

No rate is hard-coded

Maximums, exemptions and rates are dated records, valid for a period, that you can correct. Each carries the URL of its source and the date it was consulted. The shipped rate tables — CPP, CPP2, QPP, QPP2, federal and Quebec Employment Insurance, QPIP, WSIB ceiling — were checked one by one against publications from the Canada Revenue Agency and the WSIB on September 14, 2026.

Whatever could not be confirmed is shipped empty, and says so. The CNESST annual maximum insurable earnings could not be obtained from its primary source: no amount is shipped, the record is marked “value not found”, and any calculation that would depend on it is refused rather than rounded to zero.

What the module covers, and what it does not

Covered: the Record of Employment, complete, for all of Canada, with Quebec's reduced employment insurance rate; the rate table register; Service Canada separation reasons.

Not covered, and it needs saying:

  • No transmission to Service Canada. ROE Web requires employer registration and authentication that this module has no business holding. The module prepares, checks, locks and archives; filing remains in the employer's hands.

  • No payslip calculation. This base module computes neither gross nor net pay.

  • No annual slips — T4, T4 Summary, Quebec Relevé 1 — nor CNESST or WSIB premiums, nor source deductions. These are in the paid edition dyo_paie_canada_declarations.

  • No dependency on hr_payroll, which does not exist in Odoo Community.

Provincial scope

The Record of Employment is federal: this module provides it for all provinces and territories. The only provincial item in the foundation is the Quebec reduced Employment Insurance rate, which is included. Provincial schemes proper — CNESST in Quebec, WSIB in Ontario — are present here only as rate tables; their calculation is in the paid edition, and it covers only these two provinces. Workers' compensation boards in other provinces are not covered.

Specifications

PriceFree
LicenseLGPL-3
Odoo series19.0: published on the Odoo Apps Store; 20.0: published on the Odoo Apps Store
Version1.0.0
EditionOdoo Online (SaaS) and Odoo.sh
Technical namedyo_paie_canada_online
DomainHuman resources, payroll and fleet

Price excluding VAT as displayed on the Odoo Apps Store; purchase and installation are done on the Store or through your Omnifloo instance.