Invoice Ninja

Invoice Ninja

★ 10,0762,704 forks2,704 contributorsUpdated 9/12/2026

Invoice Ninja is a source-available (Elastic License 2.0) invoicing, quoting, project, and time-tracking app built with Laravel, and a self-hosted alternative to FreshBooks and Bill.com. It covers client management, recurring invoices, online payments through 40+ gateways, expense tracking, and a client portal, with white-label branding for agencies and freelancers.


Overview

Description

Invoice Ninja is a source-available invoicing, quoting, project, and time-tracking application built with Laravel, and a self-hosted alternative to FreshBooks and Bill.com. It covers the full billing workflow for freelancers and small agencies: create quotes and convert them to recurring or one-off invoices, track time and expenses against clients and projects, and accept payments online through more than 40 payment gateways including Stripe, PayPal, and Square. A branded client portal lets customers view and pay invoices directly, and the app is fully white-labelable for agencies billing under their own name. It's released under the Elastic License 2.0, which allows self-hosting and modification but restricts offering it as a competing hosted service.

Features

  • Invoicing & quotes: Recurring invoices, quotes, credit notes, and multi-currency billing.
  • Online payments: 40+ gateways including Stripe, PayPal, Square, and Authorize.net.
  • Time & expenses: Track billable time and expenses and convert them straight into invoices.
  • Client portal: Branded portal for clients to view, approve, and pay invoices online.
  • Projects & tasks: Organize work into projects and tasks tied back to client billing.
  • White-label & API: Custom branding, PDF designs, and a full REST API for integrations.

Technology Stack

  • PHP / Laravel backend
  • Vue.js frontend
  • MySQL or PostgreSQL
  • Official Docker images for self-hosting

Requirements

  • PHP 8.1+ or Docker
  • MySQL 5.7+/MariaDB or PostgreSQL
  • A mail server (SMTP) for invoice delivery and notifications

Learning resources