Skip to main content
This guide shows you how to convert between traditional credit/debit accounting and Formance’s source/destination model

The golden rule

The golden rule for converting a credit/debit accounting model to a source/destination model is:
  • Credit becomes Destination
  • Debit becomes Source

Normal accounts

In accounting practice we usually designate accounts as normal debit or normal credit, depending if these are on the asset or liability side of the balance sheet. As such they create a perspective of looking at the Ledger traditionally from an accountant’s perspective. Debit and Credit mentioned above are influenced potentially from this perspective, and as such these are translated as follows:
Posting to the balanceNormal DebitNormal Credit
Debit EntryIncrease (destination)Decrease (source)
Credit EntryDecrease (source)Increase (destination)

Impact on the balance sheet

Now let’s apply the golden rule to the balance sheet: Assets=Liabilities+Equity\sum Assets = \sum Liabilities + \sum Equity

Assets

Assets are also called normal debit accounts. They are increased by debits and decreased by credits. Therefore, in the source/destination model, when an asset account is increased, the source component is increased, hence the balance is decreased, as per the balance equation: Balance=DestinationSourceBalance = \sum Destination - \sum Source
This “negative” balance in asset accounts (normal debit), is a debit, meaning that this is a value you own.In case this balance would be “positive”, as this is a normal debit account, it means you owe this value to somebody, who provided this as a credit (e.g. an overdraft at the bank on the account in your name).

Liabilities and Equity

Liabilities and equity are also called normal credit accounts. They are increased by credits and decreased by debits. Therefore, in the source/destination model, when a liability account is increased, the destination component is increased, hence the balance is increased, as per the balance equation: Balance=DestinationSourceBalance = \sum Destination - \sum Source
The “positive” balance in liability accounts (normal credit), is a credit, meaning you owe this value to the account holder or the business equivalent this account represents.In case this balance would be “negative”, as this is a normal credit account, it means the account holder or business equivalent is debtor, and hence you are providing credit (e.g. a loan)

Conversion example

Now, let’s convert common transactions from the credit/debit model to the source/destination model.

Topping-up a wallet with a bank transfer

Let’s consider a user topping-up their wallet with a bank transfer. To the business, the user wallet is a liability, hence normal credit, and the bank account is an asset, so normal debit. In the credit/debit model, the transaction would be:
AccountDebitCredit
User Wallet$0$100
Bank Account$100$0
By applying the golden rule, we get:
AccountSourceDestination
User Wallet$0$100
Bank Account$100$0
From this, we can derive the balance of the accounts:
AccountSourceDestinationBalance
User Wallet$0$100$100
Bank Account$100$0-$100
In the above example, the bank account would be in overdraft, and an element within Formance would be that we specifically allow overdraft in Numscript for these source accounts.

Transferring money between two wallets

Let’s consider user 1 transferring $100 from their wallet to user 2’s wallet. Both wallets are liabilities to the business, and as such both are normal credit. As the normality of the accounts is not in play here, the basic Golden Rule applies. We consider the following accounts:
AccountBalance
User 1 Wallet$200
User 2 Wallet$0
In the credit/debit model, the transaction would be:
AccountDebitCredit
User 1 Wallet$100$0
User 2 Wallet$0$100
Which would result in:
AccountBalance
User 1 Wallet$100
User 2 Wallet$100
By applying the golden rule, we get:
AccountSourceDestination
User 1 Wallet$100$0
User 2 Wallet$0$100
From this, we can derive the balance of the accounts:
AccountSourceDestinationBalance
User 1 Wallet$100$200$100
User 2 Wallet$0$100$100

Withdrawing money from a wallet

Let’s consider a merchant withdrawing $50 from their wallet to their bank account. The wallet is a liability, so that would be a normal credit, and the app bank account, from which we initiate the bank transfer, is an asset, a normal debit account. We consider the following accounts:
AccountBalance
Merchant Wallet$100
Bank Account$1000
In the credit/debit model, the transaction would be:
AccountDebitCredit
Merchant Wallet$50$0
Bank Account$0$50
Which would result in:
AccountBalance
Merchant Wallet$50
Bank Account$950
By applying the golden rule, we get:
AccountSourceDestination
Merchant Wallet$50$0
Bank Account$0$50
From this, we can derive the balance of the accounts:
AccountSourceDestinationBalance
Merchant Wallet$50$100$50
Bank Account$1000$50$950

Treasury movement between two bank accounts

Let’s consider a business moving $250 from a bank account located in the US to a bank account located in the UK. Both bank accounts are assets, so normal debit to the business. As the normality of the accounts is not in play here, the basic Golden Rule applies. We consider the following accounts:
AccountBalance
US Bank Account$1000
UK Bank Account$500
In the credit/debit model, the transaction would be:
AccountDebitCredit
US Bank Account$0$250
UK Bank Account$250$0
Which would result in:
AccountBalance
US Bank Account$750
UK Bank Account$750
By applying the golden rule, we get:
AccountSourceDestination
US Bank Account$0$250
UK Bank Account$250$0
From this, we can derive the balance of the accounts:
AccountSourceDestinationBalance
US Bank Account$1000$250-$750
UK Bank Account$750$0-$750
As we discussed above, asset accounts (normal debit) will have a negative balance in the source/destination model.