Overview
The Currencies API allows you to manage available currencies in your Firefly III instance. You can create custom currencies, enable/disable them, and set your default currency.List All Currencies
GET /v1/currencies
Query Parameters
Page number for pagination
Response Fields
Currency ID
ISO 8601 timestamp of creation
ISO 8601 timestamp of last update
Whether this is the user group’s native/default currency
Alias for native (same value)
Alias for native (same value)
Whether the currency is enabled for use
Currency name (e.g., “US Dollar”)
ISO 4217 currency code (e.g., “USD”)
Currency symbol (e.g., ”$”)
Number of decimal places for this currency
Create Currency
POST /v1/currencies
Request Body
Currency name (1-255 characters, must be unique)
Currency code (3-32 characters, must be unique)
Currency symbol (1-32 characters, must be unique)
Number of decimal places (0-12)
Whether the currency is enabled
Set as default currency for the user group
Firefly III comes with most world currencies pre-installed. You typically only need to create custom currencies for:
- Cryptocurrencies
- Loyalty points
- Virtual currencies
- Historical or discontinued currencies
Get Currency by Code
GET /v1/currencies/{currency_code}
Returns the same response fields as the List endpoint.
Get Primary Currency
GET /v1/currencies/primary
Returns the user group’s primary/default currency.
Alias: GET /v1/currencies/default
Update Currency
PUT /v1/currencies/{currency_code}
Accepts the same parameters as Create Currency. All fields are optional.
You can also use
PUT /v1/currencies without a code parameter to update multiple currency properties.Delete Currency
DELETE /v1/currencies/{currency_code}
Deletes the currency if it’s not in use.
Enable Currency
POST /v1/currencies/{currency_code}/enable
Enables the currency for use in accounts and transactions.
Disable Currency
POST /v1/currencies/{currency_code}/disable
Disables the currency (it will no longer appear in dropdowns).
Set Primary Currency
POST /v1/currencies/{currency_code}/primary
Sets this currency as the primary/default currency for your user group.
Related Endpoints
Get Currency Accounts
GET /v1/currencies/{currency_code}/accounts
Returns all accounts using this currency.
Get Currency Available Budgets
Endpoint:GET /v1/currencies/{currency_code}/available-budgets
Returns available budgets using this currency.
Get Currency Bills
Endpoint:GET /v1/currencies/{currency_code}/bills
Returns all bills using this currency.
Get Currency Budget Limits
Endpoint:GET /v1/currencies/{currency_code}/budget-limits
Returns all budget limits using this currency.
Get Currency Exchange Rates
Endpoint:GET /v1/currencies/{currency_code}/cer
Returns currency exchange rates for this currency.
Get Currency Recurrences
Endpoint:GET /v1/currencies/{currency_code}/recurrences
Returns recurring transactions using this currency.
Get Currency Rules
Endpoint:GET /v1/currencies/{currency_code}/rules
Returns rules that reference this currency.
Get Currency Transactions
Endpoint:GET /v1/currencies/{currency_code}/transactions
Returns all transactions using this currency.
Query Parameters
Page number for pagination
Start date (YYYY-MM-DD)
End date (YYYY-MM-DD)
Transaction type filter
Currency Exchange Rates
Firefly III also provides exchange rate management through the/v1/exchange-rates endpoints:
List Exchange Rates
Endpoint:GET /v1/exchange-rates
Returns all configured exchange rates.
Get Exchange Rate
Endpoint:GET /v1/exchange-rates/{fromCurrencyCode}/{toCurrencyCode}
Returns the exchange rate between two currencies.
Get Exchange Rate by Date
Endpoint:GET /v1/exchange-rates/{fromCurrencyCode}/{toCurrencyCode}/{date}
Returns the exchange rate for a specific date.
Create Exchange Rate
Endpoint:POST /v1/exchange-rates
Creates a new exchange rate entry.
Update Exchange Rate
Endpoint:PUT /v1/exchange-rates/{userGroupExchangeRate}
Updates an existing exchange rate.
Delete Exchange Rate
Endpoint:DELETE /v1/exchange-rates/{fromCurrencyCode}/{toCurrencyCode}
Deletes all exchange rates between two currencies.
Best Practices
Currency Setup
- Set your primary currency first: This should be your main operating currency
- Enable only needed currencies: Keep the list manageable
- Use standard codes: Stick to ISO 4217 codes when possible
- Configure exchange rates: Set up rates for currencies you use regularly
Multi-Currency Management
When to use multiple currencies:- International transactions
- Foreign bank accounts
- Investment accounts in different currencies
- Cryptocurrency holdings
- Travel expenses
- Keep exchange rates updated
- Use the primary currency for reporting
- Enable auto-conversion for better insights
- Track foreign transaction fees separately
Decimal Places
Choose appropriate decimal places:- Fiat currencies: Usually 2 (USD, EUR, GBP)
- Some currencies: 0 (JPY, KRW)
- Cryptocurrencies: 8 (BTC, ETH)
- Precious metals: 4 (Gold, Silver ounces)
- Loyalty points: 0
Common Currency Codes
Major Fiat:- USD - US Dollar
- EUR - Euro
- GBP - British Pound
- JPY - Japanese Yen
- CNY - Chinese Yuan
- INR - Indian Rupee
- BTC - Bitcoin (8 decimals)
- ETH - Ethereum (8 decimals)
- USDT - Tether (2 decimals)
- XAU - Gold (troy ounce)
- XAG - Silver (troy ounce)