Supported currencies
The system supports the following currencies (fromInvoiceForm.tsx:89-101):
- North America (USD, CAD, MXN)
- Europe (EUR, GBP, CHF)
- Asia-Pacific (JPY, CNY, INR, AUD)
- Africa (NGN)
Setting your default currency
Your default currency is automatically selected for new invoices.Find the default currency section
The Default Currency card appears near the top of the page with the description:
“Used as the default currency when creating new invoices.”
Selecting currency for an invoice
When creating an invoice, you can override the default currency:- Open the invoice form at
/invoices/create - Locate the Currency field in the Invoice Details section
- Select a currency from the dropdown
- All amounts on the invoice automatically format for the selected currency
The currency is set at the invoice level and stored with the invoice. Each invoice can use a different currency.
Currency formatting
All monetary values are automatically formatted using the Intl.NumberFormat API based on the selected currency.Formatting implementation
TheformatCurrency function (from app/lib/invoice.ts:50-70) handles all currency display:
Formatting examples
The same amount (1234.56) formats differently per currency:| Currency | Code | Formatted Output |
|---|---|---|
| US Dollar | USD | $1,234.56 |
| Euro | EUR | €1,234.56 |
| British Pound | GBP | £1,234.56 |
| Japanese Yen | JPY | ¥1,235 |
| Swiss Franc | CHF | CHF 1,234.56 |
| Indian Rupee | INR | ₹1,234.56 |
Japanese Yen (JPY) automatically formats without decimal places since yen doesn’t use fractional units.
How currency affects invoices
Currency selection impacts several areas:Line item amounts
All line item calculations use the invoice currency:Invoice totals
The summary section formats all totals with the invoice currency:- Subtotal
- Discount amounts
- Tax amount
- Total amount
Database storage
Currency is stored as a text field with the invoice:Currency and payment accounts
When setting up payment accounts, you can specify which currency each account accepts.Creating currency-specific accounts
Specify the currency
In the Currency field (optional), enter the currency code:
- “GBP” for British Pound accounts
- “USD” for US Dollar accounts
- “EUR” for Euro accounts
- etc.
Multi-currency best practices
Matching invoice and payment currencies
Example: USD invoiceCurrency conversion considerations
Invoice Generator does NOT perform currency conversion. It displays amounts in the selected currency but doesn’t convert between currencies.
- Calculate the amount in the target currency before creating the invoice
- Create the invoice in the customer’s preferred currency
- Provide payment instructions that account for conversion:
- Specify “Amount must be paid in EUR”
- Note “Conversion fees to be paid by sender”
- Indicate “Exact amount in USD to be calculated at time of payment”
Tax considerations
Tax rates work the same across all currencies:- Tax rate is entered as a percentage (e.g., 20%)
- Tax amount is calculated on the subtotal
- Tax amount is formatted in the invoice currency
Regional formatting differences
The Intl.NumberFormat API handles regional differences automatically: Decimal separators:- English locale:
1,234.56(comma thousands, period decimal) - Many EU locales:
1.234,56(period thousands, comma decimal)
- Most currencies: Symbol before amount ($100)
- Some currencies: Symbol after amount (100₹)
Common currency scenarios
Scenario 1: Freelancer with international clients
Setup:- Default currency: USD (your local currency)
- Payment accounts:
- USD account (default)
- EUR account for EU clients
- Create invoices in client’s preferred currency
- UK client wants invoice in GBP
- Create invoice, select GBP currency
- Enter amount in GBP
- Include your GBP account details (or note conversion will occur)
- Customer pays in GBP
Scenario 2: Company operating in multiple regions
Setup:- Multiple company profiles (US office, EU office, UK office)
- Currency set per region
- Separate payment accounts per currency
- Select appropriate company profile
- Currency defaults to that region
- Use matching payment account
- Generate invoice in local currency
Scenario 3: Single currency with international clients
Setup:- Default currency: GBP
- Single payment account in GBP
- All invoices in GBP regardless of client location
- Create invoice in GBP
- Add note: “Payment must be made in GBP. Conversion fees to be paid by sender.”
- Client handles currency conversion at their bank
Troubleshooting
Invalid currency errors
If you see incorrectly formatted amounts:Rounding differences
All amounts use 2 decimal places (except JPY):Currency symbol not displaying
If currency symbols don’t display:- Check browser font support for special symbols (₹, ¥, etc.)
- Verify the currency code is spelled correctly
- Ensure browser supports Intl API (all modern browsers do)
Database storage
Currency information is stored in two places: Default currency (settings table):Next steps
- Learn how to create invoices in different currencies
- Set up payment accounts for multiple currencies
- Configure your company profile and default currency