Ledger

This page contains all relevant terminology regarding Ledgers.

OmnibusBankAccount

Definition

An OmnibusBankAccount is the Label’s BankAccount that is used to receive and transfer Cash. At the moment, each Label can have only one OmnibusBankAccount, but in the future this might change. For administrative purposes, it might be useful for a Label to have separate OmnibusBankAccounts for specific Assets.

Custodian

Definition

A Custodian is a bank that holds Assets for safekeeping to minimize the risk of theft or loss. GiroProviders are required to arrange for a Custodian to keep safe the Assets that they manage for their Investors. In modern times, these Assets may be stored in either physical or digital form. The Custodian can differ per Asset.

CustodianAccount

Definition

A CustodianAccount is a digital account in which Assets are stored with a Custodian.

Ledger

Definition

A Ledger is a financial account that belongs to one Label and one Owner and can contain either cash or units of a certain Asset. Each Ledger has the following characteristics (among others):

  • Type (Cash or Asset): Subdivided into the currencies for the CashLedgers and a specific Asset for the Assets Ledgers.
  • SubType (Normal, Reserved or Dividend): Ledger is assigned to one of the three Subtypes.
  • SubReferenceType (Currency or Asset): This implies that a Ledger’s SubTypeReferenceId points to either a Currency ID or an Asset ID. Has one-to-one relationship with Type but has been implemented for filtering purposes.
  • OwnerType (InvestorAccount, OmnibusBankAccount or CustodianAccount): A Ledger is assigned to one of the three OwnerTypes.

Relevant endpoints

CashMutation

Definition

A CashMutation is a financial mutation in the available Cash of an InvestorAccount to either make investments by placing Orders or sending/receiving available Cash to/from a counter BankAccount of the Investor.

PortfolioMutation

Definition

A PortfolioMutation is a financial mutation in the numbers of units of a certain Asset. It is initiated by executing an order for a specific Asset on behalf of an Investor.

JournalEntry

Definition

In a JournalEntry is specified which Ledgers are debited and which Ledger are credited for a specific PortfolioMutation. It is possible for multiple Ledgers to be credited and/or multiple Ledgers to be debited in one JournalEntry. Each JournalEntry has two timestamps linked to it:

  • OccurredTimeStamp: When occurred, helps to create Reports at a certain reference date or over a certain period.
  • NoticeTimeStamp: When registered within GiroPro.

Relevant endpoints

JournalEntryLine

Definition

Each debit or credit that occurs within a JournalEntry forms its own JournalEntryLine.

Relevant endpoints

JournalEntryGroupReference

Definition

For administrative/organizational purposes, a JournalEntry can be linked to other types of information or to other entities through a JournalEntryGroupReference. This makes it easier to view all the information and previous events that are related to a JournalEntry.

TransactionType

Definition

Every JournalEntry has its own TransactionType so that this can be used for reporting to the tax authorities if necessary and also for filtering purposes.

AllowPayout

Definition

For each CashLedger it is specified whether a User is allowed to manually create a SEPA record (a cash transfer to a BankAccount) from the balance of this ledger. A SEPA record can be created either with a manually entered amount or directly from a CAMT.053 allocation as a refund.

DataReference

Definition

DataReferences are used so that the end user can search JournalEntry descriptions. An example of such a description is INM0003 | 201300000270 | SELL | PENGINE Tech Index Fund | AMF | NET PAYOUT . These descriptions are formed only in the UI and use aggregated data from multiple microservices (‘INM0003’ from the Investor MS, ‘Pengine Tech Index Fund’ from the Asset MS, etc.). To be able to perform a search on these aggregated data within the Ledger MS, data duplication of these aggregated data is applied in the Ledger MS. The duplicated data is stored in DataReference objects. These DataReferences contain a ‘ReferenceId’ that points to the original object, a ‘Value’ that holds its string representation and a ‘DataReferenceType’ that indicates what of what kind the original object is. This allows the Ledger MS to search JournalEntries on related string representations coming from other microservices.


Back to top

© 2026 Pengine.