Taxes & Rules
Bitcoin Recordkeeping for Taxes: What Canadians Need to Track
A practical guide to bitcoin recordkeeping for Canadian businesses and individuals: what to capture, how to organize it, and what CRA expects.

Good recordkeeping is the difference between a smooth tax season and a stressful one. For bitcoin payments, you need to capture a few specific data points at the time of each transaction — not months later when prices have moved and memory has faded.
The Canada Revenue Agency treats bitcoin as a commodity, not currency. That means every time you receive or spend it, you may have a taxable event on your hands. The records you keep (or don't) are what you'll lean on if CRA ever asks questions.
What CRA actually wants you to record
CRA's general guidance on cryptocurrency recordkeeping asks for the same things it asks for in any business transaction, with one extra layer on top. You need the Canadian dollar value at the time of the transaction, not just the amount of bitcoin.
For each transaction, record:
- Date of the transaction
- Amount of bitcoin received or sent (to full precision)
- Fair market value in CAD at the time (this is what you'll use for income and cost basis calculations)
- Who you transacted with (a name or wallet address, as applicable)
- Purpose of the transaction (sale, purchase, payment for services, etc.)
- Any fees paid (exchange fees, network fees, processor fees)
The fair market value question is where most people get tripped up. CRA hasn't mandated a single source, but you should use a consistent, documented method: a reputable exchange's spot price at the time of the transaction, for instance. Pick one and stick with it. Switching methods mid-year to get a better tax outcome is exactly the kind of thing that doesn't hold up under audit.
Businesses accepting bitcoin as payment
If your business accepts bitcoin from customers, the CRA position is straightforward: the value of what you received, in CAD at the moment of receipt, is business income. You report it the same way you'd report a cash payment.
That means your accounting records need to capture the CAD equivalent on the invoice date (or the date funds cleared, depending on your revenue recognition method). Most point-of-sale processors that support bitcoin will give you a transaction report with the CAD amount already converted. Keep those reports. They're your source documents.
A few things to layer in for business use:
- Keep a separate transaction log for crypto payments, even if your accounting software records them. A plain spreadsheet with the columns above works fine as a backup record.
- If you later sell or convert the bitcoin you received, you'll need your original cost basis (the CAD value when you received it) to calculate any capital gain or loss. This is where bitcoin tax records become essential months after the original transaction.
- GST/HST still applies to the underlying sale of goods or services. Accepting bitcoin doesn't change your collection obligations.
Individuals tracking bitcoin payments
For individuals who receive bitcoin (from freelance work, selling goods, or other activities), the records are nearly the same. The main question is whether the income is business income or a capital gain, which depends on your specific situation and how CRA classifies your activity.
Either way, you need the CAD value at the time you received the bitcoin. If you later sell it, you also need the CAD value at the time of disposal.
One thing that catches people off guard: if you receive bitcoin as payment and then spend it on something else, that spending is also a disposition. The difference between what you paid (your cost basis, in CAD) and what it was worth when you spent it is a capital gain or loss. You need records for both ends of that chain.
For more on how these transactions get classified and taxed, the bitcoin taxes for Canadian businesses guide covers the mechanics in more detail.
A simple recordkeeping template
You don't need specialized software to start. A spreadsheet with these columns covers the basics:
| Column | What to enter |
|---|---|
| Date | YYYY-MM-DD format |
| Type | Received / Sent / Fee |
| BTC amount | e.g., 0.00412 |
| CAD value at time | e.g., $312.44 |
| Exchange rate source | e.g., Coinbase spot, Kraken closing price |
| Counterparty | Customer name, wallet address, or merchant |
| Purpose | Invoice #, description of goods/services |
| Notes | Anything unusual about the transaction |
Keep this updated at the time of each transaction, not in batches. Retroactively reconstructing prices is tedious and error-prone, and CRA expects records to be contemporaneous.
Software and tools worth knowing about
Several crypto bookkeeping tools are designed to pull transaction history from exchanges and wallets, calculate cost basis, and produce tax reports in formats CRA might recognize. Koinly and Cointracker are two that have Canadian tax support. Your accountant may prefer a specific format, so check before committing to a tool.
If you use accounting software like QuickBooks or Wave, you can enter bitcoin transactions manually using the CAD values from your transaction log. Some accountants prefer this approach because it keeps everything in one ledger.
No tool replaces your raw transaction records, though. Whatever software you use, also keep the original exchange statements or processor reports. Those are your audit trail.
How long to keep records
CRA's standard requirement is six years from the end of the tax year to which the records relate. If you're a corporation, the rules differ slightly. When in doubt, keep records longer — bitcoin transactions from several years ago can still affect cost basis calculations today.
If you stop accepting bitcoin or close a business, you still need to retain records for the applicable period. Don't delete wallet histories or exchange statements just because you're no longer active.
FINTRAC rules may also impose separate recordkeeping obligations depending on your business type and transaction volumes. Those requirements can overlap with (and in some cases exceed) what CRA asks for.
FAQ
Do I need to record every single bitcoin transaction, even small ones?
Yes. CRA doesn't have a de minimis threshold for crypto transactions. A $4 bitcoin payment for a coffee is still a disposition with a potential capital gain. The practical reality is that small transactions add up, and your records need to be complete.
What if I don't know the exact CAD value at the time of a past transaction?
You'll need to reconstruct it as best you can using historical price data from exchanges. Many exchanges allow you to export historical trade data. For gaps, use a reputable crypto price history tool and document your methodology. Incomplete records put you in a weaker position if CRA questions your return, so going forward, capture the value at the time.
Can I use the bitcoin price in USD and convert it to CAD?
Use CAD directly if possible. If a Canadian exchange's CAD price is available for that moment, use that. If you must convert from USD, use the Bank of Canada's published exchange rate for that date and document the conversion. Consistency matters more than which approach you use.
Does my accountant need the raw transaction data or just the totals?
Both, ideally. Your accountant will want a summary for preparing the return, but CRA may want the underlying records during an audit. Give your accountant a clean summary and keep the raw export files yourself.
Are there penalties for poor crypto bookkeeping?
CRA can assess penalties for failure to keep adequate books and records. More practically, without records you may be unable to substantiate your cost basis, which means you could end up paying tax on the gross proceeds of a sale rather than just the gain. Good records protect you.
This article is for educational purposes only. It is not financial, tax, or legal advice. CRA rules and FINTRAC requirements change, so confirm current guidance with a qualified accountant or tax lawyer before making decisions about your specific situation.