# Multi-Currency

Frihet supports invoicing in 40 currencies with precision compliant with the ISO 4217 standard. If you invoice international clients or work from outside the Eurozone, you can issue invoices in your client's local currency without additional configuration.

## Supported Currencies

Frihet includes 40 currencies covering 71 countries. The main ones:

| ISO Code | Currency | Symbol | Decimals |
|------------|---------------------|---------|-----------|
| EUR | Euro | € | 2 |
| USD | US Dollar | $ | 2 |
| GBP | Pound Sterling | £ | 2 |
| CHF | Swiss Franc | CHF | 2 |
| CAD | Canadian Dollar | CA$ | 2 |
| AUD | Australian Dollar | A$ | 2 |
| JPY | Japanese Yen | ¥ | 0 |
| KRW | South Korean Won | ₩ | 0 |
| CNY | Chinese Yuan | ¥ | 2 |
| INR | Indian Rupee | ₹ | 2 |
| MXN | Mexican Peso | MX$ | 2 |
| BRL | Brazilian Real | R$ | 2 |
| CLP | Chilean Peso | $ | 0 |
| COP | Colombian Peso | $ | 2 |
| PEN | Peruvian Sol | S/ | 2 |
| ARS | Argentine Peso | $ | 2 |
| UYU | Uruguayan Peso | $U | 2 |
| DOP | Dominican Peso | RD$ | 2 |
| CRC | Costa Rican Colon | ₡ | 2 |
| SEK | Swedish Krona | kr | 2 |
| NOK | Norwegian Krone | kr | 2 |
| DKK | Danish Krone | kr | 2 |
| PLN | Polish Zloty | zł | 2 |
| CZK | Czech Koruna | Kč | 2 |
| HUF | Hungarian Forint | Ft | 2 |
| RON | Romanian Leu | lei | 2 |
| BGN | Bulgarian Lev | лв | 2 |
| TRY | Turkish Lira | ₺ | 2 |
| ZAR | South African Rand | R | 2 |
| AED | UAE Dirham | د.إ | 2 |
| SAR | Saudi Riyal | ﷼ | 2 |
| ILS | Israeli Shekel | ₪ | 2 |
| THB | Thai Baht | ฿ | 2 |
| SGD | Singapore Dollar | S$ | 2 |
| HKD | Hong Kong Dollar | HK$ | 2 |
| NZD | New Zealand Dollar | NZ$ | 2 |
| MAD | Moroccan Dirham | MAD | 2 |
| NGN | Nigerian Naira | ₦ | 2 |
| EGP | Egyptian Pound | E£ | 2 |
| GHS | Ghanaian Cedi | GH₵ | 2 |

## Configuration

### Default Currency

The default currency is set according to the country configured in your tax profile:

1. Go to **Settings** > **Tax Profile**
2. Select your **country**
3. The currency is automatically assigned (Spain = EUR, Mexico = MXN, etc.)

### Change currency per invoice

You can change the currency on each individual invoice:

1. When creating or editing an invoice, look for the **Currency** selector
2. Select the desired currency from the list
3. All amounts on that invoice are calculated in the selected currency

An invoice's currency is fixed at the time of issue and does not change afterwards.

## Precision and Rounding

Frihet applies the decimal precision defined by the ISO 4217 standard for each currency:

- **2 decimals** (majority of currencies): EUR, USD, GBP, MXN, BRL, etc.
- **0 decimals** (currencies without cents): JPY, KRW, CLP

### Internal Working

Amounts are stored internally in the minor unit of each currency (minor units):

- For EUR: `12.50 EUR` is stored as `1250` (cents)
- For JPY: `1500 JPY` is stored as `1500` (without subdivision)

This system (`toMinorUnits` / `fromMinorUnits`) avoids rounding errors in arithmetic operations with floating-point decimals.

### Rounding in Calculations

When calculating taxes, subtotals, and totals, Frihet:

1. Operates in minor units (integers)
2. Applies the tax percentage
3. Rounds to the nearest integer (half-up)
4. Converts back to the presentation unit

:::info
This internal integer calculation method is the same one used by Stripe, PayPal, and other payment processors to ensure monetary precision.
:::

## Invoice PDF

Each invoice's PDF reflects the selected currency:

- **Local Symbol**: the currency symbol is displayed (€, $, £, ¥, etc.)
- **Numeric Format**: adapts according to locale convention (decimal comma in EUR, decimal point in USD)
- **ISO Code**: appears next to the total to avoid ambiguity between currencies that share a symbol (USD, CAD, AUD use `$`)

## Tax Forms

Spanish tax forms (Modelo 303, Modelo 130, Modelo 420) are always submitted in euros, regardless of each invoice's currency.

When an invoice is in a currency other than the euro:

- Frihet uses the original amount in the invoice's currency for accounting records
- Quarterly tax forms aggregate amounts converted to EUR
- The ledger reflects both the original currency and the equivalent in euros

:::warning
Frihet does not include a real-time exchange rate service. If you need conversion to EUR for tax forms, verify that the equivalent amounts are correct before submitting the declaration.
:::

## Integration Compatibility

Multi-currency functionality is compatible with payment integrations:

| Integration | Supported Currencies |
|-------------|-------------------|
| [Stripe](/integraciones/stripe) | 135+ currencies |
| [PayPal](/integraciones/paypal) | 25+ currencies |
| [Revolut](/integraciones/revolut) | 30+ currencies |
| [Wise](/integraciones/wise) | 50+ currencies |
| [Stripe Connect](/integraciones/stripe-connect) | Same currency as the connected account |

When receiving a payment in a currency different from the invoice's, the integration records the payment in the received currency and Frihet reconciles it with the corresponding invoice.

## Frequently Asked Questions

### Can I have invoices in different currencies in the same period?

Yes. Each invoice is independent. You can issue an invoice in EUR, the next one in USD, and the next one in GBP within the same quarter.

### Does the currency affect tax calculation?

No. The tax percentage is applied to the taxable base in the invoice's currency. The tax rate (IVA, IGIC) does not depend on the currency.

### How are multi-currency invoices exported?

The [accounting export](/integraciones/exportacion-contable) includes the currency code in each record. Xero and QuickBooks formats natively support multi-currency. ContaPlus and DATEV require manual conversion to EUR.

---

**Previous:** [Plans and Invoicing](/configuracion/planes-facturacion) | **Related:** [Accounting Export](/integraciones/exportacion-contable)
