PHPackages                             daniel-jorg-schuppelius/lexoffice-php-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. daniel-jorg-schuppelius/lexoffice-php-sdk

ActiveLibrary[API Development](/categories/api)

daniel-jorg-schuppelius/lexoffice-php-sdk
=========================================

Lexoffice SDK for PHP

v1.0.2(1w ago)081MITPHPPHP &gt;=8.2 &lt;8.5CI passing

Since Jan 21Pushed 1w ago1 watchersCompare

[ Source](https://github.com/Daniel-Jorg-Schuppelius/lexoffice-php-sdk)[ Packagist](https://packagist.org/packages/daniel-jorg-schuppelius/lexoffice-php-sdk)[ RSS](/packages/daniel-jorg-schuppelius-lexoffice-php-sdk/feed)WikiDiscussions main Synced today

READMEChangelog (10)Dependencies (6)Versions (19)Used By (0)

Lexoffice PHP SDK
=================

[](#lexoffice-php-sdk)

[![PHP Version](https://camo.githubusercontent.com/73758a2a366f343261523be3206949209766f294f54361c7a4af56dfff199342/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d382e32253230253743253230382e33253230253743253230382e342d626c7565)](https://php.net)[![License](https://camo.githubusercontent.com/f8df3091bbe1149f398a5369b2c39e896766f9f6efba3477c63e9b4aa940ef14/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e)](LICENSE)[![Packagist](https://camo.githubusercontent.com/45bb4d20c418c069e498fe8e42413e1d3bd886c0c2a921a999d7bc496ab49fa2/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f64616e69656c2d6a6f72672d736368757070656c6975732f6c65786f66666963652d7068702d73646b)](https://packagist.org/packages/daniel-jorg-schuppelius/lexoffice-php-sdk)

Ein PHP SDK für die **Lexoffice API**, das programmatischen Zugriff auf die deutsche Buchhaltungssoftware ermöglicht.

Inspiriert vom Projekt [eike-grundke/lexoffice-php-sdk](https://github.com/helsinki-systems/lexoffice-php-sdk), wurde die Struktur komplett überarbeitet.

🚀 Features
----------

[](#-features)

- **Bearer Token Authentifizierung**: Einfache API-Key Authentifizierung
- **Domain-Driven Design**: Strikte Trennung zwischen API-Clients, Endpoints, Entities und Contracts
- **20 Endpoints** für umfassende Lexoffice-Integration
- **Umfassende API-Abdeckung** für verschiedene Bereiche:
    - Artikel (Articles) - 1 Endpoint
    - Kontakte (Contacts) - 1 Endpoint
    - Dokumente (Documents) - 8 Endpoints
    - Zahlungen (Payments) - 1 Endpoint
    - Vouchers - 2 Endpoints
    - Event-Subscriptions - 1 Endpoint
    - Profile, Länder, Dateien und mehr

📋 Voraussetzungen
-----------------

[](#-voraussetzungen)

- PHP 8.2, 8.3 oder 8.4
- Lexoffice Account mit API-Zugang
- Composer

📦 Installation
--------------

[](#-installation)

```
composer require daniel-jorg-schuppelius/lexoffice-php-sdk
```

⚙️ Konfiguration
----------------

[](#️-konfiguration)

### API-Schlüssel

[](#api-schlüssel)

Um die API zu nutzen, benötigen Sie einen API-Schlüssel aus Ihrem Lexoffice-Account:

1. Melden Sie sich bei Lexoffice an
2. Gehen Sie zu **Einstellungen** → **Öffentliche API**
3. Erstellen Sie einen neuen API-Schlüssel

### Verbindung zur Lexoffice API

[](#verbindung-zur-lexoffice-api)

```
use Lexoffice\API\Client;

$client = new Client('your-api-key');
```

📚 Verwendung
------------

[](#-verwendung)

### Beispiel: Artikel abrufen

[](#beispiel-artikel-abrufen)

```
use Lexoffice\API\Client;
use Lexoffice\API\Endpoints\ArticlesEndpoint;

$client = new Client('your-api-key');
$endpoint = new ArticlesEndpoint($client);

// Einzelnen Artikel abrufen
$article = $endpoint->get($articleId);
```

### Beispiel: Kontakte abrufen

[](#beispiel-kontakte-abrufen)

```
use Lexoffice\API\Client;
use Lexoffice\API\Endpoints\ContactsEndpoint;

$client = new Client('your-api-key');
$endpoint = new ContactsEndpoint($client);

// Kontakt abrufen
$contact = $endpoint->get($contactId);
```

### Beispiel: Rechnung erstellen

[](#beispiel-rechnung-erstellen)

```
use Lexoffice\API\Client;
use Lexoffice\API\Endpoints\Documents\InvoicesEndpoint;
use Lexoffice\Entities\Documents\Invoices\Invoice;

$client = new Client('your-api-key');
$endpoint = new InvoicesEndpoint($client);

// Rechnung erstellen
$invoice = new Invoice($invoiceData);
$result = $endpoint->create($invoice);
```

### Beispiel: Profil abrufen

[](#beispiel-profil-abrufen)

```
use Lexoffice\API\Client;
use Lexoffice\API\Endpoints\ProfileEndpoint;

$client = new Client('your-api-key');
$endpoint = new ProfileEndpoint($client);

// Firmenprofil abrufen
$profile = $endpoint->get();
```

🏗️ Projektstruktur
------------------

[](#️-projektstruktur)

```
docs/
├── lexoffice-API-Samples.postman_collection.json  # Postman Collection (korrigiert)
└── NOTES.md                        # Dokumentierte Abweichungen zur offiziellen API

tools/
└── check-endpoint-coverage.php     # Prüft SDK-Abdeckung gegen Postman Collection

src/
├── API/
│   ├── Client.php                  # API Client mit Bearer Auth
│   └── Endpoints/
│       ├── ArticlesEndpoint.php
│       ├── ContactsEndpoint.php
│       ├── CountriesEndpoint.php
│       ├── EventSubscriptionsEndpoint.php
│       ├── FilesEndpoint.php
│       ├── PaymentConditionsEndpoint.php
│       ├── PaymentsEndpoint.php
│       ├── PostingCategoriesEndpoint.php
│       ├── PrintLayoutsEndpoint.php
│       ├── ProfileEndpoint.php
│       ├── VoucherListEndpoint.php
│       ├── VouchersEndpoint.php
│       └── Documents/              # 8 Dokument-Endpoints
│           ├── CreditNotesEndpoint.php
│           ├── DeliveryNotesEndpoint.php
│           ├── DownPaymentInvoicesEndpoint.php
│           ├── DunningsEndpoint.php
│           ├── InvoicesEndpoint.php
│           ├── OrderConfirmationsEndpoint.php
│           ├── QuotationsEndpoint.php
│           └── RecurringTemplatesEndpoint.php
├── Contracts/
│   ├── Abstracts/                  # Basis-Klassen
│   └── Interfaces/                 # Interface-Definitionen
├── Entities/                       # Domain-Entities
└── Enums/                          # Enumerations (20 Typen)

```

🔌 API-Endpunkte
---------------

[](#-api-endpunkte)

### Artikel &amp; Kontakte

[](#artikel--kontakte)

EndpointBeschreibung`ArticlesEndpoint`Artikelverwaltung`ContactsEndpoint`Kontaktverwaltung### Dokumente

[](#dokumente)

EndpointBeschreibung`InvoicesEndpoint`Rechnungen`CreditNotesEndpoint`Gutschriften`DeliveryNotesEndpoint`Lieferscheine`DownPaymentInvoicesEndpoint`Abschlagsrechnungen`DunningsEndpoint`Mahnungen`OrderConfirmationsEndpoint`Auftragsbestätigungen`QuotationsEndpoint`Angebote`RecurringTemplatesEndpoint`Wiederkehrende Vorlagen### Zahlungen &amp; Finanzen

[](#zahlungen--finanzen)

EndpointBeschreibung`PaymentsEndpoint`Zahlungen`PaymentConditionsEndpoint`Zahlungsbedingungen`VouchersEndpoint`Belege`VoucherListEndpoint`Belegliste`PostingCategoriesEndpoint`Buchungskategorien### Sonstiges

[](#sonstiges)

EndpointBeschreibung`ProfileEndpoint`Firmenprofil`CountriesEndpoint`Länder`FilesEndpoint`Dateien`PrintLayoutsEndpoint`Drucklayouts`EventSubscriptionsEndpoint`Event-Webhooks🧪 Tests
-------

[](#-tests)

### Test-Konfiguration

[](#test-konfiguration)

1. Kopieren Sie `.samples/postman_config.json.sample` nach `.samples/postman_config.json`
2. Tragen Sie Ihren Lexoffice API-Key ein

### Tests ausführen

[](#tests-ausführen)

```
composer test
# oder
vendor/bin/phpunit
```

> **Hinweis:** Die meisten Tests erfordern einen gültigen API-Key und sind daher standardmäßig deaktiviert.

📖 Abhängigkeiten
----------------

[](#-abhängigkeiten)

- [php-api-toolkit](https://github.com/daniel-jorg-schuppelius/php-api-toolkit) (^2.2) - Basis-Klassen für Clients, Endpoints und Entities
- [GuzzleHttp](https://github.com/guzzle/guzzle) - HTTP Client
- [PSR-3 Logger](https://www.php-fig.org/psr/psr-3/) - Logging-Interface

### Toolkit-Features

[](#toolkit-features)

Das SDK nutzt die erweiterten Funktionen des php-api-toolkit:

FeatureBeschreibung**E-Mail-Validierung**`EmailAddress::isValid()`, `getDomain()`, `isDisposable()`**Telefonnummer-Formatierung**`PhoneNumber::toE164()`, `format()`, `isGermanMobile()`**Adress-Validierung**`Address::isValidZip()`, `getGermanState()`, `getFullAddress()`**Personen-Handling**Strukturierte Vor-/Nachname-Verwaltung mit Anrede📄 Lizenz
--------

[](#-lizenz)

Dieses Projekt ist unter der [MIT-Lizenz](LICENSE) lizenziert.

💖 Unterstützung
---------------

[](#-unterstützung)

Wenn Ihnen dieses Projekt gefällt und es Ihnen bei Ihrer Arbeit hilft, würde ich mich sehr über eine Spende freuen!

[![GitHub Sponsors](https://camo.githubusercontent.com/bf5a5d8ec7dd9037b97c2b5614eaed4b087f0f2c997be0fa418f907a2b662c19/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53706f6e736f722d4769744875622d6561346161613f6c6f676f3d676974687562)](https://github.com/sponsors/Daniel-Jorg-Schuppelius)[![PayPal](https://camo.githubusercontent.com/bc43460ec53d93e3cc1b32ec308c70fb9e793667b938893ae9f7897d191e2d1b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5370656e64656e2d50617950616c2d626c75653f6c6f676f3d70617970616c)](https://www.paypal.com/donate/?hosted_button_id=X43UQQVDKL76Y)

👤 Autor
-------

[](#-autor)

**Daniel Jörg Schuppelius**

- Website: [schuppelius.org](https://schuppelius.org)
- E-Mail:

###  Health Score

49

—

FairBetter than 94% of packages

Maintenance98

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 89.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~34 days

Recently: every ~44 days

Total

16

Last Release

10d ago

Major Versions

v0.6.3 → v1.02026-01-11

PHP version history (2 changes)v0.4.1PHP ^8.2 || ^8.3

v0.6.1.1PHP &gt;=8.2 &lt;8.5

### Community

Maintainers

![](https://www.gravatar.com/avatar/9d648df75b8ca254b14377de6aa7c37daff5bc21e9e8742ef7687c7091c7bc94?d=identicon)[l0gtr0n](/maintainers/l0gtr0n)

---

Top Contributors

[![DSchuppelius](https://avatars.githubusercontent.com/u/19145058?v=4)](https://github.com/DSchuppelius "DSchuppelius (131 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (15 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/daniel-jorg-schuppelius-lexoffice-php-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/daniel-jorg-schuppelius-lexoffice-php-sdk/health.svg)](https://phpackages.com/packages/daniel-jorg-schuppelius-lexoffice-php-sdk)
```

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35916.4M7](/packages/exsyst-swagger)[hubspot/api-client

Hubspot API client

24016.2M20](/packages/hubspot-api-client)[pocketmine/bedrock-protocol

An implementation of the Minecraft: Bedrock Edition protocol in PHP

172445.0k15](/packages/pocketmine-bedrock-protocol)[botman/driver-telegram

Telegram driver for BotMan

93459.5k6](/packages/botman-driver-telegram)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
