For a company that handles in and out payments it’s crucial to know the exact balance of each account, both in the present and in the past, so you know that you pay exactly what is due in every moment. This is exactly what a ledger does. In this, we will explain what a ledger is, why it’s important, and how we’ve implemented it at Devengo.
History
Since the advent of commerce, humans have had the need to record the expenses and revenues generated by buying and selling. So much so that the earliest evidence of writing found is related to transaction recording and dates back to 5000 BC. Simple tokens and tally marks on clay tablets marked the inception of what would evolve into the earliest form of ledgers.
Throughout the years, different civilizations defined their accounting methods, but in the end, they always represented the same thing: debits and credits, or in other words, expenses and incomes. It wasn’t until the mid-13th century when the Italian, Luca Pacioli defined Double-Entry Bookkeeping (we’ll explain this later), which forms the basis of modern accounting.
Why Is It important?
Serving as the backbone of a payment system, a ledger plays a vital role in ensuring its transparency, accuracy, and security. A ledger meticulously tracks every financial transaction, providing a clear and organized snapshot of an entity’s financial history.
A well-maintained ledger offers the necessary details, such as dates, times, parties involved, and amounts, making it easier to validate transactions. This accuracy not only reduces errors but also ensures a reliable foundation for financial decision-making.
Today, it’s very important for a company to prevent fraud and comply with financial regulations. A ledger acts as a safeguard by facilitating the monitoring and detection of suspicious activities.
Finally, a well-kept ledger makes possible the process of reconciliation, comparing financial records with external sources and allowing for the prompt identification and resolution of any discrepancies.
Anatomy of a Ledger
When reading information about ledgers, you usually find terms that are not easy to understand by people who are not familiar with accounting. These are the main terms you need to know to understand a ledger:
Account
An account refers to a unique record used to track and summarize the financial transactions of a business or an individual in a structured manner. It’s like the book or log where you write down all the transactions for this business or individual. Normally we use them to track the movements of money but you can track any type of financial asset, like for example shares.
In this document and in Devengo, when we talk about accounts, you can visualize bank accounts.
Transaction
It is an event or activity that involves a change in the financial position of a business or individual (Account). Transactions are the fundamental building blocks of financial accounting, and they are recorded systematically to track the flow of economic resources.
In the context of Devengo and this document, these transactions refer to the movement of money from one account to another.
Balance
A balance refers to the value recorded in a specific account at a particular point in time. The balance is determined by considering the cumulative effects of all transactions recorded in that account.
In our ledger, the balance represents the amount of money an account holds at any given moment. So each account has a balance, which can be positive or negative, and it reflects the financial position of that account.
Debit / Credit
The terms “debit” and “credit” do not inherently mean an increase or decrease in value; instead, their effects depend on the type of account being dealt with. That’s the reason for talking about credit cards even when we are spending money,
However, for the case of our Ledger and this document, we can assume that a credit refers to a transaction that increases the account balance and a debit to one that decreases it.
Devengo’s ledger
There are different types of ledgers, like distributed and decentralized ledgers, but in Devengo, we have chosen the most common one, the double-entry ledger. To be exact, we have implemented a double-entry, immutable, system-open ledger, which allows us to give our customers an accurate and secure vision of their accounts in real-time. Let’s explain what each of these properties means.
Double entry
In a double-entry ledger, each transaction consists of two entries, one credit entry and one debit entry recorded in different accounts. That means we will reflect each transaction with two records, one for the exit of the money in one account and another for the entry in another one. For example, if we want to record a €100 transfer from Account A to Account B, we would have a transaction composed of the following entries:
Transaction from Account A to Account B
Account ID | Credit | Debit |
Account A | €100 | |
Account B | €100 |
Why is it important to have this double entry? The main reason is that it allows us to easily verify that everything is balanced, ensuring that we haven’t allowed more money to exit than what has entered:
SUM(credit) – SUM(debit) = 0 |
Another important reason is that allows to calculate the balance for a specific account very easily:
Account Balance = SUM(credit for Account) – SUM(debit for account) |
Let’s extend the example to include more transactions and see how it works.
Transaction from Account A to Account B
Account ID | Credit | Debit |
Account A | €100 | |
Account B | €100 |
Transaction from Account B to Account C
Account ID | Credit | Debit |
Account B | €10 | |
Account C | €10 |
Transaction from Account B to Account A
Account ID | Credit | Debit |
Account B | €20 | |
Account A | €20 |
First, let’s see if the ledger is balanced:
(100.00 + 10.00 + 20.00) – (100.00 + 10.00 + 20.00) = 0 |
That’s perfect, we haven’t created money from nothing! Now let’s calculate the balance for the Account B:
Account B Balance = (100.00) – (10.00 – 20.00) = 70.00 |
Immutable
Immutability is an important property if you want to be sure about what happens in your system and be able to know the account state at any specific time in the past. At Devengo, every transaction recorded in a ledger will not be deleted or updated. But we know that sometimes we need to apply adjustments or roll back an unsuccessful transaction so how do we deal with this?
The answer is to create a new reversed transaction in the ledger. For example, if we create a transaction from Account A to Account B and, days later, we receive a notification that Account B is closed, we’d have this in our ledger:
Transaction from Account A to Account B
Account ID | Credit | Debit |
Account A | €100 | |
Account B | €100 |
After the first transaction, the Account A balance is:
Account A Balance = (0.00) – (100.00) = -100.00 |
Transaction from Account B to Account A
Account ID | Credit | Debit |
Account A | €100 | |
Account B | €100 |
When we receive the notification, the adjustment is created and the balance is the same before the first transaction.
Account A Balance = (100.00) – (100.00) = 0 |
Open Loop System
This is not a direct ledger property, but it’s related, and it has implications in how we implemented it. An open loop payments system allows sending money between different banks using a shared network. On the other hand, we have closed-loop systems, that allow you to move money between accounts in the same platform, for example, points inside a game, or the customer account of your favorite supermarket.
Open loop systems are more complex because we need to have a reconciliation system that confirms or rejects based on the destination bank. In our case, at Devengo, we decided to have a status per transaction that can’t be changed once is settled.
What does this translate into our ledger? In our ledger we create and maintain an account for every account that is part of a transaction, not only for our own bank accounts. That means that if one of our customers sends a payment from account A to account B in a different payment institution, we track the transaction for our account (A) but also for the remote account (B). Of course we don’t have all the transactions that happen in B, but we don’t need it, we just need to be sure that all our transactions are correctly settled.
As a bonus point, recording all the transactions from account B makes life easier for our Transaction Monitoring System.
Conclusion
From their historical origins to modern implementations like Devengo’s system, ledgers have evolved into indispensable tools.Their importance lies in facilitating accurate financial tracking, ensuring compliance with regulations, preventing fraud, and supporting efficient reconciliation. In future posts, we will be publishing internal technical details on how we implemented our ledger. Stay tuned!