Invoice Generator
Create a clean, printable invoice with line items and tax, ready to send as a PDF in a couple of minutes.
Your details
Printable invoice
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Invoice INV-1042</title>
<style>
* { box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; color: #111; margin: 0; padding: 32px; font-size: 13px; line-height: 1.5; background: #fff; }
.doc { max-width: 760px; margin: 0 auto; }
.row { display: flex; justify-content: space-between; gap: 24px; }
.head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 28px; gap: 16px; }
h1 { font-size: 22px; margin: 0 0 4px; letter-spacing: -0.02em; }
h2 { font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin: 24px 0 8px; }
table { width: 100%; border-collapse: collapse; margin-top: 8px; }
th, td { text-align: left; padding: 8px 10px; border-bottom: 1px solid #e3e3e3; font-size: 12.5px; }
th { text-transform: uppercase; font-size: 10.5px; letter-spacing: 0.05em; color: #666; border-bottom: 2px solid #111; }
td.num, th.num { text-align: right; }
.totals { margin-top: 12px; width: 260px; margin-left: auto; }
.totals div { display: flex; justify-content: space-between; padding: 4px 0; }
.totals .grand { font-weight: 700; border-top: 2px solid #111; margin-top: 4px; padding-top: 8px; font-size: 15px; }
.muted { color: #666; }
.box { border: 1px solid #ddd; border-radius: 8px; padding: 12px 14px; }
.sig { margin-top: 40px; display: flex; gap: 40px; }
.sig div { flex: 1; border-top: 1px solid #111; padding-top: 6px; font-size: 11px; color: #666; }
@media print { body { padding: 0; } }
</style>
</head>
<body>
<div class="doc">
<div class="head">
<div><h1>Invoice</h1><p class="muted">INV-1042</p></div>
<div class="box" style="text-align:right"><p><strong>Harbour & Co</strong></p><p class="muted" style="white-space:pre-line">48 Quay Street
Cork, Ireland</p><p class="muted">hello@harbourco.com · +353 21 555 0134</p></div>
</div>
<div class="row">
<div><h2>Bill to</h2><p><strong>Wren & Co</strong></p><p class="muted" style="white-space:pre-line">12 Baker Street
London, UK</p></div>
<div style="text-align:right"><h2>Details</h2><p>Date: 2026-09-30</p><p>Due: 2026-10-14</p></div>
</div>
<table><thead><tr><th>Description</th><th class="num">Qty</th><th class="num">Unit price</th><th class="num">Amount</th></tr></thead><tbody><tr><td>Classic Tee (Black M)</td><td class="num">24</td><td class="num">$14.00</td><td class="num">$336.00</td></tr><tr><td>Canvas Tote</td><td class="num">12</td><td class="num">$9.50</td><td class="num">$114.00</td></tr><tr><td>Shipping</td><td class="num">1</td><td class="num">$18.00</td><td class="num">$18.00</td></tr></tbody></table>
<div class="totals">
<div><span>Subtotal</span><span>$468.00</span></div>
<div class="grand"><span>Total due</span><span>$468.00</span></div>
</div>
<h2>Notes</h2><p class="muted" style="white-space:pre-line">Payment due within 14 days. Bank transfer: IBAN IE00 AAAA 0000 0000 00.</p>
</div>
</body>
</html>Open the downloaded file and print it (Ctrl or Cmd+P), then choose Save as PDF, to get a PDF copy.
Live preview
What's on the invoice
Fill in your details, the client's, and a line for each item, and the totals update as you type.
Example: the default numbers
- 24 × Classic Tee at $14.00
- $336.00
- 12 × Canvas Tote at $9.50
- $114.00
- Shipping
- $18.00
Subtotal is $468.00. With no tax rate set, that's also the total due. Turn on a tax rate to add it as its own line, labeled sales tax, VAT or whatever you call it locally.
Sending and storing invoices
- 01
Save as PDF
Download the HTML file, open it in a browser and print (Ctrl or Cmd+P), then choose Save as PDF instead of a physical printer.
- 02
Shopify
Shopify emails an order confirmation automatically, but it isn't a formal invoice. Use this for wholesale orders, custom work, or anything you invoice outside the standard checkout.
- 03
WooCommerce
A PDF invoicing extension can automate this per order. This tool is the quicker option for a one-off invoice or a quote you're turning into a bill.
- 04
Numbering
Keep invoice numbers sequential (INV-1041, INV-1042…) so nothing is skipped or reused, which matters if your accountant or tax authority ever asks for a full run.
Questions people ask
Is this legally a valid invoice?
It covers the common fields (seller, buyer, items, tax, total, date), but exact legal requirements vary by country and business type. Check your local rules on required fields, sequential numbering and tax details before relying on it for compliance.
Can I add my logo?
Not directly in the form. Download the HTML file and add an <img> tag pointing at your logo's URL near the top if you want one in the printed version.
How do I show a discount?
Add it as its own line item with a negative unit price, for example "Discount code SAVE10, 1, -34.80".
Does it handle multiple currencies?
Set the currency symbol field to whatever you're billing in ($, €, £ or any text), and every amount uses it. There's no automatic exchange rate conversion.
Related tools
Last reviewed 30 September 2026.
