Premium Cloud Hosting!

Contact Info

Hostnali Webhost Limited

+254 748285257

[email protected]

ORDER NOW
Ledgerly Documentation — WHMCS Comprehensive Accounting Module
Ledgerly Docs
WHMCS Comprehensive Accounting Module

Ledgerly Documentation

Everything you need to install, license, set up and run Ledgerly — a complete double-entry accounting system inside WHMCS.

Overview

Ledgerly turns WHMCS into a true accounting system of record. It keeps a full double-entry general ledger, posts your invoices, payments and expenses automatically, and produces proper financial statements — without exporting anything to external accounting software.

The module is admin-only and installs like any other WHMCS addon. Every subsystem (loans, budgeting, permissions, tax, and more) can be switched on or off from Settings, so you can run only the parts you need. Each WHMCS installation keeps its own independent set of books.

Who it’s for: hosting companies, web agencies and any WHMCS operator who wants their billing and their bookkeeping in one place.

System requirements

ComponentRequirement
WHMCSWHMCS 8.x (built and tested on 8.13)
PHPPHP 8.1 or newer (8.1–8.4). Activation checks this automatically.
PHP extensionspdo, json, mbstring
DatabaseMySQL / MariaDB (the same database WHMCS uses)
ionCube LoaderRequired for the distributed (encoded) build
AccessWHMCS admin area only

Installation

  1. Download the module archive and unzip it.
  2. Upload the accounting folder to /modules/addons/ in your WHMCS installation, so the path becomes /modules/addons/accounting/.
  3. In WHMCS admin, go to System Settings → Addon Modules (or Setup → Addon Modules).
  4. Find Ledgerly in the list and click Activate.
  5. Click Configure, choose which admin role groups may access the module, enter your License Key, and save.

On activation, Ledgerly automatically creates its database tables, seeds a default chart of accounts, sets up the current financial year, and applies default settings. If your server doesn’t meet the requirements, activation stops with a clear message rather than failing silently.

Upgrading later: simply replace the accounting folder with the new version. The module migrates its own database changes automatically the next time you open it — no manual steps.

Activation & licensing

Ledgerly is licensed per WHMCS installation and is domain-locked. You enter your key on the module’s configuration screen.

  1. Go to Setup → Addon Modules → Ledgerly → Configure.
  2. Paste your License Key into the field.
  3. Save, then open the module. On first load it validates the licence against the licensing server and unlocks.

Licence states

  • Active — the module works normally. You can see the licence status at the foot of the Tools page (status, last checked, valid until).
  • Needs attention — if a licence is invalid, expired or suspended, the module shows a full-screen renewal notice instead of its normal content. Your accounting data is never touched; access resumes the moment the licence is valid again.
Temporary outages don’t lock you out. If the licensing server is briefly unreachable, Ledgerly trusts the last successful check for a grace period, so a network blip never disrupts a valid installation.

First-time setup

Follow this order the first time you set up Ledgerly. It takes a few minutes and gets your books opening from the right position.

  1. Open Settings and set your Accounting Basis (cash or accrual), base currency, and company / entity name (shown on reports). Turn optional modules on or off here.
  2. Review the Chart of Accounts. A sensible default is provided — rename, add or adjust accounts (for example, your specific bank and mobile-money accounts) to match your business.
  3. Enter opening balances (Tools → Opening Balances) if you’re moving from another system, so your ledger starts from your current figures.
  4. Import from WHMCS (Tools → Import) to bring historical paid invoices into the ledger, if you want history reflected.
  5. Set up Revenue Mapping so income from different products routes to the accounts you want.
  6. Review Settings once more — approval workflow, tax options, and any modules you want enabled.
Order matters. Set your accounting basis and chart of accounts before importing or entering opening balances, so everything posts to the right places from the start.

Settings reference

Key settings you’ll find under the Settings tab. Most subsystems are toggles — turn off what you don’t use to keep the interface focused.

SettingWhat it does
Accounting basisCash or accrual — determines how and when revenue is recognised and posted.
Base currencyThe currency your books are kept in; foreign balances are converted to it.
Company / entity nameLegal name shown on financial statements and reports.
Require journal approvalWhen on, entries are created as drafts and must be approved before they post to the ledger.
Default revenue accountThe catch-all income account used when no revenue-mapping rule matches.
VAT / tax optionsEnable VAT tracking and set rates for tax reporting.
Withholding taxEnable WHT on supplier payments and set the default rate.
Module togglesSwitch Loans, Budgeting, Permissions and other subsystems on or off.

Dashboard

The dashboard is your at-a-glance financial overview. It shows key figures for the current period — revenue, expenses, net profit, cash across your bank and mobile-money accounts, and receivables — along with charts including a 12-month trend and breakdowns by account.

Receivables are pulled live from WHMCS unpaid invoices, so the figure always reflects what your clients currently owe.

Chart of accounts

The chart of accounts is the backbone of your ledger — the list of accounts transactions post to. Ledgerly ships with a complete default chart covering assets, liabilities, equity, income and expenses, which you can edit freely.

  • Add, rename or deactivate accounts to match your business.
  • Each account has a code, name and type, and can be assigned a currency for foreign-currency accounts.
  • Accounts in use can be deactivated (hidden from new entries) but are retained so historical reports stay accurate.
Set up your real bank and mobile-money accounts here early, so payments and reconciliation post to the correct place.

Automatic posting

Ledgerly watches WHMCS and posts the accounting for you. What gets posted depends on your accounting basis:

Cash basis

Revenue is recognised when money is received. When an invoice is paid, Ledgerly posts the receipt — debit your bank/cash account, credit the appropriate income accounts (split by invoice items), and credit output VAT where applicable. Refunds post the reverse. Add-funds payments are credited to customer credit.

Accrual basis

Revenue is recognised when invoiced, with payments settling the receivable. Choose the basis that matches how your accountant reports.

Ledgerly uses a draft-first approach when approval is enabled: entries are staged as drafts and only affect your reports once approved. This gives you a review step before anything hits the books.

Journals

Journals are manual double-entry transactions for anything not posted automatically — adjustments, accruals, corrections, and one-off entries.

  • Every entry must balance (total debits equal total credits) before it can be saved.
  • With approval enabled, new entries start as drafts; approve them to post. Drafts can be edited or deleted freely.
  • Posted entries are voided rather than deleted, so the audit trail stays intact. Voided entries are excluded from reports.
  • Bulk actions let you approve or manage multiple drafts at once.

Revenue mapping

Revenue mapping controls which income account each sale posts to. Instead of everything landing in one revenue account, you can route hosting, domains, SSL, add-ons and other products to separate income accounts for clearer reporting.

  1. Go to Tools → Revenue Mapping.
  2. Add a rule matching a product group or item type (hosting, domain, add-on, other) to the income account of your choice.
  3. Anything without a matching rule uses your default revenue account.

Expenses

Record everything the business spends. Each expense posts a balanced entry to the ledger and can carry a receipt.

  • Attach receipts (PDF or image) directly to an expense for a complete audit trail.
  • Recurring expenses post themselves automatically on the schedule you set.
  • Optionally apply withholding tax when paying a supplier directly.
  • Import expenses in bulk from a CSV file via Tools.

Accounts payable (bills & vendors)

Track what you owe suppliers. Enter bills against vendors, record payments (including part-payments), and keep sight of outstanding balances and due dates.

  • Vendors — maintain a list of suppliers you buy from.
  • Bills — record supplier invoices; settle them fully or partially.
  • Recurring bills — automate regular supplier charges.
  • Withholding tax — when settling a bill, optionally withhold tax; the payment reduces by the WHT amount and the balance posts to a WHT payable account.

Fixed assets & depreciation

Register capital assets and let Ledgerly handle depreciation.

  • Add an asset with its cost, acquisition date and depreciation settings.
  • Ledgerly calculates and posts depreciation automatically each period via the daily task.
  • An asset register and depreciation schedule are available under Reports.

Loans

Track loans and their repayments with correct principal/interest splits. (Enable the Loans module in Settings if it isn’t already on.)

  1. Add a loan with its amount, term, interest rate and the bank account the funds landed in.
  2. Ledgerly generates a reducing-balance amortisation schedule automatically — or you can upload your lender’s own schedule (CSV with due date, payment, principal and interest) for an exact match.
  3. Each period, due repayments post automatically: debit loan principal, debit interest expense, credit the bank account. The loan closes when fully repaid.
If your lender’s figures differ from a computed schedule (fees, rounding, non-standard terms), upload their schedule so your books match the statement exactly.

Budgeting

Set budgets by account and track performance against them through the year. The Budget vs Actual report shows where you’re over or under, so overspend is visible early rather than at year-end.

Bank & M-Pesa reconciliation

Reconciliation confirms your ledger matches your real-world statements.

  • Match ledger entries against your bank or mobile-money statement.
  • Mark items as reconciled so your cleared cash position is always accurate.
  • Unreconciled items remain visible so nothing is missed.

Transfers

Move money between your own accounts — for example, bank to mobile-money, or between currency accounts.

  • Go to Tools → Transfer Funds.
  • Choose the source and destination accounts and the amount.
  • Cross-currency transfers are supported, with any exchange difference posted to FX gain/loss, and an optional bank charge recorded as an expense.

Multi-currency & FX

Ledgerly is fully multi-currency. Accounts can hold foreign balances, and transactions in other currencies are converted to your base currency for reporting.

  • Assign a currency to any account that holds foreign funds.
  • FX revaluation restates foreign balances at period-end and posts the unrealised gain or loss, so your balance sheet reflects current rates.
  • Exchange differences on settlement and transfers post to your FX gain/loss accounts automatically.

VAT & withholding tax

VAT

Enable VAT in Settings to track output tax on sales and input tax on purchases. VAT-related reports summarise tax collected and paid for your return.

Withholding tax (WHT)

Enable WHT and set a default rate to handle tax withheld on supplier payments. When applied, the supplier is paid net of WHT and the withheld amount is held in a WHT payable account until remitted. A withholding-tax report summarises amounts withheld.

Ledgerly’s tax handling is jurisdiction-neutral bookkeeping. It records the tax correctly in your ledger; filing formats specific to your tax authority are handled outside the module.

Reports & financial statements

Ledgerly includes the full set of financial statements plus 40+ operational and tax reports, generated directly from the ledger. Every report can be exported to CSV or printed to PDF.

Financial statements

  • Profit & Loss
  • Balance Sheet
  • Trial Balance
  • Cash Flow
  • Statement of Changes in Equity (reconciles to the balance sheet)
  • Comparative statements — compare any period against another

Operational & tax reports

General ledger and journal detail, aged receivables, revenue by product / gateway / country, expenses by category, top customers and client profitability, domain registrations, asset register and depreciation, budget vs actual, VAT and withholding-tax summaries, and more.

Customer & vendor statements

Produce a statement of account for any customer (what they’ve been billed and paid) or vendor (what you owe and have paid), over any date range — useful for queries, collections and supplier reconciliation.

Periods & year-end close

Closing periods protects your historical figures from later changes.

  • Period close locks a period so entries can’t be added or altered after the fact.
  • Year-end close posts a closing entry that carries the year’s result into retained earnings. Closing entries are excluded from the Profit & Loss and Cash Flow so they don’t distort the new year.
Close a period only when you’re confident it’s final. Reopening and restating closed periods should be rare and deliberate.

User permissions

Control who can see and do what, keyed to your WHMCS admin roles.

  1. Enable permissions in Settings (off by default, so existing setups are unaffected).
  2. Go to Tools → User Permissions (full administrators only).
  3. For each admin role, tick which areas they can view and which actions they can perform.

Restrictions are enforced on the server, not just hidden in the interface. Full administrators always have complete access.

Audit log

Ledgerly records significant actions — who did what and when — in an audit log you can review. Combined with the void-don’t-delete approach to posted entries, this gives you a complete, tamper-evident history.

Attachments

Attach supporting documents (PDF or image, up to the configured size limit) to expenses and entries, so receipts and evidence live with the transaction they relate to — ready for audit or review.

Tools & import

The Tools tab gathers setup and maintenance utilities:

  • Import from WHMCS — bring historical paid invoices into the ledger (idempotent, so it won’t double-post).
  • Opening balances — set starting balances when migrating from another system.
  • Expense CSV import — bulk-load expenses.
  • Transfer funds — move money between accounts.
  • Revenue mapping — route income to accounts.
  • User permissions — role-based access (full admins).
  • FX revaluation — restate foreign balances at period-end.
  • Danger Zone — permanently remove all accounting data (full admins only, with a typed confirmation). Use only for a clean slate or uninstall.
Danger Zone is irreversible. Deactivating the module keeps your data; the Danger Zone deletes it. It requires typing a confirmation and is limited to full administrators.

Multiple installations

If you run more than one WHMCS installation (for example, separate brands), install Ledgerly on each. Every installation keeps its own independent set of books — nothing is shared or mixed — and each installation is licensed separately.

Updating the module

  1. Back up your WHMCS files and database (standard good practice).
  2. Replace the accounting folder with the new version.
  3. Open the module once — it migrates any database changes automatically.

Your data, settings and chart of accounts are preserved across updates. Updating never removes data.

Troubleshooting

The module shows a licence notice

Confirm your License Key is entered under Setup → Addon Modules → Ledgerly → Configure, that your licence is active, and that you’re on the licensed domain. Reload after saving.

Activation failed with a requirements message

Your server doesn’t meet a requirement (usually PHP version or a missing extension). The message names what’s needed — update PHP to 8.1+ or enable the listed extension, then activate again.

A figure looks wrong on a report

Check your accounting basis (cash vs accrual), that the relevant entries are posted (not still drafts), and that the report’s date range and any period close are as expected. Voided entries are excluded by design.

Revenue is landing in the wrong account

Review your Revenue Mapping rules; anything unmatched uses the default revenue account.

FAQ

Does Ledgerly replace QuickBooks or Xero?

For most WHMCS-based businesses, yes — it keeps full double-entry books and produces the standard statements inside WHMCS, with no need to export to external software.

Will it change my WHMCS invoices or billing?

No. Ledgerly reads from WHMCS to post the accounting; it doesn’t alter your invoices, billing or client-facing behaviour.

Can I start part-way through a year?

Yes. Set opening balances and optionally import history, and Ledgerly keeps the books from there.

Is my data safe if I deactivate the module?

Yes. Deactivating keeps all data. Removal is a separate, deliberate action in the Danger Zone.

Can I limit what my staff can see?

Yes, via role-based User Permissions, enforced on the server.

Support

For help with Ledgerly, renewals or licence questions, contact your vendor through the support channel listed on your purchase, or via the licence-renewal page shown in the module. When reporting an issue, include your WHMCS version, PHP version, and a clear description of what you did and what happened.

Tip: the licence status panel at the foot of the Tools page shows your current status and last check — handy details to include in any support request.