Free Accounting Software You Self-Host Forever
Genius Books is free, open-source accounting software for small businesses, accountants and agencies. Customers, quotes, invoices, payments, expenses, bank reconciliation, ledger and reports — plus 10 two-way finance integrations and a full REST API. Built with Laravel 13 and React 19. No per-seat pricing, no invoice caps, your data on your server.
MIT License · No account required · No credit card · Unlimited businesses & invoices
12+
Modules
3
Roles
10
Integrations
∞
Businesses
PHP 8.4+
Backend
MIT
Forever Free
What is Genius Books?
Genius Books is free, open-source accounting software you self-host on your own server. It covers customers, quotes, invoices, payments, expenses, bank reconciliation, a chart of accounts, a double-entry-style ledger and financial reports — unlimited businesses and invoices, MIT licensed, with no subscription and no per-seat fees.
See It in Action
Real screenshots from the live demo. Every screen shown is fully functional and included free.
12 Modules. Complete Books.
From the first customer to the annual reports — every accounting workflow is built in and ready to use.
Multi-Tenancy & Onboarding
- One install, unlimited businesses with strict company_id isolation
- 3-step onboarding wizard: business, currency & financial year, tax & invoice numbering
- Company switcher for accountants managing several clients
- Auto-seeded chart of accounts, expense categories and email templates
- Cross-tenant guard blocks any read or write outside the active business
Customers
- Full CRM-lite records: contact, tax ID, billing & shipping addresses, payment terms
- Search, status filters and bulk archive/activate
- CSV import with all-or-nothing validation and duplicate skipping
- Customer profile: invoiced, paid, credited, opening, outstanding and credit balance
- Statement export (CSV/PDF) and ledger-posted opening balances
Products & Services
- SKU unique per company, product/service type, unit price, tax rate and category
- Search by name or SKU, filter by type/category/status, bulk actions
- CSV import with the same validation rules as customers
- Reusable line items across invoices and quotes
Quotes & Estimates
- Same line-item, discount and tax engine as invoices
- Lifecycle: Draft → Sent → Accepted / Declined, auto-Expired past valid-until
- One-click Convert to a draft invoice with a fresh number
- Keep your pipeline moving without re-entering data
Invoices — Authoritative Engine
- Server-side InvoiceCalculator: line subtotal → discounts → per-line tax (inclusive or exclusive)
- Statuses: Draft, Sent, Viewed, Partially paid, Paid, Overdue (derived) and Cancelled
- Edit drafts only; sent invoices are immutable, cancelled never deleted
- Signed public view + PDF, email delivery and queued reminders
- Recurring invoices (weekly/monthly/yearly) with atomic per-company numbering
Payments & Credit
- Partial, over- and multi-invoice settlement with payment allocations
- Unapplied credit becomes visible customer credit
- Idempotent recording protects against double-submits
- Void with automatic ledger reversal and invoice recompute
- Credit notes with optional refund out of a chosen bank account
Expenses & Vendors
- 12 default categories plus unlimited custom categories
- Vendor directory with address and tax ID; delete guarded when in use
- Amount plus included tax, description, reference and notes
- Receipt attachments (PDF/JPG/PNG) stored privately with authorized downloads
- Recurring expenses generated on schedule and posted to the ledger
Bank Accounts & Reconciliation
- Bank, cash and other accounts with ledger-derived running balances
- Import bank statements via CSV (date, description, amount, reference)
- Automatic matching by amount within a few days, plus manual match/unmatch
- Create a transaction straight from an unmatched line
- Reconcile to lock lines — your books always agree with the bank
Chart of Accounts & Ledger
- Assets, Liabilities, Equity, Revenue and Expenses with parent/child hierarchy
- A single ledger service is the only writer for every money movement
- Paired transfers and counter-entry reversals keep history intact
- Unified transaction list with type, direction, account, date and text filters
- Manual transfers, adjustments and direct income posting
Reports & Statements
- Profit & Loss, Income by customer/month and Expenses by category/vendor
- Accounts Receivable with aging buckets (current, 1–30, 31–60, 61–90, 90+)
- Tax Summary (collected, paid, taxable) and General Ledger with closing balances
- Customer statements with opening/closing balance
- Financial-year aware ranges with CSV and PDF export on every report
REST API & Developer Access
- Owner-issued Bearer tokens (gb_*, SHA-256 hashed, one-time reveal, optional expiry)
- Company-scoped /api/v1 endpoints for customers, products, quotes, invoices, payments, expenses, vendors and transactions
- Paginated JSON responses with per_page up to 100
- Revoke instantly; last_used_at audit trail
- Same ledger-backed services as the UI — integrations cannot bypass the rules
Dashboard, Settings & Team
- Dashboard KPIs: revenue, expenses, outstanding, overdue and net income
- Revenue vs expenses and revenue trend charts with expense breakdown
- Owner/Accountant/Staff roles with last-owner protection and server-side gates
- Business, invoice, tax, email and SMS settings, plus Stripe online payments
- ZIP data export and a platform admin console for operators
How to Set It Up in 3 Steps
Self-hosting free accounting software takes about 30 minutes — no Docker, no Kubernetes.
Install and host
Download the source, run composer install and npm run build, set your database credentials in .env, then run php artisan migrate. Works on a VPS or shared cPanel hosting with no Docker.
Create your business
Register and complete the three-step wizard: business details, currency and financial year, then tax and invoice numbering. Invite accountants and staff with the right role.
Run your books
Add customers and products, raise invoices, record and allocate payments, import bank statements and reconcile them, then review profit and loss and receivables aging.
10 Finance Platforms. Two-Way Sync.
Connect your books to the tools your clients and team already use. Push local records out and pull remote records in — with encrypted tokens and a full audit log of every sync.
Xero
api.xero.com/api.xro/2.0
Syncs: Contacts, invoices, payments, chart of accounts
QuickBooks Online
quickbooks.api.intuit.com/v3
Syncs: Customers, invoices, payments, accounts
FreshBooks
api.freshbooks.com
Syncs: Clients, invoices, payments
HubSpot
api.hubapi.com
Syncs: Contacts, deals
Zoho Books
zohoapis.com/books/v3
Syncs: Contacts, invoices, bills
Wave
gql.waveapps.com
Syncs: Customers, invoices, transactions
Sage Business Cloud
api.sage.com
Syncs: Customers, invoices, payments
Oracle NetSuite
suitetalk.api.netsuite.com
Syncs: Customers, invoices, journal entries
MYOB
api.myob.com/accountright
Syncs: Customers, invoices, payments
Kashoo
api.kashoo.com
Syncs: Customers, invoices, expenses
How two-way sync works
Connect once
Add the provider access token (and refresh token / org ID where required) under Settings → Integrations. Tokens are encrypted at rest.
Push
Send local customers, invoices and payments out to the provider with the correct mapped fields.
Pull
Fetch remote records and create or update the matching local record.
Audit everything
Every push and pull writes a sync log (direction, entity, status, payload) and updates last_sync_at / last_error.
Sync runs from the portal or programmatically through the REST API once a provider is connected. Integrations are strictly company-isolated: a sync started in one business can never read another.
A Full REST API, Included
Build your own integrations, mobile apps or automations. Create company-scoped Bearer tokens and use the same ledger-backed API the UI is built on.
Endpoints
JSON, paginated with ?page=1&per_page=15 (max 100).
Create a customer
curl -H "Authorization: Bearer gb_..." \
-H "Content-Type: application/json" \
-d '{"name":"Acme Corp","email":"[email protected]"}' \
https://your-app.com/api/v1/customersCreate an invoice
curl -H "Authorization: Bearer gb_..." \
-H "Content-Type: application/json" -d '{
"customer_id":1,
"issue_date":"2026-09-25",
"due_date":"2026-10-09",
"items":[{"description":"Consulting",
"quantity":10,"unit_price":"75.00",
"tax_rate":10}]
}' https://your-app.com/api/v1/invoicesGenius Books vs Other Free Accounting Software
A side-by-side look at the most common free and open-source options: Akaunting, Wave, Zoho Books and Invoice Ninja. Source: each vendor’s public pricing and documentation, September 2026.
| Feature | Genius Books | Akaunting | Wave | Zoho Books | Invoice Ninja |
|---|---|---|---|---|---|
| License | MIT (true open source) | Open source + paid apps | Proprietary | Proprietary (free tier) | Elastic License v2 |
| Self-hosted | Yes | Yes | No | No | Yes |
| Multi-tenant (multi-company) | Unlimited | Multi-company | One | Paid | Multi |
| Unlimited invoices | Yes | Yes | Yes | ~1,000/yr free | Yes |
| Full accounting (ledger, P&L, aging) | Yes | Yes | Yes | Yes | Invoicing-first |
| REST API on free tier | Included | Paid app | No public API | Paid/partner | Yes |
| Finance integrations included | 10 two-way | Marketplace (paid) | Limited | Own suite | Automation platforms |
Roles That Match Your Team
Three roles per business, enforced on the server — hiding the button is never the only control.
Owner
Everything: settings, team, data export and all financial modules.
Accountant
Customers, products, invoices, payments, expenses, accounts and reports — no business settings or team management.
Staff
Day-to-day selling and spending: customers, products, invoices, payments and expenses. Cannot void payments, manage accounts or view reports.
New to small-business accounting?
Double-entry bookkeeping was codified by Luca Pacioli in 1494 and is still the standard behind every modern accounting system. Genius Books records each money movement through a single ledger service so balances are always derived and auditable, rather than typed in by hand.
Built on a Modern, Battle-Tested Stack
No Docker required. Runs on any standard PHP hosting: Laravel Herd, Forge, a VPS or shared cPanel.
Laravel 13
PHP backend, routing, ORM, queues
React 19
TypeScript UI with Inertia.js
Tailwind CSS 4
Utility-first styling
MySQL 8 / SQLite
Production / local database
Spatie Permission
Team-scoped role-based access
Barryvdh DomPDF
Invoice and report PDFs
Vite 7
Frontend build pipeline
Laravel Queue
Email, reminders, recurring jobs
Stripe
Online invoice payments + webhooks
Server Requirements
Runs on any standard PHP hosting. No Docker required.
Queue and scheduler run from cron on shared hosting:queue:work --stop-when-empty andschedule:run every minute.


Frequently Asked Questions
Is Genius Books really free with no invoice limits?
Yes. Genius Books is MIT licensed with no paid tier and no feature locks. You get unlimited businesses, customers, invoices, payments and expenses, plus the full REST API and all ten finance integrations. Nothing is gated behind an upgrade, an email signup or a per-seat fee.
Is it a good QuickBooks, Xero, Wave or Akaunting alternative?
It covers the same core workflows — invoicing, payments, expenses, bank reconciliation, chart of accounts, profit and loss and receivables aging — and unlike most free tools it is self-hosted, multi-tenant and ships a full REST API at no cost. If you need to own your financial data, it is a strong alternative.
Does it support multiple companies?
Yes. Genius Books is multi-tenant from the ground up. One installation hosts unlimited businesses with strict company_id isolation, a company switcher and per-company roles. Accountants and agencies can serve many clients from a single deployment without any data leaking between them.
Can I sync with Xero, QuickBooks or HubSpot?
Yes. Ten finance platforms support two-way push and pull sync: Xero, QuickBooks Online, FreshBooks, HubSpot, Zoho Books, Wave, Sage Business Cloud, Oracle NetSuite, MYOB and Kashoo. Access tokens are encrypted at rest and every sync is written to an audit log.
Is there an API for building integrations?
Yes. Create company-scoped Bearer tokens under Settings → API applications and call /api/v1 for customers, products, quotes, invoices, payments, expenses, vendors and transactions. Responses are paginated JSON, tokens are revocable and an expiry can be set. The API uses the same ledger-backed services as the interface.
Can I self-host on shared hosting or a VPS?
Yes. PHP 8.4 with MySQL 8 runs on any VPS using Nginx or Apache, and shared cPanel hosting works too. On shared hosting the queue is driven from cron with queue:work --stop-when-empty and the scheduler runs every minute. No Docker or external service is required.
Can I modify the source code?
Yes. The complete Laravel and React source is included under the MIT license. You can modify it, white-label it, redistribute it or build commercial products on top with no restrictions — unlike source-available tools such as Invoice Ninja (Elastic License v2) or Manager.io (FSL).
How do I upgrade when a new version is released?
Pull the latest code, run composer install and npm run build, then php artisan migrate. The project follows semantic versioning with tagged releases and ships a migration guide per release. There is no licence server or activation step to re-verify after an upgrade.
Download the Free Accounting Software
No account. No credit card. No per-seat fees, no invoice caps. MIT license. Enter your email and get the download link instantly.
Need help setting it up? Contact Xgenious for an installation service
