PHPackages                             daniel-jorg-schuppelius/datev-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. daniel-jorg-schuppelius/datev-php-sdk

ActiveLibrary

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

DATEV SDK for PHP

v0.4.5(3mo ago)7281↓100%1[1 PRs](https://github.com/Daniel-Jorg-Schuppelius/datev-php-sdk/pulls)1MITPHPPHP &gt;=8.2 &lt;8.5CI passing

Since Dec 28Pushed 1mo ago4 watchersCompare

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

READMEChangelog (10)Dependencies (2)Versions (14)Used By (1)

DATEV PHP SDK
=============

[](#datev-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/80ce9f25a2163013b8ad56001297dcbb3d9bd9ef2a05b73faa2297e18aa6204c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f64616e69656c2d6a6f72672d736368757070656c6975732f64617465762d7068702d73646b)](https://packagist.org/packages/daniel-jorg-schuppelius/datev-php-sdk)

Ein PHP SDK für die **DATEV Desktop API**, das programmatischen Zugriff auf die deutsche Buchhaltungs- und Lohnabrechnungssoftware ermöglicht.

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

[](#-features)

- **Flexible Authentifizierung**: Basic Auth und Bearer Token über austauschbare Authentication-Klassen
- **Domain-Driven Design**: Strikte Trennung zwischen API-Clients, Endpoints, Entities und Contracts
- **Über 120 Endpoints** für umfassende DATEV-Integration
- **Umfassende API-Abdeckung** für verschiedene DATEV-Bereiche:
    - Buchhaltung (Accounting) - 34 Endpoints
    - Mandantenstammdaten (Client Master Data) - 19 Endpoints
    - Lohn &amp; Gehalt (Payroll/HR) - 32 Endpoints
    - Dokumentenmanagement (DMS) - 11 Endpoints
    - Auftragsverwaltung (Order Management) - 21 Endpoints
    - Rechtswesen (Law) - 15 Endpoints
    - Öffentlicher Sektor (Public Sector) - 12 Endpoints
    - Identity &amp; Access Management (SCIM) - 5 Endpoints
    - Diagnostics - 2 Endpoints

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

[](#-voraussetzungen)

- PHP 8.2, 8.3 oder 8.4
- DATEV Software mit aktivierter Desktop API (läuft standardmäßig auf Port 58452)
- Composer

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

[](#-installation)

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

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

[](#️-konfiguration)

### Verbindung zur DATEV Desktop API

[](#verbindung-zur-datev-desktop-api)

Die API läuft standardmäßig auf `https://127.0.0.1:58452`.

### Authentifizierung

[](#authentifizierung)

**HTTP Basic Auth (empfohlen):**

```
use APIToolkit\API\Authentication\BasicAuthentication;
use Datev\API\Desktop\Client;

$authentication = new BasicAuthentication('Benutzer', 'Passwort');
$client = new Client($authentication, 'https://127.0.0.1:58452');
```

**Bearer Token Auth:**

```
use APIToolkit\API\Authentication\BearerAuthentication;
use Datev\API\Desktop\Client;

$authentication = new BearerAuthentication(
    'your-api-key',
    ['X-Datev-Client-ID' => 'your-client-id']
);
$client = new Client($authentication, 'https://127.0.0.1:58452');
```

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

[](#-verwendung)

### Beispiel: Mandanten abrufen (Accounting)

[](#beispiel-mandanten-abrufen-accounting)

```
use APIToolkit\API\Authentication\BasicAuthentication;
use Datev\API\Desktop\Client;
use Datev\API\Desktop\Endpoints\Accounting\ClientsEndpoint;

$client = new Client(new BasicAuthentication('user', 'password'));
$endpoint = new ClientsEndpoint($client);

// Alle Mandanten abrufen
$clients = $endpoint->get();

// Einzelnen Mandanten abrufen
$singleClient = $endpoint->get(id: $clientId);
```

### Beispiel: Mitarbeiter abrufen (Payroll)

[](#beispiel-mitarbeiter-abrufen-payroll)

```
use APIToolkit\API\Authentication\BasicAuthentication;
use Datev\API\Desktop\Client;
use Datev\API\Desktop\Endpoints\Payroll\EmployeesEndpoint;

$client = new Client(new BasicAuthentication('user', 'password'));
$endpoint = new EmployeesEndpoint($client);

// Mitarbeiter mit Referenzdatum abrufen (erforderlich für HR-Endpoints)
$employees = $endpoint->get(referenceDate: new DateTime('2024-01-01'));
```

### Beispiel: Echo-Test (Verbindung prüfen)

[](#beispiel-echo-test-verbindung-prüfen)

```
use APIToolkit\API\Authentication\BasicAuthentication;
use Datev\API\Desktop\Client;
use Datev\API\Desktop\Endpoints\Diagnostics\EchoEndpoint;

$client = new Client(new BasicAuthentication('user', 'password'));
$echoEndpoint = new EchoEndpoint($client);

$response = $echoEndpoint->get();
```

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

[](#️-projektstruktur)

```
src/
├── API/
│   └── Desktop/
│       ├── Client.php              # API Client (unterstützt alle Auth-Typen)
│       └── Endpoints/
│           ├── Accounting/         # 34 Endpoints (accounting/v1)
│           ├── ClientMasterData/   # 19 Endpoints (master-data/v1)
│           ├── Diagnostics/        # 2 Endpoints (Echo & Domains)
│           ├── DocumentManagement/ # 11 Endpoints (dms/v2)
│           ├── IdentityAndAccessManagement/  # 5 Endpoints (SCIM)
│           ├── Law/                # 15 Endpoints (law/v1)
│           ├── OrderManagement/    # 21 Endpoints
│           ├── Payroll/            # 32 Endpoints (hr/v3)
│           └── PublicSector/       # 12 Endpoints (public-sector/v1)
├── Contracts/
│   ├── Abstracts/                  # Basis-Klassen
│   └── Interfaces/                 # Interface-Definitionen
├── Entities/                       # Domain-Entities
└── Enums/                          # Enumerations (20+ Typen)

```

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

[](#-api-endpunkte)

### Accounting (`accounting/v1`)

[](#accounting-accountingv1)

Buchungssätze, Kostenstellen, Konten, Kreditoren, Debitoren und mehr.

EndpointBeschreibung`ClientsEndpoint`Mandantenverwaltung`AccountingRecordsEndpoint`Buchungssätze`AccountingSequencesEndpoint`Buchungsstapel`GeneralLedgerAccountsEndpoint`Sachkonten`CreditorsEndpoint` / `DebitorsEndpoint`Kreditoren &amp; Debitoren`CostCentersEndpoint`Kostenstellen`FiscalYearsEndpoint`Wirtschaftsjahre`TermsOfPaymentEndpoint`Zahlungsbedingungen`PostingProposal*Endpoint`Buchungsvorschläge (Kasse, Ein-/Ausgangsrechnungen)... und 24 weitere### Client Master Data (`master-data/v1`)

[](#client-master-data-master-datav1)

Mandantenstammdaten, Adressaten und Finanzämter.

EndpointBeschreibung`ClientsEndpoint`Mandantenstammdaten`AddresseesEndpoint`Adressatenverwaltung`TaxAuthoritiesEndpoint`Finanzämter`BanksEndpoint`Bankverbindungen`LegalFormsEndpoint`Rechtsformen`ClientCategoriesEndpoint`Mandantenkategorien`RelationshipsEndpoint`Beziehungen... und 12 weitere### Payroll / HR (`hr/v3`)

[](#payroll--hr-hrv3)

Lohn- und Gehaltsabrechnung. **Hinweis:** Alle HR-Endpoints erfordern ein `reference-date`.

EndpointBeschreibung`EmployeesEndpoint`Mitarbeiterverwaltung`SalariesEndpoint`Gehälter`SocialInsuranceEndpoint`Sozialversicherung`TaxationEndpoint`Besteuerung`WorkingHoursEndpoint`Arbeitszeiten`VacationEntitlementEndpoint`Urlaubsansprüche`GrossPaymentsEndpoint`Bruttobezüge... und 25 weitere### Document Management (`dms/v2`)

[](#document-management-dmsv2)

Dokumentenverwaltung und Archivierung.

EndpointBeschreibung`DocumentsEndpoint`Dokumentverwaltung`DocumentFilesEndpoint`Dateien zu Dokumenten`DocumentStatesEndpoint`Dokumentstatus`DomainsEndpoint`Mandantenbereiche`StructureItemsEndpoint`Ordnerstrukturen`SecureAreasEndpoint`Sicherheitsbereiche... und 5 weitere### Order Management

[](#order-management)

Auftragsverwaltung mit Gebührenplanung.

EndpointBeschreibung`OrdersEndpoint`Aufträge`InvoicesEndpoint`Rechnungen`FeePlansEndpoint`Gebührenpläne`ChargeRatesEndpoint`Verrechnungssätze`CostItemsEndpoint`Kostenträger`ExpensePostingsEndpoint`Auslagenbuchungen... und 15 weitere### Law (`law/v1`)

[](#law-lawv1)

Aktenverwaltung für Rechtsanwälte und Notare.

EndpointBeschreibung`FilesEndpoint`Akten`ExpensesEndpoint`Auslagen`FeeVersionsEndpoint`Gebührenversionen`CausesEndpoint`Fallursachen`PartyRolesEndpoint`Parteirollen`SecurityZonesEndpoint`Sicherheitszonen... und 9 weitere### Public Sector (`public-sector/v1`)

[](#public-sector-public-sectorv1)

Kommunalverwaltung und öffentlicher Sektor.

EndpointBeschreibung`CitizensEndpoint`Bürgerverwaltung`MetersEndpoint`Zählerverwaltung`MeterReadingsEndpoint`Zählerablesungen`NotificationsEndpoint`Bescheide`DuesEndpoint`Gebühren`ConsumptionsEndpoint`Verbrauchsdaten... und 6 weitere### Identity &amp; Access Management (SCIM)

[](#identity--access-management-scim)

Benutzer- und Gruppenverwaltung nach SCIM-Standard.

EndpointBeschreibung`UsersEndpoint`Benutzerverwaltung`GroupsEndpoint`Gruppenverwaltung`SchemasEndpoint`SCIM-Schemas`ResourceTypesEndpoint`Ressourcentypen`ServiceProviderConfigEndpoint`Provider-Konfiguration### Diagnostics

[](#diagnostics)

Verbindungstests und Systemdiagnose.

EndpointBeschreibung`EchoEndpoint`Verbindungstest`DomainsEndpoint`Verfügbare Domains🧪 Tests
-------

[](#-tests)

### Test-Konfiguration

[](#test-konfiguration)

1. Kopieren Sie `.samples/config.json.sample` nach `tests/.samples/config.json`
2. Tragen Sie Ihre DATEV-Zugangsdaten ein:

```
{
    "DATEV-DESKTOP-API": [
        {
            "key": "resourceurl",
            "value": "https://127.0.0.1:58452"
        },
        {
            "key": "user",
            "value": "IhrBenutzer"
        },
        {
            "key": "password",
            "value": "IhrPasswort"
        }
    ]
}
```

### Tests ausführen

[](#tests-ausführen)

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

> **Hinweis:** Die meisten Tests erfordern eine laufende DATEV-Installation und sind daher standardmäßig deaktiviert.

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

[](#-abhängigkeiten)

- [php-api-toolkit](https://github.com/daniel-jorg-schuppelius/php-api-toolkit) (^2.0) - 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

🔧 Tools
-------

[](#-tools)

Das SDK enthält ein **OpenAPI Coverage Analyzer** Tool zur Analyse der API-Abdeckung:

```
php tools/OpenApiCoverageAnalyzer.php
```

Dokumentation: [docs/OpenApiCoverageAnalyzer.md](docs/OpenApiCoverageAnalyzer.md)

📄 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

45

—

FairBetter than 92% of packages

Maintenance91

Actively maintained with recent releases

Popularity19

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 82.4% 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 ~1 days

Total

13

Last Release

118d ago

PHP version history (2 changes)v0.3.0-betaPHP ^8.2 || ^8.3

v0.4.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 (70 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (15 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

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

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

PHPackages © 2026

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