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

Canadian accounting compliance means handling GST/HST/PST/QST by place of supply, tracking input tax credits at the line level, filing a GST34 return that reconciles to your general ledger, issuing the right information slips (T4A, T5, T5018), and mapping your accounts to T2 GIFI codes for corporate tax. US-built software tends to treat all of this as an afterthought, and in an agentic era where every platform now ships an AI assistant, the gap is less about features and more about whether the tool understands the Canadian tax model at all — and whether a human stays in control of what gets posted.

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:

VeloLedger handles payroll through partner integrations rather than running payroll itself. It connects to Canadian payroll providers — Wagepoint, Humi, Payment Evolution, ADP Canada, and others — and the resulting GL entries flow into VeloLedger. 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).

In keeping with how the rest of the platform works, the AI can draft the month-end payroll accrual into the review queue, but a person approves before it posts — agents draft, humans post. 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.

Frequently asked questions

What sales tax does my business charge on an out-of-province sale?

For most transactions, Canadian sales tax is destination-based: you charge the rate for the customer's place of supply, not your own. Ship a good from Ontario to Alberta and you charge 5% GST, not Ontario's 13% HST. Accounting software has to determine the tax code from the customer's shipping address (for goods) or location (for services) and apply the right combination.

What is the difference between GST/HST, PST, and QST for accounting?

GST/HST is recoverable through input tax credits, so it should sit in a separate "GST/HST Recoverable" account. PST and Manitoba's RST are true taxes on the buyer and are not recoverable, so they must not be proposed as ITCs. QST works like HST mechanically but is administered by Revenu Québec on a separate return with its own input tax refund rules — treating it as "HST in Quebec" will cause filing errors.

What is a GST34 and does VeloLedger produce one?

The GST34 is the CRA's GST/HST return. VeloLedger produces a GST34-ready return that reconciles line-for-line to the general ledger and draws its ITC total directly from the GST/HST Recoverable balance, so the return ties out without a separate spreadsheet.

What is T2 GIFI and why does it matter?

GIFI (General Index of Financial Information) is the CRA's standardized set of codes for reporting financial statement line items on the T2 corporate income tax return. Mapping your chart of accounts to GIFI codes — which VeloLedger does natively — means your year-end trial balance drops straight into T2 preparation, lowering your accountant's fee.

Does VeloLedger keep Canadian data in Canada?

Yes. VeloLedger hosts Canadian customer data in AWS Canada (ca-central-1), with tenant isolation and an optional self-hosting path, which helps organizations with data-residency requirements.

Built for Canada from day one

GST34, HST, PST, QST, ITCs, T4A slips, BN program accounts, T2 GIFI mapping, and Bill 96 bilingual documents — with data resident in AWS Canada. See how VeloLedger handles your jurisdiction in a 15-minute walkthrough.

Book a demo