Tripletex anbinden: Drei Tokens, und eine Zeilennummer, die Sie nie senden
Tripletex ist schnell aufgerufen und ungewöhnlich authentifiziert. Ein Token, das Sie halten, und ein Token, das Ihr Kunde hält, ergeben zusammen ein drittes, das jede Anfrage trägt, die Firma, die Sie ansprechen, reist im Feld für den Benutzernamen mit, und eine Buchungszeile, die Sie hinzufügen, muss ankündigen, welche Zeile sie einnehmen wird. Keines der drei ist schwer, sobald man es weiß, und zwei davon übersieht man leicht, bis etwas fehlschlägt.


Was Sie vor dem ersten Aufruf brauchen
Tripletex arbeitet nicht mit einem einzigen Zugang. Bevor irgendetwas läuft, brauchen Sie zwei, und sie kommen von zwei verschiedenen Stellen: eines wird Ihnen als Entwickler ausgestellt, das andere erzeugt der Kunde, dessen Daten Sie lesen.
Ihres ist das Consumer-Token. Tripletex stellt es aus, sobald Ihre Registrierung für Version 2 der Schnittstelle abgeschlossen ist, und es weist Ihre Integration über jeden Kunden hinweg aus, den Sie je anbinden. Ein Token deckt sie alle ab. Behandeln Sie es wie jedes andere Anwendungsgeheimnis.
Das andere gehört dem Kunden: das Employee-Token, erzeugt in dessen eigenem Tripletex unter den Benutzereinstellungen und dem API-Zugang. Dafür braucht es auf seiner Seite einen Administrator, und das ist gut zu wissen, bevor Sie den Onboarding-Text schreiben, der ihn auffordert, eines anzulegen.
Tripletex hält fest, dass jedem Employee-Token bei der Erzeugung ein Satz Berechtigungen mitgegeben werden muss. Ein Token ohne die Rechte, die Ihre Integration braucht, ist ein gültiges Token, das Ihre Daten nicht erreicht. Sagen Sie Ihrem Kunden also vorher, welche Objekte Sie lesen werden, und nicht erst, wenn der erste Aufruf zu wenig zurückgibt.
Es gibt eine eigene Testumgebung mit eigenen Consumer- und Employee-Tokens, und sie verhält sich wie der Produktivbetrieb gegen Tripletex' Testbestand und nicht wie ein Mock. Unsere kam schnell zurück, und das ist gut zu wissen, wenn Sie die erste Woche des Baus planen.
Die drei Token-Typen, der Registrierungsweg für das Consumer-Token und die Regel zu den Berechtigungen stammen aus Tripletex' Dokumentation zu Authentifizierung und Tokens und aus der Beschreibung, die mit der Schnittstellenspezifikation veröffentlicht ist, geprüft am 22. September 2026. Dass die Testumgebung schnell kam und beide Tokens mitbrachte, ist der Bericht unserer eigenen Entwicklerin aus dem Bau.
Drei Tokens, und nur eines reist mit
Das Consumer-Token und das Employee-Token sind keine Zugangsdaten, die Sie senden. Sie sind Eingaben. Sie tauschen sie gegen ein Session-Token, und das Session-Token ist das, was jede spätere Anfrage tatsächlich trägt.
Der Tausch ist ein einzelner Aufruf mit drei Pflichtwerten: Ihr Consumer-Token, ein Employee-Token, das gegen dasselbe Consumer-Token erzeugt wurde, und ein Ablaufdatum. Alle drei sind verpflichtend, und das dritte verlangt eine Entscheidung von Ihnen: Das Ablaufdatum ist ein Wert, den Sie selbst setzen.
Von da an ist die Authentifizierung schlichte Basic Access Authentication mit dem Session-Token als Passwort. Wenn Sie den Header selbst zusammenbauen, ist es die Firmenkennung, ein Doppelpunkt und das Session-Token, Base64-kodiert. Es gibt außerdem einen Aufruf, der eine Session ausdrücklich löscht, und das ist der saubere Weg, einen Zugang zu beenden, statt auf das Datum zu warten.
Tripletex hatte eine Regel eingeführt, nach der eine Session nicht mit einem Ablauf von mehr als sechs Monaten erzeugt werden konnte, und antwortete beim Versuch mit Expiration date is not allowed to be older than 6 months. Die Änderung ist zurückgenommen worden, und Tripletex sagt, sie werde erneut umgesetzt, ohne ein Datum zu nennen. Heute gilt sie nicht. Sie ist einen Vermerk im eigenen Runbook wert, denn eine langlebige Session, die Sie heute erzeugen, lässt sich später vielleicht nicht mehr erzeugen.
Über maesn erreicht Sie davon nichts. Ihr Consumer-Token wird einmal auf Ihrem Mandanten eingerichtet, Ihr Kunde gibt sein Employee-Token ein, wenn er sich verbindet, und die Session wird hier abgeleitet und erneut abgeleitet, wenn sie abläuft. Unified Authentication ist der Grund, warum das genauso aussieht wie bei einem System mit einfachem Redirect: Was Sie danach halten, ist ein Account-Key, und Account-Keys verhalten sich über den ganzen Katalog hinweg gleich.
Die drei Pflichtparameter am Aufruf zur Session-Erzeugung, das Basic-Authentication-Verfahren und der Aufruf zum ausdrücklichen Löschen einer Session stammen aus der veröffentlichten Schnittstellenspezifikation, geprüft am 22. September 2026. Die Sechsmonatsgrenze und ihre Rücknahme stammen aus Tripletex' eigenem Hinweis zum Ablauf des Session-Tokens.
Mitarbeiter oder Kanzlei, und warum es bis in den Header reicht
Tripletex kennt zwei Arten der Anmeldung, und der Unterschied zwischen ihnen entscheidet, wie viele Firmen überhaupt erreichbar sind.
Melden Sie sich als Mitarbeiter an, sind Sie immer innerhalb einer bestimmten Firma. Das ist der Fall mit einer Gesellschaft, und es gibt nichts zu wählen. Melden Sie sich als Buchhalter an, erreichen Sie viele, das ist der Fall mit mehreren Gesellschaften, und jetzt muss etwas sagen, welche Sie meinen.
Tripletex legt das an eine Stelle, an der es die meisten Systeme nicht haben: in die Benutzernamen-Hälfte des Authentifizierungs-Headers. Null oder leer bedeutet die Firma des Mitarbeiters, dessen Token Sie verwenden. Jeder andere Wert bedeutet eine der Mandantenfirmen einer Kanzlei, und es gibt einen eigenen Aufruf, der die Firmen auflistet, die eine bestimmte Anmeldung erreichen darf.
Wenn Ihr Produkt Kanzleien bedienen wird, ist die Wahl der Firma eine Frage, die Ihr Onboarding stellen muss, denn nichts weiter unten kann sie erschließen. Wenn es immer nur einzelne Firmen bedienen wird, senden Sie Null und denken nie wieder daran. Zu entscheiden, welches von beidem Sie bauen, ist vor der ersten Verbindung billiger als nach der hundertsten.
Über maesn fällt die Wahl, wenn die Verbindung entsteht, und die aufgelöste Firma reist mit dem Account-Key statt mit Ihren Anfragen. Das ist auf Ihrer Seite alles, und es ist dieselbe Form der Antwort, die Sie bei jedem System im Katalog bekommen, das einen Mandantenbegriff kennt.
Die Bedeutung des Benutzernamens, die Vorgabe Null oder leer und der Aufruf, der die erreichbaren Firmen einer Kanzlei auflistet, stammen aus der veröffentlichten Schnittstellenspezifikation, geprüft am 22. September 2026. Dass der Unterschied in der Praxis schlecht erklärt ist und dass er das ist, was man am ehesten vorher wissen will, ist der Bericht unserer eigenen Entwickler aus dem Bau dagegen.
Neue Buchungszeilen tragen eine Zeilennummer, keine ID
Eine Buchungszeile hinzuzufügen ist der Vorgang, der beim ersten Mal lautlos fehlschlägt, und nichts an der Form des Objekts warnt Sie davor.
Ein Buchungssatz in Tripletex trägt seine Zeilen als Array am Satz selbst. Eine Zeile zu aktualisieren, die es schon gibt, läuft so, wie Sie es erwarten: Sie geben ihre ID an und die Felder, die Sie ändern. Eine neue Zeile hinzuzufügen läuft anders, denn eine Zeile, die es noch nicht gibt, hat keine ID, die Sie angeben könnten. Was Tripletex stattdessen will, ist ihre Position. Hält der Satz bereits drei Zeilen, kündigt die, die Sie hinzufügen, an, dass sie Zeile vier ist.
Das heißt, Sie können die Aktualisierung nicht aus den Daten bauen, die Sie schreiben. Sie müssen wissen, was schon da ist, und damit wird ein Lesezugriff zur unvermeidlichen ersten Hälfte jedes Schreibzugriffs.
Über maesn gibt es kein Zeilenfeld in der Form, die Sie senden. Der Lesezugriff passiert, bevor Ihr Schreibzugriff hinausgeht, die belegten Zeilen werden gezählt und die neue Zeile wird hier nummeriert. Das ist ein kleines Stück Maschinerie, und es ist die Sorte, die man leicht fast richtig hinbekommt: Von der Anzahl aus zu nummerieren statt von der höchsten belegten Zeile ist so lange korrekt, bis jemand eine Zeile löscht.
Die Anforderung einer Zeilennummer an neuen Zeilen und der Lesezugriff, der dem Schreibzugriff vorausgehen muss, sind der Bericht unserer eigenen Entwicklerin aus dem Bau dieser Anbindung. Weder das Verhalten der Zeilennummer noch seine Folge ist in Tripletex' veröffentlichter Dokumentation beschrieben, und genau deshalb steht es hier.
Das Paginieren trägt, die Gesamtzahl nicht
Tripletex paginiert von Haus aus und macht es gut. Ein Listenaufruf nimmt einen Startindex und eine Anzahl, und die Antwort kommt als Umschlag mit den Werten darin zurück. Er nimmt außerdem ein Sortiermuster und einen Feldparameter, der auswählt, welche Attribute zurückkommen sollen, einschließlich der Attribute verschachtelter Ressourcen.
Das Filtern ist typisiert und gehört zum jeweiligen Endpunkt statt allgemein zu sein. Allein der Konten-Endpunkt nimmt Filter auf Kennung, Nummer, ob das Konto ein Bankkonto ist, ob es inaktiv ist, ob es für Eingangsrechnungen infrage kommt, seine Hauptbuchart, ob es ein Bestandskonto ist, und seinen SAF-T-Code.
Worauf Sie nicht bauen sollten, ist die Gesamtzahl. Der Umschlag trägt ein Feld für die Größe des vollständigen Ergebnisses, und Tripletex kündigt dieses Feld in seiner eigenen Dokumentation ab. Am Konten-Endpunkt haben unsere Entwickler überhaupt keine Gesamtzahl zurückbekommen, und deshalb ist die Paginierung über diesen Lesezugriff unsere und nicht ihre.
Diese Schleife einmal je System zu schreiben ist genau die Arbeit, die ein Weg, zu filtern und zu paginieren abnimmt. Die Schleife, die Sie auf Tripletex richten, ist die Schleife, die Sie auf das nächste System richten, und eine abgekündigte Zählung an einem Endpunkt eines Systems hört auf, etwas zu sein, das Ihr Code wissen muss.
Die Parameter zum Paginieren, die Muster zum Sortieren und zur Feldauswahl, die typisierten Filter am Konten-Endpunkt und die Abkündigung der vollständigen Ergebnisgröße stammen aus der veröffentlichten Schnittstellenspezifikation, geprüft am 22. September 2026. Die fehlende Gesamtzahl an diesem Endpunkt ist die Beobachtung unserer eigenen Entwicklerin.
Ein echtes Event-System, und was bis dahin zu tun ist
Tripletex veröffentlicht ein eigenes Abonnement-Modell. Ein Event benennt ein Objekt und ein Verb zusammen, Anlegen, Aktualisieren und Löschen desselben Objekts sind also drei getrennte Abonnements statt eines Stroms, den Sie filtern.
Die Zustellung trägt das Abonnement, zu dem sie gehört, den Namen des Events, die Kennung des betroffenen Objekts und das Objekt selbst. Mit einer Ausnahme: Beim Löschen ist das Objekt null. Sie erfahren, was weg ist, nicht, was darin stand, und alles, was Ihr Produkt über einen gelöschten Datensatz wissen muss, muss also vorher gespeichert worden sein.
Diese Events sind über maesn heute nicht freigeschaltet, die Änderungserkennung an dieser Verbindung ist also ein Lesezugriff auf einem Zeitplan, den Sie wählen. Sie sind auf Anfrage verfügbar, und der Zeitplan, den Sie jetzt schreiben, funktioniert so oder so weiter, denn das Event-Modell ist ein eigener Weg und kein Ersatz für das Abfragen.
Tripletex zählt Anfragen je Mitarbeiter und je Consumer. Zwei Integrationen, die denselben Kunden erreichen, schöpfen deshalb aus getrennten Budgets. Tripletex nennt keine Zahl und liefert stattdessen etwas Nützlicheres: Jede Antwort trägt mit, wie viele Aufrufe die laufende Periode erlaubt, wie viele übrig sind und wie viele Sekunden sie noch läuft. Ein Lesezugriff auf Zeitplan kann sich also am echten Wert ausrichten statt an einem dokumentierten.
Das Abonnement-Modell, der Umschlag des Events, das leere Objekt beim Löschen und die Header zum Rate Limit stammen aus der veröffentlichten Schnittstellenspezifikation, geprüft am 22. September 2026. Dass wir diese Events heute nicht bereitstellen, stammt aus unserer Integrationsdokumentation und von unserer eigenen Entwicklerin. Wir sind nicht an das Rate Limit gestoßen, was jenseits der 429 passiert, können wir also nicht aus Erfahrung beschreiben.
Was maesn abnimmt, und was bei Ihnen bleibt
Alles oben ist echte Arbeit, und das meiste davon ist dieselbe Arbeit für jeden Kunden, den Sie anbinden. Das ist der Teil, den man einmal macht.
| Hier erledigt | Bleibt bei Ihnen |
|---|---|
| Der Tausch der zwei Tokens und die Session daraus | Welche Objekte Ihr Use Case braucht |
| Eine neue Session ableiten, wenn das Ablaufdatum vorbei ist | Ihrem Kunden sagen, dass er ein Employee-Token erzeugen soll |
| Die Firma, aufgelöst beim Verbinden | Ob Ihr Produkt Kanzleien überhaupt bedient |
| Den Buchungssatz lesen und eine neue Zeile nummerieren | Was Ihr Modell mit einer gelöschten Zeile macht |
| Die Konten paginieren, ohne Gesamtzahl | Das Intervall, auf dem Ihr Zeitplan läuft |
| Eine Fehlerform über jedes System hinweg, das Sie erreichen | Ihre eigenen Wiederholungen und Benachrichtigungen |
Die heute erreichbaren Objekte sind eine kleinere Menge als Tripletex insgesamt. Konten, Buchungssätze und Steuersätze sind lesbar, und Buchungssätze lassen sich außerdem anlegen und aktualisieren, das ist ein tragfähiger Buchungsweg und keine reine Leseansicht. Der Rest des Katalogs ist auf Anfrage verfügbar, und welche Teile Sie brauchen, klärt man besser, bevor man darum herum entwirft. Der Umfang, und was es braucht, ihn zu erweitern, steht auf der Seite zur Tripletex-Schnittstelle.
Eines bleibt wirklich Ihres, welchen Weg Sie auch wählen. Tripletex drückt jeden Buchungssatz unter der von Ihnen gebuchten Währung zusätzlich in norwegischen Kronen aus und zeigt beide. In Euro oder Dollar zu buchen heißt deshalb, einen Wechselkurs mit dem Buchungssatz zu senden. Keine Integrationsschicht kann entscheiden, welchen Kurs Ihr Geschäft verwenden soll, das ist also eine Entscheidung über Ihre eigenen Daten und kein Abbildungsproblem.
Der heutige Umfang stammt aus unserer Integrationsdokumentation, geprüft am 22. September 2026, und von der Entwicklerin, die die Anbindung gebaut hat. Das Verhalten in Kronen und die Anforderung eines Wechselkurses sind ihr Bericht aus der Arbeit damit. Tripletex betreibt ein eigenes Entwicklerprogramm mit einem Änderungsprotokoll, das einen Blick wert ist, wenn Sie direkt bauen.
Häufige Fragen
Wie lange gilt ein Tripletex-Session-Token?
Was steht im Feld für den Benutzernamen im Basic-Auth-Header?
Wie füge ich einem bestehenden Buchungssatz eine Zeile hinzu?
Gibt Tripletex beim Paginieren eine Gesamtzahl zurück?
Kann ich Tripletex-Ergebnisse serverseitig filtern und sortieren?
Gibt es ein offizielles Tripletex-SDK?
Was passiert, wenn Sie das Tripletex-Rate-Limit erreichen?

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. 2026
DATEV Schnittstellenpartner werden: zwei Freigaben zuerst
DATEV hat keine Partnerstufen und keine Preisliste. Zwei Freigaben entscheiden, ob Ihre Kunden sich verbinden können, und der Marktplatz verlangt vorher 25 Kunden.
Dr. Themo Voswinckel · 10. Aug. 2026Einmal bauen, auf der Unified API.
Tripletex macht aus zwei Tokens eine Session, versteckt die Firma im Feld für den Benutzernamen und nummeriert Buchungszeilen über ihre Position. Das nächste System zieht jede dieser Linien woanders. Bauen Sie gegen eine Oberfläche, und jeder Unterschied wird zu einem Feld, das Sie lesen, statt zu einem Projekt, das Sie einplanen.