sevdesk anbinden: Zwei Buchhaltungsversionen in einem Mandanten
Das sevdesk-Token ist einfach, die Paginierung gewöhnlich, und es gibt keine Webhooks einzurichten. Eine Woche kostet Sie sevdesk-Update 2.0, die Umstellung der Buchhaltung von 2024: Derselbe Mandant liefert für ältere Datensätze die eine Form und für neuere die andere, und welche Steuerregel Sie schreiben dürfen, hängt an einer Einstellung, die nur dieser Mandant kennt.


Das Token läuft nie ab, und es stirbt mit dem Benutzer
Der Zugang ist der einfache Teil. Jeder sevdesk-Administrator hat ein Token, eine Hexadezimalzeichenkette aus 32 Zeichen, und sie geht bei jedem Aufruf in den Authorization-Header. Es gibt kein OAuth-Verfahren, keinen Erneuerungszyklus und keinen Ablauf, um den herum Sie planen müssten.
Die Einschränkung liegt darin, woran das Token hängt. In der Referenz steht es deutlich: „Die API-Tokens haben eine unbegrenzte Lebensdauer und existieren mit anderen Worten so lange, wie der sevdesk-Benutzer existiert.“ Die nächste Zeile ist eine Warnung in Grossbuchstaben, dass dieser Benutzer niemals gelöscht werden sollte. Nehmen Sie diese Person aus dem Konto, steht die Anbindung still, mit 401 und ohne Vorwarnung.
GET /api/v1/Invoice?limit=50&offset=0&countAll=true HTTP/1.1Host: my.sevdesk.deAuthorization: b7794de0085f5cd00560f160f290af38Accept: application/jsonUser-Agent: Acme Billing by Acme GmbH
Das Token steht allein als Headerwert, ohne Schema davor. Die Referenz bittet ausserdem um einen aussagekräftigen User-Agent, in ihren Worten, damit sevdesk „bei Rückfragen von Kunden besseren Support bieten“ kann.
Tokenformat, Header und Lebensdauer aus dem Authentifizierungsabschnitt von sevdesk, geprüft am 11. August 2026. Das Token im Beispiel ist das, was sevdesk in der eigenen Dokumentation abdruckt, es ist also eine Veranschaulichung statt eines gültigen Zugangs.
Das Token lässt sich ersetzen. Im Konto Ihres Kunden steht daneben ein Schalter Neu generieren, bestätigt mit seinem Passwort. Einzuplanen ist, was danach passiert: Der Ersatz existiert nur in seinem Konto, sevdesk benachrichtigt Sie nicht, und das alte Token hört in dem Moment auf zu gelten, in dem das neue entsteht.
Geben Sie Ihren Kunden also einen Weg, Ihnen ein neues Token aus Ihrem eigenen Produkt heraus zu übergeben, bevor das erste je ersetzt wird. Ohne ihn wird jeder Wechsel zu einem Support-Gespräch mit einer stillstehenden Anbindung dahinter.
Eine weitere Zeile lohnt den zweiten Blick, weil sie Ihren Onboarding-Text entscheidet. Die Referenz warnt, dass ein Token sich nach dem Anlegen nicht erneut anzeigen lässt: „Es ist ratsam, das API-Token zu speichern, da wir es nachträglich NICHT abrufen können.“ Wer es beim Kunden einsammelt, hat genau einen Versuch.
Ein Mandant kann zwei Buchhaltungsversionen liefern
Das ist der Teil, den die älteren Darstellungen auslassen, und es ist der, der eine Woche kostet. 2024 hat sevdesk seine Buchhaltung in einer Version umgestellt, die sevdesk-Update 2.0 heisst, und die Umstellung hat die Vergangenheit nicht mitgenommen. Datensätze aus dem alten System liefern weiter die alte Form, neue die neue, aus demselben Konto und über denselben Endpunkt.
Konkret: Aufträge, Rechnungen, Belege und Gutschriften, die unter System 1.0 entstanden sind, kommen weiter mit einem taxType wie default zurück. Dieselben Objekte seit der Umstellung kommen mit einer nummerierten taxRule. Ihr Parser trifft auf beide, und nichts in der Antwort sagt, welche davon vorliegt.
Kommt weiter für jeden Datensatz zurück, den es vor der Umstellung gab.
Kommt für alles seitdem zurück, mit einer nummerierten Regel statt eines Namens.
Keine der beiden Antworten sagt Ihnen, in welcher Welt Sie sind. Die Version des Buchhaltungssystems ist ein eigener Aufruf, und sie entscheidet, welche Steuerregeln ein Schreibzugriff benutzen darf.
GET /api/v1/Tools/bookkeepingSystemVersion HTTP/1.1Host: my.sevdesk.deAuthorization: <your customer's api token>Accept: application/json
Ein Aufruf je angebundenem Mandanten, für die Sitzung zwischengespeichert. Er entscheidet, welches Steuervokabular ein Schreibzugriff benutzen darf, und er ist die einzige Stelle, an der die Antwort steht.
Die Umstellung, der Feldwechsel und der Versionsendpunkt aus den Hinweisen zu sevdesk-Update 2.0, geprüft am 11. August 2026. Das alte System stand laut sevdesk einem Teil der Kunden bis Ende 2024 offen, neue Verbindungen landen also auf dem neuen, ihre Historie nicht.
sevdesk bietet dabei eine Brücke an. Wo Sie weiter taxType mit den Werten default, eu oder ss senden, werden diese für eine Übergangszeit auf die neuen Regeln abgebildet. Die Empfehlung lautet trotzdem umzustellen, weil der neue Satz Möglichkeiten hat, die der alte nie hatte.
Ohne Brücke weggefallen ist taxType: custom zusammen mit einem eigenen taxSet. sevdesk hat es aus einem Grund entfernt, den es direkt nennt, einer hohen Wahrscheinlichkeit nicht regelkonformer Buchführung, und derselbe Durchgang hat auch eigene Buchungsarten entfernt.
Ein normalisiertes Datenmodell ist die naheliegende Antwort auf ein System mit zwei Vokabularen, und genau das leistet das Common Data Model für dieses und für die 30+ Systeme daneben.
Welche Steuerregel Sie benutzen dürfen, hängt am Mandanten
Das Lesen verträgt beide Welten. Das Schreiben nicht, denn das neue Modell bindet drei Dinge aneinander: die Regel, den Satz, den diese Regel erlaubt, und das Konto dahinter. Stimmt die Kombination nicht, kommt der Schreibzugriff als 422 zurück, statt still angenommen zu werden.
Die Form dieser Einschränkung wird leicht unterschätzt. Von den zehn Erlösregeln für einen Regelbesteuerer erlauben genau zwei die Sätze, die eine deutsche Rechnung gewöhnlich trägt: die gewöhnliche Regel und innergemeinschaftliche Lieferungen. Fünf lassen einen einzigen Wert zu, und dieser Wert ist null. Die drei One-Stop-Shop-Regeln hängen am Bestimmungsland.
| Steuerregel | Erlaubte Sätze | Ersetzt |
|---|---|---|
| 1 · Umsatzsteuerpflichtige Umsätze | 0.0 · 7.0 · 19.0 | taxType: default |
| 2 · Ausfuhren | 0.0 | Kein Vorgänger |
| 3 · Innergemeinschaftliche Lieferungen | 0.0 · 7.0 · 19.0 | taxType: eu |
| 4 · Steuerfreie Umsätze §4 UStG | 0.0 | Kein Vorgänger |
| 5 · Reverse Charge §13b UStG (Feld 60) | 0.0 | Kein Vorgänger |
| 21 · Reverse Charge §18b UStG (Feld 21) | 0.0 | Kein Vorgänger |
| 17 · Nicht im Inland steuerbar | 0.0 | taxType: noteu |
| 18–20 · One Stop Shop | hängt vom Land ab | Kein Vorgänger |
Regeln, erlaubte Sätze und die abgekündigten Eigenschaften aus der Steuerregel-Tabelle von sevdesk, geprüft am 11. August 2026. Die Tabelle oben ist die Erlöshälfte für einen Regelbesteuerer. sevdesk veröffentlicht drei weitere, für Aufwendungen und für Kleinunternehmer, und einem Kleinunternehmer steht genau eine Erlösregel offen.
{"invoiceType": "RE","taxRule": 1,"invoicePos": [{ "quantity": 1, "price": 1000.0, "taxRate": 19.0 }]}
Mit taxRule: 2 müsste dieselbe Position 0.0 tragen, und 19.0 würde abgelehnt. Regel und Satz werden gemeinsam geprüft.
Welche Konten, Sätze und Regeln zusammenpassen, ist keine Konstante. Es hängt an den Einstellungen des Mandanten, Kleinunternehmerstatus eingeschlossen, und sevdesk stellt für genau diese Frage Receipt Guidance bereit, einen eigenen Endpunkt. Ihn einmal je Mandant zu lesen ist günstiger, als die Antwort über 422er zu erfahren, und es ist die einzige Fassung dieser Liste, die richtig bleibt.
Zwei weitere Regeln haben ihre Form geändert und nicht ihren Wert, und beide greifen am Ende eines Ablaufs. Ein Beleg lässt sich nicht mehr direkt als bezahlt anlegen, nur noch als DRAFT oder UNPAID, mit einem eigenen Aufruf, der den Betrag danach bucht. Und enshrined ist keine Eigenschaft mehr, die Sie setzen: Es hat jetzt einen eigenen Endpunkt, einmal für Belege und einmal für Banktransaktionen.
Abschlags- und Teilrechnungen tragen eine eigene Einschränkung, und sie ist eng. Sie lassen sich nur unter der gewöhnlichen Erlösregel anlegen, oder unter der Kleinunternehmerregel bei einem Kleinunternehmer. Die One-Stop-Shop-Regeln schliessen sie ganz aus, ebenso E-Rechnungen und eigene Erlöskonten.
Die Paginierung verbirgt die Gesamtzahl, und die Zahl ist eine Zeichenkette
Das Lesen ist gewöhnlich, mit zwei Einzelheiten, die das Verhalten Ihres Parsers entscheiden. Paginiert wird mit limit und offset, das Limit liegt zwischen 1 und 1000, und Cursor gibt es nicht. Die Gesamtzahl der Datensätze kommt nur mit, wenn Sie sie mit countAll=true anfordern, und der Standardwert ist false.
Wenn sie kommt, kommt sie als Zeichenkette. Die Antwort lautet {"total": "157", "objects": [...]} mit der Zahl in Anführungszeichen, ein streng typisierter Parser, der dort eine Ganzzahl erwartet, scheitert daran, statt sie umzuwandeln. Deklarieren Sie das Feld als Zeichenkette und wandeln Sie selbst um.
Gegen das Maximum gehalten lohnt ein Hinweis: sevdesk rät selbst dazu, „die Limit-Werte in einem vernünftigen Rahmen zu halten (zwischen 10 und 100), um Leistungsprobleme zu vermeiden“. Die Obergrenze liegt bei 1000, die Empfehlung bei einem Zehntel davon, und das Offset-Modell wird langsamer, je tiefer Sie in eine grosse Menge laufen.
Ein Parameter lohnt es, früh zu lernen. embed holt verschachtelte Ressourcen vollständig heraus statt als id und Namen, und er nimmt mehrere Namen durch Kommas getrennt. Eine Rechnung, die Sie sonst einen zweiten Aufruf je Kontakt kostet, kommt damit vollständig an, und das zählt hier mehr als auf Systemen mit grosszügigen Grenzen, weil der zusätzliche Umlauf ganz auf Ihrer Seite anfällt.
Paginierungsparameter, das Antwortformat und der zitierte Hinweis aus dem Abschnitt zu den API-Anfragen von sevdesk, geprüft am 11. August 2026.
Wie sich das liest, sobald es über Systeme hinweg normalisiert ist, auch über die, die mit Cursorn statt mit Offsets paginieren, steht auf der Seite zu Unified Pagination & Filtering.
Ohne Versionsheader hängen Sie an der ältesten Version
Versioniert werden einzelne Ressourcen statt der Schnittstelle als Ganzes, über einen X-Version-Header an der Anfrage. Lassen Sie ihn weg, bekommen Sie default, und default ist in der Referenz der Wert, der „immer auf die älteste Version verweisen“ soll.
Das ist die Umkehrung dessen, was die meisten Plattformen einem beibringen. Anderswo hält einen das Weglassen auf der aktuellen Form; hier friert es einen auf der ältesten ein, die eine Ressource hat, still und so lange, wie niemand hinsieht. Setzen Sie den Header bewusst, je Ressource, und schreiben Sie den Wert dorthin, wo Ihr Team ihn findet.
Die Referenz fügt eine Bedingung darunter: Eine Ressource kann unter default existieren und unter 1.0 nicht, eine Versionsnummer ist also nicht automatisch sicherer als der Standardwert. Und jede Antwort trägt einen Deprecation-Header, entweder true oder einen Zeitstempel. Dieser Header ist die früheste Warnung, die Sie bekommen, wenn eine Ressource verschwindet, und sonst sagt es Ihnen nichts.
Ressourcenversionierung, die Definition von default und der Deprecation-Header aus dem Abschnitt zu den API-Anfragen von sevdesk, geprüft am 11. August 2026.
Sie setzen das Abrufintervall, und nichts deckelt es
sevdesk sendet keine Events. Das Wort Webhook kommt in der Referenz nirgends vor, und kein Objekt in unseren eigenen Abdeckungsdaten trägt ein natives Event. Was Sie über die Bücher eines Kunden erfahren, erfahren Sie durch Fragen.
Die zweite Hälfte ist die, die den Entwurf ändert. sevdesk veröffentlicht auch keine Ratenbegrenzung. Es gibt keine dokumentierte Obergrenze, kein Kontingent und keine 429 in der Statuscode-Tabelle. Die Plattform sagt Ihnen also weder, wann etwas passiert ist, noch, wie oft Sie fragen dürfen.
- Events, die sevdesk Ihnen sendet
- Keine
- Keine Webhooks, keine Callbacks, keine Abonnements. Das Wort kommt in der Referenz nicht vor.
- Ratenbegrenzung, die sevdesk veröffentlicht
- Keine
- Keine dokumentierte Obergrenze und keine 429 in der Statuscode-Tabelle. Der eigene Rat lautet, limit zwischen 10 und 100 zu halten.
Beide Leerstellen zeigen in dieselbe Richtung. Ohne Event, auf das zu reagieren wäre, und ohne Obergrenze, die zu achten wäre, ist das Abrufintervall eine Produktentscheidung statt einer Einschränkung, die Sie im Produktivbetrieb entdecken.
Über die vollständige API-Referenz von sevdesk gezählt am 11. August 2026: null Vorkommen von webhook oder callback, null von rate limit, quota oder 429. Die Event-Angabe ist aus unseren eigenen erzeugten Abdeckungsdaten gezählt, in denen kein sevdesk-Objekt ein natives Event trägt.
Praktisch heisst das: Den Abgleich entwerfen Sie, und Sie begründen ihn auch. Fragen Sie die Objekte, die sich oft ändern, in einem Rhythmus ab, der dazu passt, wie schnell Ihr Produkt es wissen muss, und halten Sie den Rest langsam. Jeder Durchlauf kostet einen Aufruf, ob sich etwas bewegt hat oder nicht.
Wie dasselbe Problem aussieht, wenn ein Event-Modell über Systeme mit und ohne Events gelegt wird, steht auf der Seite zum Unified-Webhook-Modell.
Eine 500 kann heissen, dass Ihre Anfrage fehlerhaft war
Da jeder Aufruf Ihrer ist, ist auch jeder Fehlschlag Ihrer zu deuten, und eine Zeile in der Statuscode-Tabelle von sevdesk sollte Ihre Wiederholungslogik ändern. Dort steht, eine 500 bedeute normalerweise, dass auf der Gegenseite etwas schiefgegangen sei, „manchmal erscheint dieser Fehler jedoch, wenn wir einen Fehler nicht abgefangen haben, der normalerweise ein 400er-Statuscode ist“.
Eine 500 ist damit kein verlässlicher Beleg dafür, dass das Problem vorübergehend ist. Ein blindes exponentielles Zurückweichen wiederholt manche fehlerhaften Anfragen endlos, mit wachsender Wartezeit, gegen eine Nutzlast, die nie angenommen worden wäre. Protokollieren Sie den Anfragerumpf zum Fehlschlag, und hören Sie auf, eine 500 zu wiederholen, die unverändert zurückkommt.
Die Statuscode-Tabelle und das Zitat aus dem Abschnitt zu den API-Anfragen von sevdesk, geprüft am 11. August 2026.
Der Livegang braucht keine Freigabe, die Listung braucht zehn Nutzer
Nach DATEV liest sich das wie eine andere Branche. sevdesk verlangt nichts, bevor Sie bauen, und nichts, bevor Sie live gehen. In den eigenen Worten darf jeder eine Integration gegen die dokumentierte Schnittstelle bauen, und „eine Freigabe oder Zustimmung durch sevdesk ist nicht notwendig“.
Das Partnerprogramm ist ein eigener Weg, und es beginnt, sobald die Integration steht. Sie veröffentlichen sie selbst und betreiben sie mit zehn Nutzern im Produktivbetrieb, und dort erwartet sevdesk, dass Sie die rauen Kanten gemeinsam mit ihnen finden und abschleifen.
Erst danach erscheint ein Antragsformular, und mit ihm die eine Prüfung im ganzen Ablauf: sevdesk gleicht die Integration gegen buchhalterische Anforderungen ab. Ein kurzes Onboarding stimmt beide Seiten aufeinander ab, und die Partnerschaft startet mit Sichtbarkeit im sevdesk-Ökosystem.
Alle fünf Schritte und beide Zitate von der Technologiepartner-Seite von sevdesk, geprüft am 11. August 2026, auf Deutsch. Unsere eigene Dokumentation beschreibt denselben Weg und lohnt die Lektüre daneben, mit einer Feinheit, die sie auslässt: Für den Livegang gibt es keine Freigabe, und für die Partnerschaft gibt es eine Prüfung.
Für einen Testzugang gibt es einen Weg, und er kostet nichts. sevdesk empfiehlt, einen Testzugang anzulegen, statt gegen ein Produktivkonto zu entwickeln, und hält fest, dass ein Testzugang im höchsten Tarif liegt, sodass sich jede sevdesk-Funktion damit prüfen lässt.
Die Empfehlung zum Testzugang und der Tarif aus dem Abschnitt „Your First Request“ der API-Referenz von sevdesk, geprüft am 11. August 2026: „Ein Testkonto liegt im höchsten Tarif (Warenwirtschaft), sodass sich jede sevdesk-Funktion prüfen lässt“.
Was maesn übernimmt, und was bei Ihnen bleibt
Die Anbindung selbst ist hier schnell erledigt, und genau deshalb verdient der Rest die Aufmerksamkeit. Was wir von der Liste nehmen:
- Die zwei Vokabulare fallen in eines zusammen. Ob ein Datensatz vor der Umstellung von 2024 entstanden ist oder nicht, er erreicht Ihren Code in derselben Form wie eine Rechnung aus jedem anderen System, die Versionstrennung hört also auf, ein Zweig in Ihrem Parser zu sein.
- Die Paginierung ist normalisiert. Die Gesamtzahl, die Sie anfordern müssen, die Zeichenkette und der Lauf über Offsets liegen hinter einer Schnittstelle, die für jedes System gleich paginiert.
- Der Schlüssel muss nie per E-Mail reisen. Ihr Kunde gibt ihn in einem gehosteten Schritt ein oder über den Headless-Weg in Ihrer eigenen Oberfläche, und das Token liegt je Mandant. Wie die Anbindung Objekt für Objekt aussieht, steht auf der Seite zur Sevdesk-Schnittstelle.
Was bei Ihnen bleibt, und eines davon ist eine Entscheidung statt einer Aufgabe:
- Das Abrufintervall. Wie aktuell Ihr Produkt sein muss und was das an Aufrufen kostet, ist eine Produktentscheidung, zu der wir beitragen können.
- Die Steuerregel, die Ihr Schreibzugriff trägt. Receipt Guidance sagt Ihnen, welche Kombinationen aus Regel und Satz sevdesk für einen bestimmten Mandanten annimmt. Welche davon die richtige für den Beleg vor Ihnen ist, sagt es nicht. Das ist eine buchhalterische Beurteilung des Geschäfts Ihres Kunden, und sie bleibt bei Ihnen.
- Der Partnerantrag, und die Person hinter dem Token. Zehn Produktivnutzer zu erreichen und das Partnerformular einzureichen, ist Ihre Aufgabe. Den sevdesk-Benutzer, dessen Konto das Token ausgestellt hat, am Leben zu halten, ist die Ihres Kunden, und löscht er diese Person, steht die Verbindung still. Beides lässt sich nicht über eine Schnittstelle erledigen, beides gehört also in Ihr Onboarding und nicht in Ihre Integration.
Häufige Fragen
Welche Authentifizierung benutzt die sevdesk-Schnittstelle?
Lässt sich ein sevdesk-Token wechseln?
Unterstützt sevdesk Webhooks?
Woher weiss ich, welche Buchhaltungsversion ein Mandant benutzt?
Warum kommt beim Anlegen einer sevdesk-Rechnung eine 422 zurück?
Brauche ich vor dem Livegang eine Freigabe von sevdesk?

Tripletex anbinden: Ein Session-Token trägt jeden Aufruf
Tripletex verbindet zwei Tokens zu einem dritten, legt die Firma in den Benutzernamen und nummeriert neue Buchungszeilen über die Zeile. Was das beim Bauen heißt.
Lennart Svensson · 24. Sept. 2026
Procountor anbinden: Unbeaufsichtigt laufen lassen
Procountor hat zwei Wege hinein, und der unbeaufsichtigte endet an jedem Endpunkt mit zweitem Faktor. Was das für Token, Abgleich und Steuersätze heißt.
Lennart Svensson · 28. Aug. 2026
DATEV Rechnungswesen anbinden: Beide Richtungen, ein Token
Eine Verbindung trägt Lesen und Schreiben in DATEV Rechnungswesen, auf einem Zwei-Jahres-Token. Welche Objekte in welche Richtung reisen, ist die Entscheidung.
Lennart Svensson · 17. Aug. 2026Einmal bauen, auf der Unified API.
sevdesk hat zwei Buchhaltungsversionen, DATEV hat zwei Freigabetermine und Xero misst, was Sie lesen. Bauen Sie gegen eine Schnittstelle, und jedes davon wird eine Zeile in einer Tabelle statt eines Projekts.