maesn

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.

IHR PRODUKT+28
Diese Software-Teams vertrauen uns
HubSpotTipaltiPaywiseRallyQredNordhealthFindityFintoClockinHEROHolviLanes & PlanesAgicapHubSpotTipaltiPaywiseRallyQredNordhealthFindityFintoClockinHEROHolviLanes & PlanesAgicap
Warum es schnell geht

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.

Abacus: Ein Produkt, zwei APIs

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.

Abacus: Jede Installation hat ihre eigene Adresse

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.

Abacus: AbaConnect antwortet, wenn es fertig ist

Ü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.

Kundenstimme
40.000
Handwerksbetriebe auf der Plattform von HERO Software

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.”
Ricardas Kauneckas
Full Stack Engineer, HERO Software
Warum Unternehmen Maesn wählen

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.

01

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.

02

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.

03

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.

Partnerprogramm

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.

Was das Abacus-Programm verlangt

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.

Authentifizierung

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.

Auth-Verfahren
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 zwei Werte, die mit einer Verbindung mitreisen
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.

Wie Ihr Kunde sich verbindet
  1. 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. 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. 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.

Synchron bleiben

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.

Was Abacus sendet

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.

Was Sie stattdessen fahren

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.

Bevor Sie starten

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.

Ein Datenmodell

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.

Abacus FAQ

Abacus API-Fragen

Was ist Abacus?

Abacus ist eine Schweizer ERP-Plattform für größere Unternehmen, mit Finanzen, Lohn, Beschaffung und Projektmanagement und Branchenmodulen darauf. Für ein Softwareteam zählt vor allem ihre Form. Sie wird über zwei verschiedene APIs erreicht, eine Installation hat eine eigene Basis-URL, und die Daten darin gehören zu einer Umgebung und nicht zum Konto.

Welche Abacus-Module kann ich über Maesn erreichen?

Die Standardmodule erreicht man über die Abacus-REST-API. Modulerweiterungen, darunter AbaBau für das Bauwesen, erreicht man über die AbaConnect-Webservices, die Endpunkte bereitstellen, die die REST-API nicht hat. Maesn führt beide als eigenes Zielsystem, beide stehen also auf derselben Schnittstelle bereit, und unsere Dokumentation rät dazu, sich für einen Weg zu entscheiden und ihn durchgehend zu benutzen, statt sie zu mischen.

Wie importiere ich Buchungen nach Abacus?

Buchungssätze werden für eine Verbindung freigeschaltet, wenn ein Anwendungsfall sie braucht, Buchungen zu senden ist also ein kurzes Gespräch mit uns, bevor Sie darum herum entwerfen. Freigeschaltet ist heute die Auftrags- und Projektseite: Kontakte, Kunden, Projekte und Kundenaufträge lassen sich anlegen und Kontakte an Ort und Stelle aktualisieren.

Wie funktioniert die Authentifizierung bei Abacus?

Über einen Authorization Code Grant gegen einen Servicebenutzer, den Sie in Abacus registrieren, als benutzerabhängig eingerichtet, mit der Login-Redirect-URL auf den Callback von Maesn für Ihre Abacus-Version. Die Basis-URL der Installation Ihres Kunden läuft mit dem Authentifizierungsaufruf mit, denn sie unterscheidet sich danach, ob er Abacus lokal oder auf einem gehosteten Abonnement betreibt. Der Redirect kommt zu Maesn zurück. Der Code-Tausch und der Lebenszyklus des Tokens bleiben also hier. Danach arbeiten Sie mit einem Account-Key.

Was ist der Unterschied zwischen Abacus und AbaConnect?

Das sind zwei Wege in dasselbe Produkt, und Maesn behandelt sie als zwei Zielsysteme. Abacus ist die REST-API und authentifiziert mit OAuth. AbaConnect ist eine Webservice-Schicht, die Modulerweiterungen wie AbaBau erreicht, und sie authentifiziert mit Benutzername und Passwort. Viele Kernressourcen, Kontakte und Projekte darunter, sind über beide verfügbar, auch wenn die Einzelheiten der Umsetzung sich unterscheiden, und deshalb empfiehlt unsere Dokumentation, sich für einen zu entscheiden.

Unterstützt Abacus Webhooks?

Nein. Events auf einem bestimmten Objekt werden freigeschaltet, wenn ein Anwendungsfall eines braucht, und die Änderungserkennung läuft sonst über einen geplanten Lesezugriff, mit demselben Filter und derselben Paginierung wie bei jedem anderen System im Katalog. Eines sollten Sie speziell auf dem AbaConnect-Pfad einplanen: Diese Webservices nehmen jeweils eine laufende Anfrage an. Ein großer Nachholleselauf läuft dort also als Warteschlange und nicht parallel.

Welche Daten kann ich in Abacus lesen und schreiben?

Auf dem REST-Pfad sind heute Kontakte, Kunden, Projekte, Kundenaufträge und Positionen von Kundenaufträgen lesbar. Kontakte, Kunden, Projekte und Kundenaufträge sind schreibbar, und Aktualisierungen an Ort und Stelle decken Kontakte ab. Kundenaufträge und Projekte sind das Ungewöhnliche: Bei keinem anderen System im Maesn-Katalog sind sie zum Schreiben freigeschaltet. AbaConnect antwortet anders: Dort lassen sich Kontakte, Projekte und Kundenaufträge anlegen, Kontakte und Projekte lesen, und ein Kundenauftrag lässt sich anlegen, bevor er sich zurücklesen lässt. Die Kombinationen mit der Kennzeichnung auf Anfrage sind ein Gespräch über Ihren Anwendungsfall und keine Grenze der Schnittstelle.

Gibt es eine Abacus-Sandbox oder eine kostenlose Testphase?

Eine kostenlose Testphase gibt es für Abacus nicht, und Maesn stellt Sandboxes dafür bereit, dieselbe Regelung, die auch DATEV, Fortnox und Twinfield abdeckt. Das API-Team von Abacus kann auf Anfrage außerdem eine Sandbox-Instanz bereitstellen, und eine Sandbox braucht einen eigenen benutzerabhängigen Servicebenutzer, den Abacus für Sie einrichtet.

Warum Abacus über Maesn anbinden statt direkt?

Weil die Arbeit nicht bei einer API aufhört. Direkt heißt einen Servicebenutzer und einen versionsabhängigen Callback, eine Basis-URL, die sich je Kunde unterscheidet, eine Umgebung bei jedem Aufruf, das Abfragen der Tasks und die Grenze von einer Anfrage auf der AbaConnect-Seite und jede künftige inkompatible Änderung, und das für ein System, das auf zwei Wegen erreicht wird. Über Maesn bauen Sie einmal gegen ein Datenmodell, und jedes andere unterstützte Buchhaltungs- und ERP-System ist danach auf derselben Schnittstelle erreichbar.
Jede Integration, nach der Ihre Kunden fragen. In Tagen, nicht in Monaten.