Free tool · Works anywhere, with Canadian GST/HST built in

Free invoice generator for freelancers (Canada-friendly, no sign-up)

Fill in your details, the client's and the work, and the invoice builds itself below. Then print it or save it as a PDF. No account, no email, no watermark.

Private by design. The invoice generator runs entirely in your browser. Nothing you type is sent anywhere or saved: no account, no cookies, no analytics, and the page loads no third-party scripts. That also means it forgets everything when you close the tab, so save a PDF of each invoice you send.
General information, not tax advice. The checklist shows what the CRA lists for a GST/HST invoice at your total; it doesn't decide whether you have to charge GST/HST, or at which rate. Check the details for your situation in our guide to what a GST/HST invoice must show, with the CRA, or with an accountant.

The invoice generator

It opens with a made-up example (an "Example Studio" billing an "Example Client Ltd."). Replace each field with your own, or clear them all at once.

You (the "from" details)

Leave blank if you aren't registered. The example is the CRA's own sample number (123456789 RT 0001); replace it with yours.

Client (the "bill to" details)
Invoice

Shown on the total, like CAD or USD.

Line items

Hours (or a quantity) × rate. For a fixed price, put 1 in Hours / qty and the price in Rate. Blank lines are left off the invoice.

Line 1
Amount280.00
Line 2
Amount480.00
Line 3
Amount100.00

Tax (optional)

Fills in tax line 1 with your province’s GST or HST rate. Provincial sales taxes (PST, QST) aren’t listed: type their label and rate in tax line 2 if you charge one.

Each tax line is worked out on the whole subtotal. Leave both blank if you don't charge tax. Not sure whether you have to register for GST/HST? See GST/HST and setting money aside for taxes.

Notes and payment terms (optional)

Payment details, a thank-you, your payment terms.

The button adds this line from our getting paid on time guide: Late payment: overdue amounts bear simple interest at 1.5% per month (18% per year) from the due date until paid. Only use it if your client agreed to it before you started, and change the rate to the one you agreed; it's the guide's example, not a recommendation. The guide explains why the yearly rate has to be stated.

Preview, print and save as PDF

The preview updates as you type. Print / Save as PDF prints only the invoice; choose "Save as PDF" (or "Microsoft Print to PDF") as the printer to get a file to send.

Example Studio (fictional)

100 Example Street
Anytown, AB

hello@example.com

GST/HST no. 123456789 RT 0001

Invoice

Invoice no.EX-001
DateOctober 8, 2026
TermsNet 30
Due dateNovember 7, 2026

Bill to

Example Client Ltd. (fictional)

200 Sample Avenue
Anytown, AB

DescriptionHours / qtyRateAmount
Website copy edits (example)3.580.00280.00
Landing page design (example)680.00480.00
Client call and revisions (example)1.2580.00100.00
Subtotal860.00
GST (5%)43.00
Total (CAD)903.00

Notes

Thank you! Please pay by Interac e-Transfer to hello@example.com and include the invoice number. (Example notes: replace them with your own.)

With the example data, this is a made-up invoice. Grey text in [brackets] marks an empty field; it isn't printed.

GST/HST checklist for this invoice

General information, not tax advice. If you're registered for GST/HST, your business clients need certain details on your invoice to claim back the GST/HST you charge (input tax credits). What the CRA lists depends on the invoice total: under $100, $100 or more, and $500 or more (CRA: Input tax credits, records you need). The CRA's amounts are Canadian dollars; the checklist compares them with your total as typed. It updates as you type, and nothing stops you printing. More detail, and why some older pages say different amounts: what to put on a freelance invoice in Canada.

Total 903.00 CAD: the CRA’s “$500 or more” tier. All 9 items are there (or don’t apply).

  • ✓ On the invoice Your business or trading name
  • ✓ On the invoice The invoice date
  • ✓ On the invoice The total amount
  • ✓ On the invoice The GST/HST charged (or a note that the total includes it)
  • – Not applicable Which items are taxable or exempt (only if one invoice has both) This tool charges the same tax on every line. If one invoice mixes taxable and exempt items, see the guide.
  • ✓ On the invoice Your GST/HST registration number
  • ✓ On the invoice The client’s name
  • ✓ On the invoice A brief description of each item
  • ✓ On the invoice The payment terms

How to use it

  1. Clear the example (or type over it) and fill in your details, the client's, the invoice number and date.
  2. Pick the payment terms. "Net 30" means due 30 days after the invoice date, and the generator prints the actual due date, which is clearer than "Net" on its own.
  3. Add your line items. Hours are decimals: an hour and a half is 1.5, and a quarter of an hour is 0.25.
  4. If you charge GST/HST, pick your province or territory to fill in the rate, and check the checklist.
  5. Press Print / Save as PDF. In the print dialog, choose "Save as PDF" as the destination, and turn off "Headers and footers" for a clean page. A typical invoice fits on one Letter or A4 page.
  6. Keep a copy of the PDF, and use a new invoice number each time. The generator doesn't save anything, so the PDF is your record.

Prefer a file you can keep and edit? The free invoice template (.xlsx) has the same layout, with live formulas, for Google Sheets, Excel and LibreOffice.

Pricing a job before you start? The free quote and estimate generator uses the same form, with a valid-until date, an optional deposit and sign-off lines. Nothing is passed between the two pages.

How the math works

What it doesn't do

If you invoice every month from a time log, our paid Freelance Billing Kit by Small Rows (US$12, one-time) fills in the invoice from your logged hours and tracks which invoices are paid. Like this page, it's a record-keeping tool, not tax advice.

Found a problem or something out of date? Tell us via Support and we'll fix it.