Post the GST/HST you charge to Liabilities:GST-HST:Collected and the GST/HST you pay on business purchases to Liabilities:GST-HST:ITC. At the end of each reporting period, one query adds the two accounts. The result is your net tax: the amount you remit to the Canada Revenue Agency (CRA), or claim back as a refund.
This guide builds one quarter of books for a consulting business in Ontario, where the HST rate is 13%. The quarter has an HST sale, two purchases with HST, and a sale to a US client invoiced in US dollars. Every figure below comes from running the ledger.
The guide assumes you are registered for GST/HST. You must register once your revenue from taxable supplies, worldwide and including associated businesses, passes $30,000 in one calendar quarter or over four consecutive calendar quarters. Below that threshold you are a small supplier, and registration is optional.
1. Set up the GST/HST accounts
Use two liability accounts:
| Account | What it holds | Usual balance |
|---|---|---|
Liabilities:GST-HST:Collected | GST/HST you charged on sales | Negative: tax you owe the CRA |
Liabilities:GST-HST:ITC | GST/HST you paid on business purchases, claimed as input tax credits (ITCs) | Positive: it reduces what you owe |
The ITC account is a contra account: it sits beside the tax you collected and offsets it. Two accounts give you the two totals the return asks for, without filtering postings by sign. A single Liabilities:GST-HST account is simpler, because its balance is the net tax itself. But you then have to separate its positive and negative postings to fill in the return.
Record income and expenses without the tax. The tax goes to the two GST/HST accounts, so your income statement shows what you earned and spent, not the money you hold for the CRA.
Here is the whole quarter. Save it as books.beancount. The next three sections walk through its entries.
option "operating_currency" "CAD"
2026-01-01 open Assets:Bank:Chequing CAD
2026-01-01 open Assets:Receivable:USD USD
2026-01-01 open Liabilities:GST-HST:Collected CAD
2026-01-01 open Liabilities:GST-HST:ITC CAD
2026-01-01 open Income:Consulting CAD
2026-01-01 open Income:Foreign-Exchange CAD
2026-01-01 open Expenses:Hosting CAD
2026-01-01 open Expenses:Office CAD
2026-01-15 * "Ontario client" "Consulting, invoice 101, HST at 13%"
Assets:Bank:Chequing 2260.00 CAD
Income:Consulting -2000.00 CAD
Liabilities:GST-HST:Collected -260.00 CAD
2026-02-03 * "Hosting provider" "Annual hosting plan"
Expenses:Hosting 400.00 CAD
Liabilities:GST-HST:ITC 52.00 CAD
Assets:Bank:Chequing -452.00 CAD
2026-02-20 * "US client" "Consulting, invoice 102, zero-rated export"
Assets:Receivable:USD 1000.00 USD @ 1.3600 CAD
Income:Consulting -1360.00 CAD
2026-03-05 * "Office supply store" "Printer and paper"
Expenses:Office 150.00 CAD
Liabilities:GST-HST:ITC 19.50 CAD
Assets:Bank:Chequing -169.50 CAD
2026-03-20 * "US client" "Payment of invoice 102, converted by the bank"
Assets:Bank:Chequing 1380.00 CAD
Assets:Receivable:USD -1000.00 USD @ 1.3600 CAD
Income:Foreign-Exchange -20.00 CAD
2026-04-30 * "Receiver General for Canada" "GST/HST return, 2026-01-01 to 2026-03-31"
Liabilities:GST-HST:Collected 260.00 CAD
Liabilities:GST-HST:ITC -71.50 CAD
Assets:Bank:Chequing -188.50 CAD
2026-05-01 balance Liabilities:GST-HST:Collected 0.00 CAD
2026-05-01 balance Liabilities:GST-HST:ITC 0.00 CAD2. Record HST on a sale and an ITC on a purchase
The 2026-01-15 sale is 2000.00 CAD of consulting for a client in Ontario. HST at 13% adds 260.00 CAD, so the client pays 2260.00 CAD. Income gets 2000.00 CAD, and the 260.00 CAD goes to Liabilities:GST-HST:Collected.
The 2026-02-03 hosting plan costs 400.00 CAD plus 52.00 CAD of HST. The expense is 400.00 CAD, and the 52.00 CAD is an ITC. The 2026-03-05 office purchase works the same way: 150.00 CAD plus 19.50 CAD of HST.
Claim an ITC only to the extent that a purchase is for use in your commercial activities. For a purchase that is partly personal, post only the business share of the tax to the ITC account.
The rate depends on the province where you make the supply. It ranges from 5% GST to 15% HST, so check the CRA's GST/HST rates by province for each sale outside Ontario.
3. Invoice a US client in CAD books
On 2026-02-20 the business invoices a US company for 1000.00 USD. Many services supplied to a non-resident business are zero-rated exports. GST/HST applies at 0%, so the invoice has no tax line. Zero-rating has conditions: for example, it does not apply to a service supplied to an individual while that individual is in Canada. Confirm your case in the CRA guidance on GST/HST on imports and exports.
A zero-rated sale still belongs on your return. Line 101 reports your revenue for the period, and it includes zero-rated sales. You can also claim ITCs on purchases you make for zero-rated sales.
The receivable posting is 1000.00 USD @ 1.3600 CAD. The @ price annotation tells Beancount what the US dollars were worth in Canadian dollars on the invoice date. The transaction then balances in CAD: income is 1360.00 CAD. For income tax, foreign amounts convert at the Bank of Canada rate for the day the amount arises, so use that day's rate.
On 2026-03-20 the client pays. The bank converts the 1000.00 USD at 1.3800, so 1380.00 CAD lands in chequing. The receivable leaves the books at the invoice rate, -1000.00 USD @ 1.3600 CAD, which is 1360.00 CAD. The 20.00 CAD difference is a realized foreign-exchange gain, posted to Income:Foreign-Exchange. If the US dollar had fallen instead, that posting would be positive: a loss. Neither amount touches the GST/HST accounts.
4. Close the period and query the net tax
This business files quarterly, so its first reporting period runs from 2026-01-01 to 2026-03-31. Check the ledger, then run two queries over that period:
bea --file books.beancount check
bea --file books.beancount query "SELECT account, sum(position) AS total WHERE account ~ '^Liabilities:GST-HST' AND date >= 2026-01-01 AND date < 2026-04-01 GROUP BY account ORDER BY account"
bea --file books.beancount query "SELECT sum(position) AS net_tax WHERE account ~ '^Liabilities:GST-HST' AND date >= 2026-01-01 AND date < 2026-04-01"bea check reports no errors. The first query returns two rows: Liabilities:GST-HST:Collected at -260.00 CAD and Liabilities:GST-HST:ITC at 71.50 CAD. They are the GST/HST you collected, for line 103 of the return, and your ITCs, for line 106.
The second query nets them: -188.50 CAD, which is 260.00 minus 71.50. That is your net tax for line 109. The minus sign is the usual liability sign: you owe 188.50 CAD. A positive result means your ITCs were larger than the tax you collected, and the return claims a refund.
The date filter keeps the period exact. The payment on 2026-04-30 falls outside it, so the query still reports the quarter after you pay.
A quarterly return and its payment are due one month after the period ends, so this one is due on April 30. The 2026-04-30 transaction records the payment. It brings both GST/HST accounts back to zero, and the two balance assertions on 2026-05-01 prove it.
Many small businesses report annually instead. For an annual period, widen the dates to your fiscal year. An annual return is generally due three months after the fiscal year ends. A sole proprietor with a December 31 year-end pays by April 30 and files by June 15.
5. If you use the quick method
The quick method is an election, made on Form GST74, for businesses whose annual taxable supplies, including GST/HST, are $400,000 or less. Businesses providing some services cannot use it, including legal, accounting, bookkeeping and tax-return preparation. You still charge 13% HST. Instead of netting collected tax against ITCs, you remit a fixed percentage of your HST-included sales: 8.8% of Ontario sales for a service business with a permanent establishment in Ontario. You claim ITCs only on capital purchases, such as computers and equipment. In the ledger, book operating expenses at their full HST-included price, because there is no ITC to split out. Keep posting the HST you charge to Liabilities:GST-HST:Collected. At the end of the period, pay the remittance from that account and move what remains to an income account, because the tax you keep under the quick method is income for income tax. You may also earn a 1% credit on the first $30,000 of eligible sales each year. Check the current rates in the CRA guide Quick Method of Accounting for GST/HST.
6. Keep the records the CRA asks for
Keep your books and the documents behind them for six years from the end of the year they relate to. Keep them at your place of business or your home in Canada, unless the CRA gives you written permission to keep them elsewhere. Electronic records count, as long as they stay readable.
Receipts must carry enough detail to support each ITC claim, and the detail grows with the total:
- Under $100: the supplier's business or trading name, the invoice date and the total amount.
- $100 to $499.99: also the supplier's GST/HST registration number and the tax charged, or a note that the price includes it.
- $500 or more: also your name, a description of what you bought and the payment terms.
Both purchases in the example are over $100, so their receipts need the supplier's registration number. Record it as transaction metadata, such as supplier_gst_hst: "123456789RT0001", so you can find it in an audit. The CRA's input tax credits page lists every requirement. Most businesses can still claim a missed ITC on a later return, within the CRA's four-year limit.
For year-end income tax steps, such as the T2125 statement for a sole proprietor, see Prepare taxes with Beancount country-by-country. For the rules behind each step, read the Canada articles on the blog.
Running a small business on Beancount? See Beancount.io for small business for hosted ledgers, Bank Sync and accountant collaboration.