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 / Territory | Tax structure | Combined rate | Notes |
|---|---|---|---|
| Alberta | GST only | 5% | No provincial sales tax |
| British Columbia | GST + PST | 5% + 7% = 12% | PST administered separately by BC |
| Manitoba | GST + RST | 5% + 7% = 12% | Manitoba calls its PST "Retail Sales Tax" |
| New Brunswick | HST (harmonized) | 15% | Single rate, federally administered |
| Newfoundland & Labrador | HST (harmonized) | 15% | Single rate |
| Northwest Territories | GST only | 5% | |
| Nova Scotia | HST (harmonized) | 14% | Reduced from 15% to 14% effective April 1, 2025 |
| Nunavut | GST only | 5% | |
| Ontario | HST (harmonized) | 13% | Single rate, federally administered |
| Prince Edward Island | HST (harmonized) | 15% | Single rate |
| Quebec | GST + QST | 5% + 9.975% = 14.975% | QST administered by Revenu Québec, not CRA |
| Saskatchewan | GST + PST | 5% + 6% = 11% | PST administered separately by SK |
| Yukon | GST only | 5% |
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
- Every vendor bill has a tax code per line (Full ITC, 50% ITC, No ITC, etc.)
- The GL splits the tax portion into a separate "GST/HST Recoverable" account from day one
- At return time, the GST/HST Recoverable balance is the ITC total — it flows straight into a GST34-ready return that reconciles line-for-line to the GL, with no spreadsheet reconciliation needed
- QST is tracked separately as "QST Recoverable" with its own ITR (Input Tax Refund) rules
- PST and RST are not recoverable (they're true taxes on the buyer) — system should not propose them as ITCs
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:
- 123456789 RT0001 — GST/HST account (RT = Registrant, GST/HST)
- 123456789 RP0001 — Payroll account (RP = Payroll deductions)
- 123456789 RC0001 — Corporate income tax (RC = Corporation income tax)
- 123456789 RM0001 — Import/export account (RM = Import/export)
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.
| Slip | What it's for | Who issues it | Threshold / trigger |
|---|---|---|---|
| T4 | Employment income (salary, wages) | Employers | Any amount |
| T4A | Self-employment income, fees for services, scholarships, pension | Anyone paying a contractor for services | $500+ in a calendar year (some categories) |
| T5 | Investment income (dividends, interest) | Corporations paying dividends or interest | $50+ in interest; any amount for dividends |
| T5018 | Payments to subcontractors in construction | Construction industry payers | $500+ per subcontractor per year |
| T4A-NR | Payments to non-residents for services rendered in Canada | Anyone paying a non-resident contractor for Canadian services | Any 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:
- CPP (Canada Pension Plan) — both employee and employer contributions, calculated against pensionable earnings up to the annual YMPE (Year's Maximum Pensionable Earnings) plus the second-tier CPP2 contribution against earnings between the YMPE and the year's upper earnings limit (YAMPE), both indexed annually by the CRA
- QPP (Quebec Pension Plan) — Quebec equivalent for employees working in Quebec; slightly different rates and administered by Retraite Québec
- EI (Employment Insurance) — both employee and employer contributions; lower rate in Quebec because Quebec has its own QPIP (parental insurance plan)
- Federal income tax withholding — based on TD1 form and CRA payroll deduction tables
- Provincial income tax withholding — provincial TD1 and provincial tables; Quebec employees file Quebec source deductions separately via Revenu Québec
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.
- Invoices and receipts — must be available in French. You can issue bilingual invoices, but the French version must be at least as prominent as English.
- Employment-related documents — offer letters, employment contracts, internal communications, and pay slips for Quebec employees must be in French (or bilingual with French given equal prominence).
- Vendor contracts — pre-printed contracts of adhesion must be in French; negotiated contracts can be in another language if both parties expressly agree.
- Business name and corporate filings — your business name in Quebec must include a French descriptive component, and registrations with Revenu Québec / the Registraire des entreprises must be in French.
- Compliance threshold — businesses with 25+ employees in Quebec must register with the Office québécois de la langue française (OQLF) and demonstrate francisation; the threshold was lowered from 50 to 25 employees in 2025.
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:
| Deadline | Filing | Filed with |
|---|---|---|
| Last day of February | T4 slips and summary; T5 slips and summary; T4A slips and summary | CRA (and Revenu Québec for Quebec employees: RL-1, RL-3) |
| Last day of March | T4A-NR slips and summary; NR4 (non-resident withholding) | CRA |
| Within 6 months of fiscal year-end | T2 Corporate Income Tax Return | CRA |
| Within 6 months of fiscal year-end | CO-17 (Quebec corporate income tax) | Revenu Québec |
| Within 6 months of fiscal year-end | T5018 (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 remittance | CRA + 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