Abacus-Schnittstelle und API-Integration
Abacus ist eine der etablierten ERP-Plattformen für größere Unternehmen in der Schweiz und deckt Finanzen, Lohn, Beschaffung und Projektmanagement ab, dazu Branchenmodule wie AbaBau für das Bauwesen. Binden Sie es über Maesn an, und Sie erreichen es mit derselben REST API und demselben Datenmodell wie jedes andere unterstützte System.
Eine Abacus-Anbindung in Tagen
Abacus stellt eine Frage vor allen üblichen, und es ist eine Frage nach der Architektur und nicht nach dem Code. Hier stehen die drei Eigenheiten, und was Maesn davon abnimmt.
Beide sind hier Zielsysteme
Die Abacus-REST-API deckt die Standardmodule ab. Die AbaConnect-Webservices stellen Endpunkte bereit, die sie nicht hat, und dort liegen Modulerweiterungen wie AbaBau für das Bauwesen. Maesn führt beide als eigenes Zielsystem. Die Wahl ist also Konfiguration und keine zweite Integration.
Einmal geklärt, beim Verbinden
Abacus kann beim Kunden installiert sein oder auf einem gehosteten Abonnement laufen. Die Basis-URL ist also je Kunde verschieden und nicht je Hersteller fest. Sie läuft mit dem Authentifizierungsaufruf als Query-Parameter mit und wird bei der Verbindung gespeichert. Ihr Code hält also nie eine Installationsadresse.
Über den asynchronen Task abgeholt
Auf dem AbaConnect-Pfad geben viele Endpunkte, besonders POST-Anfragen, eine Task-ID zurück statt eines Ergebnisses, und diese Webservices nehmen jeweils eine laufende Anfrage an. Maesn hält den Zustand des Tasks. Das Ergebnis ist also ein zweiter Aufruf gegen einen gemeinsamen Endpunkt und keine Warteschlange in Ihrem Backend.
In Ihrem Code kommen ein REST-Aufruf und ein Account-Key an. Teams gehen in Tagen live, und das System nach Abacus ist ein Konfigurationsschritt und kein zweites Projekt.
Ein kurzes Gespräch genügt meist, um zu klären, ob Maesn zu Ihrem Anwendungsfall passt.
HERO Software betreibt das Handwerker-Backoffice über vier Märkte hinweg
HERO Software digitalisiert das Backoffice für Handwerksbetriebe mit zwei bis fünfzig Mitarbeitern, vom Angebot bis zur Rechnung. Die eigene Website nennt Deutschland, Österreich, die Schweiz und die Niederlande als Märkte. In der Schweiz sitzt Abacus, und im Bauwesen sitzt sein AbaBau-Modul.
“Die Unterstützung ist wirklich erstklassig, mit beeindruckend kurzen Reaktionszeiten. Die Dokumentation ist gründlich und leicht nachvollziehbar, und dadurch war die Integration für mich ein reibungsloser Ablauf.”


Drei Gründe, die Abacus-Schnittstelle über Maesn anzubinden
Abacus direkt anzubinden ist ein Projekt, das Sie abschließen können. Es zweimal abzuschließen, einmal je API, und danach das nächste System hinzuzunehmen, entscheidet über Ihre Roadmap.
Die Abacus-eigene Arbeit bleibt hier
Der Servicebenutzer in Abacus, der Callback, der die Abacus-Version trägt, die je Kunde verschiedene Basis-URL und das Abfragen der Tasks auf der AbaConnect-Seite sind das, was jede Abacus-Integration lösen muss. Jedes davon wird einmal gelöst, auf unserer Seite, für jeden Kunden, den Sie anbinden.
Worin Abacus stark ist, und es ist nicht das Hauptbuch
Kontakte, Kunden, Projekte und Kundenaufträge mit ihren Positionen sind das, was diese Verbindung erreicht, also die Auftrags- und Projektseite eines ERP. Sagen Sie uns, welche Objekte Ihr Anwendungsfall braucht, und wir bestätigen sie für den Pfad, auf dem Sie sind.
Das nächste System kostet nichts
Sobald Abacus läuft, antwortet jedes andere unterstützte Buchhaltungs- und ERP-System auf derselben Schnittstelle. Ihre zweite Integration ist ein Konfigurationsschritt.
Ein Abacus-Eintrag wird geprüft, nicht eingereicht
Die meisten Anbieter hören bei der API auf. Maesn bereitet auch den Eintrag vor, und bei Abacus zählt das mehr als sonst, weil es keinen Selbstbedienungsweg in das Programm gibt: Jeder Antrag wird einzeln behandelt, und vor dem Eintrag steht ein Qualifizierungsschritt.
Technische Unterstützung
Eine Integration gegen die Unified API und ein Datenmodell, identisch zu jedem anderen System, das Maesn unterstützt. Ihre Entwickler treffen hier auf dieselbe Schnittstelle wie beim nächsten System.
Unterstützung bei der Partnerschaft
Maesn bereitet die Unterlagen vor, die die Prüfung verlangt, und steht danach weiter hinter der Integration. Der Eintrag trägt den Namen Ihres Produkts, nicht unseren.
Ein individueller Antrag
Einen automatisierten Weg zum Eintrag gibt es nicht. Jeder Antrag wird für sich behandelt. Der Zeitpunkt hängt also am Gespräch und nicht an einer Warteschlange.
Ein formaler Qualifizierungsschritt
Das Programm prüft die Integration, bevor sie gelistet wird. Das ist Vorbereitungsarbeit und keine Entwicklungsarbeit, und es ist die Hälfte, die Maesn schon gemacht hat.
Die Integration läuft unter dem Namen Ihres Produkts, und der Partnerstatus gehört Ihnen und nicht uns. Maesn ist die Schicht dahinter.
Wir bereiten die Unterlagen vor, die die Prüfung verlangt, und stehen danach hinter der Integration.
Eine Abacus-Verbindung, zwei Werte, die mitreisen
Abacus authentifiziert über einen Authorization-Code-Grant gegen einen Servicebenutzer, den Sie registrieren, und das Eigene hier ist, was der Handshake nicht klärt: Eine Abacus-Installation hat ihre eigene Adresse, und die Daten darin gehören zu einer Umgebung.
- OAuth
- Die Abacus REST API
- Benutzername und Passwort
- Die AbaConnect-Webservices
So oder so ein Account-Key. Welche Zugangsdaten Ihr Kunde übergibt, folgt dem Weg, den Sie gewählt haben, und nicht Ihrem Code.
- Die Basis-URL, einmal
- Sie hängt davon ab, ob Ihr Kunde Abacus lokal oder auf einem gehosteten Abonnement betreibt. Sie wird also mit dem Authentifizierungsaufruf übergeben und von da an bei der Verbindung gehalten.
- Die Umgebung, je Aufruf
- Aufrufe an Abacus-Endpunkte tragen den Namen der Umgebung, und ein dokumentierter Endpunkt gibt die Umgebungen zurück, die eine Verbindung erreichen kann. Es ist also eine Abfrage und kein Wert, den Ihr Kunde eintippen muss.
Auf dem AbaConnect-Pfad kann der Verbindungsschritt vollständig in Ihrem Produkt bleiben: Es ist eines von sieben Zielsystemen mit dem Headless-Ablauf, bei dem Sie die Zugangsdaten aus Ihrem eigenen Formular senden und der Account-Key in derselben Antwort zurückkommt.
- 1
Sie registrieren einen Servicebenutzer in Abacus
Als benutzerabhängig eingerichtet, mit der Login-Redirect-URL auf den Callback von Maesn für Ihre Abacus-Version. Die Version steckt in dieser URL. Ein Bestand auf verschiedenen Abacus-Releases ist damit etwas, das die Verbindung weiß, und nichts, worauf Ihr Code verzweigt.
- 2
Ihr Kunde gibt ihn frei
Die Freigabe läuft gegen seine eigene Instanz, und die Basis-URL dieser Instanz läuft mit dem Aufruf mit. Der Redirect kommt zu Maesn zurück. Der Code-Tausch und der Lebenszyklus des Tokens passieren also hier statt in Ihrem Backend.
- 3
Sie arbeiten mit einem Account-Key
Maesn speichert die Verbindung und gibt einen Account-Key zurück. Ab da trägt jede Anfrage Ihren API-Schlüssel und diesen Account-Key, dieselben zwei Header, die Sie für jedes andere System im Katalog ohnehin schon senden.
Jedes System im Katalog authentifiziert anders, und bei Abacus klärt der Handshake weniger als sonst: Er weist nach, wer der Kunde ist, ohne zu sagen, welche Maschine aufzurufen und welche Umgebung zu lesen ist. Unified Authentication verhindert, dass daraus zwei Implementierungen werden. Die Basis-URL wird geklärt, während Ihr Kunde sich verbindet, die Umgebung ist ein dokumentiertes Nachschlagen, und dieselbe Seite deckt den Headless-Weg ab, über den sich die AbaConnect-Zugangsdaten im eigenen Produkt erfassen lassen statt auf einer Seite außerhalb davon.
Abacus ruft nicht an, der Abruf läuft nach Plan
Die Änderungserkennung bei Abacus ist ein Lesezugriff, den Sie planen, und der Zeitplan hat eine Einschränkung mehr als sonst, weil AbaConnect eine Anfrage auf einmal beantwortet. Events für ein bestimmtes Objekt werden freigeschaltet, wenn ein Anwendungsfall eines braucht.
Heute nichts. Kein Objekt trägt ein natives Event, und keine der beiden Abacus-Dokumentationen hat einen Abschnitt zu Webhooks. Eine Änderung in der Installation eines Kunden bleibt also unsichtbar, bis etwas sie liest.
Ein geplanter Lesezugriff, mit demselben Filter und derselben Paginierung, die Sie für jedes andere System benutzen. Der Code, der Änderungen auf Abacus erkennt, ist der Code, den Sie bereits geschrieben haben, nur auf einen anderen Account-Key gerichtet.
Eine Einschränkung gehört zum AbaConnect-Pfad und nicht zur REST API, und sie formt den Zeitplan statt des Codes: Diese Webservices nehmen eine laufende Anfrage auf einmal an. Ein Aufholen nach einem Ausfall ist also eine Warteschlange und kein Fächer. Das entscheidet man besser vor dem Bau, denn es ist die Art Grenze, die erst unter der Last eines ersten großen Kunden auftaucht.
Ein System ohne Events ist die Stelle, an der die Kosten einer Integration je System am deutlichsten sichtbar werden: Sie schreiben eine Schleife zur Änderungserkennung für Abacus und dann noch eine für das nächste System, mit eigener Filtersyntax und einer eigenen Vorstellung davon, was eine Seite ist. Ein Weg, zu filtern und zu paginieren nimmt diese Wiederholung weg, die Schleife, die Sie hier bauen, funktioniert also weiter gegen ein System, das Events sendet. Was Sie über das Event-Modell verarbeiten und was Sie nach Zeitplan abholen, bleiben zwei Wege, und nur einer davon gehört heute zu Abacus.
Die AbaConnect-Seite liefert einen zweiten Grund, über die Form statt über die Geschwindigkeit nachzudenken. Ihre Webservices antworten mit einer Task-ID und werden in ihrer eigenen Zeit fertig, das Ergebnis wird also abgeholt und nicht zurückgegeben. Das ist derselbe Mechanismus, den Asynchronous Processing für jeden anderen langlaufenden Aufruf im Katalog beschreibt, die abholende Hälfte schreiben Sie also nicht zweimal.
Was eine Abacus-Anbindung vorab braucht
Abacus stellt vier Dinge vor eine Integration, und alle lassen sich leichter einplanen als auf halber Strecke entdecken.
- Eine Abacus-Instanz mit Administratorrechten
- Die Instanz Ihres Kunden, und für die Produktion braucht der verbindende Nutzer zusätzlich die Berechtigung für die API zur Mandantenbereitstellung. Ohne Instanz kann das API-Team von Abacus auf Anfrage eine Sandbox-Instanz bereitstellen.
- Ein Servicebenutzer, als benutzerabhängig eingerichtet
- Sie legen ihn in Abacus nach deren Anleitung zum Authorization Code Grant an und richten seine Login-Redirect-URL auf den Callback von Maesn für die Abacus-Version, mit der Sie arbeiten. Danach kommt die Client-ID einmal zu uns, bei einer Sandbox dazu die Mandanten-ID.
- Die Umgebung, bei Aufrufen an Abacus
- Daten gehören zu einer Umgebung und nicht zum Konto, und der Name der Umgebung ist Pflicht, wenn Sie Abacus-Endpunkte aufrufen. Ein dokumentierter Aufruf gibt die Liste zurück. Es ist also eine Abfrage beim Verbinden und nichts, was Ihr Kunde wissen muss.
- Auf dem AbaConnect-Pfad ein Benutzer, der sonst nirgends verwendet wird
- Das Konto, unter dem die Integration läuft, darf nirgends sonst angemeldet sein, auch nicht in der Abacus-Oberfläche, denn eine zweite Sitzung macht die erste ungültig und legt die Integration still. Ein eigenes Servicekonto ist die dokumentierte Empfehlung, und es lohnt sich, es vor dem ersten Test anzulegen statt danach.
Wir gehen den Servicebenutzer, die Sandbox und den AbaConnect-Pfad mit Ihnen durch.
Zwei Wege nach Abacus, eine Form in Ihrem Code
Abacus ist ein Produkt mit zwei Zielsystemen, der REST API und den AbaConnect-Webservices. Welches davon Ihr Anwendungsfall braucht, entscheidet, welche Daten er erreicht.
Was Sie lesen, kommt im gemeinsamen Common Data Model zurück, ein Kundendatensatz aus Abacus hat also dieselbe Form wie einer aus einem zehnmal so großen System, und der Code, den Sie hier schreiben, ist der Code, den Sie für das nächste wiederverwenden. Auf welchem der beiden Pfade Sie sind, ist ein Konfigurationswert und keine zweite Implementierung.
Worin Abacus über Maesn stark ist, lohnt sich zu wissen, bevor Sie dagegen planen, denn es sieht anders aus als die übrigen. Bei den meisten Systemen hier sind die ersten Objekte, die Sie anfassen können, die des Hauptbuchs. Auf dem Abacus-REST-Pfad sind es Kontakte, Kunden, Projekte und Aufträge mit ihren Positionen, also die Order-to-Cash- und Projektseite eines ERP. Damit passt es gut dazu, Datensätze zwischen Ihrem Produkt und dem Ihres Kunden im Gleichstand zu halten, und genau darum ist Kunden- und Lieferantenstammdatensynchronisation gebaut. Sagen Sie uns, welche Objekte Ihr Anwendungsfall braucht, und wir bestätigen sie für den Pfad, auf dem Sie sind.
Sagen Sie uns, welche Objekte Ihr Anwendungsfall braucht, und wir bestätigen, was auf jedem Pfad möglich ist.











