Understanding Multi-Currency in Accounting
In accounting systems, all transactions are ultimately stored and reported in the base currency of the company (most commonly EUR).Even when multi-currency is supported, accounting software always maintains both:
- the original transaction currency, and
- the converted base currency equivalent.
How Chift Handles Multi-Currency
With the Unified API, you don’t need to worry about whether the underlying connector supports multi-currency — Chift automatically handles both scenarios. The key is to always check whether your transaction currency differs from the folder’s base currency.1. Check the base currency of the folder
Each accounting folder has amain_currency
field available in the Get Folder endpoint.
If your transaction is in another currency (e.g. USD
while the folder base currency is EUR
), it is considered a foreign currency transaction.
2. Provide currency and exchange rate fields
When posting an invoice, journal entry, or financial entry in a foreign currency:- Set the
currency
field in your payload (the currency of the transaction). - Set the
currency_exchange_rate
field to specify the exchange rate between the base and foreign currency.
- The transaction is booked in the foreign currency, and
- The accounting software handles conversion and FX gain/loss tracking automatically.
- Chift converts the transaction amount to the base currency using the provided
currency_exchange_rate
. - The transaction is then stored in base currency only.
3. Forcing an exchange rate (advanced)
By default, when a connector supports multi-currency, Chift will use the accounting software’s default exchange rate for the selected date and currency pair. However, you can override this behavior by using theforce_currency_exchange
query parameter (available on journal entry creation).
💡 Recommendation:
Use this parameter whenever your system is the source of truth for exchange rates (i.e., you define the rate at emission time).
✅ Best Practices
- Always compare your transaction currency with the folder’s
main_currency
. - Always include both
currency
andcurrency_exchange_rate
— even when not strictly required.
→ This ensures consistent behavior across all connectors. - Use
force_currency_exchange=true
when you need full control over the applied rate. - Keep your exchange rates rounded to 6 decimal places for accuracy and stability.