Invoice Generator

Builds a printable invoice in your browser, reports both tax rounding methods and the penny between them, and says which fields are law rather than layout.

Enable JavaScript to change the document; what is below is the default, and it prints.

Sequential with no gaps is a rule about your whole series, which a tool that makes one document cannot enforce.

Their purchase order number, a project code, whatever the other side will search for.

One line each. Your tax registration number belongs here in most jurisdictions.

One a line. "Description | quantity | unit price | tax percent" is the full form; "3 x Licence @ 9.99" and "Hosting: 240" both work too. A line starting with # is a note.

Used for any line that does not carry its own rate.

Tax rounding

Line by line, or once on the subtotal. Both are permitted in the EU and the UK if you are consistent, and they can differ by a penny. The document says which it used.

Discount is

A percentage discount is spread across the lines in proportion, so the per-line tax still adds up to the total.

Empty uses the default. "Tax invoice", "Proforma invoice" and "Credit note" are different documents in some jurisdictions, so the word matters.

Invoice

Invoice number
INV-2026-014
Invoice date
2026-09-28
Payment due
2026-10-12

From

Bucket Ltd
14 Example Street
London E1 6AN
VAT GB123456789

Billed to

A Client Ltd
1 Another Road
Manchester M1 2AB

DescriptionQtyUnitTaxAmount
Design work12£85.0020%£1,020.00
Licence3£9.9920%£29.97
Hosting for a year1£240.0020%£240.00
Subtotal£1,289.97
Tax, line by line£257.99
Total£1,547.96

Terms

Payment within 14 days by bank transfer.

Thank you for your business.

Download the HTML

  • An invoice is a legal document in most places, with required fields that vary: a unique sequential number, your tax registration number, the customer's, the date of supply, and specific wording for a reverse charge or an exemption. This tool does the arithmetic and the layout, not the compliance.
  • Sequential numbering usually means no gaps, which is a rule about your whole series rather than about one document. A tool that generates a number for each invoice separately cannot guarantee it.

Adding up an invoice is arithmetic until tax arrives. Then there are two defensible answers and they differ by pennies: tax worked out on each line and summed, or tax worked out once on the subtotal. Three lines of £9.99 at 20 percent is £6.00 of tax one way and £5.99 the other.

Both are permitted in the EU and the UK as long as you are consistent, and some authorities require one specifically. So this tool computes both, reports the difference, and prints which method the document used. A tool that quietly picks one is the reason an invoice total disagrees with an accounting system by a penny for a year.

The rest is layout, and the layout is deliberately plain: an invoice has to survive being printed by somebody else’s browser onto somebody else’s paper.

How to use

  1. Fill in the parties and the number. Your tax registration number belongs in the “from” block in most jurisdictions.
  2. Paste the lines. Description | quantity | unit price | tax percent is the full form; 3 x Licence @ 9.99 and Hosting: 240 also work.
  3. Print it. The browser’s own dialogue makes the PDF, which it does better than any tool could without a library, and it already knows the paper size.

Example

Twelve days of design work, three licences and a year of hosting, with 10 percent off:

Subtotal                    £1,289.97
Discount                    -£129.00
Net                         £1,160.97
Tax, line by line           £232.19
Total                       £1,393.16

The discount is spread across the lines in proportion, which is why the per-line tax still adds up to the tax on the net. A discount applied only to the total would leave the two disagreeing.

Pitfalls

Rounding is a policy, not a preference. Pick one method, use it everywhere, and know that your accounting system has also picked one. The penny difference is where reconciliation goes wrong.

A percentage discount has to be spread across the lines. Otherwise the tax on each line no longer sums to the tax on the invoice, which an auditor will notice before you do.

Sequential numbering is about the series. Most tax authorities want no gaps. A tool that generates one document cannot guarantee that, so keep the sequence somewhere that persists.

The required fields vary. A unique number, both tax registration numbers, the date of supply as well as the date of issue, and specific wording for a reverse charge or an exemption. This tool does arithmetic and layout, not compliance.

“Invoice” is not a free choice of word. Tax invoice, proforma invoice and credit note are different documents with different effects in several jurisdictions. Set the heading deliberately.

Currency is a symbol here, not a conversion. There is no exchange rate in this tool, and an invoice in a currency the customer does not hold needs the rate and its date on it.

Keep the copy you sent. Not the tool, not the inputs: the document. An invoice is evidence, and regenerating it later from remembered inputs is not the same thing.

Compatibility

Runs in the browser: nothing is uploaded, and the document is built locally. The PDF comes from the browser’s print dialogue, which is available everywhere and produces a better result than a generated PDF would.

The arithmetic is a tested module, with the rounding helper putting the scaled amount through a precision step before rounding, because a double cannot hold 1.005: multiplying by a hundred gives 100.49999999999999 and rounding naively gives £1.00 where a person reading the invoice expects £1.01. The same trick, in both languages, is what keeps the server-rendered first paint and the hydrated document identical.

Both the arithmetic and the markup are mirrored in PHP and compared against the JavaScript on every build, with cases covering mixed tax rates, a fixed discount larger than the subtotal, taxed shipping, and the three-line 9.99 case that produces the penny.

The downloaded file carries its own stylesheet, so it prints the same on a machine that has never seen this site.

Frequently asked questions

Which rounding method should I use?
Whichever your accounting system uses, and then consistently. If you are choosing fresh, per-line is the more common default in software and is easier to explain line by line.
Can it make a PDF directly?
It prints, and every browser’s print dialogue can save as PDF. That is a deliberate choice: a generated PDF without a library is worse, and with one is a large dependency for something the browser already does well.
Is this a valid invoice?
The arithmetic and the layout are sound. Validity depends on the fields your jurisdiction requires and on your numbering series, both of which are listed in the notes under the document.
How do I add my logo?
Download the HTML and add an <img> in the header. The file is plain markup with one stylesheet, which is why it is offered as a download rather than only as a print.
Does it store anything?
No. Nothing is uploaded and nothing is saved between visits, which also means the document is gone when you close the tab. Download it.
Weekly drops

New tools, when there are new tools

One email when something worth using ships. No schedule to fill, so no filler.

Your address goes nowhere else, and one click unsubscribes.