Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Chart Of Accounts Laravel Package

alimarchal/laravel-chart-of-accounts

Professional-grade Chart of Accounts and double-entry accounting module for Laravel with one-command install. Supports Jetstream and Breeze, a versioned REST API, 10 financial reports, role-based permissions, and balance enforcement at the database and application layers.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build-vs-buy on the ledger core. The package covers the genuinely undifferentiated, expensive-to-get-right 20% of finance: hierarchical chart of accounts, double-entry journal headers/lines with balance enforcement, draft → post → reverse/void lifecycle, accounting periods with open/close, period-end balance snapshots, and an audit trail. That is plausibly 4–8 engineer-weeks of work you don't write. It does not justify buying the differentiated 80%: no customer/vendor master, no invoices or bills, no payroll, no tax return filing — despite the package description claiming AR/AP, payroll, and WhatsApp. Plan the roadmap off the README's model list, not the tagline.
  • Sequencing an internal finance module. It unblocks shipping a back-office "Finance" surface (manual JEs, COA admin, trial balance, GL, plus BS/IS/CF/AR/AP/bank-book/cash-book/ageing reports) in weeks rather than quarters. Good candidate for a v1 that proves demand before committing to a real ERP.
  • Specifying your own ledger contract. JournalEntry::record(description, debitAccountCode, creditAccountCode, amount, post, reference) is a clean statement of the minimum viable posting API: resolve codes, find base currency, find the open period, write two balanced lines, optionally post, all in a transaction. Even if you don't adopt, use this as the interface your domain services (invoicing, expenses, payroll runs) call into.
  • Scoping a domain-event-to-journal pipeline. The REST surface (POST /journal-entries, /post, /reverse, /void, filtered list endpoints) is enough to decide whether postings should be synchronous API calls or queued listeners — and to estimate integration effort per source system.
  • Deciding against a heavyweight ERP for now. If the answer to "do we need ERPNext/Odoo/NetSuite" is "we need a GL, period close, and standard statements for a small internal team," this package is evidence the answer is no.
  • Explicitly not supported: multi-tenant SaaS (no tenant scoping anywhere in the model list), multi-company (claimed in the description, absent from models/migrations), customer-facing money movement, or anything requiring filing-grade tax compliance. Tax codes and rates exist; tax determination and returns do not.

When to Consider This Package

Consider it when:

  • You are on Laravel 10–12 / PHP 8.2+, with Blade+Livewire (Jetstream) or Inertia+React (Breeze), and want an admin GL surface without designing it.
  • The users are internal (finance staff, ops, founders) and the output is reports, not customer money movement.
  • You can absorb the install blast radius: it publishes migrations, config, Blade views, and JS/CSS assets; publishes Spatie Permission and ActivityLog migrations; seeds account types, currencies, COA, permissions, periods, and tax codes; creates database views, triggers, and stored procedures; assigns super-admin to the first user; and requires adding HasRoles to your User model. This is a module, not a library — treat it like a merge, not a dependency.
  • You have a PHP engineer who will read the migrations and own a fork if needed.
  • You accept a single functional currency with entry-level FX (fx_rate_to_base) rather than true multi-currency revaluation.

Look elsewhere when:

  • Anything on the critical money path or under audit. Five stars, zero dependents, one maintainer (bus factor 1), no security disclosure process, no third-party production references. For a system of record, that is a fork-and-own decision, not a composer require.
  • You need AR/AP as subledgers — customer/vendor entities, ageing, dunning, credit notes, matching. The reports exist; the underlying records don't.
  • Your database can't take triggers/stored procedures (serverless MySQL, some managed Postgres tiers). The DB-object sync step is a hard portability blocker, not a nice-to-have.
  • You need multi-tenancy, idempotent posting, or high-volume event-driven postings. None of these are addressed.
  • You want a UI in your own design system. The dual ACCOUNTING_UI_DRIVER switch is genuinely nice, but it works by publishing views and bundling jQuery 3.5.1 + Select2 4.1.0 into public/vendor/accounting/. That's a legacy front-end you now maintain, with global asset-name collision risk. If you want a custom UI, consume the REST API and skip the driver entirely.
  • You're evaluating on the README's self-awarded "Quality Score: 9.2/10." It cites dimensions like "Test Coverage 8/10" with no CI badge, coverage number, or test count. Treat as marketing copy. Similarly, verify the Laravel 13 claim and the 2026-10-24 release date against Packagist before putting either in a plan.

How to Pitch It (Stakeholders)

To executives: One composer require plus one artisan command gives us a standard, double-entry-correct general ledger with period close, reversals and voids, a full change audit trail, role-based access control, and ten standard financial reports. MIT licensed, no per-seat or per-transaction cost. It removes the most error-prone part of finance software — the part where a bug means the books don't balance — from our backlog. The risk is concentration: one maintainer, minimal adoption. Mitigation is cheap: pin the version, fork it into our org, and wrap it behind our own service interface so replacing it later is a contained job. Recommendation: adopt for the internal finance admin v1, and keep AR/AP, billing, and payroll as our own scoped work — they are not in this package.

To engineering: Service-layer + Actions architecture, balance enforced at both the DB and application layer, versioned REST API with Eloquent resources, Spatie Permission and ActivityLog underneath, feature tests for posting/reversal/void. The cost is coupling: it publishes migrations, views, and assets into our app; it creates DB views, triggers, and stored procedures; it seeds a super-admin role onto user #1 and needs HasRoles on our User model. Budget a day for install review and migration reading, and build a thin adapter around JournalEntryService so our domain code never imports the package's models directly.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
roundly-consulting/kubernetes-api-for-laravel
roundly-consulting/plausible-for-laravel
gvp/gvp-laravel-template
metasyncsite/laravel-metasync-client
roundly-consulting/onboarding-for-laravel
andydefer/laravel-notification
adachsoft/cli-process-tester
jhaskell13/laraflow
sebastienheyd/boilerplate-media-manager
ccast/tagixo-primix
pretendtrue/laravel-builder
sawmainek/laravel-scout-tntsearch-driver
tomshaw/laravel-calendar-table
dibakar/laravel-ownership
steadrun/laravel-monitor
labyrinthe/connect-laravel
elmogy/layan
drewdan/sentinel-client
dskripchenko/laravel-llm
fatryst/nuonuo