xve / laravel-yuki-api-client
Laravel client for the Yuki accounting SOAP webservices (Sales, VAT, AccountingInfo).
Fund package maintenance!
v0.1.0
2026-08-04 17:27 UTC
Requires
- php: ^8.3|^8.4
- illuminate/contracts: ^11.0|^12.0|^13.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^3.4
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1
- orchestra/testbench: ^10.0|^11.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-arch: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- rector/rector: ^2.5
This package is not auto-updated.
Last update: 2026-08-05 15:30:45 UTC
README
A Laravel package for pushing sales invoices to Yuki's accounting SOAP webservices (Sales, VAT, AccountingInfo).
Features
- Session-cached SOAP authentication against
Sales.asmx(noext-soaprequired) ProcessSalesInvoicesto push a sales invoice and read back per-invoice statusAdministrations,ActiveVATCodesList, andGetGLAccountSchemelookups- A soft, local daily call-budget guard
- Swappable action classes for every remote call, configured in one place
Installation
composer require xve/laravel-yuki-api-client
Optionally publish the config:
php artisan vendor:publish --tag="laravel-yuki-api-client-config"
Configuration
Add to your .env:
YUKI_API_KEY=your-webservice-api-key YUKI_ADMINISTRATION_ID=your-administration-id YUKI_REGION=be
YUKI_REGION selects the API host: be for api.yukiworks.be, nl for api.yukiworks.nl.
Usage
use XVE\LaravelYukiApiClient\Data\Contact; use XVE\LaravelYukiApiClient\Data\InvoiceLine; use XVE\LaravelYukiApiClient\Data\Product; use XVE\LaravelYukiApiClient\Data\SalesInvoice; use XVE\LaravelYukiApiClient\Facades\Yuki; $invoice = new SalesInvoice( reference: 'INV-2026-0001', subject: 'Monthly invoice', contact: new Contact(fullName: 'Acme Corp'), lines: [ new InvoiceLine( description: 'Consulting hours', productQuantity: 4.0, product: new Product( description: 'Consulting', salesPrice: 125.00, vatPercentage: 21.00, vatType: 1, glAccountCode: '700000', ), ), ], process: true, ); $result = Yuki::processSalesInvoice($invoice); if ($result->successful()) { // $result->first()->isDuplicateReference(), ->rawResponseXml, etc. }
Testing
composer test
Credits
License
The MIT License (MIT). Please see License File for more information.