|
For any cross-currency operations (between different currencies) Mifos will first make an exchange operation automatically. Example, if a deposit (or withdrawal) is made in USD on a CDF account, Mifos will convert the USD amount to CDF as per the currency exchange rate applicable for the transaction date.
Then the corresponding CDF amount will be posted to the deposit or loan account.
Mifos will have a provision to maintain daily or periodic exchange rates between various currencies. In Mifos, if no exchange rate is found for the current date, system will user the latest rate that is available on or before the transaction date.
In the initial scope – Only deposits, withdrawals and repayments will be allowed in multiple currencies. Fees cannot be applied in multiple currencies. Also, loan disbursals will not be supported in any currencies other than the account currency.
There are Mifos users in countries where the members may prefer to do transactions in currencies other than the base currency or the currency in which the account is opened.
Today, the currency conversions will need to be done outside Mifos and any record of the source currency will not be available in Mifos.
It also helps to Mifos more suited for micro-finance or small/medium scale banking that involved multiple currencies.
# | Title | User Story | Importance | Notes |
---|---|---|---|---|
1 | Deposit in non-base currency to account opened in base-currency | As a bank officer, I wish to accept deposit of money in currency-X to an account opened in base-currency | Must Have | |
2 | Deposit in non-base-currency to account opened in another-currency which is not the base-currency | As a bank officer, I wish to accept deposit of money in currency-X to an account opened in currency-Y and currency-X and currency-Y are not the base-currency | Must Have | |
3 | Deposit in base-currency to account opened in another currency | As a bank officer, I wish to accept deposit of money in base-currency to an account opened in currency-X | Must Have | |
4 | Maintain Exchange Rates | As an operations manager – I wish to maintain the exchange rates between various currencies and the base-currency Add a new currency exchange rate (in relation to base-currency) for a given date Change an existing currency exchange rate (in relation to base-currency) for a given date Delete an existing currency exchange rate (in relation to base-currency) for a given date | Must Have | |
5 | Bulk Load of Exchange Rates | As an operations manager – I wish use an excel sheet to import the date-wise exchange rates applicable between various currencies and the base-currency | Good to Have | |
6 | Maintain Financial Accounts related for cross-currency transactions | As a head-accountant – I wish to setup the financial accounts that will be used for currency conversions | Must Have | |
7 | Enable / Disable Multi-Currency | As a head-accountant – I wish to enable multi-currency financial accounting for my organization – if not enabled, then the current functionality of not allowing cross-currency transactions will continue | Must Have | |
8 | Multi-Currency Reporting | As a financial analyst, I need to be able to display our operating currency (DOP) in another currency (USD) for monthly and quarterly reporting (gross portfolio, disbursements, savings balance, write-offs, principal repayments, income, etc.) | Good to Have | Posted by Esperanza (Dominican Republic) |
<similar use cases needed for loan transactions - repayments> | ||||
<similar use cases needed for withdrawal transactions> |
Base-currency must be defined in Mifos.
If cross-currency accounting is enabled, then:
a) The following accounting configurations for Financial Activity Mapping should be specified:
Financial Activity: Currency Exchange Position Account
Financial Activity: Equivalent Currency Value Position Account
Financial Activity: Inter-Branch Currency Transfers
b) For the savings products, the following must be set:
Assets: Savings reference – Base-currency, Currency 1, Currency 2, Currency 3 etc.
Assets: Savings reference per payment Type:
Payment Type 1 – Base-currency, Currency 1, Currency 2, Currency 3 etc.
Payment Type 2 – Base-currency, Currency 1, Currency 2, Currency 3 etc.
Etc.
c) For the loan products, the following must be set:
Assets: Fund Source – Base-currency, Currency 1, Currency 2, Currency 3 etc.
Assets: Fund Source per payment Type:
Payment Type 1 – Base-currency, Currency 1, Currency 2, Currency 3 etc.
Payment Type 2 – Base-currency, Currency 1, Currency 2, Currency 3 etc.
Etc.
Transaction Flow: (this section is to be completed)
- Deposits, Withdrawals and Repayments can be done in any currency other than the account currency
- If transaction is done in the same currency as the account currency, no change in processing
- If account is in base-currency and transaction is done in another currency
- Convert amount in transaction-currency to the base-currency
- If account is in another currency and transaction is done in base-currency
- If account is in currency X and transaction is done in currency Y and base-currency is different
Attributes to be captured for exchange rate:
Attribute | Description | Notes |
---|---|---|
Base Currency |
Attributes to be captured for exchange rate:
Attribute | Description | Notes |
---|---|---|
Exchange Rate Date | The Date for this exchange rate | Not Null |
Source Currency | From which currency | Not Null |
Target Currency | To which currency | Not Null |
Exchange Rate Type | A type which describes to which type of transactions this rate is applicable. If Null, then this rate will be applicable for all transactions. | Nullable. 'Buy' or 'Sell' |
Exchange Rate | The actual exchange rate | Not Nullh |
Attributes to be captured for transactions:
Attribute | Description | Notes |
---|---|---|
Original Currency | The actual currency in which this transaction was initiated | Nullable |
Original Amount | The actual amount (in actual currency) in which this transaction was initiated | Nullable |
Exchange Rate Applied | The exchange rate that was used to convert Original Amount to the actual currency of the transaction | Nullable |
New permissions needed for maintaining the exchange rates.
New screens needed for searching, listing and maintaining Exchange rates.
System --> Configurations
Add a new configuration "Allow Cross Currency Transactions" - Yes/No
Accounting --> Accounts Linked to Financial Activity
Three more account types can be selected:
- Cross-Currency Exchange Position Account - The account to which all amount in source currency will be posted
- Cross-Currency Equivalent Exchange Position Account - The account to which all amount in target currency will be posted
- Cross-Currency Inter-Branch Transfer Account - The account to which will be used if the currency exchange is across two branches (to confirm if this this account is to be used only if the transaction is across two branches)
None.
Accounting Entries for deposits:
a) Accept deposit of 100 in currency-X to an account opened in base-currency - (assuming 1 currency-X = 15 base-currency)nge
S.No. | Journal Entry | Dr | Cr |
1. | <Savings-reference-Asset-currency-X> Dr <Inter-Branch Currency Transfers> Cr | 100 |
100 |
2. | <Inter-Branch Currency Transfers> Dr <Currency Exchange Position Account-currency-X> Cr | 100 |
100 |
3. | <Equivalent Exchange Position Account-base-currency> Dr <Inter-Branch Currency Transfers> Cr | 1,500 |
1,500 |
4. | <Inter-Branch Currency Transfers> Dr <Savings-control-liability> Cr | 1,500 |
1,500 |
b) Accept deposit of 100 in currency-X to an account opened in currency-Y and currency-X and currency-Y are not the base-currency - ( assuming 1 currency-X = 15 base-currency and 1 base-currency = 0.5 currency-Y)
S.No. | Journal Entry | Dr | Cr |
1. | <Savings-reference-Asset-currency-X> Dr <Inter-Branch Currency Transfers> Cr | 100 |
100 |
2. | <Inter-Branch Currency Transfers> Dr <Currency Exchange Position Account-currency-X> Cr | 100 |
100 |
3. | <Equivalent Exchange Position Account- currency-Y> Dr <Inter-Branch Currency Transfers> Cr | 750 |
750 |
4. | <Inter-Branch Currency Transfers> Dr <Savings-control-liability> Cr | 700 |
750 |
Question: Should there be an accounting entry in the base currency? If yes, what are the entries?
c) Accept deposit of 150 in base-currency to an account opened in currency-X - (assuming 1 currency-X = 15 base-currency)
S.No. | Journal Entry | Dr | Cr |
1. | <Savings-reference-Asset-base-currency> Dr <Inter-Branch Currency Transfers> Cr | 150 |
150 |
2. | <Inter-Branch Currency Transfers> Dr <Currency Exchange Position Account-base-currency> Cr | 150 |
150 |
3. | <Equivalent Exchange Position Account-currency-X> Dr <Inter-Branch Currency Transfers> Cr | 10 |
10 |
4. | <Inter-Branch Currency Transfers> Dr <Savings-control-liability> Cr | 10 |
10 |
Similar accounting entries will be needed for withdrawals and loan repayments:
Include any mockups, diagrams or visual designs relating to these requirements.
List of error scenarios and the action - if message is to be displayed, then text of the message.
List of changes/enhancements/new reports to support this functionality
From a functional perspective, list of new APIs needed.
From a functional perspective, list of existing APIs that need changes.
Points to be handled during upgrades
Any reference data that needs to be prepopulated or defaulted for clients/users
Below is a list of questions to be addressed as a result of this requirements document:
Question | Outcome |
---|---|
Should we have a base currency defined for the Mifos installation? | Yes. Only one base-currency will be defined in Mifos for a financial institution |
If a base currency is set, then how will it be used? For example: Base currency is set as CDF. Withdrawal of EUR 100 an account opened in USD. Then will the conversion happen directly, between EUR and USD or will EUR 100 be first converted to CDF and then the corresponding CDF amount converted to EUR? | If the exchange operation involve different currencies from the base currency ex : deposit of USD in Euro Account. This exchange operation will run in 2 times : first exchange from USD to Base currency and the exchange to base currency to Euro.
|
Should we maintain Buy and Sell rates for various currencies in relation to to the base-currency? Or should Mifos maintain only one conversion rate? | |
If Buy and Sell Rates are used, then how are they to be used? The Buy rate would be used for non-base-currency deposits and repayments from members The Sell rate would be used for non-base-currency withdrawals Is this correct? |
In the initial scope – Only deposits, withdrawals and repayments will be allowed in multiple currencies. The following will not be supported
a) For the loan productssu