SnelStart anbinden: Zwei Authentifizierungsflüsse, und ein Konto-Schlüssel
Fast jede Beschreibung dieses Systems nennt zwei Schlüssel und hört dort auf. Das ist der Entwicklungsfluss. Produktiv läuft es anders: Ihr Kunde meldet sich über einen Redirect an, den SnelStart OAuth nennt, der Schlüssel kommt an einer Callback-Adresse an, und dorthin gelangen Sie nur über eine Partnerprüfung, der sieben Tage Beobachtung folgen.


Die zwei Schlüssel sind der Fluss, gegen den Sie bauen
Fast jede Beschreibung dieses Systems, unsere bisherige eingeschlossen, sagt, SnelStart authentifiziere sich mit zwei Schlüsseln, und hört dort auf. Für den Fluss, gegen den Sie bauen, stimmt das. Für den, mit dem Sie ausliefern, nicht. SnelStart betreibt zwei getrennte Authentifizierungsprozesse: Entwicklung und Test, also die zwei Schlüssel weiter unten, und Produktion, ein Redirect mit einem eigenen Abschnitt.
Warum der zweite im öffentlichen Bestand fehlt, sollten Sie wissen, bevor Sie irgendetwas anderem über diese Schnittstelle vertrauen: SnelStarts Referenz liegt hinter einem Login, Beschreibungen werden also aus der sichtbaren Hälfte rekonstruiert.
Für den Entwicklungsfluss sind zwei Zugangsdaten unauffällig. Entscheidend ist, dass keine einzelne Person beide erzeugen kann, und das ändert, was Ihre Onboarding-Maske leisten kann.
Der Verbindungsschlüssel gehört Ihrem Kunden. Er meldet sich in seinem eigenen Konto an, öffnet Koppelingen, wählt Maatwerk, stimmt den Scopes zu und speichert den Wert. Er gilt je Firma, Ihr Kunde kann ihn widerrufen, und er ist die Hälfte, die Sie in Ihrem eigenen Produkt einsammeln können.
Der Abonnementschlüssel gehört Ihnen. Er kommt aus einem Entwicklerkonto, das Sie einmal registrieren, und er identifiziert Ihre Anwendung. Kein Onboarding-Formular kann danach fragen, weil Ihr Kunde keinen hat und nie einen haben wird.
Wird im eigenen SnelStart-Konto angelegt, nachdem den Scopes zugestimmt wurde. Je Firma.
Einer je Anwendung, aus Ihrem eigenen Entwicklerkonto. Nichts, was ein Kunde Ihnen geben kann.
Nur einer der beiden ist ein Produktschritt. Der Verbindungsschlüssel lässt sich in Ihrer eigenen Oberfläche einsammeln. Der Abonnementschlüssel gehört Ihnen, er wird einmal registriert, und keine Onboarding-Maske kann einen Kunden danach fragen.
Vor beiden steht eine dritte Bedingung, und sie zeigt sich eher im Vertriebsgespräch als beim Bauen. Der Zugang hängt am Tarif: maesns Connect-Guide hält fest, dass Ihr Kunde das Paket inZicht oder inControle halten muss, um den Zugang überhaupt einzurichten. Das sind die oberen zwei Pakete auf SnelStarts eigener Preisliste.
Im Entwicklungsfluss gibt es keinen Redirect, weshalb dies eines der sieben Systeme ist, die sich während des Bauens ohne gehostete Seite verbinden lassen. Produktiv ändert sich das, und der Abschnitt darunter beschreibt, was daraus wird.
Verbindungsschritte, die Paketbedingung und beide Schlüsselquellen aus maesns SnelStart Connect-Guide, geprüft am 13. August 2026. Die Paketnamen gegen SnelStarts Preisliste gegengeprüft. maesns Dokumentation und SnelStarts eigene Seiten schreiben die Marke „Snelstart“; Zitate behalten die Schreibung ihrer Quelle.
Produktiv läuft ein Redirect, und der Schlüssel erreicht keine Maske
Sobald Sie freigegebener Partner sind, ändert der Handschlag seine Form. SnelStart nennt diesen Fluss OAuth, und das Wort ist weit auszulegen: Er folgt dem Standardmuster nicht, und am klarsten liest er sich als eigener Prozess neben den zwei Schlüsseln.
Aus dem Partnerantrag bekommen Sie einen Anwendungskurznamen, der sich wie eine Client-ID verhält. Ohne ihn beginnt in diesem Fluss nichts. Sie schicken Ihren Kunden an eine daraus gebaute Aktivierungs-URL, die einen Referenzschlüssel und eine Erfolgs-URL für den Abschluss mit sich führt. Der Referenzschlüssel verhält sich wie ein State-Parameter.
Ihr Kunde meldet sich bei SnelStart an und akzeptiert die Scopes, die Ihre Anwendung angefragt hat. Dann folgt der Teil, der Ihr Callback-Design entscheidet: SnelStart gibt den Verbindungsschlüssel nicht über den Browser zurück. Es sendet ihn an eine Callback-Adresse, die Sie bei der Antragstellung registriert haben, zusammen mit dem Referenzschlüssel, den Sie mitgeschickt haben, damit der Callback der Browser-Sitzung zugeordnet werden kann. Ihre Seite bestätigt mit einem 201, und erst dann wird Ihr Kunde weitergeleitet.
POST https://auth.snelstart.nl/b2b/tokenContent-Type: application/x-www-form-urlencodedgrant_type=clientkey&clientkey=<Verbindungsschlüssel>-> { "access_token": "...", "token_type": "bearer","expires_in": 3599 }
Hier treffen sich die zwei Flüsse. In der Entwicklung wird der Verbindungsschlüssel aus der Oberfläche kopiert, produktiv kommt er am Callback an, und ab diesem Punkt ist der Austausch identisch. Jeder Aufruf danach führt das Bearer-Token und den Abonnementschlüssel in Ocp-Apim-Subscription-Key mit, und fehlt einer von beiden, antwortet die Schnittstelle mit 401.
Der Produktivfluss, das Callback-Verhalten, der Token-Endpunkt und das Header-Paar aus maesns interner SnelStart-Authentifizierungsreferenz, geprüft am 13. August 2026. SnelStarts eigene Dokumentation liegt hinter einem Login, weshalb dieser Fluss in öffentlichen Beschreibungen dieser Schnittstelle fehlt.
Das Access-Token hält eine Stunde. Weil der Verbindungsschlüssel je Kunde gespeichert ist, genügt für eine Erneuerung dieselbe Token-Anfrage. Ihr Kunde meldet sich einmal an.
Über maesn erreicht nichts davon Ihren Code. Der Aktivierungslink, der Callback, die Zuordnung des State und die Speicherung des Verbindungsschlüssels liegen hinter der Verbindung, und was Sie halten, ist ein Konto-Schlüssel. Unified Authentication lässt ein System mit zwei verschiedenen Handschlägen aussehen wie eines mit einem.
Der Produktivschlüssel kommt nach dem Bauen
Das ist der Teil, der in einen Projektplan gehört, und er fehlt in jeder Beschreibung dieses Systems, die wir bisher veröffentlicht haben. Auf den meisten Plattformen registrieren Sie sich, bekommen Schlüssel, bauen, und ein Marktplatzeintrag ist optionale Distribution, die Sie später ergänzen. Hier ist die Reihenfolge umgekehrt.
SnelStarts Entwicklerportal sagt es unumwunden, auf Niederländisch: „Ben je als ontwikkelaar klaar met het bouwen van de koppeling en gereed om een permanente maatwerk- of productiesleutel te ontvangen? Dan kun je de koppeling aanmelden om door ons te worden gecertificeerd.“ Die Integration fertigstellen, einreichen, und ein dauerhafter Schlüssel folgt auf die Freigabe.
maesns eigene Dokumentation sagt, was das absichert. Um die Schnittstelle produktiv zu nutzen, „müssen Sie offizieller Snelstart-Partner werden. Nach der Freigabe erhält Ihre Anwendung Zugang zu Live-Umgebungen von Kunden (über die voreingestellte Testfirma hinaus).“ Bis zu dieser Freigabe erreicht eine voll funktionsfähige Integration genau eine Firma, und die gehört keinem Kunden.
Auch die Uhr zählt. Ein Entwicklungsabonnement ist kostenlos und 90 Tage gültig, mit begrenzten Aufrufen. Zieht sich Ihr Bau über dieses Fenster hinaus, verfällt der Schlüssel, mit dem Sie getestet haben.
Und zwischen Einreichen und Livegang liegt ein Schritt, den man leicht übersieht, wenn man von einem Starttermin rückwärts plant. Sobald Sie SnelStarts Partner-Manager melden, dass die Integration fertig ist, beginnt eine siebentägige Beobachtungsphase. In dieser Woche muss die Integration mindestens 150 Aufrufe absetzen, ohne zu viele Fehler zu erzeugen.
Das ist eine Anforderung, die Sie aktiv bedienen müssen. Hundertfünfzig Aufrufe in einer Woche sind ein überschaubares Aufkommen, und sie sind trotzdem mehr, als eine ruhende Integration erzeugt, also muss jemand sie gezielt auslösen. An dieser Stelle im Prozess erzeugt maesn diesen Verkehr gemeinsam mit Ihnen.
Der Wortlaut zur Zertifizierung aus SnelStarts Entwicklerportal, die Partnerbedingung, die 90-Tage-Gültigkeit und die einmalige Produktivgebühr aus maesns Connect-Guide, beide geprüft am 13. August 2026. Zertifizierung ist hier SnelStarts Wort für SnelStarts Prozess.
Vier Objekte nehmen einen Schreibvorgang, drei Lesezugriffe kommen auf Anfrage
Über die 30 Systeme dieses Katalogs gezählt, ist SnelStart das einzige, in dem maesn mehr Objekttypen zum Schreiben als zum Lesen freigeschaltet hat: vier Create gegen drei Read. Das klingt nach einem Vorteil und ist überwiegend eine Warnung.
Das ist unser eigener Freischaltstand. Die SnelStart-API schreibt diese Form nicht vor. Buchungsvorschläge, Gutschriften und Dateien sind zum Schreiben freigeschaltet, ihre Lesezugriffe sind als auf Anfrage verfügbar markiert. Kontakte ist heute das einzige Objekt, das auf beiden Seiten freigeschaltet ist. Für drei Ihrer vier Schreibvorgänge gibt es derzeit also keinen Rückweg, und nichts, was Sie senden, lässt sich zurückholen und mit dem vergleichen, was Sie senden wollten, bis diese Lesezugriffe freigeschaltet sind.
- BuchungsvorschlägeAuf Anfrage
- GutschriftenAuf Anfrage
- DateienAuf Anfrage
- KontakteLesbar
Konten, Kontakte, Steuersätze
Konten und Steuersätze sind das, was ein Buchungsvorschlag korrekt benennen muss, die lesbare Seite ist also überwiegend der Kontierungskontext für die schreibbare.
Drei Schreibvorgänge haben keinen Rückweg. Die Antwort auf die Anfrage ist die einzige Bestätigung, die Sie bekommen, und das legt das Gewicht auf die Prüfung der Payload, bevor sie abgeschickt wird.
| Objekt | Lesen | Schreiben |
|---|---|---|
| Buchungsvorschläge | auf Anfrage | ja |
| Gutschriften | auf Anfrage | ja |
| Dateien | auf Anfrage | ja |
| Kontakte | ja | ja |
| Konten | ja | auf Anfrage |
| Steuersätze | ja | nein |
Gezählt aus den erzeugten Coverage-Daten, geprüft am 13. August 2026. Auf Anfrage heißt: standardmäßig nicht freigeschaltet, auf Wunsch aber verfügbar, und das ist die Unterscheidung, auf die es in dieser Tabelle ankommt. Nur Steuersätze Create ist ein klares Nein. Zwei der drei Objekte hier gehören zu den selteneren Fähigkeiten des Katalogs.
Die praktische Folge entscheidet, wohin Ihre Arbeit geht. Auf einem System mit vollem Rückweg können Sie optimistisch schreiben und später abgleichen. Hier ist die Antwort auf die Anfrage die Bestätigung, die Prüfung gehört also vor den Aufruf. Unified Error Handling macht dieses Scheitern in derselben Form lesbar wie bei jedem anderen System. Eine herstellereigene Ablehnung, die Sie erst lesen lernen müssen, bleibt Ihnen erspart.
Ein Buchungsvorschlag nennt seine Steuer zweimal
Das Objekt, das Sie am häufigsten schreiben, trägt auch die strengste Payload-Regel. Ein Buchungsvorschlag führt Steuerinformationen auf Buchungsebene und noch einmal auf jeder einzelnen Zeile, beide sind Pflicht, und die zwei Darstellungen müssen übereinstimmen. Eine Abweichung führt zur Ablehnung; abgeglichen wird nichts.
Das ist interne Buchhaltungslogik, die an der Schnittstelle sichtbar wird. Sie erklärt auch, wofür die lesbare Seite dieses Systems da ist: Konten und Steuersätze sind genau die Referenzdaten, die Sie brauchen, um das Paar korrekt anzugeben. Die drei lesbaren Objekte sind der Kontierungskontext für die vier schreibbaren.
{"tax": { "rate": 21.0, "amount": 21.00 },"lines": [{ "amount": 100.00,"tax": { "rate": 21.0, "amount": 21.00 } }]}
Worauf es hier ankommt, ist die Form, die Feldnamen unterscheiden sich je Payload: die Steuer einmal auf Buchungsebene und einmal je Zeile angeben und beide konsistent halten. Über maesn wird die Doppelung aus einer einzigen normalisierten Struktur erzeugt.
Die Zwei-Ebenen-Regel liest sich sauber, solange jede Zeile Steuer trägt. Kommen Zeilen dazu, die keine tragen, ist dieselbe Angabe auf beiden Ebenen keine Kopie eines Wertes mehr, sondern eine Frage danach, was die Buchungsebene jetzt sagen soll. Diesen Teil der Payload bekommen Teams im ersten Anlauf am häufigsten falsch, es lohnt sich also, einen Testfall dafür zu bauen, bevor Sie produktiv darauf stoßen.
Die doppelte Darstellung und ihr Validierungsverhalten sind in maesns Material zu diesem System dokumentiert, geprüft am 13. August 2026. SnelStarts eigene Referenz liegt hinter einem registrierten Konto und ist auf Niederländisch veröffentlicht, das Muster oben veranschaulicht die Regel; aus der Referenz kopiert ist es nicht.
Welche Objekte und Operationen tatsächlich freigeschaltet sind und welche der 37 als auf Abruf markiert sind, steht Objekt für Objekt auf der Seite zur SnelStart Schnittstelle.
Ein Land ist eine Kennung, und die Liste kann sich ändern
Objekte sind hier auf eine Weise zerstückelt, die Aufrufe kostet. Ein Kontakt trägt keinen Ländercode, er trägt eine Länderkennung, die auf einen eigenen Datensatz zeigt. Von dieser Kennung zu etwas zu kommen, das Sie anzeigen oder speichern können, bedeutet eine weitere Anfrage.
Aus einem Nachschlagevorgang wird eine Design-Entscheidung, weil die Liste nicht fest ist. Länder können angelegt, geändert und gelöscht werden, eine einmal importierte Zuordnung als Konstante zu behandeln veraltet also. Ein Cache ist die richtige Antwort, und er braucht eine Auffrischungsregel.
Das ist der gewöhnliche Fall für Referenzdaten über Buchhaltungssysteme hinweg, und es ist der Grund, warum es überhaupt eine gemeinsame Form gibt. Über das Common Data Model wird die Kennung aufgelöst, bevor das Objekt Sie erreicht, ein Kontakt kommt also mit derselben Länderdarstellung an wie auf jedem anderen verbundenen System.
GET /contacts -> { "countryId": "..." }GET /countries/{id} -> { "code": "NL", ... }# ein Kontakt, zwei Aufrufe, und das zweite# Ergebnis lässt sich nicht dauerhaft cachen
Eine Seite Kontakte auf diesem Weg zu holen ist das klassische N+1: ein Aufruf für die Liste und einer je verschiedenem Land. Zentral aufzulösen und zu cachen ist das, was es beseitigt.
Nichts ruft Sie, und die Testfirma ist die Voreinstellung
Kein Objekt in diesem System trägt ein natives Ereignis. Acht der 30+ verbundenen Systeme senden etwas, dieses gehört nicht dazu, es gibt also kein Abonnement zu registrieren und keine Zustellung zu prüfen. Aktuell zu bleiben ist ein geplanter Lesevorgang über dieselben Filter und dieselbe Seitenaufteilung, die Sie überall sonst verwenden.
Im Ereignismodell erledigt damit die Pull-Hälfte die ganze Arbeit. Ein Pull holt nach einem Ausfall auf, was ein Push nicht tut, und das Intervall legen Sie selbst fest.
Ein Vorbehalt dieses Systems muss genannt werden, bevor Sie irgendetwas einstellen. Solange Sie auf einem Entwicklungsschlüssel arbeiten, lesen Sie die voreingestellte Testfirma, alles also, was Sie an Volumen, Zeitverhalten und Seitengrößen messen, messen Sie gegen Daten, die nicht die Ihres Kunden sind. Nehmen Sie diese Zahlen als Rauchtest und nicht als Ausgangswert.
Was maesn abdeckt, und was bei Ihnen bleibt
Was wir von der Liste nehmen:
- Den Token-Lebenszyklus. Der Austausch, die stündliche Erneuerung und die Speicherung beider Schlüssel je Mandant laufen hinter der Verbindung, Ihr Code hält also einen Konto-Schlüssel und keine Zeitgeber.
- Die Auflösung der Referenzen. Länderkennungen und die anderen zerstückelten Nachschlagevorgänge werden aufgelöst, bevor Objekte Sie erreichen, und genau dort entstünde sonst das N+1.
- Die doppelte Steuer. Eine normalisierte Buchungsstruktur geht hinein, und die zwei Darstellungen, die dieses System verlangt, werden daraus erzeugt, konsistent.
Was bei Ihnen bleibt, und die ersten zwei sind keine Entwicklungsaufgaben:
- Die Partnerfreigabe und den Produktivschlüssel. Antrag und Einreichung laufen auf Ihren Namen, und keine Schnittstelle davor verkürzt die Prüfung, die Kalenderzeit gehört also in Ihren Plan. Allein stehen Sie damit aber nicht: Wir liefern die Callback-Adresse, nach der der Antrag fragt, helfen Ihnen, die Scope-Liste auf das zu kürzen, was Ihre Endpunkte wirklich brauchen, und erzeugen den Verkehr, den die Beobachtungswoche verlangt.
- Das Paket Ihres Kunden. Der Zugang braucht inZicht oder inControle. Das ist eine Frage für Ihr Qualifizierungsgespräch.
- Was ein Schreibvorgang bedeutet. Wir können eine abgelehnte Buchung verständlich machen, und wir können ein Objekt, das sich nicht abrufen lässt, nicht abrufbar machen. Wo es keinen Rückweg gibt, ist die Entscheidung darüber, was Sie auf Ihrer Seite festhalten, Ihre.
Häufige Fragen
Wie schalte ich den Zugang zu SnelStart für eine Integration frei?
Unterstützt SnelStart OAuth?
Was ist die SnelStart-Beobachtungsphase?
Was kostet es, eine SnelStart-Integration produktiv zu setzen?
Warum sieht meine Integration nur eine Firma?
Kann ich einen Buchungsvorschlag zurücklesen, den ich in SnelStart angelegt habe?
Warum scheitert mein Buchungsvorschlag an der Validierung?
Warum liefert ein SnelStart-Kontakt eine Länderkennung und keinen Ländercode?

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
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. 2026Einmal bauen, auf der Unified API.
SnelStart gibt frei, bevor es einen Produktivschlüssel ausstellt, BuchhaltungsButler begrenzt auf zehn Uploads je Minute und Xero zählt, was Sie lesen. Bauen Sie gegen eine Schnittstelle, und jedes davon wird zu einem dokumentierten Unterschied, den Sie einmal lesen.