Cross-Currency Transactions

Cross-Currency Transactions

 

 

Target release

Epic

Document status

DRAFT

Document owner

 

Designer

Developers

QA

Overview

  • This functionality is mainly needed for transactions that involve more than one currency.  The transaction may be initiated in one currency, on an account which is opened in another currency. Every account will be opened with a currency (which will be the base-currency for that account).

  • 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.

  • Loans disbursements will always be done in the account currency (no change to what Mifos supports today), however, repayments can be done in different currency but in that case exchange operation is needed.

  • For financial accounting process, a special Exchange Position account and Equivalent Exchange Position   account will be maintained and corresponding amounts in source and target currency posted to these accounts.


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. 

Background and strategic fit

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.

Requirements/User Stories

#

Title

User Story

Importance

Notes

#

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>

 

 

 

Business Rules

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

Attributes to be captured for exchange rate:

Attribute

Description

Notes

Attribute

Description

Notes

Base Currency

 

 

Attributes to be captured for exchange rate:

Attribute

Description

Notes

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

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

 

Security and Permissions

New permissions needed for maintaining the exchange rates.

Mifos Functionality Enhancements

New Screens

New screens needed for searching, listing and maintaining Exchange rates.

Changes to Existing Screens

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)

Changes/Enhancements to Batch Jobs

None.

Changes/Enhancements to Accounting Entries

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:

 

User interaction and design

Exception Handling

Reporting

APIs

Notes

Questions

Below is a list of questions to be addressed as a result of this requirements document:

Question

Outcome

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?

 

Out of Scope

In the initial scope – Only deposits, withdrawals and repayments will be allowed in multiple currencies. The following will not be supported

 

  • Fees applied and paid in other currencies other than the currency in which the account is opened

  • Loan disbursals in other currencies other than the currency in which the account is opened

a)      For the loan productssu