For Business
How to Price Your Products When You Accept Bitcoin
A plain-English guide to Bitcoin pricing strategies for Canadian businesses, covering exchange rate approaches, CAD anchoring, payment tools, and CRA record-...

Bitcoin's value moves constantly. A price that looks right in the morning can look wrong by afternoon. That volatility is the central challenge for any Canadian business that wants to accept bitcoin without absorbing surprise losses or overcharging customers.
The good news: most businesses do not actually price in bitcoin at all. They price in Canadian dollars, then let the system do the conversion at checkout. This guide explains how that works, what the alternatives look like, and what to keep in mind around exchange rates, CRA record-keeping, and practical tools.
Why Pricing in CAD First Usually Makes Sense
When people talk about "bitcoin pricing," they often mean one of two different things:
- Displaying prices in CAD and converting to BTC at checkout
- Displaying prices denominated in BTC (for example, 0.00021 BTC)
For most Canadian businesses, the first approach is the practical default. Your costs, your supplier invoices, your payroll, and your GST/HST obligations are all in Canadian dollars. Anchoring your retail prices in CAD means your margins stay predictable regardless of where bitcoin trades on any given day.
The second approach, listing prices directly in BTC, is rarely used outside of very specific contexts, such as digital goods marketplaces or platforms where the entire user base is already working in crypto. For a general retail or service business, BTC-denominated prices create confusion for customers who have to do mental math, and they require constant manual updates as the exchange rate shifts.
How the Exchange Rate Conversion Works at Checkout
When a customer pays with bitcoin and your prices are in CAD, something has to bridge the gap. The mechanism depends on which payment tool you use, but the general flow looks like this:
- You set your product price in CAD.
- The payment processor or wallet app fetches a live BTC/CAD exchange rate.
- It calculates the BTC equivalent and shows the customer a payment amount.
- The customer sends that amount to a bitcoin address.
- The transaction is confirmed, and you receive either bitcoin or a CAD settlement, depending on your setup.
The key variable is where the exchange rate comes from and when it is locked in. Different processors use different rate sources, and the lock-in window varies. Some processors lock in the rate when the invoice is generated and give the customer a short window (commonly a few minutes) to complete payment at that rate. If the customer misses the window, the invoice expires and a new one is generated at the current rate.
This rate-lock mechanism protects both parties from large swings mid-transaction. It is one of the more important things to understand when comparing payment tools. For a closer look at the processors Canadian businesses commonly use, see accepting bitcoin for your online store.
Choosing a Rate Source
Payment processors typically pull rates from one or more large exchanges. If you are building a custom invoicing setup or accepting bitcoin directly into a wallet without a processor, you will need to decide where your rate comes from.
Common approaches include:
- Exchange API feeds: Major Canadian and international exchanges publish live BTC/CAD or BTC/USD rates via API. Developers building custom checkout flows often query one of these directly.
- Aggregator feeds: Some services average rates across multiple exchanges to reduce the impact of any single exchange's spread or temporary liquidity gaps.
- Fixed spread over mid-market: Some businesses apply a small buffer on top of the mid-market rate to account for rate movement between invoice generation and payment confirmation. This is sometimes called a "slippage allowance."
The size of that buffer is a business decision. Larger buffers give you more protection against rapid price moves but make your prices slightly less competitive. Most payment processors handle this automatically so the business owner never has to think about it.
What the CRA Cares About
The Canada Revenue Agency treats bitcoin as a commodity, not a currency. That classification has a direct effect on how transactions are recorded.
When you sell a product and receive bitcoin as payment, the CRA's general position is that the value of the transaction for income reporting purposes is the fair market value in Canadian dollars at the time of the transaction. In practice, this means you need a record of:
- The date and time of the transaction
- The CAD value at that moment (usually the exchange rate your processor used)
- The amount of bitcoin received
If you later hold that bitcoin and sell or spend it at a different price, the difference between the CAD value when you received it and the CAD value when you disposed of it may trigger a separate capital gain or loss calculation. This is a consequence of the commodity classification, and it is one reason many businesses choose processors that convert to CAD immediately, which eliminates the ongoing tracking obligation.
This is a general description of how the rules work as of this writing. The CRA's guidance on cryptocurrency has been updated several times and the rules can change. For your specific situation, the CRA's website and a qualified accountant are the right resources.
Businesses over certain thresholds may also have FINTRAC obligations as a money services business, depending on how they handle crypto. If you are converting bitcoin on behalf of others or dealing in large volumes, it is worth checking whether FINTRAC registration applies. The for business overview at Accept Bitcoin Canada covers the general landscape for retail operations.
Practical Pricing Setups by Business Type
Retail and E-Commerce
Most point-of-sale and e-commerce plugins price in CAD and convert at checkout using the processor's live rate. The business owner sets prices exactly as they would for any other payment method. The processor handles the rest.
For online stores, WooCommerce and Shopify both have plugins that integrate with payment processors and display BTC amounts alongside CAD prices at checkout. The customer sees something like "Pay $49.99 CAD (0.00048 BTC)" and the BTC figure updates if the invoice is refreshed.
Freelancers and Service Providers
Freelancers typically send invoices in CAD with a bitcoin payment option. The simplest setup is to include a bitcoin address and note the current rate alongside the CAD total, with a short payment window before the rate is recalculated. Payment request tools built into some wallets automate this. For a deeper look at how this works in practice, see how freelancers can get paid in bitcoin.
Subscription and Recurring Billing
Recurring bitcoin billing is less common because each payment requires a separate transaction. Some businesses handle subscriptions by generating a new invoice at the current rate each billing cycle, denominated in CAD, and asking the customer to pay the corresponding BTC amount at renewal time.
A Quick Comparison of Pricing Approaches
| Approach | How It Works | Best For |
|---|---|---|
| CAD-denominated, processor converts | Prices set in CAD; processor calculates BTC at checkout | Most retail and e-commerce |
| CAD invoice, manual rate | Freelancer or business quotes CAD; states BTC equivalent at current rate | Service providers, low volume |
| BTC-denominated | Price listed directly in BTC; updated manually or by feed | Crypto-native platforms |
| Stablecoin equivalent | Price in CAD-pegged stablecoin; converted from BTC at payment | Businesses wanting price stability without fiat settlement |
For the vast majority of Canadian businesses, the first row covers most situations.
Frequently Asked Questions
Do I have to show prices in bitcoin, or can I just show CAD?
You can show CAD prices only. Canadian consumer protection law requires prices to be clear, but there is no requirement to display a bitcoin equivalent. Most businesses that accept bitcoin show the CAD price prominently and display the BTC amount only at checkout when the customer chooses to pay that way.
What happens if the bitcoin price drops sharply right after a customer pays?
If you use a processor that locks in the rate at invoice generation and converts to CAD immediately, you receive the CAD amount that was locked in, regardless of what happens to the bitcoin price afterward. If you hold the bitcoin rather than converting, the risk stays with you until you sell or spend it.
Can I charge different prices for customers paying in bitcoin?
There is no general rule against it, but offering a discount for bitcoin payments is more common than a surcharge. If you do apply different pricing, be transparent about it in your terms. Payment card network rules on surcharging do not apply to bitcoin since it is not a card payment, but your own provincial consumer protection obligations still apply.
Does GST/HST apply to bitcoin transactions?
Yes. GST/HST applies to the supply of goods and services in Canada, and accepting bitcoin as payment does not change that obligation. The tax is calculated on the CAD value of the transaction, the same as for any other payment method. Your processor's receipt should show the CAD equivalent that forms the basis for the tax calculation.
How do I handle a situation where the customer sends slightly less bitcoin than the invoice amount?
Most processors flag underpaid invoices and either mark the transaction as incomplete or give the customer an option to top up. Your processor's documentation will describe its specific policy. If you are accepting payments directly into a wallet without a processor, you would handle underpayments according to your own business rules, the same as you would a short payment by any other method.