top of page

Hire Purchase Loan Management in Odoo

  • Writer: Ahmad Zaman Qureshi
    Ahmad Zaman Qureshi
  • 11 minutes ago
  • 7 min read

Buying a company vehicle or piece of equipment on hire purchase brings a familiar accounting headache: splitting the purchase between an asset and a loan, separating principal from interest, recognizing interest expense as it is incurred rather than upfront, and keeping depreciation of the asset in sync, all while making sure every monthly instalment posts the right journal entries without manual work.

Excelroot has built a Hire Purchase (HP) Loan module in Odoo to handle this end to end, directly from the vendor bill that records the purchase. This blog walks through the module's key features and the steps to set one up.

Key Features

  • One-click setup from the vendor bill: No separate loan record has to be created manually. As soon as a Fixed Asset / Non-Current Asset account is used on a vendor bill line, an “HP Loan Values” button appears, letting you capture all loan and asset details without leaving the bill.

  • Two interest calculation methods: Choose between Front Loading (Flat Rate), the traditional method with interest spread evenly across the tenure, and Reducing Balance (Amortizing/EIR), which charges interest only on the outstanding balance, similar to a housing loan. A configurable cut-off date lets a company switch its default method going forward without affecting existing loans.

  • Automatic loan, payment and asset creation: Validating the vendor bill automatically creates the linked Loan record, the down payment vendor payment, and the Asset/Depreciation record in one action, with no additional manual journal entries required.

  • Full amortisation schedule, generated instantly: Every loan comes with a complete month-by-month schedule showing principal, interest, payment and outstanding balance for the entire tenure, so the full repayment profile is visible from day one.

  • Interest suspense accounting built in: Interest is booked to a suspense account at loan inception and released to the expense account month by month, keeping the profit and loss statement free of interest that has not yet accrued.

  • Linked depreciation with sensible defaults: The financed asset's depreciation is created automatically, defaulting to a 20% residual value and a useful life matched to the loan tenure, both fully editable.

  • Skip to Date for migrating existing loans: A dedicated “Skip to Date” function lets you bring an in-progress hire purchase loan or its depreciation schedule into Odoo partway through its tenure. Instead of posting every historical monthly entry one by one, the schedule can be advanced straight to the current period, so migrations from an old system or spreadsheet take minutes rather than manually re-creating months or years of entries.

  • Full audit trail on every bill: Smart buttons on the vendor bill link directly to the loan, the asset and every posted journal entry, so the entire hire purchase transaction stays traceable back to a single source document.

Use Case: Financing a Company Vehicle

Consider a company that buys a motor vehicle costing RM175,000 under a hire purchase agreement:

  • Vehicle price (asset cost): RM175,000

  • Down payment: RM75,000

  • Amount financed (loan): RM100,000

  • Interest rate: 3.88% flat per annum for 5 years, i.e. RM19,400 total interest (RM100,000 x 3.88% x 5 years)

  • Total hire purchase amount: RM119,400 (RM100,000 + RM19,400)

  • Monthly instalment: RM1,990 over 60 months (RM119,400 / 60)

  • Monthly breakdown: interest RM323.33 (RM19,400 / 60) and principal RM1,666.67 (RM1,990 minus RM323.33)

  • Total acquisition cost of the asset for depreciation purposes: RM194,400 (RM175,000 + RM19,400)


The Chart of Accounts Behind It

  • The module relies on four dedicated accounts, configurable per loan:

  • Motor Vehicles: Fixed Asset / Non-Current Asset

  • Hire Purchase Creditor: Current/Non-Current Liability

  • Hire Purchase Interest in Suspense: Current Liability (holds interest not yet incurred)

  • Hire Purchase Interest: Expense (recognized monthly as interest is earned by the financier)


The Journal Entries

  1. Recording the vendor bill for the vehicle purchase: Dr  Motor Vehicles                         175,000 Cr  Accounts Payable                        175,000

  2. Booking the hire purchase loan (from the HP Loan popup on the bill): Dr  Accounts Payable                         100,000 Dr  HP Interest in Suspense                   19,400 Cr  Hire Purchase Creditor                       119,400

  3. Settling the down payment (auto-generated vendor payment): Dr  Accounts Payable                          75,000 Cr  Bank                                          75,000

  4. Each month, for 60 months (two auto-generated entries): Dr  Hire Purchase Creditor                     1,990.00 Cr  Bank                                            1,990.00 Dr  Hire Purchase Interest (Expense)              323.33 Cr  HP Interest in Suspense                        323.33

Booking the interest to a suspense account at inception and releasing it to the expense account month by month keeps the P&L free of interest that has not actually accrued yet. These monthly release entries are what the module automates.

Two Interest Calculation Methods

The module supports two ways of computing the interest split, and lets a company switch its default method on a configured cut-off date (in this implementation, 1 June 2026) to reflect a change in financing practice:

Front Loading (Flat Rate)

Total interest is calculated upfront as Principal x Rate x Tenure and spread evenly across every instalment, as in the example above. This is the traditional method used for older hire purchase agreements and produces a fixed interest and fixed principal amount each month.

Reducing Balance (Amortising / Effective Interest Rate)

Interest is charged only on the outstanding principal balance each month, similar to a housing loan. The monthly instalment is calculated using the standard amortising loan formula:

M = P x r x (1 + r)ⁿ / [(1 + r)ⁿ − 1]

Where M is the monthly instalment, P is the loan principal, r is the monthly interest rate (annual EIR / 12), and n is the number of monthly instalments.

In practice, users enter the fixed monthly installment amount directly (as agreed with the financier) and the module computes the resulting principal/interest split for every period, reducing the outstanding balance progressively. For example, a RM100,000 loan over 108 months at a fixed installment of RM1,125 produces an amortisation schedule where the interest portion shrinks and the principal portion grows every month, as shown further below.

Depreciation of the Financed Asset

Because the underlying asset (e.g. the vehicle) is being financed, the module also creates the linked fixed asset and depreciation schedule automatically when the loan is set up, with no separate manual asset entry required. Depreciation defaults to the straight-line method:

●       Residual value: defaults to 20% of the purchase price (editable)

●       Useful life: defaults to 60 months for vehicles (editable)

Using the earlier example: RM175,000 cost less 20% residual value (RM35,000), depreciated over 60 months, gives a monthly depreciation charge of about RM2,333.33.

Steps to Use the Hire Purchase Loan Module

Step 1: Locate the Loans Menu

Hire purchase loans sit alongside other accounting management records under Accounting  > Loans, next to Assets and Deferred Expense. This is where all loan records can be reviewed once created.

Loans menu under Accounting

Step 2: Add the Asset Line on the Vendor Bill

Create the vendor bill for the purchase as usual, and on the bill line select a Fixed Asset / Non-Current Asset account (e.g. Motor Vehicles). As soon as an asset account is used on a bill line, a new “HP Loan Values” button appears in the bill's action bar, and the Loan Pop-up Window appears.

The "HP Loan Values" button appears once a Fixed Asset account is used on the bill line

HP Loan Values Popup View

Step 3: Fill in the HP Loan Popup View

Clicking the button opens the “Set Hire Purchase Loan Values” popup view, covering everything the module needs in one place:

  • Loan Settings: interest rate, down payment amount, duration in months, and interest method (Front Loading / Reducing Balance)

  • Accounts: interest account, bank account, hire purchase creditor account, interest suspense account, and the down payment journal

  • Asset Settings: asset category, residual value %, and useful life in months

  • Asset Lines: a summary line showing all values entered, for review before applying

Click Apply to save the values against the bill.

HP Loan popup: Loan Settings, Accounts, and Asset Settings

Step 4: Validate the Vendor Bill

Validating the bill posts the initial asset/payable entry and, in the background, automatically creates the associated Loan record, the down payment vendor payment, and the Asset (depreciation) record. Smart buttons for the linked Loan and Asset then appear directly on the bill.


Validated bill showing the linked Loan smart button


Down Payment Record Automatically Created by the System

Step 5: Review the Loan Record

Opening the loan record shows the amount borrowed, total interest, outstanding balance, loan date, duration, down payment, first payment date, interest method, and total acquisition amount. The Amortisation Schedule tab lists every instalment with its principal, interest, payment, and running outstanding balance, generated automatically for the full loan tenure.

Loan record with an auto-generated amortisation schedule (Front Loading / Flat Rate method)

Step 6: Confirm the Linked Accounts and Use Skip to Date

A second tab, Loan Settings, shows the accounts driving the loan's journal entries (creditor, bank, interest, and interest suspense accounts) and the journal used.

This tab also carries the Skip to Date field, one of the module's most useful features for onboarding existing hire purchase loans. Rather than manually posting every historical monthly entry when migrating a loan that is already partway through its tenure, entering a date here advances the loan straight to that point, so posting can resume from the current period going forward. The same Skip to Date capability is available on the linked depreciation schedule, keeping the asset's net book value aligned with the loan the moment it is brought into Odoo.

The “Skip Until” date can also be entered in the “Set Hire Purchase Loan Values” popup view in the Vendor Bill from Step #3

Step 7: Track the Linked Depreciation

The asset created from the bill carries its own Depreciation Board, generated from the residual value and useful life entered in the popup, so the vehicle's depreciation runs in parallel with the loan repayment schedule.


Depreciation board for the linked fixed asset

Step 8: Post Monthly Entries

Each period, the interest release entry (moving interest from the suspense account to the expense account) and the corresponding depreciation entry post as journal entries against the loan and the asset respectively, keeping the outstanding balance, accrued interest, and net book value all up to date without manual journal work.

Posted monthly journal entry for depreciation

Example: Reducing Balance Method with a Fixed Instalment

The same popup supports the Reducing Balance (Amortizing/EIR) method for loans set up after the configured cut-off date. In this example, a RM100,000 loan runs for 108 months with a fixed monthly instalment of RM1,125:

HP Loan Popup using the Reducing Balance (Amortizing/EIR) method with a manual instalment amount

Loan record created using the Reducing Balance method

Amortization schedule for the Reducing Balance method: interest shrinks and principal grows each month as the balance reduces

Why This Matters

Manually tracking hire purchase loans in a spreadsheet alongside the accounting system creates room for error and rework: mismatched suspense balances, missed monthly postings, or asset depreciation drifting out of step with the loan. By tying the loan, its interest schedule, the down payment, and the linked asset depreciation together from a single vendor bill, and by making it fast to bring existing loans in mid-tenure with Skip to Date, the HP Loan module keeps hire purchase financing fully auditable inside Odoo, with every instalment's accounting entries generated consistently from day one to loan maturity.

Comments


Subscribe Form

  • facebook
  • linkedin

©2019 by Excelroot Technology Sdn Bhd.

bottom of page