Security

Security

How to Verify a Bitcoin Payment Before You Ship

A plain-English guide for Canadian merchants on how to confirm a bitcoin payment has actually arrived, what confirmation counts mean, and when it is safe to...

How to Verify a Bitcoin Payment Before You Ship

When a customer says they have sent bitcoin, that claim needs to land on the blockchain before you hand over anything of value. Unlike a credit card authorization that takes milliseconds, a bitcoin payment moves through a public network that anyone can inspect. That transparency is also what lets you verify it yourself, without going through a bank or payment provider.

This guide explains what to look for, how many confirmations are enough for different transaction sizes, and which tools make the process straightforward for a Canadian merchant.

What "Confirmed" Actually Means on the Bitcoin Network

Bitcoin transactions do not settle the moment a customer clicks send. The payment first broadcasts to the network as an unconfirmed transaction sitting in the mempool, a kind of holding area where miners pick it up. Once a miner includes it in a block, the transaction has one confirmation. Each new block added on top of that one adds another confirmation.

A transaction with zero confirmations is real, but it has not yet been secured by the network. A double-spend attack at that stage, while technically difficult and rare, is still possible. One confirmation means the transaction is in a block; six confirmations is a common threshold used across the industry because reversing that many blocks would require enormous computational resources.

For a Canadian merchant, the practical takeaway is simple: the number of confirmations you wait for should scale with the value of the goods or service you are releasing.

How to Look Up a Payment on a Block Explorer

A block explorer is a public website that indexes every transaction on the Bitcoin blockchain. You do not need an account or any special software. You need two pieces of information:

  1. Your receiving address (the bitcoin address you gave the customer)
  2. The transaction ID (TXID), which the customer can copy from their wallet

With either of those, you can search a block explorer and see the current status of the payment.

Steps to check a payment manually:

  1. Open a block explorer such as mempool.space, blockchair.com, or blockchain.com/explorer.
  2. Paste your receiving address or the TXID into the search bar.
  3. Look at the amount sent. Confirm it matches what you invoiced, down to the satoshi.
  4. Check the confirmation count. The explorer will show a number or a label like "unconfirmed," "1 confirmation," or "6+ confirmations."
  5. Verify the destination address shown on the transaction matches your address exactly. Do not rely on the customer's screenshot.

That last step matters. Screenshot fraud is a known tactic where a buyer edits a confirmation screenshot to show a fake transaction. The blockchain does not lie; the screenshot might.

How Many Confirmations to Wait For

There is no single rule that applies to every sale, but here is a practical framework Canadian merchants commonly use:

Transaction value (CAD)Suggested confirmationsApproximate wait time
Under $500 to 10 to 10 minutes
$50 to $5001 to 310 to 30 minutes
$500 to $5,0003 to 630 to 60 minutes
Over $5,0006+60+ minutes

These ranges reflect general industry practice. For digital goods that can be reversed easily (a software licence, for instance), some merchants accept zero confirmations as a business decision. For physical goods that ship and cannot be recalled, waiting for at least one confirmation is a sensible floor.

Block times on Bitcoin average around ten minutes, but actual wait times vary depending on network congestion and the fee the sender attached. Higher fees move transactions to the front of the queue.

Payment Processors That Handle Verification for You

If checking a block explorer for every sale sounds like friction, payment processors automate this. Tools like BTCPay Server (self-hosted, open source), OpenNode, or Coinbase Commerce generate a unique payment address per invoice and monitor confirmations on your behalf. When the threshold you set is reached, the processor marks the invoice as paid.

For Canadian merchants who also need records for CRA purposes, processor-generated invoices typically include a timestamp, the bitcoin amount, an approximate CAD value at the time of payment, and the TXID. Keeping those records matters because the CRA treats received bitcoin as either business income or barter, depending on how it is used, and the exchange rate at time of receipt is what you report. Tax rules can change, so confirm current guidance with an accountant familiar with crypto.

Some processors also offer Lightning Network support, which settles in seconds and works well for small, fast transactions. Lightning confirmations operate differently from on-chain bitcoin; finality is near-instant once the payment channel closes, but the underlying mechanics are distinct.

For guidance on where to keep the bitcoin after it arrives, see how to store the bitcoin your business receives safely and the comparison of hot wallet vs cold storage for business bitcoin.

What to Do With a Zero-Confirmation or Stuck Transaction

A zero-confirmation transaction is in the mempool but not yet mined. This can happen when:

  • The sender attached a fee that is too low for current network conditions
  • The network is congested
  • The sender's wallet broadcast the transaction with a non-standard format

If a transaction stays unconfirmed for more than an hour, it may eventually drop out of the mempool entirely and effectively disappear. The funds return to the sender at that point; they never actually left their wallet in a final sense.

As a merchant, your options in this situation are limited. You cannot speed up someone else's transaction. What you can do:

  • Ask the customer to use Replace-By-Fee (RBF) to rebroadcast with a higher fee, if their wallet supports it
  • Wait, since congestion often clears within a few hours
  • Hold the order open rather than cancelling, since a stuck transaction is not necessarily fraud

Where it becomes a concern is if the customer is pressuring you to ship before any confirmation appears. That pressure, combined with a zero-confirmation payment, is a pattern worth treating carefully. Legitimate customers generally understand that payment confirmation takes a few minutes.

For a broader look at fraud patterns targeting Bitcoin-accepting merchants, see protecting your business from bitcoin payment scams.

Frequently Asked Questions

Can I trust a screenshot of a confirmed transaction that a customer sends me?

No, not on its own. Screenshots are easy to fabricate. Always verify the TXID directly on a block explorer using the transaction ID or your own receiving address. The blockchain record is the authoritative source.

Does a bitcoin payment ever reverse once it has six confirmations?

In practice, no. A six-confirmation transaction has never been reversed on the Bitcoin mainnet under normal conditions. Theoretical attacks exist but would require an extraordinary share of global mining power and would be economically irrational for most transaction sizes. For standard merchant transactions, six confirmations is considered final.

My customer sent the right amount but the transaction shows a different receiving address. What happened?

This could indicate a clipboard hijacking attack on the customer's device, where malware replaced your address with an attacker's address. The customer should check their security immediately. If the funds went to a wrong address, recovery is generally not possible since bitcoin transactions are irreversible. This is why you should always provide your address in multiple formats (QR code plus text) and ask customers to verify at least the first and last several characters before sending.

Do I need to report every bitcoin payment I receive to FINTRAC?

FINTRAC requirements apply to businesses that are designated as money services businesses (MSBs) under the Proceeds of Crime (Money Laundering) and Terrorist Financing Act. A general retailer that accepts bitcoin as payment for goods is typically not operating as an MSB in the same way a cryptocurrency exchange is. That said, the rules around virtual currency and MSB registration have been evolving, so it is worth confirming your status with a compliance professional or reviewing FINTRAC's current guidance for your business type.

What exchange rate should I use when recording a bitcoin payment for my books?

The CRA's general position is that the fair market value of the bitcoin at the time of the transaction is what you record as revenue. In practice this means noting the CAD equivalent using a reputable exchange rate source at the moment the payment is confirmed. Keep that record alongside the TXID and invoice amount. The exact method for determining fair market value and when income is recognized can depend on your business structure, so verifying with a tax professional is worth doing before you receive significant volume.

← Back to all guides