csarcrr/invoicing-integration
A Laravel/PHP package for adding invoicing integration to your app, with a clean API for creating, managing, and syncing invoices with external invoicing services. Configurable and easy to integrate into existing projects.
composer require csarcrr/invoicing-integration. Laravel auto-discovers the service provider.php artisan vendor:publish --tag=invoicing-integration-config. Review config/invoicing-integration.php for driver selection and credentials.CEGID_VENDUS_API_KEY, CEGID_VENDUS_BASE_URL, CEGID_VENDUS_CLIENT_ID). Check the package README for the exact keys per driver.InvoicingIntegration facade (or InvoicingIntegrationManager class) to see available methods: driver(), invoices(), clients(), find(), etc.use Csarcrr\InvoicingIntegration\Facades\InvoicingIntegration;
$invoice = InvoicingIntegration::driver('cegid_vendus')->invoices()->find('INV-123');
dump($invoice->total, $invoice->status); // verify types are correct after v0.5.4
InvoicingIntegration::driver('cegid_vendus') explicitly in production to avoid config drift.CreateInvoiceAction, FindInvoiceAction) to isolate your domain from the package API. This makes it easier to swap drivers later.find results). Use these directly or map them to your own DTOs. Check the package's CegidVendus client classes for the exact return types.Http::fake() to mock API responses. The package likely uses Laravel's HTTP client. Write feature tests that fake responses for find, create, and list methods.$job->release() or retry logic. Check for rate-limiting headers in the driver.find results (fixed in v0.5.4): Before this patch, CegidVendus client find results may have returned numeric fields as strings. Upgrade to v0.5.4+ if you rely on $invoice->total being a float/int. After upgrading, re-test any strict comparisons.config/invoicing-integration.php for the exact driver key (e.g. cegid_vendus not CegidVendus).\Csarcrr\InvoicingIntegration\Exceptions\InvoicingIntegrationException (or similar) and map to your domain errors. Log the raw response for debugging.->toArray() if available, or access properties. Do not cast to array blindly; nested objects may not serialize as expected.Http::fake(), ensure you fake the correct URL pattern. The driver may append paths like /api/v1/invoices. Check the client's base URL and endpoints.Csarcrr\InvoicingIntegration\Contracts\Driver) and register it in the config or via the manager's extend() method if available.Http::withOptions(['debug' => true]) or use Log::debug()) in a local environment. The package may not log requests by default.composer.json (^0.5.4) and review changelogs for breaking changes between minor releases. v0.5.4 is a patch fix; safe to upgrade from v0.5.3.How can I help you explore Laravel packages today?