maesn

Holded-Schnittstelle und API-Integration

Holded ist ein Cloud-ERP für spanische kleine und mittlere Unternehmen, und Visma hat es 2021 übernommen. Rechnungsstellung, Buchhaltung, Lager, CRM, Projekte und Personal liegen in einem Produkt. Die Buchhaltungsdaten, die Sie brauchen, sind also ein Abschnitt von etwas deutlich Größerem. 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
Was es braucht

Holded gibt Ihnen einen Schlüssel, keinen Redirect

Drei Dinge an Holded landen bei Ihren Entwicklern, bevor sich der erste Datensatz bewegt: Die Zugangsdaten sind ein statischer Schlüssel, den Ihr Kunde erzeugt, die Berechtigungen sitzen je Endpunkt an diesem Schlüssel, und die Buchhaltungsdaten, die Sie wollen, sind ein Teil eines Produkts, das auch Lager, CRM und Personal betreibt. Hier steht, was jedes davon ist, und was Maesn davon abnimmt.

Holded: Der Kunde erzeugt den Schlüssel

Die Übergabe läuft über unsere Seite oder über gar keine

Holded authentifiziert mit einem festen API-Schlüssel, den Ihr Kunde in seinem eigenen Konto erzeugt, und Holded zeigt ihn genau einmal an. Maesn nimmt diesen Schlüssel auf einer Seite entgegen, die Sie als Ihre gestalten können, oder Sie sammeln ihn selbst ein und senden ihn an einen Endpunkt, der den Account-Key direkt zurückgibt. Einen OAuth-Redirect gibt es auf beiden Wegen nicht zu bauen.

Holded: Die Scopes sitzen am Schlüssel

Eine Ablehnung, die je Aufruf ankommt

Jeder Holded-Schlüssel trägt Berechtigungen mit Scopes, und ein Endpunkt, der einen Scope verlangt, den der Schlüssel nicht hat, antwortet mit 403, statt beim Verbinden zu scheitern. Eine Verbindung kann also gesund aussehen, während ein Aufruf abgelehnt wird. Maesn gibt diese Ablehnung in derselben Fehlerform zurück wie jedes andere System, statt eine Verzweigung in Holded-Form in Ihren Code zu bringen.

Holded: Buchhaltung ist ein Modul von vielen

Der Buchhaltungsteil, bereits abgebildet

Holded veröffentlicht 338 Endpunkte über elf Bereiche, vom Verkauf und der Lagerhaltung über CRM und Projekte bis zum Personalwesen. Was Maesn bereitstellt, ist der Teil davon, der die Form der Buchhaltung hat, abgebildet auf dieselben Objekte, die Sie aus jedem anderen System schon lesen. Ihr Code erfährt also nie, wo Holded die Dinge ablegt.

Was Ihr Code hält, ist ein API-Schlüssel von uns und ein Account-Key je Kunde. Der Holded-Schlüssel, die Scope-Fehler und die Abbildung aus einem Produkt mit elf Domänen bleiben auf dieser Seite, und das nächste System antwortet auf derselben Schnittstelle.

Ein kurzes Gespräch genügt meist, um zu klären, ob Maesn zu Ihrem Anwendungsfall passt.

Kundenstimme

HubSpot bringt Stammdaten in das Hauptbuch, das ein Kunde führt

HubSpot gleicht Kundendaten aus dem CRM in das Buchhaltungssystem ab, das jeder ihrer Kunden einsetzt, und das ist genau der Objektsatz, den Holded freigeschaltet hat: Kontakte, Kunden und Lieferanten. Heute erreichen sie auf diesem Weg DATEV und sevdesk.

“Wir binden deutsche Buchhaltungssysteme an und verlassen uns dabei auf Maesn als verlässlichen Partner, der für reibungslosen Datenfluss, vollständige Compliance, stärkere Partnerschaften und effiziente, verlässliche Finanzprozesse sorgt, die unser Wachstum tragen.”
Aron Gosselin
Partnerships Manager, HubSpot
Warum Unternehmen Maesn wählen

Drei Gründe, die Holded-Schnittstelle über Maesn anzubinden

Holded direkt anzubinden ist günstig im Start und teuer im Unterhalt. Die Übergabe des Schlüssels ist einfach. Alles danach ist Holded-eigen: das Scope-Modell, ein Aufrufbudget, das zum Tarif Ihres Kunden gehört und nicht zu Ihnen, und ein Objektaufbau, der mit dem nächsten System, das Sie hinzunehmen, nichts gemein hat.

01

Die Holded-eigene Arbeit bleibt hier

Den Schlüssel einsammeln und je Mandant verwahren, die Scope-Ablehnung in einen einheitlichen Fehlervertrag übersetzen und die Buchhaltungsobjekte aus einem Produkt herausbilden, das auch Lager und Personal führt. Keines der drei erreicht den Code, den Sie schreiben.

02

Was eingeschaltet ist, schriftlich

Lesen und Schreiben sind hier dieselbe Liste. Ein Objekt, das aus Holded kommt, lässt sich also ohne zweite Zuordnung in Holded korrigieren. Alles jenseits dieser Liste ist auf Anfrage verfügbar statt abwesend, die Frage lautet also, welche Objekte Ihr Ablauf braucht, und nicht, ob die Verbindung sie erreichen kann.

03

Das nächste System kostet nichts

Sobald Holded läuft, antwortet jedes andere unterstützte Buchhaltungs- und ERP-System auf derselben Schnittstelle mit demselben Datenmodell. Ihre zweite Integration ist ein Konfigurationsschritt und kein zweites Schlüsselmodell.

Der Objektumfang macht daraus eine schmale Integration und keine kleine. Kontakte, Kunden und Lieferanten sind die Datensätze, über die zwei Systeme am häufigsten streiten, weil beide Seiten meinen, das Unternehmen zu besitzen, das sie beschreiben, und Kunden- und Lieferantenstammdaten im Gleichstand halten ist ein eigenes Problem, bevor es ein Holded-Problem ist. Was Holded hinzufügt, ist eine Obergrenze dafür, wie oft Sie fragen dürfen.

Authentifizierung

Ein Holded-API-Key, bei uns verwahrt

Holded ist eines der Systeme ganz ohne OAuth-Redirect. Es authentifiziert mit einem Schlüssel. Die einzige Frage ist also, wie dieses Geheimnis von Ihrem Kunden zu uns kommt, ohne durch Ihr Backend zu laufen. Es gibt zwei Antworten, und beide enden mit einem Account-Key.

Auth-Verfahren
API-Schlüssel
Ein Schlüssel je Kunde, erzeugt im eigenen Holded-Konto

Eine Integration, jeder Kunde. Maesn verwahrt den Schlüssel je Mandant, und was Ihr Code trägt, ist ein Account-Key.

Was Maesn für Sie verwahrt
Der Schlüssel, je Mandant gespeichert
Ihr Kunde reicht ihn einmal ein, und Maesn verwahrt ihn an seiner Verbindung. Jeder spätere Aufruf trägt Ihren API-Schlüssel und seinen Account-Key, dieselben zwei Header, die Sie für jedes andere System ohnehin senden, und das Zugangsmerkmal von Holded liegt nie in Ihrer Datenbank.
Die Seite, oder gar keine Seite
Maesn stellt die Seite für die Eingabe des Schlüssels bereit, und sie nimmt Ihr Erscheinungsbild an, vom Logo bis zu den Farben für Knöpfe und Fehler. Wenn Sie lieber einen eigenen Bildschirm betreiben, gibt ein POST auf den Accounts-Endpunkt den Account-Key in der Antwort zurück, und die Seite entfällt ganz.

Was einen Entwurf verlangt, ist das Scope-Modell und nicht der Schlüssel selbst. Holded stellt jeden Schlüssel mit begrenzten Berechtigungen aus und dokumentiert die Berechtigung, die jeder Endpunkt verlangt. Ein Schlüssel kann sich also einwandfrei authentifizieren und auf einem einzelnen Aufruf trotzdem mit 403 abgewiesen werden. Dieser Fehlschlag kommt in der Produktion an, auf dem einen Endpunkt, dessen Scope übersehen wurde, und nicht beim Verbinden, wenn jemand zusieht. Maesn vereinheitlicht ihn in denselben Fehlerkontrakt wie bei jedem anderen System, und das ist der Unterschied zwischen einer Verzweigung in Ihrer Fehlerbehandlung und einer je System.

Wie Ihr Kunde sich verbindet
  1. 1

    Er erzeugt den Schlüssel in Holded

    Ein Administrator öffnet die Entwicklereinstellungen in seinem Holded-Konto, erzeugt einen Schlüssel mit einer Beschreibung und kopiert ihn. Holded zeigt den Wert einmal und danach nie wieder. Ihr Onboarding-Text muss das also sagen, bevor er den Dialog schließt.

  2. 2

    Er übergibt ihn, oder Sie tun es

    Er fügt ihn auf der Maesn-Seite ein, die Ihr Erscheinungsbild trägt, und es gibt einen Abbruchweg für den Fall, dass er sie auf halbem Weg schließt. Haben Sie den Schlüssel schon vorher in Ihrem eigenen Ablauf eingesammelt, senden Sie ihn stattdessen und überspringen die Seite.

  3. 3

    Sie arbeiten mit einem Account-Key

    Maesn speichert die Verbindung und gibt einen Account-Key zurück. Ab da sehen die Anfragen aus wie bei jedem anderen System im Katalog, und nichts in Ihrem Code hat die Form von Holded.

Jedes System im Katalog authentifiziert anders, und bei Holded ist der Handshake trivial und die Berechtigung daran nicht. Es gibt kein Token zu erneuern und keine Umgebung zu wählen, die Arbeit verlagert sich also auf eine einzige Frage, die Ihr Onboarding-Text beantworten muss: Welche Scopes braucht dieser Schlüssel vor dem ersten Aufruf. Unified Authentication trägt die Speicherung je Mandant und die Einstiegsseite in Ihrer Marke, einmal für alle Systeme und nicht einmal je System. Fehlt doch ein Scope, kommt der 403 in der Form zurück, die Sie bereits verarbeiten, denn ein Fehlerkontrakt deckt jedes System ab, statt dass jedes seinen eigenen hat.

Synchron bleiben

Holded sendet Events, und Sie fragen trotzdem ab

Holded dokumentiert ein vollständiges eigenes Webhook-System, und nichts davon ist heute über Maesn eingeschaltet. Beide Hälften stimmen gleichzeitig, und die zweite entscheidet, wie Sie bauen: Die Änderungserkennung ist hier etwas, das Sie fahren, und nicht etwas, das ankommt.

Was Holded veröffentlicht

Achtzehn Event-Gruppen und 58 Events, von invoice.create bis stock.update, mit HMAC-SHA256 signiert und mit Backoff wiederholt. Abonnements werden in einem Holded-Konto eingerichtet, und über Maesn erreicht Sie heute keines davon.

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 Holded erkennt, ist der Code, den Sie bereits geschrieben haben, nur auf einen anderen Account-Key gerichtet. Nichts an der Schleife hat also die Form von Holded.

Das Intervall ist hier so sehr eine kommerzielle wie eine technische Entscheidung, und das Budget, das es verbraucht, ist nicht Ihres. Holded rechnet API-Aufrufe gegen ein monatliches Kontingent ab, das zum Tarif Ihres Kunden gehört. Es zählt je Account statt je Schlüssel. Einen zweiten Schlüssel auszustellen kauft also keinen zusätzlichen Raum, und der niedrigste Tarif in der veröffentlichten Tabelle erlaubt 500 Aufrufe im Monat. Eine Abfrageschleife verbraucht damit aus einem Budget, das Ihrem Kunden gehört und das er aufbrauchen kann, und darüber spricht man besser beim Dimensionieren des Intervalls als nach dem ersten 429.

In der Unified API gibt es zwei Wege, und bei Holded ist heute nur einer davon verfügbar. Was über das Event-Modell ankommt und was Sie nach Zeitplan holen, bleiben getrennte Belange, und ein System, bei dem nichts eingeschaltet ist, legt das ganze Gewicht auf den zweiten. Genau dort ist eine Integration je System am teuersten: Sie schreiben eine Schleife zur Änderungserkennung für Holded, dann noch eine für das nächste System mit einer eigenen Vorstellung davon, was eine Seite ist, und ein Weg, zu filtern und zu paginieren nimmt den Teil der Arbeit weg, der gar nichts mit Holded zu tun hat.

Was bleibt, ist eine Schleife, deren Frequenz eine betriebliche Vorgabe ist und keine technische, und eine Eigenschaft spricht für sie. Ein Lesezugriff nach Zeitplan holt nach, was er während eines Ausfalls verpasst hat, während ein Event, das nie zugestellt wurde, schlicht weg ist. Sie zu dimensionieren ist also die Frage, wie oft ein Aufruf es wert ist, und die Antwort steht im Tarif Ihrer Kunden und nicht in Ihrem eigenen Code.

Bevor Sie starten

Was eine Holded-Anbindung zuerst braucht

Das meiste davon ist geklärt, bevor Code läuft, und zwei der vier sind von der Sorte, die nach dem Livegang auftaucht statt während des Baus. Vier Dinge sollten zuerst entschieden sein.

API-Zugang auf dem Konto, dazu ein Administrator
Der Schlüssel wird im Konto Ihres Kunden erzeugt, und ihn anzulegen verlangt Administratorrechte. Holded zeigt ihn einmal an und danach nie wieder, wer ihn erzeugt, muss ihn also auch übergeben. Das ist ein Gespräch beim Onboarding statt eines Support-Tickets eine Woche später.
Welche Objekte Ihr Anwendungsfall tatsächlich braucht
Kontakte, Kunden und Lieferanten sind freigeschaltet und gehen in beide Richtungen. Rechnungen, Eingangsrechnungen, Gutschriften, Zahlungen und Ausgaben sind mit auf Anfrage gekennzeichnet, und das heißt eine Anfrage und keinen Schalter, den Sie selbst umlegen. Wenn Ihr Ablauf mit einem Beleg anfängt, sprechen Sie das an, bevor Sie den Aufwand zuschneiden, und nicht danach.
Die Scopes, die der Schlüssel tragen muss
Holded dokumentiert, welche Berechtigung jeder Endpunkt braucht, und ein Schlüssel, der ohne sie ausgestellt wurde, wird allein an diesem Endpunkt abgelehnt. Zu entscheiden, welche Scopes die Verbindung anfordert, gehört in den Onboarding-Text, den Ihr Kunde liest, und ist kein Detail der Umsetzung.
Eine Umgebung, gegen die Sie bauen
Holded bietet einen kostenlosen Test an, für den Sie sich heute anmelden können, und Maesn stellt auf Anfrage eine Sandbox mit Testdaten bereit. Beides bringt Sie zum Bauen, bevor das Kundengespräch abgeschlossen ist, und der Test ist von beiden der schnellere Start.

Wir gehen den Schlüssel, die Scopes und den Testaccount mit Ihnen durch.

Das Datenmodell

Eine Liste für Lesen und Schreiben, eine Form am Ende

Was Holded zurückgibt und was es entgegennimmt, ist dieselbe Liste. Das ist seltener, als es klingt, und entscheidet darüber, wie ein Abgleich in beide Richtungen arbeitet.

Alles Eingeschaltete geht in beide Richtungen

Kontakte, Kunden und Lieferanten lassen sich lesen, anlegen und aktualisieren, jedes Mal dieselben drei Objekte. Zwei Systeme hier haben diese Form, und ein Belegobjekt ist noch nicht freigeschaltet.

Hier läuft kein Buchungsweg durch

Buchungssätze liegen außerhalb dessen, was Maesn für Holded bereitstellt, in jeder Operation, und sie sind kein Objekt, dessen Freischaltung sich anfragen lässt. Planen Sie das ein, wenn Ihr Produkt Buchungen schreibt.

Standardmäßig löscht kein Objekt

Für kein Objekt ist Löschen freigeschaltet. Die Buchhaltungspraxis erwartet Korrekturen und Stornos ohnehin als neue Belege, planen Sie sie also so und nicht um ein Löschen herum, das Sie erst anfragen müssten.

Was Holded herausgibt, nimmt es auch entgegen: Die Objekte, die Sie lesen können, sind die Objekte, die Sie anlegen und aktualisieren können, eine Firma, die aus Holded kommt, lässt sich also in Holded korrigieren. Das ist der Teil, der gewöhnlich bricht, wenn zwei Systeme beide meinen, ihnen gehöre der Kundendatensatz. Was es nicht gibt, ist irgendein Beleg. Keine Rechnung, Eingangsrechnung oder Gutschrift ist heute freigeschaltet, ein Produkt, das Firmen abgleicht, findet hier also einen vollständigen Rundlauf, und ein Produkt, das Rechnungen bucht, findet ein Gespräch.

Die Partnerobjekte kommen im gemeinsamen Common Data Model zurück, ein Lieferant aus Holded hat also dieselbe Form wie ein Lieferant aus jedem anderen unterstützten System, und der Abbildungscode, den Sie hier schreiben, ist der Code, den Sie für das nächste wiederverwenden. Das zählt mehr als sonst bei einem Produkt dieser Breite: Holded betreibt Vertrieb, Lager, CRM, Projekte und Personal neben dem Hauptbuch, und nichts von diesem Aufbau erreicht Sie.

Alles jenseits dieser Liste ist auf Anfrage verfügbar statt nicht verfügbar, es ist also nicht standardmäßig eingeschaltet. Holded gehört seit 2021 zu Visma und behält seine eigene API, sein eigenes Schlüsselmodell und sein eigenes Kontingent, und deshalb hat es hier eine eigene Seite. Sagen Sie uns, welche Objekte Ihr Anwendungsfall braucht, oder sehen Sie sich jedes System im Katalog an, um zu sehen, wie dieselbe Frage anderswo beantwortet wird.

Sagen Sie uns, welche Objekte Ihr Anwendungsfall braucht, und wir bestätigen, was möglich ist.

Holded FAQ

Holded API-Fragen

Was ist Holded?

Holded ist ein Cloud-ERP, das kleine und mittlere Unternehmen in Spanien einsetzen, und Visma hat es 2021 übernommen. Ein Produkt deckt Rechnungsstellung, Buchhaltung, Zahlungsverkehr, Lagerhaltung, CRM, Projekte und Personal ab, und für ein Softwareteam zählt genau das: Die Buchhaltungsdaten, die Sie wollen, sind einer von elf Bereichen, und Holded veröffentlicht über alle hinweg 338 Endpunkte.

Was ist die Holded-API?

Eine REST-API auf einer einzigen Basis-URL, authentifiziert mit einem festen API-Schlüssel in einem Authorization-Header. Ressourcen liegen unter eigenen Pfaden, und jeder Schlüssel trägt Berechtigungen mit Scopes. Ein Endpunkt, dessen Scope fehlt, antwortet also mit 403. Über Maesn erreichen Sie sie als eine Schnittstelle mit denselben Objekten und demselben Fehlervertrag wie jedes andere unterstützte System, und der Schlüssel bleibt auf unserer Seite.

Wo finde ich die Dokumentation für eine Holded-Integration?

Holded veröffentlicht eine eigene Entwicklerdokumentation für die rohe API, und die Maesn-Dokumentation deckt ab, was über uns läuft: jedes Objekt und jede Operation, den Authentifizierungsablauf, die Sandbox und das, was heute freigeschaltet ist. Wenn die offene Frage ist, ob die Integration überhaupt machbar ist, entscheidet die Objektabdeckung das schneller als beide.

Wie funktioniert die Authentifizierung bei Holded?

Mit einem Schlüssel statt mit einem Redirect. Der Administrator Ihres Kunden erzeugt in seinem Holded-Konto einen API-Schlüssel, und Holded zeigt den Wert einmal an. Holded ist eines von sieben Systemen im Headless-Authentifizierungsablauf von Maesn, Sie können ihn also entweder auf einer Seite mit Ihrem Erscheinungsbild einreichen lassen oder ihn in Ihrer eigenen Oberfläche einsammeln und an einen Endpunkt senden, der den Account-Key direkt zurückgibt.

Unterstützt Holded Webhooks?

Holded dokumentiert sie, und über Maesn ist heute keiner freigeschaltet. Die eigene Entwicklerdokumentation führt 18 Event-Gruppen und 58 Events, mit HMAC-SHA256 signiert und mit Backoff wiederholt, eingerichtet in einem Holded-Konto. Wogegen Sie stattdessen bauen, ist ein geplanter Lesezugriff mit demselben Filter und derselben Paginierung wie bei jedem anderen System, und ein Abruf hat gegenüber einem Push einen Vorteil: Er holt nach, was er verpasst hat, während ein Dienst ausgefallen war.

Welche Daten kann ich in Holded lesen und schreiben?

Drei Objekte sind heute freigeschaltet, und jedes geht in beide Richtungen: Kontakte, Kunden und Lieferanten lassen sich lesen, anlegen und aktualisieren. Der Rest der Objektliste wird freigeschaltet, wenn ein Anwendungsfall ihn braucht, sagen Sie uns also, mit welchen Objekten Ihr Produkt arbeitet, und wir schalten sie für Ihre Verbindung frei. Buchungssätze liegen außerhalb dessen, was Maesn hier bereitstellt.

Wie sind die Ratenbegrenzungen der Holded-API?

Holded zählt zwei Zähler parallel, eine Spitze je Minute und ein monatliches Aufrufkontingent, und welcher zuerst voll ist, liefert einen 429. Das Kontingent ist das, was eine Integration formt. Es gehört zum Tarif Ihres Kunden und zählt je Konto statt je Schlüssel, weitere Schlüssel kaufen also keinen Spielraum, und der kleinste Tarif in der veröffentlichten Tabelle von Holded erlaubt 500 Aufrufe im Monat. Bemessen Sie ein Abfrageintervall gegen diese Zahl und nicht gegen den Wert je Minute.

Gibt es für die Entwicklung mit Holded eine Sandbox?

Ja, und es gibt zwei Wege. Holded bietet ein kostenloses Testkonto an, für das Sie sich selbst anmelden können, und das ist der schnellere, und Maesn stellt auf Anfrage Sandboxes mit Testdaten bereit. Beides lässt Sie bauen, bevor das kaufmännische Gespräch abgeschlossen ist.

Holded gehört zu Visma. Ändert das die Integration?

Technisch nicht. Visma hat Holded 2021 übernommen, und das Produkt behält seine eigene API, sein eigenes Schlüsselmodell und sein eigenes Kontingent, und deshalb hat es hier eine eigene Seite, statt unter der Visma-Übersicht zu stehen. Was die Konzernbeziehung sehr wohl ändert, ist das Bild weiter draußen: Mehrere Visma-Produkte werden über dieselbe Maesn-Schnittstelle unterstützt. Eine Kundschaft, die in den Konzern hineinwächst, wird also kein zweites Integrationsprojekt.

Warum Holded über Maesn anbinden statt direkt?

Weil die Übergabe des Schlüssels der billige Teil ist. Direkt heißt, drei Dinge für ein System in einem Land zu tragen: das Scope-Modell und den 403, den es an jeweils einem Endpunkt erzeugt, ein Aufrufbudget, das zum Tarif Ihres Kunden gehört und monatlich zurückgesetzt wird, und eine Objektzuordnung aus einem Produkt heraus, das auch Lager, CRM und Personal führt. Ü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.