Invoice generator
Fill in the form and the invoice builds itself on the page beside it — line items, tax, discount and the amount due, recalculated as you type. When it looks right, print it or save it as a PDF from the same dialog. Nothing you type is uploaded: your clients, your rates and your bank details never leave this browser.
Invoice
Fill in the form above and this invoice updates as you type.
From
Your name and address
Bill to
Client name and address
| Description | Qty | Unit price | Amount |
|---|---|---|---|
| No line items yet. | |||
What has to be on an invoice
An invoice is a business record before it is a piece of design, and a handful of things have to be on it for it to work as one: a unique invoice number, the date you issued it, who is sending it, who is being billed, a description of what was supplied, the amount for each item, the total owed, and when you expect to be paid. Miss any of those and you have written a letter, not an invoice.
Two of them cause almost all the trouble. The first is the number: it has to be unique and it has to run in a sequence you can account for, because the whole point of a sequence is that a missing number is visible. The second is the payment terms — an invoice that does not say when it is due is due whenever your client feels like it, and in most legal systems the default is far later than you would like.
Beyond that the requirements are local. If you are registered for VAT or GST you must show your registration number, the rate, and the tax as a separate line — that is Article 226 of the EU VAT Directive and its equivalents almost everywhere else. In the United States there is no federal invoice format at all, but if you are collecting state sales tax the tax has to be stated separately for the buyer to reclaim or account for it. Check your own jurisdiction once, then reuse the layout forever.
Every total here is calculated in whole cents
Money is never held as a decimal number in this tool. That sounds like a technicality until you see what the alternative does: in every mainstream programming language 0.1 + 0.2 evaluates to 0.30000000000000004, because binary floating point cannot represent a tenth exactly. Add a dozen lines like that, apply a percentage, and the invoice total ends up a cent away from the sum of its own lines.
A cent is not a rounding curiosity on a document somebody is going to pay. It is the difference between an invoice that reconciles against a bank transfer and one that sits in an accounts-payable queue while somebody works out why. So every amount here is an integer count of cents, quantities are held to three decimal places as integers too, and there is exactly one rounding step per figure — always half away from zero, which is what tax authorities specify and what a person checking your arithmetic with a calculator will do.
The tax is worked out once, on the invoice total, rather than line by line. Both methods are allowed, but rounding the tax on twenty separate lines and adding the results can land several cents away from the figure your client's system computes when it recalculates from the total — and their system is the one that decides whether the invoice matches.
Getting paid is a process, not a document
The invoice is the easy part. What actually moves money is sending it the same day the work finishes, addressing it to a named person rather than to accounts@, quoting the purchase-order number if there is one, and putting the payment details on the invoice itself instead of in the covering email that gets forwarded without attachments.
Late payment is not a moral failure on your client's part, it is a queue. Invoices that arrive in the middle of a payment run get paid in that run; invoices that arrive the day after wait for the next one. Ask what day their run falls on, once, and time your invoices to land before it. That single question is worth more than any wording about interest.
When something does go unpaid, the wording that helps is the wording you put on the invoice before it was late. Payment terms, a due date as an actual date rather than "30 days", and a line stating what interest applies are all things a court or a debt-collection service will look for — and all things that are much harder to add afterwards.
The invoice checklist
What belongs on an invoice, and why each line is there. Local rules add to this list — particularly if you are registered for VAT or GST — but nothing on it is ever unnecessary.
- The word "Invoice" — so it is not mistaken for a statement, a quote or a receipt
- A unique invoice number — sequential, so a missing one is visible in your records
- The issue date — the payment clock and any late-payment interest both run from it
- Your name, address and contact details — plus your company number where you have one
- The client’s name and address — addressed to a person, not to a department
- A description of what was supplied — specific enough for a stranger in accounts to approve
- Quantity, unit price and line amount — so the total can be checked without asking you
- The tax rate and tax amount, separately — required if you are registered; your client needs it to reclaim
- Your tax registration number — VAT, GST or equivalent, where you have one
- The total due, and the currency — a bare currency symbol is ambiguous across half a dozen currencies
- Payment terms and the actual due date — a date, not "30 days" — dates get diarised, durations do not
- How to pay you — on the invoice itself, because invoices get forwarded without their emails
Common questions
How do I make an invoice for free?
Fill in your details, the client's details and one line per item, then print the page and choose "Save as PDF" in the print dialog. Nothing is charged, nothing is watermarked and no account is needed — the whole tool runs in your browser.
Is my client data uploaded anywhere?
No. Every calculation runs on the page you are looking at, and the site makes no external requests at all. Your draft is kept in your own browser's local storage so a refresh does not lose it, and clearing it removes every trace.
What invoice number should I start with?
Anything you can keep sequential — INV-0001 is the usual choice. Zero-padding keeps invoices sorting correctly by name, and the tool preserves whatever padding you use when it increments the number for the next one.
Can I save the invoice as a PDF?
Yes. Use the Print button and choose "Save as PDF" as the destination. The browser's own PDF export produces selectable text and true vector output, which is better quality and smaller than anything a JavaScript PDF library would generate.