Loan disbursement and repayment
Principal goes out as a receivable. Interest accrues. Repayment clears both.
By Solomon Ajayi · Free to read, no signup
You lend a user ₦100,000 for one month at 5% interest (₦5,000). Three ledger events: the disbursement, the interest accrual, and the repayment. The principal flows OUT of your bank into a loan receivable on your books, it's still your money, just lent. The interest accrues against the user separately. Each payment clears principal AND interest in one entry. Get the lifecycle right and you can build any lending product. Get it wrong and your loan book numbers lie.
Lending feels like giving money away, but on the books it is just a conversion. When you disburse ₦100,000, your cash drops and a Loan Receivable rises by the same amount; the money is still yours, it has merely changed shape from cash you hold to a claim you can collect. No revenue happens at disbursement, because lending the money is not earning anything yet. It is asset-to-asset, the same shape as moving cash between two of your own accounts.
Revenue shows up only as interest, and interest is earned by the passage of time, not by the moment a payment arrives. So at month end you accrue: Interest Receivable goes up and Interest Income is recognized, even though the user has not paid a kobo. This is the mirror of the wallet-interest lesson, flipped around: there you owed users interest on their balances, here users owe you interest on their loans. The repayment then clears both receivables at once, principal and interest, in a single entry.
The lifecycle only closes correctly when all three events fire in order and stay in their lanes. Disbursement and repayment move principal but earn nothing. Accrual earns but moves no cash. Confuse them and your loan book lies: book interest at disbursement and you claim revenue you have not earned; treat the repaid principal as income and you double-count, recognizing ₦105,000 of revenue on a loan that only earned ₦5,000.
Worked example, step by step
Disburse ₦100,000 loan
User's loan is approved. ₦100,000 leaves your bank, lands in their external account. From your books' perspective, you've converted ₦100,000 of bank cash into a ₦100,000 receivable, they owe you that money back.
| Account | Debit | Credit |
|---|---|---|
| Loan Receivable (1800) | ₦100,000.00 | |
| Bank Account (1200) | ₦100,000.00 |
Loan Receivable (asset) UP ₦100,000, they owe us principal. Bank Account (asset) DOWN ₦100,000, cash left. Asset-to-asset transfer. NO revenue recognized here, we haven't earned anything yet, we just moved our cash into a different kind of asset.
Accrue ₦5,000 interest at end of month
Month one. The loan terms specify ₦5,000 interest. You don't wait until payment, you accrue the interest as it's EARNED. This builds an interest receivable and recognizes revenue NOW.
| Account | Debit | Credit |
|---|---|---|
| Interest Receivable (1900) | ₦5,000.00 | |
| Interest Income (4600) | ₦5,000.00 |
Interest Receivable (asset) UP ₦5,000, they owe us interest on top of principal. Interest Income (income) UP ₦5,000, recognized. The user hasn't paid you a kobo yet, but the revenue is earned by the passage of time. This is accrual accounting, same shape as Lesson 14 (interest accrual) but flipped: there you OWED users interest on their wallet; here users OWE you interest on their loan.
User repays ₦105,000 (principal + interest)
Payment day. User wires ₦105,000 back to your bank. This ONE transfer clears BOTH receivables, principal AND interest.
| Account | Debit | Credit |
|---|---|---|
| Bank Account (1200) | ₦105,000.00 | |
| Loan Receivable (1800) | ₦100,000.00 | |
| Interest Receivable (1900) | ₦5,000.00 |
Bank Account UP ₦105,000, cash returned. Loan Receivable DOWN ₦100,000, principal cleared (they no longer owe principal). Interest Receivable DOWN ₦5,000, interest cleared. After this entry: all four accounts back to their pre-loan balances for principal, plus your ₦5,000 of interest income permanently recognized. NET: you earned ₦5,000 on the cycle.
Takeaway
Lending is three ledger events: disburse (cash out, receivable up), accrue interest (interest receivable + interest income, over time), repay (cash in, both receivables cleared). The classic engineering bug is mixing them up, booking interest on disbursement, or treating repayment as new revenue. Each event has a distinct shape, and the loan lifecycle only closes correctly when all three fire in the right order. Build the schedule first, then post against it.
Practice this on a real ledger
Reading is half of it. Open this lesson in the lab to post the entries yourself against a real Postgres-backed double-entry ledger, with the validation on. Free, your sandbox is yours.