Transfers

Move value between accounts through structured ledger transactions.

Transfers are financial operations that move value between accounts within an Infrarails ledger.

Every transfer is represented by a transaction and its associated accounting entries, providing a consistent record of the financial movement.

Understanding transfers

A transfer moves value from one or more source accounts to one or more destination accounts.

For a basic transfer, the accounting effects consist of a debit to the source account and a credit to the destination account.

flowchart LR
    A["Source Account"] -->|Debit €100.00| T["TRANSFER Transaction"]
    T -->|Credit €100.00| B["Destination Account"]

The accounting model records both sides of the movement.

Transfer accounting

Consider two EUR accounts within the same ledger.

AccountInitial balance
Account A€1,000.00
Account B€250.00

A transfer of €100.00 from Account A to Account B produces the following entries:

EntryAccountDirectionAmount
1Account ADebit€100.00
2Account BCredit€100.00

After the transfer is completed and its accounting effects are applied:

AccountFinal balance
Account A€900.00
Account B€350.00

This example assumes both accounts use EUR and no additional fees or adjustments apply.

Transaction type

Transfers use the TRANSFER transaction type.

The core ledger processor requires at least two accounting entries for a transfer.

The entries represent the accounts affected by the operation.

Multiple-entry transfers

A transfer may involve more than two entries.

For example, a financial operation could distribute €200.00 between two destination accounts.

AccountDirectionAmount
Source AccountDebit€200.00
Destination ACredit€150.00
Destination BCredit€50.00

The total debit amount equals the total credit amount.

This model can support more complex internal accounting workflows.

Transfer lifecycle

Transfers follow the standard Infrarails transaction lifecycle.

PENDING
   |
   +-- INFLIGHT
   |      |
   |      +-- COMPLETED
   |      +-- REJECTED
   |      +-- VOID
   |
   +-- COMPLETED
   +-- REJECTED
   +-- VOID

A transfer does not necessarily pass through every state.

Applications should use the current transaction status to determine the operation's processing outcome.

Currency handling

Each account has an associated currency and currency exponent.

Applications should validate currency compatibility before submitting a transfer.

A transfer between accounts denominated in different currencies ma


Did this page help you?