- How do I install simplepark-bv/laravel-invoices in a Laravel application?
- Install it with Composer using composer require simplepark-bv/laravel-invoices, then publish the package assets such as config, migrations, and Blade views. The package registers a service provider and exposes Eloquent-backed invoice models, so the next step is configuring a PDF driver and defining your invoice model. After that you can build line items with the fluent API and render an invoice to PDF or HTML. Expect a few days to a first credible invoice and one to two weeks for production-grade templates and tax handling.
- Which Laravel and PHP versions does laravel-invoices v4 support?
- The v4 line follows Laravel 9, 10, and 11-era conventions and assumes PHP 8.1 or newer. Because support windows change, verify the exact Laravel and PHP constraint matrix in the package composer.json before committing to an upgrade. Pin the version in composer.json and upgrade deliberately rather than floating on the latest release. Majors are infrequent but meaningful, so treat a v4 major bump as a real migration project.
- Which PDF drivers can I use with laravel-invoices?
- PDF output depends heavily on the rendering driver you configure, along with fonts and template complexity, which is the most common source of production surprises. Before choosing, benchmark your intended driver on multi-page invoices and watch memory and execution time. Start with a spike that renders one realistic invoice end to end, then compare drivers against your branding and layout requirements. Rendering fidelity is your responsibility, so validate the output rather than assuming the package guarantees it.
- Is invoice numbering in laravel-invoices concurrency-safe?
- The package provides automatic invoice numbering, but you should confirm whether the implementation uses a database sequence or a count-plus-one pattern in your version. For EU and Dutch invoicing, sequential numbering is a hard legal requirement, so concurrency safety matters. If the built-in behavior is not safe under concurrent requests, wrap number assignment in a transaction with row locking or use a dedicated database sequence. Treat numbering as a domain decision you lock down early rather than something to leave to defaults.
- How do I handle mixed VAT rates, zero-rating, and reverse charge with laravel-invoices?
- The package calculates line totals and taxes, but VAT rules, reverse charge logic, rounding behavior, and legally required invoice fields remain your responsibility. Model tax rates per line item so mixed rates and zero-rated lines are represented explicitly in your data, not just in the template. Validate generated invoices against your jurisdiction's requirements before going live. The package gives you the scaffolding for rendering, not the invoicing domain logic.
- Can I customize the invoice PDF and HTML templates in laravel-invoices?
- Yes, the package ships publishable Blade views that you can override to apply your own branding, layout, and wording. Keep in mind that some label strings may be hardcoded in views rather than routed through Laravel's localization layer, so check before relying on translations. Recent patch releases have corrected VAT label text, which shows formatting strings are an active area of churn. If you snapshot-test rendered output, expect to refresh fixtures when label text changes.
- How do I store or download generated invoices in a Laravel app?
- Laravel Invoices renders invoices as PDF or HTML, which you can then stream for download or persist through Laravel's filesystem storage. Configure your storage disks and naming conventions before generating invoices in production. If you archive generated PDFs, be aware that patch releases can change rendered label text, so plan for regenerating stored documents when needed. Treat stored invoices as records that may need reconciliation against template and version changes.
- How should I test invoices rendered with laravel-invoices?
- Snapshot and assertion tests on rendered PDF or HTML content are useful, but they are sensitive to formatting and label changes. The v4.1.1 patch corrected a single VAT label string, so any fixtures or snapshots containing that text must be regenerated. Add coverage for currency formatting, number formatting, and locale behavior, since that class of bug is exactly what recent patches have addressed. Pin the package version so snapshot failures are deliberate rather than incidental.
- Is laravel-invoices a good fit for a standalone invoicing microservice or non-PHP stack?
- It is a Laravel-native package that registers a service provider and ships config, migrations, and Blade views, so it fits a conventional Laravel monolith or modular monolith well. It is a weaker fit for polyglot or service-oriented architectures, where pulling invoice rendering into a PHP worker creates coupling you would otherwise avoid. For a Laravel SaaS with in-app billing or invoicing, it is an excellent fit. For internal finance tooling it is acceptable, but it is a poor choice for a standalone invoicing microservice in another language.
- What are the maintenance and upgrade risks of using laravel-invoices?
- The package is maintained by a single small commercial shop, so maintainer concentration and bus factor are the largest structural risks. Plan for the possibility of vendoring or forking if the project stalls. Major releases are infrequent but meaningful, so treat a v4 upgrade as a migration project with template and snapshot review rather than a routine bump. Pin the version in composer.json and upgrade deliberately, especially when rendered output is stored or asserted on.