xve/laravel-yuki-api-client

Laravel client for the Yuki accounting SOAP webservices (Sales, VAT, AccountingInfo).

Maintainers

Package info

github.com/XVE-BV/laravel-yuki-api-client

pkg:composer/xve/laravel-yuki-api-client

Transparency log

Fund package maintenance!

XVE-BV

Statistics

Installs: 9

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.1.0 2026-08-04 17:27 UTC

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 (no ext-soap required)
  • ProcessSalesInvoices to push a sales invoice and read back per-invoice status
  • Administrations, ActiveVATCodesList, and GetGLAccountScheme lookups
  • 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.