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
- GET /Ledgers/{labelId}
- GET /LedgerNamesByLabelId/{labelId}
- GET /LedgerNamesByIban/{labelId}/{iban}
- GET /LedgerGetById/{labelId}/{ledgerId}
- GET /LedgerGetByIdWithJournalEntryLines/{labelId}/{ledgerId}
- POST /LedgerAdd
- PUT /LedgerUpdate
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
- POST /JournalEntryItemAdd
- POST /JournalEntryItemAddMultiple
- PUT /JournalEntryItemUpdate
- GET /JournalEntryGetById/{labelId}/{journalEntryId}
JournalEntryLine
Definition
Each debit or credit that occurs within a JournalEntry forms its own JournalEntryLine.
Relevant endpoints
- GET /LedgerGetByIdWithJournalEntryLines/{labelId}/{ledgerId}
- GET /JournalEntryLineGetById/{labelId}/{journalEntryLineId}
- POST /JournalEntryLines
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.