Software: MoneyWorks #accounting software
In the MoneyWorks general ledger, a foreign currency account is represented as two separate amounts: the value in the foreign currency, and the value of the difference between that currency and the base currency. The difference is stored in a (normally hidden) account called a “delta account”, so that the following is always true:
Base Currency Value = Foreign Currency Value + Delta Value
— MoneyWorks v7 User Guide Page G272, Multi-currencies: Behind the Scenes
You can keep the bank, accounts receivable and account payable account in foreign currency; and each of these accounts has a Delta account. The -~~DEL account is a system account, which captures the “exchange ratio” of a foreign currency account.
Assuming you record a foreign currency Purchase Invoice of US$5,786.00 in the MoneyWorks accounting system at an exchange of 0.7500USD:1.0000SGD (Singapore Dollar is the Base currency). The journal behind:
Debit 160.100: Inventory Assets account 7,714.67
Credit 230.200: Accounts Payable (USD) 5,786.00
Credit 230.200-~~DEL: Accounts Payable (USD 1,928.67
The foreign currency value of 5,786.00 (account code 230.200) and the Delta Value of 1,928.67 (account code 230.200-~~DEL) added up is the base currency value 7,714.67 (5,786 / 0.75).