Canadian accounting compliance — a practical guide

GST, HST, PST, QST by province. ITCs. CRA Business Numbers. T4A vs T5 vs T5018. Bill 96. Everything US-built software gets wrong, and how to get it right.

Why US-built accounting software fails in Canada

If you've ever tried to run a Canadian business on QuickBooks Online (US edition), Xero (in the early days), or any of the newer US-founded accounting tools, you already know the experience. Sales tax handling is a mess of custom tax codes you set up by hand. ITCs (Input Tax Credits) — Canada's mechanism for recovering the GST/HST you paid to vendors — are tracked as an afterthought, if at all. T-slip generation either doesn't exist or requires a separate add-on. The CRA's Business Number structure, with its program-account suffixes (RT, RP, RC, RM), doesn't map cleanly to anyone's data model. Multi-province sales tax is "supported" in the sense that you can set up 13 different tax codes manually and hope you keep them current as rates change.

The result is that Canadian SMBs and Canadian subsidiaries of US companies end up running their accounting in some uneasy combination of US-centric software plus a Canadian bookkeeper who knows the workarounds, plus a spreadsheet for HST/GST returns, plus an annual scramble at T-slip time. This works, in the sense that the CRA doesn't come knocking. It doesn't work in the sense that anyone enjoys it or trusts the numbers.

This guide walks through the parts of Canadian compliance that matter day-to-day for an SMB or the controller of a Canadian sub, and what to look for in a system that handles it properly.

GST, HST, PST, QST — explained per province

Canada has a federal sales tax (GST) plus, in some provinces, additional provincial sales taxes. In a few provinces those have been harmonized into a single tax (HST). In Quebec, there's GST plus QST (similar to HST in mechanism but administered separately). In a handful of provinces, GST applies on its own. In a small number of provinces, GST applies plus a separate provincial PST that's not harmonized.

The result, as of 2026:

Province / TerritoryTax structureCombined rateNotes
AlbertaGST only5%No provincial sales tax
British ColumbiaGST + PST5% + 7% = 12%PST administered separately by BC
ManitobaGST + RST5% + 7% = 12%Manitoba calls its PST "Retail Sales Tax"
New BrunswickHST (harmonized)15%Single rate, federally administered
Newfoundland & LabradorHST (harmonized)15%Single rate
Northwest TerritoriesGST only5%
Nova ScotiaHST (harmonized)14%Reduced from 15% to 14% effective April 1, 2025
NunavutGST only5%
OntarioHST (harmonized)13%Single rate, federally administered
Prince Edward IslandHST (harmonized)15%Single rate
QuebecGST + QST5% + 9.975% = 14.975%QST administered by Revenu Québec, not CRA
SaskatchewanGST + PST5% + 6% = 11%PST administered separately by SK
YukonGST only5%

A few things to notice from this table that trip up US-built software.

First, sales tax in Canada is destination-based for most transactions. If you're in Ontario and you ship something to a customer in Alberta, you charge GST at 5%, not Ontario HST at 13%. A tool that doesn't know the customer's "place of supply" will either over-collect or under-collect. The CRA's rules on place of supply for services are nuanced — particularly for services delivered remotely — and good software bakes those rules in.

Second, BC, Manitoba, Saskatchewan, and Quebec have provincial sales taxes that are administered separately from the GST. That means you may need to register with the BC Ministry of Finance for PST, with Manitoba Finance for RST, with the Government of Saskatchewan for PST, and with Revenu Québec for QST. Each of those is a separate registration, a separate return, and a separate set of rules about who needs to register. Most US-built systems collapse these into one "provincial tax" field and lose the distinction.

Third, QST in Quebec looks like HST but it's not. QST is administered by Revenu Québec on a separate cadence and has its own rules around input tax refunds (the QST equivalent of ITCs). The mechanics are similar but the filings are different. Software that treats QST as just "HST in Quebec" will get you in trouble at return time.

Practical implication: if you sell across provinces, your system needs to determine the right tax code from the place of supply (typically the customer's shipping address for goods, or the customer's location for services), apply the correct rate, and track each component separately on the GL — so you can file the right return to the right authority.

Input Tax Credits (ITCs) — how to track them properly

The thing that makes GST/HST/QST different from a regular sales tax is the ITC mechanism. When you pay GST/HST on a business expense, you can usually recover that GST/HST as a credit against the GST/HST you collect from your customers. The net amount is what you remit to the CRA (and, for QST, to Revenu Québec).

Concretely: you sell $10,000 of services in a quarter and collect $1,300 in HST (Ontario). In the same quarter, you spend $4,000 on business expenses that include $520 of HST. Your HST return shows $1,300 collected, $520 in ITCs, and you remit $780.

The trick is that ITCs need to be tracked at the line level — not at the invoice level, not at the vendor level — because some expenses are eligible for full ITCs, some for partial (meals and entertainment are typically 50% recoverable for ITC purposes, for example), and some for none (personal-use expenses, certain memberships).

A good system records the ITC eligibility on the transaction as it's entered. A bad system makes the bookkeeper figure it out at return time. We've seen finance teams spend an entire week per quarter just untangling ITCs from a transaction history — particularly for clients who run on US-centric software that didn't capture the distinction.

What proper ITC tracking looks like

CRA Business Numbers — how the structure works

Every Canadian business has a 9-digit Business Number (BN) assigned by the CRA. But the BN itself is just the root. What matters for accounting is the program account suffixes that hang off it.

A BN looks like 123456789. Your various tax accounts with the CRA are extensions of this:

The trailing number (0001, 0002, etc.) lets you have multiple accounts of the same type. A holding company with several operating subs might have multiple RT accounts for different GST registrations.

QST in Quebec uses a different number entirely — a 10-digit Quebec Enterprise Number (NEQ) plus a TQ file number — administered by Revenu Québec, not the CRA. So a Quebec entity has both a CRA BN and a separate Revenu Québec registration.

For accounting software, the implication is that the system needs to model these as proper program accounts attached to each legal entity, not as a single tax ID field. Otherwise you can't file separate returns to separate authorities, and you can't keep track of which entity is on the hook for which filing.

T4A vs T5 vs T5018 — who gets which

Canadian information slips are the rough equivalent of US 1099s, but they're more granular. The CRA cares deeply about which slip you issue for which type of payment.

SlipWhat it's forWho issues itThreshold / trigger
T4Employment income (salary, wages)EmployersAny amount
T4ASelf-employment income, fees for services, scholarships, pensionAnyone paying a contractor for services$500+ in a calendar year (some categories)
T5Investment income (dividends, interest)Corporations paying dividends or interest$50+ in interest; any amount for dividends
T5018Payments to subcontractors in constructionConstruction industry payers$500+ per subcontractor per year
T4A-NRPayments to non-residents for services rendered in CanadaAnyone paying a non-resident contractor for Canadian servicesAny amount; withholding may apply

The most common confusion is T4A vs T5018 for contractors. The rule of thumb: T5018 is specifically for the construction industry (payments by construction businesses to subcontractors for construction services). For every other industry, contractor payments go on a T4A. If you're a software company paying a 1099-equivalent contractor for development work, that's a T4A — not a T5018.

Filing deadlines: T4 and T4A are due by the last day of February following the calendar year. T5018 has a six-month window after your fiscal year-end (which for construction businesses on a calendar year means June 30). T5 is due by the last day of February. T4A-NR is due by the last day of March.

The system requirement is that your software can correctly classify each payment, accumulate the totals through the year, and generate the slip at year-end — ideally with electronic filing to the CRA. A system that requires you to manually identify which payments need which slip is going to cause you to miss things.

Payroll deductions — CPP, EI, and income tax withholding

If you have employees in Canada, you're a withholding agent. Every paycheque needs to deduct:

For VeloLedger customers, all of this is handled by VeloPulse (our HRIS/payroll product) and the resulting GL entries flow into VeloLedger automatically via MCP. The employer portion of CPP and EI lands as a payroll burden expense; the employee withholdings sit in liability accounts until remitted to the CRA (typically monthly or quarterly depending on remitter classification).

If you're running VeloLedger without VeloPulse, you can integrate with most Canadian payroll providers (Wagepoint, Payment Evolution, ADP Canada, etc.) and the same GL pattern applies — the system just needs to recognize the payroll JE and post the right accruals at month-end. See the month-end close checklist for how the payroll accrual fits into Day 3.

Bill 96 — what it means for Quebec entities

If you have a legal entity in Quebec — even just a sales office — Bill 96 (formally, an Act respecting French, the official and common language of Québec, in force since 2022 with provisions phased in through 2025) is relevant to how you operate. The accounting-specific implications are narrower than the law overall, but they do show up.

For accounting software, the practical implication is that your system needs to produce French-language invoices, statements, and pay slips for Quebec customers and employees. VeloLedger supports bilingual document generation; many US-built tools do not.

Year-end CRA filings — the calendar

The Canadian compliance calendar is busy. Here's the typical year for a corporation on a calendar fiscal year:

DeadlineFilingFiled with
Last day of FebruaryT4 slips and summary; T5 slips and summary; T4A slips and summaryCRA (and Revenu Québec for Quebec employees: RL-1, RL-3)
Last day of MarchT4A-NR slips and summary; NR4 (non-resident withholding)CRA
Within 6 months of fiscal year-endT2 Corporate Income Tax ReturnCRA
Within 6 months of fiscal year-endCO-17 (Quebec corporate income tax)Revenu Québec
Within 6 months of fiscal year-endT5018 (construction industry)CRA
Monthly / quarterly / annually (varies)GST/HST return (frequency depends on revenue)CRA
Monthly / quarterly / annually (varies)QST return (for Quebec)Revenu Québec
Monthly / quarterly / annually (varies)PST or RST return (for BC, Manitoba, Saskatchewan)Province
15th of each month (or quarterly for small remitters)Payroll source deductions remittanceCRA + Revenu Québec for Quebec

Of these, the slips at end of February and the GST/HST/QST returns are the items where software does most of the work. The T2 and CO-17 are typically prepared by an external accountant from your year-end trial balance, but the cleaner your GL, the cheaper that engagement will be.

The honest take: if you're a Canadian SMB or a Canadian sub of a US company, you do not have to live with US-centric software that treats your country as an afterthought. The compliance requirements are knowable, well-documented, and stable — there's no reason a modern accounting platform shouldn't handle them as first-class concerns.

Built for Canada from day one

GST, HST, PST, QST, ITCs, T-slips, BN program accounts, and Bill 96 — all native. See how VeloLedger handles your jurisdiction in a 15-minute walkthrough.

Book a demo