Payment Tools
Connecting Bitcoin Payments to Canadian Accounting Software
How Canadian businesses can record bitcoin receipts in QuickBooks Online, FreshBooks, and Sage 50, capture CRA-required fields, and use Koinly or CoinLedger...

Accepting bitcoin is one thing. Getting those receipts into your bookkeeping without creating a compliance headache for the Canada Revenue Agency is another matter entirely. Most accounting platforms used by Canadian businesses were built around fiat currency and bank feeds, so bitcoin income does not slot in automatically. The good news is that the workarounds are straightforward once you know what the CRA actually wants you to track and which tools can help you get there.
Why Standard Canadian Accounting Software Does Not Handle BTC Natively
QuickBooks Online, FreshBooks, and Sage 50 Canada are the three platforms most Canadian small businesses use for day-to-day bookkeeping. None of them treat bitcoin as a native currency in the way they treat USD or EUR. There are a few reasons for this.
Bitcoin balances live in wallets and on exchanges, not in bank accounts with open banking feeds. The major Canadian accounting platforms pull data from financial institutions that participate in bank feed connections. A bitcoin wallet at a self-custody address or even a processor like OpenNode or BTCPay Server does not transmit data in the same format as a TD Business account.
Beyond the technical feed issue, there is a valuation problem. The CRA requires that you record bitcoin transactions at their Canadian dollar fair market value on the date of receipt. That value changes by the minute. An accounting platform that imports a bank feed line item for $500 is dealing in settled, fixed numbers. A platform trying to import a bitcoin receipt would need to know the BTC amount, pull a CAD price from a recognized exchange at the exact time of the transaction, and convert on the fly. That capability simply is not built into these tools yet.
The result is that most Canadian businesses accepting bitcoin end up recording income manually, or they use a third-party crypto bookkeeping layer to handle the conversion and then export data into their primary accounting software.
What Fields the CRA Requires You to Capture
Before choosing a recording method, it helps to understand what data you actually need. For each bitcoin receipt, you should be capturing several pieces of information to satisfy CRA documentation standards.
The transaction date is foundational. The CRA taxes bitcoin income in the year it is received, and the cost basis of any BTC you hold from that point forward starts on that date.
The BTC amount received must be recorded with enough decimal places to be accurate. Bitcoin transactions frequently involve amounts like 0.00234 BTC rather than round numbers.
The CAD fair market value at the time of receipt is what gets recorded as income. For a business selling goods or services for bitcoin, this is the revenue figure. For the CRA, it is also the cost basis you will use if you later sell or spend that bitcoin. You need a defensible source for this value, such as a spot price from a recognized Canadian or major international exchange at the time of the transaction. Keeping a note of which exchange rate source you used adds another layer of documentation.
The exchange rate source should be logged alongside the transaction. The CRA does not mandate a specific source, but it expects consistency. If you use the Bank of Canada noon rate, use it every time. If you use a major exchange average, use the same one. Mixing sources between transactions creates confusion if your records are ever reviewed.
You will also want to capture any transaction fees paid. Fees paid to a payment processor or network fees paid on-chain may affect your income calculation and your cost basis.
For more detail on what to keep and for how long, the guide on recordkeeping for bitcoin payments at tax time covers the CRA's documentation expectations specifically for Canadian businesses.
Recording Bitcoin Receipts Manually in QuickBooks Online, FreshBooks, and Sage 50
Once you have the data fields above, the actual entry in your accounting software is a manual step that treats the bitcoin receipt as a foreign-currency or barter-equivalent transaction in CAD.
QuickBooks Online does not have a bitcoin currency option, but you can record bitcoin income as a standard sales receipt or invoice payment denominated in CAD. When a customer pays an invoice in bitcoin, you mark the invoice as paid and enter the CAD fair market value as the payment amount. The BTC amount and the exchange rate source can go into the memo or notes field. Some bookkeepers create a dedicated bank-type account in QBO called something like "Bitcoin Wallet" or "BTC Clearing" to track the flow of bitcoin separately from CAD bank accounts. Each receipt credits that account at the CAD FMV, and transfers to a CAD account are recorded when you convert.
FreshBooks handles bitcoin in a similar way. You can create an invoice in CAD and record the payment at the CAD equivalent of what you received in bitcoin. The platform does not natively hold bitcoin balances, so you are always recording the CAD value. Adding a note to the payment record about the BTC amount and rate source keeps the underlying data accessible without requiring a separate system.
Sage 50 Canada has slightly more robust multi-currency handling than the cloud platforms, but bitcoin is not a recognized currency code within it. The practical approach is the same: record the transaction in CAD using the fair market value at receipt, and use a memo or custom field to log the BTC amount and source rate. Sage 50's audit trail features make it a reasonable environment for this kind of manual supplementary notation.
In all three cases, the accounting software is functioning as the income ledger and the tax-year record, while the detailed bitcoin transaction data (BTC amount, wallet address, exchange rate) lives in a supplementary log. A spreadsheet or a dedicated crypto bookkeeping tool can serve as that supplementary layer.
If you are using an automated payment processor that converts bitcoin to CAD before it hits your bank account, the accounting entry becomes simpler. The auto-converting bitcoin to CAD guide explains how processors like Bull Bitcoin Business and OpenNode handle settlement, which affects how you categorize the receipt.
Using Koinly or CoinLedger to Bridge the Gap
For businesses with a meaningful volume of bitcoin transactions, manual entry becomes time-consuming and error-prone. Third-party crypto bookkeeping platforms exist specifically to automate the conversion and categorization step, and two of the most commonly used by Canadian businesses are Koinly and CoinLedger.
Both tools connect to wallets and exchanges via API or CSV import. You feed them your transaction history, and they pull historical CAD prices for each transaction, calculate your income at the time of receipt, and track your adjusted cost basis for any bitcoin you hold. The CRA uses an adjusted cost base method for capital gains on crypto, so having a tool that maintains running ACB calculations is useful if you hold BTC rather than converting immediately.
The export functionality is where these tools connect to your accounting software. Koinly and CoinLedger can generate reports formatted for import into QuickBooks Online and other platforms. The export typically includes a journal entry file or a transaction CSV that maps bitcoin income to your revenue accounts. You still need to confirm the account mapping matches your chart of accounts in QBO or Sage, but the volume of manual data entry drops significantly.
Neither Koinly nor CoinLedger is a CRA-approved filing tool in the way that T2 software is. They produce reports and data exports that you or your accountant then use within your accounting or tax software. Their accuracy depends on the quality of the transaction data you feed in, so gaps in your import history can create reconciliation problems. A qualified accountant familiar with crypto bookkeeping in Canada can review the outputs before they flow into your financial statements.
For context on how the CRA expects bitcoin income to be reported at tax time, the guide on how to report bitcoin income to the CRA walks through the reporting mechanics that sit downstream of your bookkeeping.
When you are choosing a payment processor, the level of reporting detail it provides also affects your bookkeeping workflow. Some processors log timestamps, amounts, and exchange rates in a format that Koinly or CoinLedger can import directly. The best bitcoin payment processors for Canadian businesses compares what major options provide on the reporting side.
Frequently Asked Questions
Does the CRA accept QuickBooks records as sufficient documentation for bitcoin income?
The CRA does not specify which accounting software you must use. What it requires is that your records show the date, amount, and CAD value of each transaction, along with a reliable source for the exchange rate used. Records in QuickBooks, Sage, FreshBooks, or a spreadsheet are all acceptable as long as they contain the required information and are kept for at least six years. The accounting software is the container; the completeness of the data inside it is what matters.
Do I need to track bitcoin I receive and then hold, separately from bitcoin I convert to CAD immediately?
Yes, these create different tax situations. Bitcoin received as income is taxed as income at the time of receipt at its CAD FMV. If you hold that bitcoin and later sell or spend it, you may also have a capital gain or loss based on the difference between the original FMV (your cost basis) and the value at the time of disposition. Businesses that convert to CAD immediately through a processor simplify this, since there is no holding period and typically no separate capital gain to track. Rules in this area can change, so confirming the current treatment with a tax professional who handles crypto is worthwhile.
Can I use the Bank of Canada exchange rate for USD instead of a BTC/CAD rate?
The Bank of Canada publishes exchange rates for major fiat currencies, not for bitcoin. For bitcoin, you need a spot price from a recognized exchange at or near the time of the transaction. Documenting which exchange you used and why you consider it reliable is part of sound recordkeeping. Some accountants suggest using an average of several major exchange prices to reduce reliance on any single source, but there is no CRA-mandated method. Consistency across all your transactions matters more than which specific source you pick.
Is Koinly's ACB calculation accepted by the CRA?
Koinly and similar tools calculate adjusted cost base using the same method the CRA describes for crypto assets: tracking the running average cost of all units held. The calculation itself is consistent with CRA guidance, but the tool's output is only as accurate as the transaction data you import. Gaps, duplicates, or missing transfers between wallets can distort the ACB. Having an accountant review the Koinly report before using it for tax purposes is the recommended practice, not a substitute for professional review.
What happens if I invoiced in BTC but my accounting software only works in CAD?
You record the invoice in CAD at the BTC equivalent value on the invoice date, then record the payment in CAD at the BTC equivalent value on the payment date. If the bitcoin price moved between invoice and payment, there may be a small foreign exchange gain or loss to record. Most small business bookkeepers treat this as a foreign exchange adjustment line item. The BTC amounts and dates go into your transaction log so you have the underlying detail if questions arise later.