Skip to main content
Skip table of contents

Interledger Accounts Logic

Overview

Interledgers are a special type of account that our system can use for various purposes related to the operation of real accounts (physical IBANs). They are not used for virtual accounts. You can read more about these concepts in the section on Real and Virtual accounts.

Sometimes interledgers are also referred to as pooling accounts, but this often depends on the purpose and context in which the account is used.

In our system, interledgers help manage balances, conduct synthetic exchanges, and facilitate internal payments when a user transfers funds between accounts of different providers.

It is crucial to understand that the White Label (WL) must manage the balance of its interledger account and ensure it always has sufficient funds.

For instance, Client A wants to transfer euros to Client B:

  • Both clients are in the Crassula system under the same WL.

  • Client A has an account with Provider 1.

  • Client B has an account with Provider 2.

A straightforward solution would be to create an external SEPA or international payment between accounts. However, such a transfer would incur substantial fees, even though both clients have accounts within the same system, and they would not understand why they need to pay a fee similar to a full SWIFT payment.

Interledgers help in this scenario. The WL would have one interledger account with each provider, enabling the following transaction flow:

  1. A transaction from Client A to the WL’s interledger account with Provider 1.

  2. A transaction from the WL’s interledger account with Provider 2 to Client B’s account.

Both transactions are considered internal since each remains within its respective provider. Client A will not know about this scheme; they will see that they sent money to Client B, and vice versa.

FX Using Interledgers

The section provides a more detailed description of the fund movement mechanisms during currency exchanges involving different types of accounts. For comparison, we will describe the operations of both virtual and real accounts to understand the differences.

Before continuing, it is important to note that this approach uses not only interledger accounts for accurate tracking of fund movements but also third-party services to obtain exchange rates. By default, we connect to the ECB for their rates, which are updated once daily. However, other rate providers can be connected, including those that provide real-time data.

FX Between Real Accounts

This scenario involves currency exchange between real accounts of a provider. Real (physical) accounts in the provider's system have their own balance, and all fund movements are actual. Therefore, we cannot simply create fictitious debits or credits.

For example, if a user wants to exchange 100 USD for 85 GBP according to the ECB rate, and the user has two different real single-currency accounts. The diagram of fund movements will be as follows:

1.png

In the Crassula system, 4 operations will be created in Banking - Transactions:

  1. Currency conversion of -100 USD from the user's account.

  2. Transfer of +100 USD to the interledger account.

  3. Transfer of -85 GBP from the interledger account.

  4. Currency conversion of +85 GBP to the user's account.

There will be no automatic movement of funds between interledger accounts. If the WL interledger account had 0 GBP at the time of the exchange, the exchange would fail, returning an insufficient funds error, as there would be no GBP to credit to the user’s real account.

FX Between Real and Virtual Accounts

This scenario involves currency exchange between a real and a virtual account.

For example, if a user wants to exchange 100 USD for 85 GBP according to the ECB rate, and the user has two different real and virtual single-currency accounts. The diagram of fund movements will be as follows:

2.png

In the Crassula system, 3 operations will be created in Banking - Transactions:

  1. Currency conversion of -100 USD from the user's account.

  2. Transfer of +100 USD to the interledger account.

  3. Currency conversion of +85 GBP to the user's account.

Monitoring liquidity on the interledger account is not required here. However, it is worth noting that the WL's virtual account must have sufficient funds in case the user wants to withdraw the converted pounds immediately. The system will return an error if there are insufficient funds on the pooling account to allow the user to make a transfer from the virtual account.

FX Between Virtual and Real Accounts

This scenario involves currency exchange between a virtual and a real account.

For example, if a user wants to exchange 100 USD for 85 GBP according to the ECB rate, and the user has two different virtual and real single-currency accounts. The diagram of fund movements will be as follows:

3.png

In the Crassula system, 3 operations will be created in Banking - Transactions:

  1. Currency conversion of -100 USD from the user's account.

  2. Transfer of -85 GBP from the interledger account.

  3. Currency conversion of +85 GBP to the user's account.

If the WL interledger account had 0 GBP at the time of the exchange, the exchange would fail, returning an insufficient funds error, as there would be no GBP to credit to the user’s real account.

FX Between Virtual Accounts

This scenario involves currency exchange between virtual accounts.

For example, if a user wants to exchange 100 USD for 85 GBP according to the ECB rate, and the user has two different virtual single-currency accounts. The diagram of fund movements will be as follows:

4.png

In the Crassula system, 2 operations will be created in Banking - Transactions:

  1. Currency conversion of -100 USD from the user's account.

  2. Currency conversion of +85 GBP to the user's account.

The WL's virtual account must have sufficient funds in case the user wants to withdraw the converted pounds immediately. The system will return an error if there are insufficient funds on the pooling account to allow the user to make a transfer from the virtual account

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.