- What are the requirements to install tomatophp/filament-invoices?
- The current v5 line requires PHP 8.2 or newer, Laravel 12 or 13, and Filament v5. Install it with composer require tomatophp/filament-invoices, run php artisan filament-invoices:install, then register TomatoPHP\FilamentInvoices\FilamentInvoicesPlugin::make() in your AdminPanelProvider. DomPDF is used for PDF generation, and Laravel Notifications plus Cashier/Stripe integration remain optional additions.
- Does filament-invoices work with Filament v4 or Filament v3?
- The current release targets Filament v5 only, but the vendor maintains a parallel 4.x branch for Filament v4 users, so pin to 4.x if you have not upgraded. Filament v3 is no longer served by the current line, meaning a v3 project faces a two-major Filament upgrade before it can consume v5. Note that the backport policy for the v4 branch is not documented, so it is unclear whether it receives bug fixes or only security patches.
- How do I create invoices programmatically without the Filament UI?
- The package ships a facade-based API, so you can call Invoice::create() directly from your own services, commands, or controllers. Headless usage is possible, but the package does not provide a non-Filament UI layer, so you would need to build your own endpoints and views around the facade. This makes it viable for API-driven workflows inside an app that already uses Filament for administration.
- How does filament-invoices handle multi-currency and multi-type invoices?
- The package supports multi currency, multi type, and multi status invoices, along with payments recorded against each invoice. In v5, payments on invoices with no currency and empty item rows no longer fail, which removes a common greenfield footgun. Exchange rate handling and tax rounding are still your responsibility, so pair it with a dedicated money package for anything beyond simple single-currency billing.
- Can I customise the invoice PDF template?
- Yes. Five built-in templates ship with the package, and additional templates can be added through a Factory Pattern without modifying the package core. PDFs are rendered with DomPDF, and the package also lets you print invoices and print pay slips for individual payments. Be aware that DomPDF carries a deployment footprint and single-threaded generation cost, so heavy batch rendering should be queued.
- Does filament-invoices support polymorphic billable models?
- Yes, it provides morph from/for relationships with Morph Maps, so invoices can be attached to your own billable entities. The v5 release also removed an implicit requirement for a locations() relation, so the invoice page now works for billed models that do not define one. This widens the set of integrable billable entities and removes a common reason for forking the package.
- How do I send an invoice to a customer by email?
- The package can send invoices via email with the PDF attached, using Laravel's mail and notification system. Delivery therefore depends entirely on your mail configuration, and SMTP misconfiguration remains an unverified failure point in real deployments. Test with Mailpit or a staging SMTP relay before relying on it for production billing.
- Is it safe to upgrade to filament-invoices v5 in a production app?
- v5.0.0 is primarily a compatibility and defect release rather than a feature release, fixing null-currency payments, empty item rows, and saving settings with empty optional fields. The cost is that the upgrade surface is now Filament major times Laravel major times PHP minor, so Laravel 12, PHP 8.2, and Filament v5 must move together as a platform upgrade rather than a simple dependency bump. Budget for a repeat cycle whenever Filament ships v6.
- Where is the invoice settings page and how do I enable it?
- Invoice settings live in a Settings Hub page rather than standalone config screens, so you need to enable the Settings Hub integration in your panel to expose them. Previously, saving settings with empty optional fields would fail; that has been fixed in v5. Settings cover things like invoice templates and other defaults used during generation and printing.
- Will filament-invoices conflict with my existing invoices table or custom invoice model?
- The package assumes standard Laravel conventions and its own invoices table, so migration risk against existing custom invoice models is unchanged from previous releases. Audit your current schema, columns, and any money or currency casts before installing into a mature application. If your billable or invoice model diverges heavily, expect to map it through the morph configuration rather than replacing your tables.