Reference
Odoo in Canada
Every ERP vendor says it supports Canada. This page says exactly what Odoo Canada actually means: which modules install, which provincial positions exist, how place of supply is handled, and the one gap that reshapes most Canadian implementations.
Start with the gap: Canadian payroll
Odoo ships no Canadian payroll localization
Odoo’s documented list of countries with a payroll localization module covers Australia, Belgium, Bangladesh, Egypt, Hong Kong, India, Indonesia, Jordan, Kenya, Lithuania, Luxembourg, Malaysia, Mexico, Morocco, the Netherlands, Pakistan, Poland, Romania, Saudi Arabia, Slovakia, Switzerland, Türkiye, the United Arab Emirates, and the United States.
Canada is absent from that list. The United States is on it, which is why this catches people: buyers reasonably assume North American coverage means both.
Odoo documentation 19.4content/applications/hr/payroll/payroll_localizations.rst
In practice this means no CRA source-deduction calculation, no T4 or T4A generation, no Record of Employment, and no provincial remittance handling out of the box. The standard Canadian approach is to run payroll in a dedicated provider and post the summarized result into Odoo Accounting as a journal entry, which keeps the general ledger complete while leaving compliance with the payroll specialist.
Anyone proposing Canadian payroll inside Odoo is proposing a custom build. That can be legitimate. It should be priced, scoped, and risk-assessed as custom work rather than presented as configuration.
What installs with the localization
| Module | Technical name | What it does |
|---|---|---|
| Canada - Accounting | l10n_ca | Base accounting for the Canadian localization |
| Canada - Accounting Reports | l10n_ca_reports | Adds the Canadian accounting reports |
| Canadian Checks Layout | l10n_ca_check_printing | Cheque printing in the three common formats |
Odoo documentation 19.4content/applications/finance/fiscal_localizations/canada.rst:26-52
CPA005 is not in that set
Electronic funds transfer through the CPA005 bank file needs l10n_ca_payment_cpa005, which is installed separately. If paying vendors by EFT is a requirement, put it on the implementation checklist explicitly.
Provincial fiscal positions
Installing Accounting creates a default fiscal position for each province and territory, plus an International position. The fiscal position is the mechanism that swaps one tax for another based on who you are transacting with.
- Alberta (AB)
- British Columbia (BC)
- Manitoba (MB)
- New Brunswick (NB)
- Newfoundland and Labrador (NL)
- Nova Scotia (NS)
- Northwest Territories (NT)
- Nunavut (NU)
- Ontario (ON)
- Prince Edward Islands (PE)
- Quebec (QC)
- Saskatchewan (SK)
- Yukon (YT)
- International (INTL)
Odoo documentation 19.4content/applications/finance/fiscal_localizations/canada.rst:159-174
Place of supply, as Odoo states it
“When considering what taxes to be applied, it is the province where the delivery occurs that matters. Therefore, delivery is the responsibility of the vendor and is accounted for at the customer location.”
Odoo documentation 19.4content/applications/finance/fiscal_localizations/canada.rst:180-182
The documentation works four cases, and they are worth reading literally because the third and fourth are where setups go wrong.
| Situation | Fiscal position to set |
|---|---|
| Delivery to a customer in another province | The customer's province, on the customer record |
| Customer from another province picks up in person | None, on the customer record |
| International vendor charges no tax, broker charges it | International, on the vendor record |
| International vendor charges provincial tax | Your own position, on the vendor record |
Odoo documentation 19.4content/applications/finance/fiscal_localizations/canada.rst:184-192
This is mechanics, and not tax advice
What is documented above is how Odoo decides which tax to apply once you have told it the fiscal position. Whether a particular supply is taxable, zero-rated, or exempt, and which rate is correct for it, is a question for a CPA who knows your business. Configuring the mechanism correctly and reaching the correct answer are two different exercises.
Paying vendors: EFT and cheques
CPA005 is the standardized file format Canadian banks use for batched electronic funds transfers. Odoo generates the file and you import it into your banking system.
Setting it up needs specific values from your bank, so gather them before configuration rather than during it.
| Field | Where it comes from | Constraint |
|---|---|---|
| Short Name used in Canadian EFT | You choose it, on the company record | Maximum 15 characters. Most banks require all uppercase. |
| Destination Data Center | Your bank | 5-digit ID |
| Originator ID | Your bank | 10-digit code |
| Next File Creation Number | You set the starting sequence | Between 1 and 9,999 |
Odoo documentation 19.4content/applications/finance/fiscal_localizations/canada.rst:353-381
The generated CPA005 text file appears in the chatter on the batch payment, ready to download and import. Odoo’s documentation notes that after importing the file into your banking system, processing may take up to 48 hours, which is worth knowing before you promise a supplier same-day payment.
For cheques, the localization provides three layouts: Print Check (Top) - CA, (Middle) - CA, and (Bottom) - CA. Some formats need pre-printed stock.
Odoo documentation 19.4content/applications/finance/fiscal_localizations/canada.rst:288-322, 409-410
Canadian reporting
The localization adds Canadian variants of the core statements. Selecting them is a filter choice inside the report rather than a separate menu, which is a common source of “the numbers look wrong” confusion in the first month.
| Report | Canadian variant |
|---|---|
| Balance Sheet | Select Balance sheet (CA) in the Report filter |
| Profit and Loss | Select Profit and loss (CA) in the Report filter |
| Cash Flow Statement | Standard |
| Executive Summary | Standard |
| Tax Report | Periods: monthly, bi-monthly, quarterly, every 4 months, semi-annual, annual |
Odoo documentation 19.4content/applications/finance/fiscal_localizations/canada.rst:234-266
The Canadian readiness summary
| Area | Status | Detail |
|---|---|---|
| Chart of accounts | Ships | Canada-specific, seven account categories |
| Provincial tax positions | Ships | All 13 provinces and territories, plus International |
| Financial statements | Ships | Canadian balance sheet and P&L variants |
| Cheque printing | Ships | Three CA layouts, may need pre-printed stock |
| EFT to vendors | Extra module | CPA005, requires l10n_ca_payment_cpa005 and bank-issued IDs |
| Sales tax determination | Configuration | Mechanism ships; correct treatment is a CPA question |
| Payroll | Not included | No Canadian localization. Use a payroll provider. |
| Bilingual (French) interface | Ships | Odoo ships French; Quebec obligations extend past the UI |
Common questions
Does Odoo handle Canadian payroll?
No. Odoo publishes payroll localizations for a specific list of countries, and Canada is not on it. There are no CRA source-deduction rules, no T4 or T4A generation, and no Record of Employment. Canadian companies run payroll in a dedicated provider and post the result into Odoo Accounting as a journal entry.
Does Odoo handle GST, HST, PST and QST?
The Canadian localization creates default sales and purchase taxes and a fiscal position for each province and territory plus an International position. Which tax applies to a given supply is driven by the fiscal position on the customer or vendor record, and Odoo's documentation states that the province where delivery occurs is what matters.
Can Odoo pay Canadian vendors by EFT?
Yes, through the CPA005 file format used by Canadian banks for batched electronic funds transfers. It requires the separate l10n_ca_payment_cpa005 module, a company short name of at most 15 characters, and a destination data centre ID and originator ID issued by your bank.
Which modules install with the Canadian localization?
Three install automatically: l10n_ca (Canada - Accounting), l10n_ca_reports (Canada - Accounting Reports), and l10n_ca_check_printing (Canadian Checks Layout). The CPA005 EFT module is not among them and must be installed separately.