Multi-Currency Invoice Generator — Methodology
Last reviewed: 15 June 2026
Informational only — not tax or legal advice
The output is a PDF invoice document generated from the inputs you provide — not tax, legal, VAT, or invoice-compliance advice. For decisions affecting your taxes or legal status, consult a qualified accountant or tax advisor in your jurisdiction.
Data last verified 15 Jun 2026 — methodology
TL;DR
This tool generates a PDF invoice document in your browser — it does not determine VAT obligations, invoice compliance requirements, or tax liability. All data stays in your browser; nothing is sent to our servers.
What this tool does
The Multi-Currency Invoice Generator is a client-side tool that lets freelancers create professional invoice documents with multi-currency line items, optional VAT/GST fields, and IBAN/SWIFT payment details. The output is a downloadable PDF or a printable HTML preview.
The tool is informational only. It does not:
- Determine whether VAT, GST, or any other tax applies to your invoice
- Verify that your invoice meets the legal requirements of any jurisdiction
- Validate tax IDs against any government registry
- Convert amounts between currencies (mixed-currency totals are shown at face value)
- Store, transmit, or process any of your data on a server
Currency formatting
All currency amounts are formatted using the browser's built-in
Intl.NumberFormat
API with style: 'currency'. This produces locale-appropriate formatting
(e.g. $1,234.56 for USD, €1.234,56 for EUR in a German locale).
Currency codes follow the ISO 4217 standard . All internal calculations use plain JavaScript numbers. Formatting is applied only at display time.
VAT / GST field
The VAT/GST field is a convenience field only. You enter the rate you have already determined applies to your invoice. The tool applies the rate arithmetically:
Total = subtotal + VAT amount
The tool does not determine whether VAT applies, at what rate, or in which jurisdiction. VAT rules vary significantly by country, transaction type, and registration status. Consult a qualified tax professional or your country's tax authority for VAT obligations.
Country-specific VAT hints shown in the tool (e.g. "Standard rate: 20%" for the UK) are informational reference data only — not advice. They are sourced from each country's official tax authority and last verified on 15 June 2026.
PDF generation
PDFs are generated entirely in your browser using pdf-lib (MIT licence, version 1.17.1). No data is sent to a server at any point during PDF generation.
The PDF uses standard Helvetica fonts with WinAnsi (cp1252) encoding. Characters outside the
cp1252 range — such as emoji, CJK characters, or certain Unicode symbols — are replaced with
? to prevent encoding errors. If you need non-Latin characters in your invoice,
consider using the print function instead, which renders the HTML preview directly.
The generated PDF is an A4 document (595.28 × 841.89 points). It is created as a
Blob in memory and downloaded directly — it is never stored on our servers.
Data storage and privacy
All invoice data is stored locally in your browser using the
Web Storage API
(localStorage), under the key cbf:invoice-generator:scenario.
Data is saved automatically as you type and restored on your next visit.
Nothing is transmitted to our servers. Your invoice data — including names, addresses, tax IDs, bank details, and amounts — never leaves your browser. You can clear your data at any time by clearing your browser's localStorage for this site, or by using your browser's developer tools.
Because data is stored in localStorage, it is:
- Specific to the browser and device you are using
- Not synced across devices or browsers
- Cleared when you clear your browser data
- Not accessible to other websites
Tax ID field
The tax ID field accepts free-form text. The tool shows a format hint based on the selected country (e.g. "EIN or ITIN" for the US, "VAT or UTR" for the UK) — this is informational only.
The tool does not validate tax IDs against any government registry. No live VAT-ID verification API calls are made. The format hint is a convenience reminder, not a compliance check.
Known limitations
No FX conversion
Mixed-currency line items are shown at face value. No exchange rate is applied. If your invoice has line items in multiple currencies, you should convert them manually before entering amounts.
No e-invoicing compliance
Countries including Italy, India, France, and others have mandatory e-invoicing requirements (structured XML/JSON formats submitted to government portals). This tool generates a PDF only — it does not produce compliant e-invoice formats.
No sequential numbering enforcement
Many jurisdictions require invoices to be numbered sequentially without gaps. This tool does not enforce or track invoice numbering sequences.
Non-Latin characters in PDF
Characters outside the cp1252 range (emoji, CJK, Arabic, Hebrew, etc.) are replaced with "?" in the PDF. Use the print function for invoices requiring non-Latin scripts.
Single page PDF only
The current PDF generator renders all content on a single A4 page. Very long invoices with many line items may overflow the page boundary.
Frequently asked questions
Does this tool calculate my VAT or tax liability?
No. The VAT field is a convenience field for you to enter a rate you have already determined applies to your invoice. The tool does not determine whether VAT applies, at what rate, or in which jurisdiction. Consult a qualified tax professional for VAT obligations.
Is my invoice data stored on your servers?
No. All invoice data is stored locally in your browser using the Web Storage API (localStorage). Nothing is transmitted to our servers. You can clear your data at any time by clearing your browser storage for this site.
What currencies are supported?
The invoice generator supports all major ISO 4217 currency codes. You can set the invoice currency independently of each line item's currency. FX rates shown elsewhere on this site are mid-market rates for reference only — not guaranteed transaction rates.
How is currency formatting handled?
Currency amounts are formatted using the browser's built-in Intl.NumberFormat API with the style "currency" option. This produces locale-appropriate formatting (e.g. $1,234.56 for USD, €1.234,56 for EUR in German locale). The formatting is display-only — all internal calculations use plain numbers.
Does this generate a legally compliant invoice?
No. Invoice compliance requirements vary widely by country — mandatory fields, e-invoicing mandates (e.g. Italy's Sistema di Interscambio, India's GST e-invoicing), VAT registration thresholds, and sequential numbering rules. This tool generates a professional-looking invoice document. You are responsible for ensuring it meets the legal requirements of your jurisdiction and your client's jurisdiction.
How is the PDF generated?
PDFs are generated entirely in your browser using the open-source pdf-lib library (MIT licence). No data is sent to a server. The PDF uses standard Helvetica fonts (WinAnsi/cp1252 encoding) embedded in the document. Characters outside the cp1252 range (e.g. emoji, CJK characters) are replaced with "?" to prevent encoding errors.
Can I save my invoice for later?
Yes. Your invoice data is automatically saved to your browser's localStorage as you type, under the key "cbf:invoice-generator:scenario". It will be restored the next time you visit this page on the same device and browser. No account or sign-up required.
What happens with mixed currencies in line items?
If line items use different currencies, each line total is shown in its own currency. The invoice subtotal and total are calculated in the invoice's primary currency — line items in other currencies are included at face value (no FX conversion is applied). A warning is shown when mixed currencies are detected.
Was this tool useful?
✓ Thanks — we read every one. We respond within a week if you left an email.