Invoicing a US client from Canada
Last updated August 2, 2026.
Billing across the border is mostly straightforward, and the parts that trip people up are not the ones they worry about. Nobody needs a US tax number. What actually costs money is the exchange spread and a W-8BEN nobody mentioned until payment day.
General information, not tax advice. Confirm anything that matters with an accountant.
Do you charge GST/HST? Usually not
Services supplied to a non-resident client outside Canada are generally zero-rated — 0% GST/HST. Zero-rated is not the same as exempt, and the difference is in your favour: you still report the sale and you still claim input tax credits on your own expenses.
Put it on the invoice rather than leaving the tax line off: “Zero-rated export of services, GST/HST 0%.” A missing tax line with no explanation looks like an oversight to a reviewer and to the CRA two years later.
The exception worth knowing: if the service is effectively delivered to someone in Canada, or relates to Canadian real property, the zero-rating may not apply. A US company hiring you to photograph their Toronto office is a different case from a US company hiring you to edit footage remotely.
The W-8BEN, and why it arrives late
Many US companies will not release payment to a foreign supplier without a W-8BEN (individuals) or W-8BEN-E (corporations) on file. It certifies you are not a US person, and it stops them withholding 30% of your invoice.
Nobody tells you this until the day payment is due. Fill one in before you invoice — it is one page, takes ten minutes, and is valid for three calendar years. Under the Canada–US tax treaty you claim treaty benefits on Part II, which is what reduces withholding to zero on most business income.
If a client withholds anyway, the money is not lost — it is remitted to the IRS and you claim it as foreign tax paid. But recovering it is a year of paperwork versus ten minutes of prevention.
Currency: name it, and watch the spread
Write USD on the invoice, not $. That symbol is genuinely ambiguous between at least four currencies and it has caused real disputes.
Report the income in Canadian dollars using the exchange rate on the transaction date, and keep a record of which rate you used. The Bank of Canada publishes daily rates; picking the same source every time is what makes it defensible.
The bigger number is the conversion. A Canadian bank routinely takes 2–3% converting an incoming US payment — on a $5,000 invoice that is $100–150, quietly, every time. A multi-currency account or a service like Wise typically costs a fraction of that. For anyone billing US clients regularly it is the highest-return twenty minutes available.
How to actually get paid
US clients often default to a mailed cheque, which for a Canadian supplier means weeks and a deposit fee. Offer something better on the invoice itself:
- A payment link— Stripe, Wise, PayPal. Fastest, and it removes the “we need your bank details” round trip.
- ACH if you have a US-dollar account that supports it. Cheap, a few days.
- Wire for larger amounts. Fast, but fees at both ends — say who pays them before the work starts.
What goes on the invoice
- Your full business name and Canadian address
- Their full legal entity name — the one on the contract, not the trading name
- A unique invoice number and both dates, issued and due
- The currency, spelled out
- The zero-rated line, if that is what applies
- Your GST/HST number if you are registered, even at 0%
- The PO number if they gave you one
Two things people get wrong
You do not need a US EIN to invoice a US client as a Canadian business. It gets suggested constantly and is almost never required for straightforward service work.
You do not pay US income tax on this in the normal case. Under the treaty, business profits are taxed where you are resident unless you have a permanent establishment in the US. Working from Calgary for an American client is not one.
The Bindery invoice generator lets you name the currency explicitly and set your own tax label and rate, so a zero-rated export invoice says exactly what it should rather than what a dropdown guessed.