Multi-Currency & Financial Consolidation
1. Functional versus Transaction Currency
The two currencies in every foreign transaction
SamvraCore supports multi-currency transactions built on the distinction between functional currency and transaction currency. The functional currency is the currency in which the organisation keeps its books, while the transaction currency is the currency in which a particular business event actually takes place. A sale invoiced in a foreign currency, for example, is recorded in that transaction currency but must also be expressed in the functional currency for the ledger.
This separation is the foundation of the whole multi-currency capability. It allows invoices, payments, and journal entries to be entered in any currency while the accounting system continues to report in one consistent functional currency. Conversion between the two happens using exchange rates (covered in the next chapter).
To keep conversions and balances accurate, SamvraCore performs decimal math throughout using the shopspring/decimal library rather than floating-point arithmetic. This choice matters for financial software because floating-point representation can introduce rounding errors in money calculations; using a decimal type keeps monetary values exact.
In practice this means a business can trade internationally, record each deal in the currency the customer or vendor uses, and still produce clean functional-currency financial statements. The functional-versus-transaction model underpins the gain and loss calculations that arise whenever exchange rates change between the moment a transaction is booked and the moment it is settled or revalued.