
Jay Sen Lon
July 21, 2026

Most HST invoice coding errors don't come from carelessness. They come from workflows that weren't designed for how Canadian tax rules actually work. The rate on an invoice depends on where the supply occurred, not who sent it. A single invoice can carry multiple tax treatments across its line items. And Quebec operates under a completely separate dual-tax system that most automation tools collapse into a single wrong code. If your firm does any multi-province work, getting HST invoice automation right for Canada is worth understanding properly. That's exactly what this guide covers.
TLDR:
Canadian HST coding has a structural complexity that makes simple extraction tools inadequate for accurate coding.
The rate on an incoming Canadian invoice is not fixed to the supplier. A vendor shipping goods to Alberta charges 5% GST. That same vendor shipping to a client in Ontario charges 13% HST. New Brunswick pushes that to 15%. The delivery location changes the tax code, not the supplier relationship.
Beneath that, the coding decision also turns on supply type: taxable, zero-rated, and exempt supplies carry different treatment, and a single invoice can contain line items across more than one category. Whether the recipient is registered to claim input tax credits adds another variable.
Generic OCR captures what's printed on the page. It cannot validate whether the rate applied was correct given the delivery location or supply category. A rules-based tool that maps "this supplier equals this tax code" breaks the moment the ship-to location changes.
That gap between extraction and coding is where errors accumulate, and where firms doing multi-province work quietly slip up on ITCs they were entitled to claim.
Under the Excise Tax Act, every HST invoice you issue or receive needs specific fields present before you can claim an input tax credit (ITC). Missing even one field can trigger a denied claim during a CRA audit.
Here is what every compliant invoice must include:
AI tools can extract all of these fields automatically, but only if the underlying invoice actually contains them. If a supplier sends you a document missing the registration number or with an ambiguous service description, no amount of automation fixes that at the extraction stage. The gap needs to be caught before the invoice enters your workflow.
This is why review stays in the picture even with full HST invoice automation. The AI handles extraction and coding; a human confirms the required fields are present and the ITC is defensible.
Place-of-supply rules are where HST invoice coding stops being routine and starts requiring judgment. Canada's GST/HST framework assigns tax treatment based on where a supply is considered to have occurred, not simply where the supplier or buyer is located. For services and intangibles especially, the rules require you to identify the province where the recipient ordinarily resides or where the service is performed, then apply the correct rate accordingly.

The practical consequence is that two invoices from the same supplier can carry different tax codes depending on the client they relate to. A consulting firm billing an Ontario client charges 13% HST. The same firm billing a Manitoba client charges 5% GST plus 7% PST, which is not HST at all. If your coding workflow treats all invoices from a single supplier identically, you will produce errors on a routine basis.
This compounds in multi-provincial practices. Firms with clients across several provinces must maintain working knowledge of each province's participation status in the HST framework:
| Province / Territory | Tax Type | Rate | Invoice Coding Note |
|---|---|---|---|
| Ontario | HST | 13% | Single harmonized rate; one tax line |
| Nova Scotia | HST | 15% | Single harmonized rate; one tax line |
| New Brunswick | HST | 15% | Single harmonized rate; one tax line |
| Prince Edward Island | HST | 15% | Single harmonized rate; one tax line |
| Newfoundland & Labrador | HST | 15% | Single harmonized rate; one tax line |
| Quebec | GST + TVQ | 5% + 9.975% | Two separate tax lines required (TPS and TVQ); administered by different authorities |
| British Columbia | GST + PST | 5% + 7% | Split or exclude provincial component per chart of accounts |
| Manitoba | GST + PST | 5% + 7% | Split or exclude provincial component per chart of accounts |
| Saskatchewan | GST + PST | 5% + 6% | Split or exclude provincial component per chart of accounts |
| Alberta | GST only | 5% | No provincial sales tax; single federal tax line |
| Territories (YT, NT, NU) | GST only | 5% | No provincial sales tax; single federal tax line |
The highest-error area is cross-provincial professional services: legal, accounting, IT consulting, and marketing work where the place of supply is the recipient's location, not where the work physically happens. A Toronto-based web developer billing a client in Nova Scotia should charge 15% HST. If your staff applies Ontario's 13% rate by default because that's where the supplier sits, the input tax credit your client claims will be wrong.
Zero-rated and exempt supplies add another layer. Exports, certain financial services, and some medical supplies carry 0% GST/HST regardless of province. Applying any HST rate to these is an error in both directions: your client overclaims ITCs and the supplier's filing becomes inaccurate.
Getting place-of-supply right is not optional. The CRA's audit focus on ITC eligibility means that miscoded invoices create recoverable errors at best and reassessments at worst.
Quebec firms operate under a dual tax system that the rest of Canada doesn't face. Where other provinces deal with a single GST/HST registration, Quebec businesses and their accountants must track both TPS (taxe sur les produits et services, the provincial name for GST) and TVQ (taxe de vente du Québec, Quebec's own provincial sales tax), which are administered separately by two different authorities: the CRA for TPS and Revenu Québec for TVQ.
That separation creates a specific coding problem. When a supplier invoice arrives from a Quebec vendor, your chart of accounts needs distinct tax lines for each levy. Automated tools that were built for single-tax provinces will frequently produce mismatched tax lines, mapping TPS and TVQ fields to the wrong GST/QST codes entirely, or collapsing both into a single tax line that satisfies neither authority.
A few failure patterns come up consistently in bilingual Quebec accounting contexts:
The practical fix is making sure whatever tool you use can handle separate tax-line mapping per levy, learns your Quebec-specific chart of accounts codes after the first few corrections, and flags invoices where the TPS and TVQ amounts don't match the expected rates instead of silently passing them through.
Input tax credits (ITCs) are how Canadian businesses recover the HST they pay on business purchases. The CRA's rules are specific: to claim an ITC, your records must show the supplier's name, the GST/HST registration number, the invoice date, and the amount of tax paid on each line item. A lump-sum total does not satisfy this requirement. For a full breakdown of eligibility conditions, see the CRA's input tax credits guidance.
Most invoice processing tools extract header-level data only. You get the supplier name, the invoice date, and a grand total. That passes a basic bookkeeping check, but it does not give you what the CRA actually wants to see when it audits an ITC claim.

Line-item extraction changes what's recoverable. When every row on an invoice is captured separately, your firm can:
The downstream risk of header-only extraction is real. If an audit surfaces invoices where the tax coding doesn't match the underlying line items, the CRA can disallow those ITC claims entirely. The firm is then liable for the recovered credits plus interest.
Automating HST invoice coding at the line-item level is not a convenience feature. It's the difference between ITC claims that hold up and ones that don't.
When an invoice arrives, Tofu reads the full document: supplier name, invoice date, line items, and the tax fields that sit alongside each one. For Canadian invoices, those tax fields typically show a GST/HST registration number, a taxable amount, and a calculated tax total. Tofu extracts each of these and maps them to the corresponding codes in your chart of accounts.
The mapping step is where most manual coding time gets spent. A single supplier invoice might carry a mix of fully taxable, zero-rated, and exempt line items, each requiring a different HST treatment. Tofu reads the line-item detail and applies the correct tax code to each row, not one blanket code to the whole document.
Tofu learns from every correction you make. The first time an unfamiliar supplier comes through, you review and adjust. By the third invoice from that same supplier, the coding is already in memory.
On documents from suppliers Tofu has processed multiple times, accuracy improves noticeably within the first few weeks. Over time, the volume of invoices requiring any manual review drops considerably as the AI builds familiarity with your client mix, their supplier base, and your preferred coding patterns.
The result is a review queue, not a coding queue. You're checking work, not starting from scratch.
For reporting periods beginning January 1, 2024, all GST/HST registrants must file returns electronically, with narrow exceptions. CRA's invoice record requirements also specify that businesses retain all invoices and supporting GST/HST records for at least 6 years from the end of the relevant tax year.
These are two separate obligations, but one workflow failure can breach both. An invoice posted without its source document attached leaves the ITC claim without audit-ready backing. If the electronic return draws from incorrectly coded data, the error files with it.
Automation that attaches source documents to each transaction at the point of posting handles both at once. The original invoice stays tied to the coded record, and the structured data feeding your electronic return already reflects the correct GST/HST treatment from the moment the invoice was processed.
Before choosing an HST invoice automation tool, it helps to know what actually separates a good fit from a frustrating one, a question covered in depth in our roundup of invoice automation software for accounting firms. A few key areas to consider:
The best way to test any tool is on your actual documents, a messy 30-page supplier batch with mixed HST rates is more revealing than any demo.
Tofu connects directly to your existing workflow. You upload invoices through the web app, via email forwarding, or through a direct feed from your clients, and Tofu takes it from there.
For each invoice, Tofu reads every line item, maps it to your chart of accounts, applies the correct HST treatment (zero-rated, exempt, or taxable at 13% for Ontario, for example), and publishes the coded transaction directly to Xero or QuickBooks Online, see how Tofu compares on Xero invoice automation tools. No manual re-keying. No toggling between tabs.
The AI learns from your corrections. If you recode a line item in the first week, Tofu remembers that preference for every future invoice from that supplier. On documents from suppliers the AI has processed multiple times, accuracy improves noticeably within the first few weeks, and corrections made early reduce manual review considerably as volume grows.
Getting a new client live takes about 15 minutes. You connect your accounting software, map your chart of accounts once, and start uploading. Tofu picks up supplier patterns from your existing transaction history where available, which means it arrives with context already in place.
For Canadian firms, Tofu handles:
The result is that your staff reviews coded transactions instead of typing them. That review step still matters, and Tofu is built around it, not around removing it entirely.
"What used to take me 3-4 hours can be done in 30-60 minutes."
- Tammy Tan, Klozer
Most coding errors in Canadian multi-province work don't come from carelessness. They come from tools that treat all invoices from a supplier identically, regardless of where the supply actually landed. Line-item extraction, correct province mapping, and a system that learns your coding preferences are what separate ITC claims that hold up from ones that don't. If you want to test this on your own documents, you can book a demo here.
Header-only extraction captures the supplier name, date, and total, which is not enough for CRA-compliant ITC claims. Line-item extraction captures every row on the invoice separately, so mixed-supply invoices (where some items are taxable, some zero-rated, and some exempt) get coded correctly at the line level, not with one blanket tax rate applied to the whole document.
The correct HST rate depends on where the supply is considered to have occurred, not where your firm or the supplier is located, which means two invoices from the same supplier can carry different tax codes depending on the client they relate to. A tool that maps "this supplier equals this tax code" will produce errors the moment a cross-provincial transaction comes through, because the rate for Ontario (13%), Nova Scotia (15%), and Alberta (5% GST only) are all structurally different.
Yes. Tofu maps TPS and TVQ as distinct tax lines in your chart of accounts instead of collapsing them into a single combined figure, and it reads French-language invoice labels ("TPS/TVQ incluses," "taxes incluses au prix") that cause rules-based OCR tools to miss or misread the fields. After the first few corrections, the system learns your Quebec-specific tax codes and flags invoices where the TPS and TVQ amounts do not match the expected rates.
Test the tool on your real documents before anything else. A messy batch with mixed HST rates across provinces will reveal gaps that a demo never shows. Confirm whether the tool extracts at the line-item level (not header totals alone), whether it handles GST, HST, PST, and QST as separate codes in your chart of accounts, and whether it learns per-supplier coding preferences instead of applying the same rule on the 50th invoice as the 1st.
CRA requires businesses to retain all GST/HST invoices and supporting records for at least 6 years from the end of the relevant tax year, and all GST/HST registrants must now file returns electronically. Automation that attaches the source document to the coded transaction record at the point of posting covers both obligations at once, the original invoice stays tied to the structured data, so the ITC claim is audit-ready without a separate filing step.