Invoice Generator
Generate a clean invoice in markdown + print-ready HTML. Fill form, see live preview, save as PDF via browser print. No upload, no signup.
From (your business)
To (client)
| Description | Qty | Unit price | Line total |
|---|
Why this exists
If you're a freelancer or solo operator, you need a serviceable invoice now and then — but you don't want to spin up Zoho or a SaaS subscription, and you don't want to upload your client list to a third party just to format one PDF. This tool gives you a clean line-item invoice with markdown + print-ready HTML output, computed in your browser, with zero network round-trips after the page loads. Hit the browser print dialog to save as PDF.
How to use it
- Fill in your "From" details and your client's "To" details.
- Set the invoice number, issue date, due date and currency.
- Add line items — description, quantity, unit price.
- Pick a VAT country (loads the standard rate) or set a custom rate. If you don't charge VAT, leave both blank.
- Click Save state in URL after entering your "From" — that bookmarks your business info into the URL fragment so you don't re-type it next time. The line items don't get saved — they're per-invoice.
- Click Print / Save as PDF, then in the print dialog pick "Save as PDF" as the destination.
- Or copy the markdown if you want to embed the invoice in an email or doc.
VAT — read this first
The country picker loads a sensible standard rate (e.g. Germany 19%, Slovakia 23% from 2025, Switzerland 8.1%), but VAT is genuinely complicated and the right rate depends on:
- Where you're established — the country whose VAT rules you operate under.
- Where your client is — domestic, EU B2B, EU B2C, or non-EU.
- What you're supplying — books, food, software, professional services, digital services to consumers each get different categories.
- Reverse-charge rules — for cross-border B2B inside the EU, you usually issue the invoice at 0% VAT and the buyer accounts for it themselves. The invoice must say "reverse charge" or similar — adjust the notes field accordingly.
- OSS / MOSS — selling digital services B2C across the EU charges the buyer's country's rate above the 10k€/year threshold.
This tool is a formatting helper, not a tax advisor. Pick the rate that's correct for your specific supply; when in doubt ask your accountant or check your tax authority's published guidance.
What the URL fragment actually stores
Click "Save state in URL" and your From + To blocks, currency, VAT country/rate, and the notes field get base64-encoded into the URL fragment (the part after #). Browser fragments are never sent to the server in HTTP requests, so this is genuinely client-side — but it does mean if you share the URL, the recipient sees the info. Bookmark it for yourself; don't paste the URL into chat.
Line items are not saved — they change every invoice, so persisting them would be more confusing than useful.
Common gotchas
- Numbering matters. Most tax authorities require gap-free sequential invoice numbers. Pick a scheme and stick to it:
2025-001through2025-099, orINV-2025-04-001. If you skip a number, document why. - Save the PDF and the source. The PDF is the legal record, but if you ever need to reissue you'll want the source. Keep a folder per year with both.
- Currency display ≠ payment currency. The invoice shows EUR but the wire might be in USD. Be explicit in the notes about which currency you expect to be paid in and at what rate, or you'll get short-paid.
- Late-fee clauses must be on the invoice itself, not just in your terms. "1.5% per month after due date" written into the notes section gives you leverage if a client drags out payment.
- VAT number quoting matters for B2B-EU. Both your VAT number and the client's VAT number have to be on the invoice for reverse-charge to apply legally.