# Invoice Ninja — Open Source Invoicing and Payments > Invoice Ninja is a free, open-source platform for invoicing, payments, expenses, and time tracking. It supports over 45 payment gateways and can be self-hosted or used as a managed service. ## Install Save as a script file and run: # Invoice Ninja — Open Source Invoicing and Payments ## Quick Use ```bash docker run -d --name invoiceninja -p 8080:80 -e APP_URL=http://localhost:8080 invoiceninja/invoiceninja # Visit http://localhost:8080/setup ``` ## Introduction Invoice Ninja is a full-featured invoicing platform that handles the complete billing cycle from quotes and proposals through invoices, payments, and expense tracking. It is built on Laravel and Flutter, offering both a web dashboard and native mobile apps for iOS and Android. ## What Invoice Ninja Does - Creates and sends professional invoices with customizable templates and branding - Accepts online payments through 45+ gateways including Stripe, PayPal, and Square - Tracks expenses, vendor bills, and purchase orders with receipt attachment support - Records time entries and converts tracked hours into invoices with configurable rates - Generates recurring invoices and auto-bills clients on configurable schedules ## Architecture Overview The backend is a Laravel PHP application using MySQL or PostgreSQL for data storage. The admin portal is a Flutter web application compiled to JavaScript, providing a responsive single-page experience. PDF generation uses the Snappy library with wkhtmltopdf. The REST API supports all operations available in the UI, enabling integration with accounting tools, CRMs, and custom workflows. ## Self-Hosting & Configuration - Deploy via Docker Compose or install on a LAMP stack with PHP 8.1+ and MySQL 5.7+ - Configure SMTP settings in .env for sending invoices and payment receipts via email - Set up payment gateway credentials in the admin panel to accept online payments - Enable cron jobs for recurring invoices, payment reminders, and scheduled reports - Customize invoice templates using the built-in designer or import custom HTML/CSS designs ## Key Features - Support for 45+ payment gateways with automatic payment reconciliation - Multi-company support allowing freelancers and agencies to manage separate businesses - Client portal where customers view invoices, make payments, and approve quotes - Tax rate management with compound taxes, tax-inclusive pricing, and regional tax rules - REST API with OAuth2 and token authentication for automation and integrations ## Comparison with Similar Tools - **FreshBooks** — commercial cloud invoicing with polished UX, no self-hosting option - **Akaunting** — open-source accounting software, broader scope but less invoicing depth - **Crater** — open-source Laravel invoicing, smaller feature set and community - **Zoho Invoice** — freemium cloud service, limited customization, vendor lock-in - **Wave** — free cloud invoicing with ads, no self-hosting, limited payment gateways ## FAQ **Q: Is Invoice Ninja truly free for self-hosting?** A: Yes. The self-hosted version is fully open source under the Elastic License 2.0. The hosted version offers a free tier and paid plans with additional features. **Q: Can I white-label invoices with my own branding?** A: Yes. You can customize logos, colors, fonts, and invoice layouts. The Enterprise plan additionally removes Invoice Ninja branding from client-facing pages. **Q: Does it integrate with accounting software?** A: Yes. Invoice Ninja integrates with QuickBooks, Xero, and accounting exports. The API also enables custom integrations with any system. **Q: How does recurring billing work?** A: You create a recurring invoice with a frequency (weekly, monthly, yearly, etc.) and Invoice Ninja automatically generates and optionally auto-bills the client on each cycle. ## Sources - https://github.com/invoiceninja/invoiceninja - https://invoiceninja.com/docs --- Source: https://tokrepo.com/en/workflows/6887eac2-3b87-11f1-9bc6-00163e2b0d79 Author: Script Depot