{
  "version": "2",
  "generatedAt": "2026-11-06T20:51:57.517Z",
  "listing": {
    "slug": "FOSSBilling--FOSSBilling",
    "name": "FOSSBilling",
    "tagline": "Free billing and client management for hosting and other online service businesses.",
    "shortTagline": "Billing for hosting businesses",
    "description": "FOSSBilling is a PHP app that automates invoicing, orders, payments and client support for hosting companies and other service sellers. It has a modular design with product-type modules, Twig themes and email templates. The Builder documents a JSON API for admin, client and guest roles, with an API key for the admin and client roles.",
    "capabilities": [
      "adaptable",
      "operable"
    ],
    "vertical": "invoicing-finance",
    "alternativeTo": [],
    "shape": "business-app",
    "formFactor": "web-app",
    "executionModel": "deterministic",
    "provenance": "mixed",
    "codeStack": {
      "languages": [
        "PHP",
        "TypeScript",
        "JavaScript"
      ],
      "frameworks": [
        "Symfony components",
        "Twig",
        "Doctrine",
        "RedBeanPHP"
      ],
      "packageManager": "composer, npm",
      "database": [
        "MySQL",
        "MariaDB"
      ],
      "hostingTarget": [
        "docker",
        "LAMP/LEMP"
      ]
    },
    "modelStack": null,
    "repos": [
      {
        "url": "https://github.com/FOSSBilling/FOSSBilling",
        "owner": "FOSSBilling",
        "name": "FOSSBilling",
        "license": "Apache-2.0",
        "stars": 1741,
        "lastCommit": "2026-11-06"
      }
    ],
    "interface": {
      "kind": "api",
      "url": "https://docs.fossbilling.org/extensions-and-development/api/",
      "official": true,
      "hosted": "local"
    },
    "operability": "official",
    "recommendedWrapper": null,
    "reach": [
      {
        "job": "Create and manage invoices",
        "reachable": true,
        "evidence": "/api/admin/invoice: get_list, prepare, issue, refund, mark_as_paid, cancel (src/modules/Invoice/Api/Admin.php)"
      },
      {
        "job": "Create and manage orders",
        "reachable": true,
        "evidence": "/api/admin/order: create, activate, renew, suspend, cancel (src/modules/Order/Api/Admin.php)"
      },
      {
        "job": "Manage clients",
        "reachable": true,
        "evidence": "/api/admin/client: get_list, create, update, balance_add_funds"
      },
      {
        "job": "Define products and add-ons",
        "reachable": true,
        "evidence": "/api/admin/product: update, update_config, addon_create"
      },
      {
        "job": "Payment gateways and transactions",
        "reachable": true,
        "evidence": "/api/admin/invoice: gateway_install, gateway_update, transaction_create, transaction_process"
      },
      {
        "job": "Taxes and promos",
        "reachable": true,
        "evidence": "/api/admin/invoice: tax_create, tax_update; /api/admin/product: promo_create, promo_update"
      },
      {
        "job": "Support tickets",
        "reachable": true,
        "evidence": "/api/admin/support: ticket_create, ticket_reply, ticket_close"
      },
      {
        "job": "Email templates and sending",
        "reachable": true,
        "evidence": "/api/admin/email: template_update, template_reset, email_get_list; Massmailer module: create, send"
      },
      {
        "job": "Currencies and exchange rates",
        "reachable": true,
        "evidence": "/api/admin/currency: create, update_rates, set_default"
      },
      {
        "job": "Theme template files and config.php",
        "reachable": false,
        "evidence": "/api/admin/theme can select a theme and preset, but Twig files and config.php are files with no write endpoint"
      }
    ],
    "editions": [
      {
        "name": "Free",
        "price": null,
        "open": true,
        "distributions": [
          {
            "kind": "source",
            "url": "https://github.com/FOSSBilling/FOSSBilling"
          },
          {
            "kind": "container",
            "url": "https://docs.fossbilling.org/getting-started/docker/",
            "command": "docker run -d --name fossbilling -p 80:80 -v fossbilling:/var/www/html --restart unless-stopped fossbilling/fossbilling:latest"
          },
          {
            "kind": "binary",
            "url": "https://fossbilling.org/downloads/"
          }
        ]
      }
    ],
    "skills": {
      "kind": "contributor",
      "paths": [
        ".agents/skills/security-advisory-fix/SKILL.md",
        ".agents/skills/security-advisory-triage/SKILL.md"
      ],
      "install": null,
      "note": "Skills are for maintainers handling security advisories. AGENTS.md at the root guides contributors."
    },
    "customization": {
      "summary": "Business behavior is set in the admin UI and database: products, pricing, tax, email templates, payment gateways, branding. Themes override module Twig templates, with user customizations in themes/<name>/html_custom/. config.php holds deployment settings (security, database, cache, locale, API rate limits), not business rules.",
      "envVars": [
        "DB_HOST",
        "DB_NAME",
        "DB_USER",
        "DB_PASS",
        "DB_PORT"
      ],
      "configFiles": [
        "config.php",
        "themes/<theme>/html_custom/"
      ],
      "promptFiles": [],
      "effort": "light-edit",
      "surfaceKind": "admin-ui",
      "editCount": 7
    },
    "useWhen": [
      "you run a hosting or digital-services business and want self-hosted billing and a client area",
      "you want an agent to issue invoices, manage orders and answer tickets through an API"
    ],
    "accounts": [
      "A payment gateway account, for example PayPal or Stripe"
    ],
    "active": true,
    "lastActivity": "2026-11-06",
    "gotchas": [
      "README marks the project as beta with rough edges and limited support",
      "Needs PHP 8.3 or newer and a MySQL-compatible database; the zip PHP extension is required",
      "The API key is created in the admin or client profile; session-based browser calls need a CSRF token, key-based calls do not",
      "Rate limiter and api.allowed_ips in config.php can block automated callers"
    ],
    "fit": {
      "adaptable": 2,
      "operable": 3
    },
    "evidence": {
      "formFactor": "README and docs: LAMP/LEMP web app with a Docker image",
      "executionModel": "no model in the product",
      "operability": "FOSSBilling/docs api.mdoc: /api/admin, /api/client, /api/guest, HTTP Basic with API key; method lists from src/modules/*/Api/Admin.php",
      "effort": "docs creating-a-theme.mdoc: html_custom override order; docs config.mdoc and src/config-sample.php are deployment settings",
      "editions": "README and fossbilling.org: free, self-hosted, donation links only; no paid or hosted edition",
      "active": "Latest commit 2026-11-06 with feature work by a maintainer; release 0.8.9 on 2026-10-23, four releases since August. README still calls the project beta",
      "provenance": "Search on the repo: 285 commits with a Copilot co-author, 13 with a Claude co-author and 100 PRs by the Copilot coding agent, on top of a long human-written history"
    },
    "confidence": {
      "formFactor": 0.9,
      "executionModel": 0.95,
      "operability": 0.85,
      "effort": 0.65,
      "reach": 0.8,
      "editions": 0.9,
      "provenance": 0.85
    },
    "openQuestions": [],
    "sources": [
      {
        "url": "https://github.com/FOSSBilling/FOSSBilling",
        "foundBy": "sourcing:invoicing-finance:github"
      },
      {
        "url": "https://github.com/FOSSBilling/docs/blob/main/src/content/docs/extensions-and-development/api.mdoc",
        "foundBy": "analysis"
      }
    ],
    "published": true,
    "lastCheckedAt": "2026-11-06",
    "research": {
      "stage": "verified",
      "verdict": "approve",
      "reason": "Passes all gates: Apache-2.0, feature commits on 2026-11-06, 1.7k stars, regular releases. The beta label is the Builder's own and stays as a gotcha; it does not make this a demo. Operable through the Builder's API with an API key; Adaptable mostly through the admin UI plus Twig theme overrides, so effort is light-edit. Provenance mixed now rests on commit history, not agent files.",
      "disputed": []
    },
    "url": "apps/FOSSBilling--FOSSBilling.html",
    "coverage": "partial",
    "paid": false,
    "source": "research/verified/FOSSBilling--FOSSBilling.json"
  }
}
