pirabyte / laravel-lexware-office
Laravel API Client für Lexware Office - Einfache Integration der Lexware Office API in Laravel Anwendungen
Package info
github.com/pirabyte/laravel-lexware-office
pkg:composer/pirabyte/laravel-lexware-office
Fund package maintenance!
Requires
- php: ^8.3|^8.4
- guzzlehttp/guzzle: ^7.10
- illuminate/support: ^11.0|^12.0|^13.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.92
- laravel/pint: ^1.27
- mockery/mockery: ^1.6
- orchestra/testbench: ^9.0|^10.0|^11.0
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.5|^11.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-main
- v2.x-dev
- v0.4.0
- v0.3.9
- v0.3.8
- v0.3.7
- v0.3.6
- v0.3.5
- v0.3.4
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.9
- 0.2.8
- 0.2.7
- 0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.1
- 0.1.0
- dev-feat/coordinate-api-rate-limits
- dev-bug/financial-transaction-assignments
- dev-docs/latest-transaction-empty-404
- dev-feat/voucher-create-attach-file-main
- dev-copilot/fix-20
- dev-more-tests
This package is auto-updated.
Last update: 2026-09-28 06:34:28 UTC
README
Laravel Lexware Office
Laravel-Client für die Lexware Office API mit typisierten Modellen, OAuth2-Unterstützung und lokalem Rate-Limit. Unterstützt PHP ab 8.3 sowie Laravel 11 bis 13.
Installation
composer require pirabyte/laravel-lexware-office
Trage deinen API-Key in .env ein:
LEXWARE_OFFICE_API_KEY=dein-api-key
Laravel lädt die Paketkonfiguration automatisch. Wenn du sie anpassen möchtest, veröffentliche sie mit:
php artisan vendor:publish --provider="Pirabyte\LaravelLexwareOffice\LexwareOfficeServiceProvider" --tag="lexware-office-config"
Für die Speicherung von OAuth2-Tokens in der Datenbank kannst du zusätzlich die Migration mit --tag="lexware-office-migration" veröffentlichen. --tag="lexware-office" veröffentlicht Konfiguration und Migration zusammen.
Verwendung
Mit dem konfigurierten API-Key nutzt du die Facade:
use Pirabyte\LaravelLexwareOffice\Facades\LexwareOffice; $contact = LexwareOffice::contacts()->get($contactId);
Für einen anderen API-Key erstellst du einen eigenen Client:
use Pirabyte\LaravelLexwareOffice\LexwareOfficeFactory; $client = LexwareOfficeFactory::withApiKey($apiKey); $contact = $client->contacts()->get($contactId);
Weitere Beispiele: Kontakte, OAuth2, Fehlerbehandlung und Partner-Integrationen.
Implementierungsstand
Diese Ressourcen und Methoden sind derzeit im Paket implementiert:
| Bereich | Zugriff | Methoden |
|---|---|---|
| Kontakte | contacts() |
create, get, update, filter, all, count, getAutoPagingIterator |
| Belege | vouchers() |
create, createAndAttachFile, get, update, filter, all, document, downloadDocument, attachFile |
| Länder | countries() |
all |
| Finanzkonten | financialAccounts() |
create, get, filter, delete |
| Finanztransaktionen | financialTransactions() |
create, get, update, delete, latest, getVoucherAssignments |
| Buchungskategorien | postingCategories() |
get |
| Profil | profile() |
get |
| Transaktionszuweisungshinweise | transactionAssignmentHints() |
create |
| Partner-Integrationen | partnerIntegrations() |
get, update |
Besonderheit bei der neuesten Finanztransaktion
financialTransactions()->latest($financialAccountId) kann bei einem bestehenden Finanzkonto ohne Transaktionen eine 404-Antwort von Lexware erhalten. Die Methode gibt nur bei einer erfolgreichen, leeren Antwort null zurück. Wenn du prüfen musst, ob das Konto existiert, nutze zusätzlich financialAccounts()->get($financialAccountId).
Rate-Limit
Der Client prüft vor Anfragen ein lokales Laravel Rate-Limit von standardmäßig 50 Anfragen pro Minute. Bei erreichtem Limit wirft er eine LexwareOfficeApiException mit Status 429. Das Limit kannst du in config/lexware-office.php über max_requests_per_minute oder am Client ändern:
$client = app('lexware-office'); $client->setRateLimit(10);
Das lokale Limit garantiert keine freien Kapazitäten bei der Lexware Office API. Für Abläufe mit mehreren Anfragen bietet der Client waitForRateLimitCapacity() an.
Im Einsatz bei
Envoix nutzt dieses Paket für seine Lexware Office Anbindung. Die Anwendung bereitet Stripe-Zahlungen, Gebühren und Belege für Lexware Office vor. So funktioniert die Stripe-Integration.
