Browse / Invoicing and finance
Invoice Ninja
Self-hostable invoicing, quotes, expenses and time tracking with a complete REST API.
Laravel invoicing suite an SMB runs to bill clients: invoices, quotes, recurring billing, online payments through Stripe and other gateways, expenses, projects and tasks, purchase orders and bank feeds. The self-hosted edition includes every hosted Pro and Enterprise feature under the Elastic License 2.0; the same REST API the mobile and desktop apps use is published with an OpenAPI spec.
Alternative to FreshBooks, QuickBooks, Zoho Invoice
- I bill a handful of clients and want invoices, quotes and card payments on my own server without a per-seat plan
- I want my agent to raise and chase invoices from a project tracker without touching the invoicing UI
- License is Elastic License 2.0, not OSI open source: you may modify and self-host, but may not offer it as a managed service to third parties
- Default PDF_GENERATOR=hosted_ninja sends invoice HTML to Invoice Ninja's PDF service; switch to snappdf for fully local rendering
- APP_KEY encrypts stored data; losing it makes the database unreadable
- Removing Invoice Ninja branding from client-facing pages needs the $40/year white-label license
Last activity Sep 3, 2026. Fit: adaptable 2, operable 3.
Editions
Self-hosted · Free open source
- Clone
git clone https://github.com/invoiceninja/invoiceninja - ImageContainer
Hosted Free · Free closed source
- HostedOpen the hosted app
Ninja Pro · $14 per month closed source
- HostedOpen the hosted app
Enterprise · $18 per month closed source
- HostedOpen the hosted app
White-label license (self-hosted) · $40 per year closed source
No distribution recorded.
Adaptable: what is yours to change
Make it yours
Config only18 things to editadmin-ui surface
The named .env vars are deployment configuration: APP_URL, APP_KEY, DB_*, MAIL_MAILER, PDF_GENERATOR, REQUIRE_HTTPS, and optional bank-feed and exchange-rate credentials. Business adaptation lives in the admin UI under Settings: company details and logo, tax rates, invoice and quote designs, custom fields, email templates and reminders, payment gateways, products and recurring schedules.
- Env vars
APP_URLAPP_KEYDB_CONNECTIONDB_HOSTDB_DATABASEMAIL_MAILERPOSTMARK_API_TOKENPDF_GENERATORNINJA_ENVIRONMENTREQUIRE_HTTPSNORDIGEN_SECRET_IDNORDIGEN_SECRET_KEYGOCARDLESS_CLIENT_IDGOCARDLESS_CLIENT_SECRETOPENEXCHANGE_APP_IDNINJA_AUTO_BILL_TIMEDELETE_PDF_DAYS- Config files
.env- Prompt files
- none
- Accounts you need
- Stripe or another supported payment gateway (optional)Postmark or SMTP providerNordigen or GoCardless for bank feeds (optional)
Source
- github.com/invoiceninja/invoiceninja
- Elastic-2.0 license
- Last commit Sep 3, 2026
- 10,045 stars
Operable: what an agent can drive
Interface
OfficialAPIpublished by the builderremote or local
How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.
Reach
Complete coverage. 10 of 10 jobs reachable through the stated interface.
| Job | Through the interface | Evidence |
|---|---|---|
| Create, send and track invoices | Reachable | openapi/api-docs.yaml tags invoices, emails, activities |
| Quotes and conversion to invoices | Reachable | openapi tag quotes; recurring_quotes |
| Recurring invoices and auto-billing | Reachable | openapi tags Recurring Invoices, subscriptions, scheduler; NINJA_AUTO_BILL_TIME in .env.example |
| Take online payments through gateways | Reachable | openapi tags payments, company_gateways, client_gateway_tokens; gateway keys entered in app settings |
| Expenses and vendors | Reachable | openapi tags expenses, expense_categories, recurring_expenses, vendors |
| Projects, tasks and time tracking | Reachable | openapi tags projects, tasks, task_status, task_schedulers |
| Credits and purchase orders | Reachable | openapi tags credits, Purchase Orders |
| Bank feeds and transaction rules | Reachable | openapi tags bank_integrations, bank_transactions, bank_transaction_rules; needs NORDIGEN_* or GOCARDLESS_* or Yodlee credentials on self-host |
| Reports and exports | Reachable | openapi tags reports, export, charts |
| Invoice design and PDF templates | Reachable | openapi tags designs, templates, preview; PDF_GENERATOR selects snappdf, phantom or hosted_ninja |
Code stack
- Languages
- PHPJavaScriptDart
- Frameworks
- LaravelReactFlutter
- Package manager
- composer
- Database
- MySQLPostgreSQL
- Hosting target
- DockerVMCloudronSoftaculousElestioYunoHost
- Built
- Human-written (recorded, never ranked)
Evidence and confidence
| Field | Where it was seen | Confidence |
|---|---|---|
| formFactor | Laravel web app with API and client portal (README Developers Guide) | 95% |
| executionModel | no model at runtime; PHP business logic | 90% |
| operability | REST API published by the Builder at api-docs.invoicing.co with OpenAPI spec in repo openapi/api-docs.yaml | 95% |
| effort | .env.example in repo; README says cp .env.example .env; hosting guide at invoiceninja.github.io | 90% |
| editions | README: hosted vs self-hosted, $40/year white-label; invoiceninja.com/pricing-plans: Free (5 clients), Pro $14/mo, Enterprise $18/mo | 80% |
| active | GitHub pushedAt 2026-09-03; tag v5.11.53 referenced in README | – |
| reach | 85% |
Open questions
- Does the OpenAPI spec cover the invoice PDF download route on self-host, or only through invitation links?
- Which third-party MCP wrapper is best maintained, for Adopters who want MCP rather than raw REST (NightSquawk/invoiceninja-mcp-server was seen at sourcing)
Sources
- github.com/invoiceninja/invoiceninja sourcing:invoicing-finance:github
- github.com/invoiceninja/invoiceninja/blob/master/openapi/api-docs.yaml analysis:invoicing-finance
- invoiceninja.com/pricing-plans/ analysis:invoicing-finance