Abivia Ledger

General Ledger and Journal Package for Laravel

Ledger is a full-featured implementation of the core of any good accounting system, a double-entry journal and general ledger. It is not a complete accounting solution, but rather the minimum for keeping track of financial transactions.

Ledger is designed to add reliable accounting features to an application without limiting flexibility. Ledger provides nearly congruent PHP and JSON APIs. There is no user interface.

Ledger features:

  • Full double-entry accounting system with audit trail capability.
  • Multi-currency support.
  • Support for multiple business units.
  • Sub-journal support.
  • Multilingual.
  • Integrates via direct controller access or through JSON API.
  • Atomic transactions with concurrent update blocking.
  • Reference system supports soft linking to other ERP components.
  • Designed for Laravel from the ground up.

Installation and Configuration

Install Ledger with composer:

composer require abivia/ledger

Publish Configurations

php artisan ledger:install

Create database tables

php artisan vendor:publish --provider=Abivia\Ledger\LedgerServiceProvider


The configuration file is installed as config\ledger.php

Setting Default Purpose
api true Enables API routes.
chartPath null Specifies a custom path for Chart of Accounts templates. The default is to use the package path.
middleware ['api'] List of middleware for Ledger routes.
prefix 'api/ledger' Route prefix.


Ledger's audit log can be set via LEDGER_LOG_CHANNEL. If a custom log isn't set, LOG_CHANNEL is used.

Basic Use

  • Create the ledger by passing a Create message to the account controller.
  • Start posting transactions by passing Entry messages to the journal entry controller.
  • Query the ledger by posting EntryQuery messages to the journal entry controller.
  • Get reports by passing Report messages to the report controller.

Code, Issues, Support

Source code is hosted on GitHub at https://github.com/abivia/ledger.

Issues, questions, and pull requests can be submitted via GitHub at https://github.com/abivia/ledger/issues.

Security issues should be emailed to ledger@abivia.com.

Contributions and feedback are welcomed.


If you want to help support this project, click here: