In some countries, you are able to get bank accounts that can hold more than one currency, but normally not every possible world currency. There are two possible options of dealing with this:
- Use one multi-currency account, but the system currently doesn't allow you to restrict the bank account to a list of supported currencies. Also, it is common to have separate ledger accounts at least per home currency/foreign currencies, so I suggest the following (Idea 1): if multicurrency handling is enabled for a bank account, require a setup of supported currencies for the bank account and their related ledger accounts. Do not allow posting bank transactions in currencies other than the selected and post it to separate ledger accounts based on the currency.
- Use multiple single-currency bank accounts, with the same IBAN/routing numbers, but with different currencies. The biggest out of the box obstacle in this case is bank statement import, which does not match currencies, only IBAN or other account number. Therefore, I suggest (Idea 2): add currency handling to the bank statement identification process. If the account is a single-currency account, check that the account number and currency matches, if it is a multi-currency account and Idea 1 is implemented, check that the currency is in the allowed currencies list.
(Just to be thorough - there is actually a mixed possibility as well, where one bank account will represent the home currency and the other all foreign currencies of the same account. You can use this currently to separate out ledger accounts, but it still causes problems with bank statement account identification and there are no controls)