WHMCS-Buchhaltung: mit lexoffice oder sevDesk verbinden
WHMCS bringt eine eigene Rechnungsstellung mit, aber keine deutsche Buchhaltung. Wer als Hoster oder Domain-Reseller Umsätze sauber verbuchen und dem Steuerberater übergeben will, muss WHMCS an lexoffice (seit 2024/25 als „Lexware Office“ vermarktet) oder sevDesk anbinden. Eine offizielle Standard-Integration gibt es in keiner Richtung – Sie haben drei Wege: ein fertiges Modul aus dem WHMCS Marketplace, eine eigene Anbindung über die REST-APIs und WHMCS-Hooks oder eine Middleware wie Make oder n8n. Nach der Lektüre wissen Sie, welcher Weg zu Ihrem Setup passt, wie der API-Hook im Kern aussieht und welche drei Stolperfallen – Rechnungsnummern, Umsatzsteuer, GoBD – in Deutschland teuer werden.
Was „verbinden“ konkret bedeutet
Bevor Sie ein Modul kaufen, klären Sie, welches System die Rechnung führt. WHMCS erzeugt bereits fortlaufende Rechnungen mit eigener Nummer und schickt sie an den Kunden. Wenn lexoffice oder sevDesk dieselbe Rechnung nochmals als „Ausgangsrechnung“ erzeugt, haben Sie zwei Nummernkreise für denselben Vorgang – ein GoBD-Problem.
In der Praxis funktioniert nur eine dieser beiden Richtungen:
- WHMCS bleibt das führende Rechnungssystem. Die in WHMCS erstellte Rechnung wird als Beleg (Voucher) in die Buchhaltung übertragen, nicht als neue Rechnung. Der Nummernkreis bleibt gapless in WHMCS.
- Die Buchhaltung ist führend. Dann erzeugt lexoffice/sevDesk die Rechnung per API, und WHMCS dient nur der Provisionierung und Zahlungsabwicklung. Das ist deutlich aufwendiger und lohnt sich selten.
Für die meisten Hoster ist Variante eins richtig. Passend dazu sollte WHMCS deutsche Rechnungspflichten erfüllen – wie Sie das einrichten, steht in WHMCS-Rechnungen an deutsche Anforderungen anpassen.
Weg 1: Fertiges Modul aus dem WHMCS Marketplace
Der schnellste Einstieg ist ein Drittanbieter-Addon. Im WHMCS Marketplace finden sich Module, die Kunden, Rechnungen und Zahlungen automatisch nach lexoffice bzw. sevDesk synchronisieren. Der grobe Ablauf:
- Modul kaufen und hochladen: Das Addon wird als Verzeichnis unter
/modules/addons/in Ihre WHMCS-Installation gelegt. - Aktivieren: Unter Configuration → System Settings → Addon Modules (in älteren Versionen Setup → Addon Modules) aktivieren und Zugriffsrechte setzen.
- API-Schlüssel hinterlegen: Den API-Key aus lexoffice bzw. das API-Token aus sevDesk in den Moduleinstellungen eintragen.
- Mapping konfigurieren: Steuersätze, Erlöskonten und den Auslösezeitpunkt (bei Rechnungserstellung oder erst bei Zahlung) festlegen.
Vorteil: Sie sparen sich die Entwicklung und bekommen Updates. Nachteil: laufende Lizenzkosten und Abhängigkeit vom Anbieter. Prüfen Sie vor dem Kauf, ob das Modul Ihre WHMCS-Version, das korrekte USt-Mapping (Reverse-Charge, OSS) und Ihren Wunsch-Auslöser unterstützt. Konkrete Produktnamen und Preise ändern sich häufig.
Weg 2: Eigene Anbindung über API und WHMCS-Hooks
Wenn Sie Kontrolle wollen oder kein Modul passt, bauen Sie die Anbindung selbst. Beide Buchhaltungssysteme haben eine REST-API, WHMCS liefert die passenden Ereignisse über Action Hooks.
API-Zugang einrichten
- lexoffice / Lexware Office: Der API-Schlüssel wird in den Einstellungen unter „Öffentliche API“ erzeugt und als
Authorization: Bearer <key>gesendet. Basis-URL isthttps://api.lexoffice.io/v1/. Die API ist auf 2 Anfragen pro Sekunde gedrosselt; darüber kommt HTTP 429. Der Zugang setzt ein kostenpflichtiges Abo voraus. - sevDesk: Das API-Token finden Sie im Konto unter Einstellungen → Benutzer → API-Token. Die API liegt unter
https://my.sevdesk.de/api/v1/; das Token wird als Parameter oder Header übergeben. Relevante Ressourcen sind unter anderemContact,Invoice,VoucherundCheckAccount.
Beide APIs kennen die Trennung zwischen selbst erzeugten Rechnungen und importierten Belegen. Für den Weg „WHMCS ist führend“ nutzen Sie den Beleg-Endpunkt (vouchers bei lexoffice, Voucher bei sevDesk), nicht den Rechnungs-Endpunkt.
Der passende WHMCS-Hook
WHMCS feuert bei jedem relevanten Vorgang einen Action Hook. Für die Buchhaltung sind vor allem InvoiceCreated (Rechnung erstellt) und InvoicePaid (Rechnung bezahlt) interessant. Eine Hook-Datei legen Sie unter /includes/hooks/ ab; sie wird automatisch geladen:
<?php
// /includes/hooks/lexoffice_sync.php
add_hook('InvoicePaid', 1, function ($vars) {
$invoiceId = $vars['invoiceid'];
// Rechnungsdaten intern aus WHMCS holen
$invoice = localAPI('GetInvoice', ['invoiceid' => $invoiceId]);
// -> hier auf das lexoffice-/sevDesk-Belegschema mappen
$payload = [ /* Betrag, Datum, Steuersatz, Kontakt, ... */ ];
$ch = curl_init('https://api.lexoffice.io/v1/vouchers');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('LEXOFFICE_API_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode($payload),
]);
$response = curl_exec($ch);
curl_close($ch);
});
Legen Sie den API-Schlüssel nie fest im Code ab, sondern als Umgebungsvariable oder in einer geschützten Konfigurationsdatei. Ob Sie beim Erstellen (InvoiceCreated) oder erst beim Bezahlen (InvoicePaid) synchronisieren, hängt davon ab, ob Sie nach Soll- oder Ist-Versteuerung buchen – das sollten Sie mit dem Steuerberater klären.
Weg 3: Middleware ohne Code
WHMCS verschickt von Haus aus keine generischen Webhooks, aber ein kleiner Hook wie oben kann statt der API-Aufruf-Logik einfach eine JSON-Nutzlast an eine Automatisierungsplattform (Make, n8n, Zapier) senden. Dort bauen Sie das Mapping und den API-Aufruf per Klick zusammen. Das ist wartungsärmer als eigener Code und flexibler als ein starres Modul, kostet aber je nach Volumen Abo-Gebühren und fügt eine weitere Fehlerquelle zwischen den Systemen ein.
Die drei teuren Stolperfallen in Deutschland
Die eigentliche Arbeit steckt nicht im API-Aufruf, sondern im korrekten Mapping.
- Rechnungsnummern: Nur ein System darf die fortlaufende Nummer vergeben, sonst entstehen Lücken oder Dubletten. Halten Sie WHMCS als führend und importieren Sie in die Buchhaltung als Beleg.
- Umsatzsteuer: WHMCS-Steuerregeln müssen exakt auf die Steuersätze der Buchhaltung abgebildet werden – 19 %, 7 %, 0 % bei innergemeinschaftlichen Leistungen (Reverse-Charge) und B2C-EU-Umsätze über das OSS-Verfahren. Ein falsches Mapping bucht die falsche Steuer. Wie Sie schon die Bestellformulare rechtssicher aufsetzen, zeigt WHMCS-Bestellformulare an deutsche Rechtsvorschriften anpassen.
- GoBD und Konten: Belege müssen unveränderbar und nachvollziehbar sein, Erlöse auf die richtigen Konten laufen. Für die Kontenzuordnung im Standardkontenrahmen hilft der Beitrag zur SKR-03-Buchung von Website-Erstellung und Weiterberechnung. Beide Systeme liefern den DATEV-Export für den Steuerberater.
Ein weiterer Klassiker sind doppelte Kundenkontakte: Legen Sie vor jeder neuen Rechnung eine Kontaktsuche über E-Mail oder Kundennummer an, statt bei jeder Synchronisation einen neuen Kontakt zu erzeugen. Und buchen Sie Zahlungen von PayPal oder Stripe besser über den Bankabgleich in der Buchhaltung, statt sie doppelt aus WHMCS zu importieren.
FAQ
Kann WHMCS Rechnungen direkt an lexoffice oder sevDesk übergeben? Nicht von Haus aus. WHMCS hat weder für lexoffice noch für sevDesk eine eingebaute Schnittstelle. Sie brauchen ein Marketplace-Modul, eine eigene Anbindung über die REST-API plus WHMCS-Hooks oder eine Middleware.
Soll lexoffice/sevDesk oder WHMCS die Rechnungsnummer vergeben? In der Regel WHMCS. Es erstellt und versendet die Rechnung bereits mit fortlaufender Nummer. Übertragen Sie diese als Beleg in die Buchhaltung, damit der Nummernkreis lückenlos bleibt und keine Dubletten entstehen.
Ist die eigene API-Anbindung GoBD-konform? Die Konformität hängt nicht am Transportweg, sondern am Ergebnis: unveränderbare Belege, korrekte Steuersätze, lückenlose Nummern und ein sauberer DATEV-Export. Sowohl lexoffice als auch sevDesk sind GoBD-testiert – Fehler entstehen fast immer im Mapping, nicht in der API.
Brauchen Sie Hilfe dabei? Ypsilon.dev — Webagentur aus Regensburg, kostenlose Erstberatung.