Currency Conversion

Overview

Many organizations handle multiple currencies in transactions. Typically there are two types of currencies:

  • Presentment currency (or payment currency): the currency displayed on the invoice to customers
  • Settlement currency (or merchant currency): the currency settled in the merchant's wallet

Currency conversion typically happens during payment processes. Each payment received from customers are converted at exchange rates offered by the payment service providers. Sometimes, additional transaction fees are charged by the payment service providers for currency conversion. Similarly, when refunds or disputes happen, the funds are converted back from merchant's currency to the original payment currency.

Multi-currency Design

Primary Currency

Each financial record on Leapfin Platform has a primary currency, named currencyCode. All amount values on the financial records are in primary currency. This is the currency used, by default, in all reports on Leapfin Platform.

While there is no strict constraint, it is highly recommended to choose the finance reporting currency as the primary currency, and keep it consistent across all financial record types (e.g. invoice, payments, refunds, etc). Such design will reduce complexity in reporting and reconciliation.

Additional Currencies

Additional currencies, if needed, are stored as customFields of financial records. Additional currencies and amounts can be either mapped directly from data sources, or derived using currency conversion rule. Additional currencies and amounts can also be used in search and reporting on Leapfin Platform.

📘

Journal Entry Currency

To ensure data consistency, Leapfin requires journal entries to be booked in the same currency as the primary currency of the financial record.

Exchange Rates

Exchange rates used to convert from primary currency to additional currencies are also stored on financial records.

Configuration

Required parameters

FieldsDescription
originalAmountthe pre-conversion currency amount. Select a field name on the financial record.
originalCurrencyCodethe pre-conversion currency code. Select a field name on the financial record.
desiredCurrencyCodethe post-conversion currency code. Select a field name on the financial record, or enters a 3-digit currency code.
conversionDatethe date of the currency conversion. The date affects the exchange rate value. Select a field name on the financial record.

Optional parameters

FieldsDescription
currencyExchangeRatethe exchange rate to be used for the currency conversion. If left blank, Leapfin will apply the daily exchange rate on fixer.io based on the conversionDate.
replaceOriginala binary indicator of whether to override the pre-conversion amount and currency with the post-conversion values in the same fields. If left blank, the default is yes.
originalAmountNamea field name to store the pre-conversion currency amount when replaceOriginal is yes. If left blank, the default field name "originalAmount" is used.
originalCurrencyCodeNamea field name to store the pre-conversion currency code when replaceOriginal is yes. If left blank, the default field name "originalCurrencyCode" is used.
convertedAmountNamea field name to store the post-conversion currency amount when replaceOriginal is no. If left blank, the default field name "convertedAmount" is used.
convertedCurrencyCodeNamea field name to store the post-conversion currency code when replaceOriginal is no. If left blank, the default field name "convertedCurrencyCode" is used.

Walkthrough

Pre-conversion

Assume that a US e-commerce company has a transaction in Europe. The customer is invoiced EUR 100 on 01/01/2022 and pays the same amount on 01/02/2022. The payment processor converts the payment amount to USD 105 base on its conversion rate and pays out to the e-commerce company on 01/03/2022.

After receiving the data, following financial records are created on Leapfin Platform.

Invoice
amount100
currencyCodeEUR
date01/01/2022
Payment
amount100
currencyCodeEUR
date01/02/2022
exchangeRate- currencyCode: USD
- rate: 1.05
Payout
amount105
currencyCodeUSD
date01/03/2022

Post-conversion (scenario 1)

If the reporting currency of the US company is USD, then currency conversion rules should be applied on Invoice and Payment record. After rule execution, the financial records will look like below.

📘

The results assume that the exchange rate from payment processor (i.e. 1 EUR = 1.05 USD) is used as currencyExchangeRate . Alternative exchange rates, such as daily rates from fixer.io, may also be used for the currency conversion rule.

Invoice
amount105
currencyCodeUSD
date01/01/2022
exchangeRate- currencyCode: EUR
- rate: 0.95
customFields- originalAmount: 100
- originalCurrencyCode: EUR
Payment
amount105
currencyCodeUSD
date01/02/2022
exchangeRate- currencyCode: EUR
- rate: 0.95
customFields- originalAmount: 100
- originalCurrencyCode: EUR
Payout
amount105
currencyCodeUSD
date01/03/2022

Post-conversion (scenario 2)

If the US company want to use EUR as its reporting currency for Europe business, then currency conversion rules should be applied on Payout record. After rule execution, the financial records will look like below.

Invoice
amount100
currencyCodeEUR
date01/01/2022
Payment
amount100
currencyCodeEUR
date01/02/2022
exchangeRate- currencyCode: USD
- rate: 1.05
Payout
amount100
currencyCodeEUR
date01/03/2022
exchangeRate- currencyCode: USD
- rate: 1.05
customFields- originalAmount: 105
- originalCurrencyCode: USD