Procountor anbinden: Zwei Autorisierungswelten, und eine davon hat eine Decke
Procountor ist schnell aufgerufen und langsamer eingeplant. Zwei Autorisierungsabläufe führen in dasselbe System und erreichen nicht dieselben Endpunkte: der, der ohne Person läuft, kommt an nichts heran, was Procountor mit einem zweiten Faktor schützt. Diese Grenze steht in Prosa und wird über 192 Operationen genau einmal benannt, also findet man sie meist zur Laufzeit.


Zwei Anträge, und beide dauern drei bis vier Tage
Das Erste, was man über Procountor wissen muss, ist nicht technisch. Sie können an dem Nachmittag, an dem Sie sich dafür entscheiden, nicht loslegen. Procountor gibt Zugangsdaten über ein Formular aus, und die Antwort kommt nach drei bis vier Tagen per E-Mail und per SMS zurück.
Das Formular fragt, was Ihre Integration tut, welche Objekte sie bewegt, in welche Richtung und für welche Länder, dazu die Weiterleitungsadresse, die der Ablauf benutzt. Nichts davon ist schwer. Alles davon liegt zwischen Ihnen und Ihrem ersten Aufruf.
Die Produktion ist ein zweiter Antrag derselben Art, mit eigener Wartezeit, und der Testzugang geht nicht in sie über. Unser eigener Entwickler hat gegen die Schnittstelle gebaut, während er auf die erste Antwort wartete, und konnte bis dahin keine einzige Anfrage ausführen.
Auf die Frage, welchen Rat er jemandem geben würde, der morgen anfängt, nannte der Entwickler, der diese Integration gebaut hat, genau eine Sache: „Fordere die Testumgebung im Voraus an, denn es dauert drei bis vier Tage.“ Die Wartezeit läuft, ob Ihr Code fertig ist oder nicht, also ist es die eine Aufgabe, die sich vor allen anderen zu beginnen lohnt.
Das Antragsformular, die Bearbeitungszeit von drei bis vier Tagen und die geteilte Zustellung per E-Mail und SMS aus Procountors Antrag auf eine Testumgebung und dem Einstiegsleitfaden, geprüft am 28. August 2026. Die viertägige Wartezeit und dass vorher nicht getestet werden kann, ist die Schilderung unseres eigenen Entwicklers.
Zwei Autorisierungswelten, und nur eine läuft unbeaufsichtigt
Procountor bietet einen Authorization-Code-Ablauf für Anwendungen mit einem Nutzer davor und einen Client-Credentials-Ablauf für alles, was von allein läuft. Der zweite benutzt einen API-Key als Zugangsmittel, und dieser Key ist zugleich an einen Nutzer, eine Firma und eine Clientanwendung gebunden.
Bis hierhin ist das gewöhnlich. Der Satz, der Ihre Architektur entscheidet, ist der nächste, und Procountor schreibt ihn unverblümt hin: ein Access Token aus dem Client-Credentials-Ablauf erreicht keinen Endpunkt, der Zwei-Faktor-Authentifizierung verlangt, weil diese Endpunkte einen aktiv anwesenden Nutzer brauchen.
Ihr Kunde schließt die Anmeldung im Browser ab und wählt die Firma.
Ein API-Key, gebunden an einen Nutzer, eine Firma und eine Clientanwendung.
Eine Integration darf eine Eingangsrechnung allein ändern. Die Zahlung dazu freizugeben, braucht eine Person mit Procountor Key, und den kann der unbeaufsichtigte Ablauf nicht liefern.
In der Spezifikation ausgezählt: über 192 Operationen wird Zwei-Faktor-Authentifizierung einmal genannt. Welche Endpunkte sie verlangen, steht in Prosa, die Grenze findet man also zur Laufzeit.
Procountor nennt das Beispiel selbst, und es ist das kommerziell entscheidende. Eine Integration darf eine Eingangsrechnung allein ändern. Die Zahlung zu dieser Rechnung muss eine Person freigeben, die Procountor Key besitzt, und der wird auf eine natürliche Person ausgestellt und lässt sich keinem Dienst übergeben.
Teuer wird es dadurch, dass die Grenze nicht maschinenlesbar ist. Über 192 Operationen der veröffentlichten Spezifikation wird Zwei-Faktor-Authentifizierung genau einmal genannt. Welche Endpunkte dahinterliegen, steht in Prosa, und ein Team, das mit voller Automatisierung plant, entdeckt die Linie deshalb meist zur Laufzeit.
POST /api/oauth/token HTTP/1.1Host: api.procountor.comContent-Type: application/x-www-form-urlencodedgrant_type=client_credentials&client_id=<client_id>&client_secret=<client_secret>&redirect_uri=<redirect_uri>&api_key=<api_key># Die Antwort traegt das Token und seine Laufzeit:# { "access_token": "...", "expires_in": 3600 }
Das Access Token gilt eine Stunde, danach läuft derselbe Tausch erneut. Beachten Sie die redirect_uri in einem Aufruf, der niemanden weiterleitet: Procountor benutzt dieselbe Adresse für beide Abläufe, also muss eine Anwendung, die beide anbietet, sie am Parameter state auseinanderhalten.
Der Ablauf, die Bindung des Keys an Nutzer, Firma und Client, das Ein-Stunden-Token und die geteilte Weiterleitungsadresse aus Procountors Maschine-zu-Maschine-Authentifizierung, die Zwei-Faktor-Grenze und das Beispiel mit der Eingangsrechnung aus seinen Zertifizierungspunkten, beides geprüft am 28. August 2026. Die Zahl von 192 Operationen ist unsere eigene, ausgezählt in der veröffentlichten Spezifikation.
Jede Verbindung gehört zu genau einer Firma
Ein Procountor-Nutzer kann zu mehreren Firmen gehören, was auf den meisten Systemen eine Kennung bedeutet, die man nach dem Authentifizieren auflöst und danach in jeder Anfrage mitführt. Procountor klärt das früher. Während der Anmeldung zeigt es eine eigene Auswahlseite, und die Verbindung, die zurückkommt, ist an die Firma gebunden, die der Nutzer gewählt hat.
Das klärt das eine und begrenzt das andere. Es gibt nach dem Authentifizieren nichts aufzulösen und keine Firmen-ID, die Sie durch Ihre Aufrufe fädeln müssen. Dafür ist eine Verbindung genau eine Firma, und ein Kunde mit dreien sind drei Verbindungen, jede von einer Person im Browser angelegt.
Es erklärt auch etwas, das Ihnen beim Lesen unserer Dokumentation auffallen wird: Procountor steht dort auf keiner der beiden Ablauflisten, weil es weder eine Firmensuche noch einen Auswahlschritt von uns braucht. Der Hersteller erledigt das bereits.
Sechs Monate auf einem Refresh Token, und fünf Wege, es zu verlieren
Der Authorization-Code-Ablauf liefert ein Access Token mit einer Stunde Laufzeit und ein Refresh Token mit sechs Monaten. Das Refresh Token rotiert nicht, der Wert, den Sie am ersten Tag speichern, ist also derselbe, den Sie im fünften Monat noch halten.
Worauf es ankommt, ist die Liste der Dinge, die es vorzeitig beenden, denn nur das erste ist die Uhr. Die anderen vier sind Handlungen, ausgeführt von Ihrem Kunden, von dessen Administrator oder von Ihrem eigenen Authentifizierungsablauf.
| Was passiert | Wer es auslöst |
|---|---|
| Die sechs Monate laufen ab | Niemand, es ist die Uhr |
| Der Nutzer ändert sein Passwort | Ihr Kunde |
| Der Nutzer meldet sich über den Logout-Endpunkt ab | Ihr Kunde oder Ihr Code |
| Der Nutzer wird aus der Firma entfernt | Der Administrator Ihres Kunden |
| Derselbe Nutzer überschreitet 100 Anmeldungen | Wiederholte Durchläufe des Autorisierungsablaufs |
Die letzte Zeile ist die, die ein Entwurf auslösen kann, ohne es zu merken. Bei jeder Authentifizierung entsteht ein Refresh Token, und das lässt sich nicht vermeiden, also steigt der Zähler, sooft derselbe Endkunde erneut durch den Ablauf geschickt wird. Jeden Kunden einmal zu authentifizieren und das Ergebnis zu behalten, ist das, was die Zahl dort hält, wo sie hingehört.
In allen fünf Fällen ist die Folge dieselbe, und sie gehört in Ihren Entwurf. Das gespeicherte Refresh Token ist ungültig, und weil Procountor im Autorisierungsschritt eine Person vorsieht, kann es nichts still erneuern. Ihr Kunde authentifiziert sich erneut. Was Sie das kostet, ist ein Weg in Ihrem Produkt für eine Verbindung, die neu autorisiert werden muss, und eine Meldung, die das sagt.
Die sechsmonatige Gültigkeit und alle fünf Fälle des Ungültigwerdens aus Procountors Zertifizierungspunkten, Abschnitt 3.2, geprüft am 28. August 2026. Dass das Token nicht rotiert, hat unser eigener Entwickler an der laufenden Integration bestätigt.
Ein Objekt trägt sieben Belegarten
Procountor modelliert Ausgangsrechnung, Eingangsrechnung und Auftrag nicht als getrennte Dinge. Es modelliert ein Rechnungsobjekt mit einem Typ darauf, und dieser Typ nimmt sieben Werte an. Eine Ausgangsrechnung, eine Eingangsrechnung, beide Auftragsarten, eine Reisekostenabrechnung, eine Gebührenaufstellung und eine periodische Steuererklärung sind dieselbe Form mit einem anderen Etikett.
Der Buchungsbeleg macht dasselbe in größerem Maßstab, mit sechzehn Werten, darunter Lohn, Arbeitgeberbeiträge und ein Kontoauszug, der als Beleg dient. Den Typ falsch zu setzen, erzeugt einen gültigen Beleg der falschen Art.
| Objekt | Werte auf seinem Typ | Beispiele |
|---|---|---|
| Rechnung | 7 | Ausgangsrechnung, Bestellung, periodische Steuererklärung |
| Buchungsbeleg | 16 | Journal, Lohn, Arbeitgeberbeitrag, Umsatzsteuerformular |
Zwei kleinere Dinge gehören in denselben Abschnitt, weil sie dasselbe Schema betreffen. Erstens ist eine ID innerhalb einer Firma eindeutig und sonst nirgends, zwei Firmen können also Rechnungen mit identischen IDs führen. Procountor benennt die Firma und die Ressourcen-ID zusammen als das Paar, das im ganzen System eindeutig ist.
Zweitens verlangt das Ändern einer Rechnung eine invoiceVersion, ein Zeitstempel, der als Zeichenkette geführt wird. Sie senden den empfangenen Wert unverändert zurück, sonst wird der Schreibvorgang abgelehnt. Es ist optimistische Nebenläufigkeitskontrolle im Gewand eines Datums.
Über das Common Data Model erreicht nichts davon Ihr Produkt: die sieben Belegarten kommen als die Objekte an, die sie tatsächlich sind, und die Frage nach der Kennung ist beantwortet, bevor Sie den Datensatz sehen.
Beide Typlisten ausgezählt in der veröffentlichten Spezifikation, Version 26.08. Die ID-Regel und die Paarung aus Firma und Ressource aus Procountors Konventionen für Anfrage und Antwort, geprüft am 28. August 2026. Dass eine invoiceVersion nötig ist, steht in der Spezifikation am Feld selbst.
Der Satz und sein Code kommen in getrennten Listen
Die Aufteilung steht in keiner Dokumentation, und sie ist der Grund, aus dem es diesen Abschnitt gibt. Procountor nach Steuersätzen zu fragen, liefert eine Antwort mit zwei Arrays. Das eine hält die Prozentsätze. Das andere hält die Steuercodes. Nichts in der Antwort sagt, welcher Code zu welchem Prozentsatz gehört.
Die meisten Buchhaltungssysteme geben Ihnen einen Steuersatz und seinen Code als ein Objekt, und die meisten Datenmodelle sind so gebaut, unseres eingeschlossen. Gegen Procountor lässt sich dieses Modell aus einer einzelnen Antwort nicht füllen, und nachgelagert füllt es auch nichts. Die Zuordnung ist schlicht nichts, was die Antwort mitträgt.
- Ein Prozentsatz
- Ein Prozentsatz
- Ein Prozentsatz
- Ein Code
- Ein Code
- Ein Code
Nichts sagt, welcher Code zu welchem Prozentsatz gehört. Ein Modell, das beide paart, lässt sich aus dieser Antwort nicht füllen, und nachgelagert kann es auch nichts füllen.
Über maesn kommt es als eine Liste in der gemeinsamen Form an, und jeder Eintrag trägt den Satz oder den Code, mit dem er kam. Die Beziehung bleibt unveröffentlicht, also erfindet niemand eine.
Die Kosten der Aufteilung tauchen in keiner Schätzung auf, weil nichts sie ankündigt. Sie rufen einen Endpunkt auf, Sie bekommen eine gültige Antwort, und erst beim Mapping zeigt sich die Lücke.
Die Anbindung über die Procountor-Schnittstelle mit maesn ändert die Form, nicht die Tatsache. Steuerdaten kommen als eine Liste statt als zwei an, in derselben Form, die jedes andere angebundene System benutzt, und jeder Eintrag trägt den Satz oder den Code, mit dem er kam. Die Beziehung wird von Procountor nicht veröffentlicht, also erfindet sie nachgelagert niemand, und ein Anwendungsfall, der die Paarung braucht, stellt sie bewusst her.
Dieser Abschnitt stützt sich auf unsere eigene Umsetzung, nicht auf veröffentlichte Dokumentation. Procountor dokumentiert weder die Aufteilung noch einen Schlüssel zwischen den beiden Listen, und wir haben in der Spezifikation auch keinen gefunden. Hier festgehalten, weil es billiger zu lesen als neu zu entdecken ist.
Drei Ereignisse, und keines davon auf einem Beleg
Procountor veröffentlicht Webhooks, und die Liste ist kurz. Es gibt drei Ereignistypen: eine Zahlung wurde aktualisiert, eine Zahlung wurde gelöscht, ein Nutzer wurde aktualisiert. Abonnements werden mit HMAC über SHA512 authentifiziert, und je Ereignistyp ist ein Webhook erlaubt.
Für eine Buchhaltungsintegration, die Konten, Kontakte und Steuersätze liest, hilft keines dieser drei. Änderungserkennung ist ein Lesevorgang, den Sie einplanen, und das Intervall wählen Sie.
Die Paginierung ist dünner, als die Dokumentation auf den ersten Blick nahelegt. Über die Spezifikation ausgezählt tragen 22 von 101 Leseoperationen überhaupt Paginierungsparameter, in vier verschiedenen Kombinationen, und der Rest hat keine. Wo es Paginierung gibt, existieren zwei Mechanismen, ein Cursor und eine Seitennummer mit einer Größe, die oft auf fünfzig voreingestellt ist.
Unser Entwickler hat die praktische Hälfte davon ergänzt: manche Listen-Endpunkte liefern keine Gesamtzahl zurück, was ihm bei den Konten aufgefallen ist. Sie können durch sie paginieren, und Sie können vorher nicht sagen, wie weit Sie gehen müssen.
Procountor hält fest, dass Paginierung nur funktioniert, wenn Filterung und Sortierung zwischen aufeinanderfolgenden Anfragen konstant bleiben. Ein Job, der mitten im Lauf einen Filter erweitert, liefert keinen Fehler zurück. Er liefert eine Seite aus einer anderen Ergebnismenge.
Das Anfragelimit in der Produktion liegt bei 60 pro Sekunde je Client, und Procountor schreibt, dass ein Überschreiten zur Aussetzung des Dienstes für diesen Client führen kann. Das ist eine härtere Folge als der übliche abgelehnte Aufruf, also muss der Zeitplan das Limit einhalten, bevor die Fehlerbehandlung es überhaupt zu sehen bekommt.
Geplant über einen Katalog von Systemen zu lesen, die alle anders paginieren, ist genau die Arbeit, die ein Weg, zu filtern und zu paginieren, abnimmt. Die Schleife, die Sie einmal schreiben, ist die Schleife, die Sie auf das nächste System richten.
Die drei Ereignistypen ausgezählt in der veröffentlichten Spezifikation, die Regel zu HMAC und SHA512, die Paginierungsmechanismen, die Anforderung konstanter Sortierung und die 60 Anfragen pro Sekunde aus Procountors Konventionen für Anfrage und Antwort, geprüft am 28. August 2026. Die fehlende Gesamtzahl bei den Konten ist die Beobachtung unseres eigenen Entwicklers. Was beim Überschreiten des Limits geschieht, ist nicht veröffentlicht, und wir sind nicht daran gestoßen.
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 Autorisierungsablauf und die Firmenauswahl | Welche Objekte Ihr Anwendungsfall braucht |
| Das Ein-Stunden-Token und der Sechs-Monats-Refresh-Zyklus | Einem Kunden zu sagen, dass seine Verbindung neu autorisiert werden muss |
| Steuerdaten als eine Liste in der gemeinsamen Form | Einen Satz mit seinem Code zu paaren, wo Ihr Anwendungsfall es braucht |
| Kontakte aus zwei Endpunkten in einer Form zusammengeführt | Das Intervall, in dem Ihr Zeitplan läuft |
| Der Kunden- oder Lieferantentyp, durchgereicht auf Firmen | Was Ihr Modell mit einem Kontakt ohne Rolle macht |
| Die Belegarten, aufgelöst in echte Objekte | Ihre eigene Fehlerbehandlung und Ihre Wiederholungen |
Die Rollenfrage in dieser Spalte ist nur zur Hälfte Ihre. Der Endpunkt für Geschäftspartner führt auf Firmen einen Kunden- oder Lieferantentyp, und der kommt durch. Der Endpunkt für Personen hält Einzelpersonen und führt keinen solchen Typ, eine Kontaktperson kommt also ohne Rolle an. Zu entscheiden, was Ihr Modell mit einem Kontakt ohne Seite macht, ist der Teil, der Ihnen bleibt.
Die Anbindung ist in Schritten gewachsen. Konten, Kontakte und Steuersätze sind seit Juli lesbar, und das Buchen von Buchungsvorschlägen und Auslagen kam im August dazu. Procountor reicht weiter als das, mit einer Lohnabrechnungsfläche, die größer ist als der größte Teil seiner Buchhaltungsfläche, also lohnt es sich, die Objekte Ihres Anwendungsfalls gegen den aktuellen Umfang zu prüfen.
Der aktuelle Umfang und seine Daten kommen von unserem eigenen Entwickler und aus unserer Integrationsdokumentation, geprüft am 28. August 2026. Procountor veröffentlicht monatlich und nennt in seinen Release Notes Abkündigungsdaten für ältere Versionen, die Version, gegen die Sie bauen, verdient später also einen zweiten Blick.
Häufige Fragen
Kann eine Procountor-Integration ohne anwesende Person laufen?
Wie lange gilt ein Procountor-Refresh-Token?
Warum zeigen zwei Procountor-Firmen dieselbe Datensatz-ID?
Wie paginiere ich durch einen Procountor-Listen-Endpunkt?
Was passiert, wenn ich Procountors Anfragelimit überschreite?
Gegen welche Procountor-Version sollte ich bauen?
Brauche ich einen Partnerstatus, bevor ich auf Procountor bauen kann?

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
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.
Procountor teilt seine Steuerantwort in zwei, bindet eine Verbindung an eine Firma und stoppt den unbeaufsichtigten Ablauf an einem zweiten Faktor. Das nächste System zieht jede dieser Linien woanders. Bauen Sie gegen eine Schnittstelle, und jeder Unterschied wird zu einem Feld, das Sie lesen, statt zu einem Projekt, das Sie einplanen.