maesn
Für Entwickler

Visma eAccounting anbinden: Drei Markennamen, Token für sechzig Minuten und Seiten zu fünfzig Datensätzen

Visma eAccounting wird in Norwegen und den Niederlanden als eAccounting verkauft und in Schweden als Spiris, und das Entwicklerportal des Herstellers führt den neuen Namen bereits. Die Schnittstelle nicht: jeder Scope, jeder Host und jeder Pfad sagt weiterhin ea. Was die Trennung kostet, sind drei Support-Adressen auf zwei Domains.

Lennart Svensson, CTO und Mitgründer bei Maesn
Lennart Svensson
CTO und Mitgründer · · Aktualisiert
Illustration zu Visma eAccounting anbinden: drei Namen, ein Zielsystem
Der Kontext

Drei Markennamen, und ein Zielsystem darunter

Die erste Frage zu diesem System ist eine nach dem Namen: Welches Produkt sehen Sie sich eigentlich an. Dieselbe Software wird in jedem ihrer Märkte unter einem anderen Namen verkauft, und die Dokumentation ist gerade dabei, den Namen zu wechseln, den sie benutzt.

Die Integrationsdokumentation von maesn beantwortet das in einer Zeile, direkt unter der Kennung des Zielsystems: „Beachten Sie, dass das System in den Niederlanden und in Norwegen unter dem Markennamen eAccounting bekannt ist und in Schweden als Spiris (früher SPCS).“

Der Hersteller ist weiter gegangen. Seine Entwicklerdokumentation heißt inzwischen Spiris/eAccounting, die Client-ID, die Sie erhalten, wird beschrieben als „bei der Registrierung für das Spiris-Partnerprogramm bereitgestellt“, das Produkt wird durchgehend als Bookkeeping & Invoicing/eAccounting geschrieben, und schwedische Partner werden unter einer Adresse auf der Spiris-Domain beantwortet.

Was sich nicht bewegt hat, ist alles, was Sie tippen. Die Scopes heißen ea:api, ea:sales, ea:accounting und ea:purchase, der Host ist eaccountingapi.vismaonline.com, die Pfade sind /v2/…, und das Zielsystem über maesn heißt vismaeaccounting. Eine Umbenennung über der Schnittstelle und ein stabiler Stand darunter ist die brauchbare Art, sich dieses System zu merken.

Welche Objekte diese Verbindung heute erreicht und welche auf Anfrage bereitstehen, steht Objekt für Objekt auf der Seite zur Visma eAccounting Schnittstelle. Sie ist schmaler, als die Marktabdeckung vermuten lässt.

Was sich je Markt ändertEin Zielsystem
Schweden
Spiris
Hieß früher SPCS
Norwegen
eAccounting
Der Testzugang liegt auf der .no-Domain
Niederlande
eAccounting
Eigene Partneradresse
Was sich mit dem Namen nicht ändert
  • TARGET_SYSTEM: vismaeaccounting
  • ea:api
  • eaccountingapi.vismaonline.com

Der Name ist eine Vertriebsfrage. Der Bau sieht eine Schnittstelle. Eine Verbindung, die für einen norwegischen Kunden geschrieben wurde, erreicht einen schwedischen bereits. Was sich je Markt unterscheidet, ist die Sandbox, und dort brauchen Sie je ein Konto.

Was sich je Markt ändert und was sich mit dem Namen nicht ändert. Markennamen aus der Integrationsdokumentation von maesn und aus Vismas Entwicklerportal, geprüft am 14. August 2026.

Der Satz zu den Markennamen und die Kennung des Zielsystems aus dem Anbindungsleitfaden. Programmname, Produktbenennung und die Support-Adressen aus Vismas Entwickler-Startseite, geprüft am 14. August 2026.

Das Problem

Eine Schnittstelle, drei Märkte und drei getrennte Partnerkontakte

Drei Märkte auf einer Schnittstelle sind das kommerzielle Argument dieses Systems, und es trägt. Was dabei nicht gesagt wird: Die Märkte werden darunter getrennt geführt, und das zeigt sich beim ersten Mal, wenn Sie einen Partnerkontakt brauchen.

Die Supportstruktur des Herstellers bildet die Trennung ab, und sie ist das deutlichste Signal dafür, wie getrennt diese Märkte unter einer Schnittstelle laufen:

Partner-Support, wie im Entwicklerportal veröffentlicht, 14. August 2026
MarktMarkePartner-Support
SchwedenSpirisEigene Adresse, eigene Domain
NorwegeneAccountingEigene Adresse, Visma-Domain
NiederlandeeAccountingEigene Adresse, Visma-Domain

Drei getrennte Kontakte auf zwei Domains für eine Schnittstelle. Lesen Sie das als Planungsgröße und nicht als Urteil: Es sagt Ihnen, an welche Tür Sie je Markt klopfen, und dass es nicht dieselbe Tür ist.

Das größere Muster ist eine Eigenschaft der Gruppe. Visma kauft Software und lässt sie unter ihrem eigenen Namen weiterlaufen, weshalb ein einzelnes Herstellerlogo in einer Präsentation darunter immer noch eine eigene Integration je Produkt bedeuten kann.

Wenn Länderabdeckung das Argument ist, trägt eine Verbindung drei Märkte
Schweden, Norwegen und die Niederlande sind drei Märkte auf einer einzigen Verbindung, und der Markenname ändert sich, ohne dass sich die Schnittstelle darunter ändert.

Support-Adressen und die Marktliste aus Vismas Entwickler-Startseite, geprüft am 14. August 2026. Die Sandbox-Regionen aus den Sandbox-FAQ.

So funktioniert es

Die Scopes werden vereinbart, bevor Ihr erster Kunde sich verbindet

Die Authentifizierung ist OAuth 2.0 mit dem Authorization Code Flow, und damit ist sie die vertraute Hälfte dieses Systems. Die unvertraute Hälfte ist, dass die Scope-Liste zweimal festgelegt wird, und das zweite Mal in jeder Autorisierungsanfrage, die Sie senden.

Zwei Scopes sind Pflicht. ea:api gewährt überhaupt Zugang zur Schnittstelle, und offline_access sorgt dafür, dass ein Refresh-Token zurückkommt. Alles Weitere geht je Ressourcenbereich, jeweils mit einer Nur-Lese-Variante, und das heißt: Die Grenze dessen, was Ihre Integration je erreichen kann, wird gezogen, bevor Ihr erster Kunde einen Zustimmungsdialog sieht.

Die Scope-Liste, wie im Entwicklerportal veröffentlicht
ScopeZugangErreicht
ea:apiPflichtDie Schnittstelle selbst
offline_accessPflichtEin Refresh-Token
ea:salesOptionalVertriebsressourcen, vollständig
ea:sales_readonlyOptionalVertriebsressourcen, lesend
ea:accountingOptionalBuchhaltungsressourcen, vollständig
ea:purchaseOptionalEinkaufsressourcen, vollständig

Auch ea:accounting und ea:purchase haben _readonly-Varianten, nach demselben Muster wie sales. Und ein Scope gehört zu einem anderen Produkt: vls:api erreicht Vismas Lohnschnittstelle, die sich denselben Identity Server teilt, sodass ein Token beide bedienen kann, solange die Scopes autorisiert wurden.

Zwei Anfrageparameter empfiehlt der Hersteller ungewöhnlich nachdrücklich, und beide gibt es, damit der Ablauf nicht die falsche Firma verbindet:

  • prompt=select_account erzwingt die Firmenauswahl, statt die bereits in Visma Online gewählte zu übernehmen. Die Dokumentation nennt ihn „dringend empfohlen“ und sagt, ein Weglassen „kann zu automatischen oder unvorhersehbaren Anmeldungen mit einer bereits ausgewählten Firma führen“.
  • acr_values filtert die Auswahl auf Firmen, die tatsächlich Zugang zu diesem Produkt haben, und hält einen Kunden davon ab, ein fremdes Visma-Abonnement zu wählen.
Die Autorisierungsanfrage, mit beiden empfohlenen ParameternHTTP
GET https://identity.vismaonline.com/connect/authorize
?client_id=<client_id>
&redirect_uri=<redirect_uri>
&scope=ea:api%20offline_access%20ea:sales
&state=<state>
&response_type=code
&prompt=select_account
&acr_values=service:44643EB1-...
 
# Der Code ist einmal verwendbar und 5 Minuten gültig.
# Fragmente (#) sind in redirect_uri nicht erlaubt.

Mehrere Scopes werden mit %20 oder + getrennt. Der Token-Tausch authentifiziert sich mit Basic base64(client_id:client_secret) und nicht über ein Feld im Rumpf.

Die praktische Folge dessen, dass Scopes vorab erklärt werden, ist eine Produktfrage und keine Entwicklungsfrage. Sie später zu erweitern heißt, zu jedem verbundenen Kunden für eine neue Zustimmung zurückzugehen, also gehört das, was Ihr Produkt in einem Jahr brauchen könnte, in das Gespräch, bevor der erste Kunde sich verbindet.

Über maesn wird der Scope-Satz einmal mit den Zugangsdaten eingereicht und auf jede Autorisierungsanfrage angewendet, und das ist dieselbe Form, die Unified Authentication jedem anderen System gibt.

Scope-Tabelle, die zwei Parameter, die Gültigkeit des Codes von fünf Minuten, die Fragment-Beschränkung und der geteilte Identity Server aus Vismas Authentifizierungsleitfaden, geprüft am 14. August 2026. Die acr_values-Kennung ist hier abgekürzt; der vollständige Wert steht auf jener Seite.

Das Problem

Sechzig Minuten, zwei Jahre und eine Passwortänderung

Drei Zahlen beschreiben den gesamten Token-Lebenszyklus hier, und die dritte ist der Grund, aus dem Integrationen auf diesem System aufhören zu arbeiten, ohne dass jemand etwas ausgeliefert hätte.

Das Access-Token läuft 60 Minuten nach seiner Ausgabe ab, was die Token-Antwort als expires_in: 3600 angibt. Erneuert wird mit demselben Aufruf und grant_type=refresh_token, und die Antwort hat dieselbe Form, sodass eine Erneuerung neben dem neuen Access-Token auch ein neues Refresh-Token zurückgibt.

Das Refresh-Token selbst ist ab Ausgabe zwei Jahre gültig. Dann kommt die Ausnahme, in den Worten des Herstellers: „Das Refresh-Token bleibt ab dem Tag seiner Ausgabe zwei Jahre gültig. Beachten Sie jedoch, dass das Refresh-Token ungültig wird, wenn der Nutzer sein Passwort ändert.“

Zwei Dinge folgen daraus, und beim zweiten sitzt der Aufwand. Eine Passwortänderung ist in einem kleinen Unternehmen ein gewöhnliches Ereignis, also ist das ein normaler Zustand, für den man entwirft. Und die Dokumentation beschreibt keine Benachrichtigung dafür, also ist das erste Signal, das Ihr Code bekommt, ein 401 beim nächsten Aufruf, zu welcher Stunde auch immer Ihr Scheduler gerade läuft.

Damit wird die erneute Autorisierung eine Produktfläche und kein Fehlerzweig. Irgendetwas in Ihrer Oberfläche muss dem richtigen Kunden sagen können, dass diese Verbindung neu verbunden werden muss, und genau für diesen Zustand gibt es ein Fehlermodell, das ihn einheitlich sichtbar macht.

Token-Laufzeiten, und was sie vorzeitig beendet
TokenGültig fürEndet früher, wenn
Access-Token60 Minutennichts weiter nötig
Refresh-TokenZwei Jahre ab Ausgabeder Nutzer sein Passwort ändert
Authorization Code5 Minuten, einmal verwendbarer einmal eingetauscht wurde

Es gibt außerdem einen Endpunkt zum Widerruf, der eine Verbindung von Ihrer Seite aus ausdrücklich beendet: POST /connect/revocation mit dem Token und einem optionalen token_type_hint, authentifiziert wie der Token-Tausch. Ein erfolgreicher Aufruf gibt 200 mit leerem Rumpf zurück.

Eine Passwortänderung ist kein Fehler, sie ist ein Zustand
Nichts in der Dokumentation kündigt sie an, und nichts in der Antwort erklärt sie. Ihr Produkt erfährt davon beim nächsten geplanten Aufruf, also braucht die Verbindung einen Zustand, der „verbinde mich neu“ bedeutet.

Token-Laufzeiten, die Ausnahme bei Passwortänderung, der Erneuerungsaufruf und der Widerrufs-Endpunkt aus Vismas Authentifizierungsleitfaden, geprüft am 14. August 2026. Jene Seite dokumentiert keinen Benachrichtigungsmechanismus für die Entwertung, was eine Lücke in der Dokumentation ist und keine Aussage, dass es keinen gibt.

So funktioniert es

Fünfzig Datensätze als Vorgabe, und die Antwort zählt den Rest

Sammlungs-Endpunkte geben 50 Objekte je Seite zurück, solange Sie nicht mehr anfordern, und das Maximum ist 1.000. Erhöht wird mit $pagesize, durch die Seiten bewegt man sich mit $page, oder Sie folgen dem Link-Antwortheader, der die nächste und die letzte Seite trägt.

Der Teil, der entscheidet, ob ein Abgleich korrekt ist, ist der Umschlag. Eine paginierte Antwort kommt als zwei Felder, ein Meta-Objekt und ein Data-Array, und Meta meldet, wie viel es insgesamt gibt.

Der Umschlag einer paginierten Antwort, aus dem Beispiel des HerstellersJSON
{
"Meta": {
"CurrentPage": 1,
"PageSize": 50,
"TotalNumberOfPages": 22,
"TotalNumberOfResults": 1100,
"ServerTimeUtc": "2018-03-05T15:14:04Z"
},
"Data": [ ... ]
}

Fünfzig Datensätze in der Hand und 1.100 in der Sammlung, genannt in derselben Antwort. Ein Abgleich, der hier aufhört, ist ein Client, der Meta nicht gelesen hat.

Der Umschlag einer paginierten AntwortBeispiel des Herstellers
Meta
CurrentPage
1
PageSize
50
TotalNumberOfPages
22
TotalNumberOfResults
1.100
ServerTimeUtc
Zeitstempel
Data: 50 Objekte

Die erste Antwort sagt Ihnen bereits, dass sie eine von zweiundzwanzig ist. Ein Abgleich, der hier aufhört, gibt 50 von 1.100 Datensätzen zurück und ein 200, und die zwei Felder, die das gefangen hätten, lagen die ganze Zeit in der Antwort.

Die zwei Felder, die aus einem unvollständigen Lesevorgang einen erkennbaren machen, mit den Zahlen des Herstellers: 50 Datensätze zurückgegeben, 22 Seiten, 1.100 Ergebnisse.

Das Filtern ist die andere Hälfte eines geplanten Lesevorgangs, und es ist oData v4 mit einem $filter-Parameter und keine eigene Syntax. Die Operatoren sind der gewöhnliche Satz, Zeichenketten werden ohne Rücksicht auf Groß- und Kleinschreibung verglichen und müssen in Anführungszeichen stehen, und Datumsangaben haben ein festes Format.

Für einen Delta-Abgleich ist das entscheidende Feld ChangedUtc, und der Hersteller führt es als Beispiel für einen Datumsfilter, was es zum natürlichen Gegenstück der Paginierung darüber macht: fragen, was sich bewegt hat, und dann durch die Seiten laufen, bis CurrentPage bei TotalNumberOfPages ankommt.

Ein Delta-Lesevorgang, gefiltert und paginiertHTTP
GET /v2/articles
?$filter=ChangedUtc gt 2026-08-01T00:00:00.00Z
&$page=1
&$pagesize=1000
 
# Operatoren: gt lt ge le eq ne
# startswith() endswith() contains() length()
# Helfer: year() month() day() hour() minute() second()
# Zeichenketten stehen in einfachen Anführungszeichen, Zahlen nicht.

Prädikate werden mit and und or verknüpft. Das dokumentierte Datumsformat ist yyyy-MM-ddTHH-mm-ss-FFZ.

Über maesn kommen beide Hälften in der Form an, die jedes andere verbundene System benutzt, und genau das heißt ein Weg, zu filtern und zu paginieren in der Praxis: dieselbe Abfrage gegen ein System, das über einen Cursor paginiert, über eine Seitenzahl oder in Schritten von fünfzig Datensätzen.

Seitengrößen, der Link-Header, die Meta-Felder und die Beispielzahlen aus Vismas Paginierungsleitfaden. Operatoren, das Datumsformat und ChangedUtc aus seinem Filterleitfaden. Beide geprüft am 14. August 2026.

Das Problem

Sechshundert Anfragen pro Minute, gezählt je Endpunkt

Die Ratenbegrenzung ist eine Zahl mit einer ungewöhnlichen Einheit: 600 Anfragen pro Minute, und „die Begrenzung wird je Client und Endpunkt/URL geführt“.

Je Endpunkt ändert, wie ein Erstabgleich sich verhält. Ein Worker, der Kunden, Lieferanten und Artikel liest, teilt sich kein Budget über die drei, also bringt Parallelisieren über Ressourcen hinweg Durchsatz, den Parallelisieren innerhalb einer Ressource nicht bringt. Es heißt auch, dass ein einzelner heißgelaufener Endpunkt gedrosselt werden kann, während der Rest Ihrer Integration unberührt bleibt, und das ist in einem Log schwerer zu sehen als eine globale Begrenzung.

Ein Überschreiten gibt 429 zurück, mit einem Rumpf, der das Zeitfenster und die Wartezeit in klaren Worten nennt:

Womit die Begrenzung antwortetJSON
HTTP/1.1 429 Too Many Requests
 
{
"ErrorCode": 4010,
"DeveloperErrorMessage": "API calls quota exceeded! maximum
admitted 600 per Minute. Try again in 55 seconds.",
"ErrorId": "3fa7da17-eeb2-48f6-997d-0be158f4cba4"
}

Jede erfolglose Anfrage trägt eine ErrorId, und der Hersteller bittet beim Support um sie und um Ihre Client-ID. Das Client Secret ist nie Teil dieses Gesprächs.

Es lohnt sich, das mit dem anderen Visma-Produkt im Katalog zu vergleichen, denn die beiden messen auf Achsen, die nichts gemeinsam haben. Die Visma e-conomic Schnittstelle führt einen Token-Bucket je Kundenvereinbarung, in dem verschiedene Endpunkte verschieden viel kosten, ihr Budget hängt also davon ab, welche Aufrufe Sie machen. Dieses hier zählt Aufrufe flach und teilt die Zählung je Endpunkt.

Ein Hersteller, zwei Produkte, zwei Modelle und kein gemeinsames Vokabular dazwischen. Das ist in dieser Gruppe der Normalfall, und es ist der Grund, aus dem eine Taktstrategie es wert ist, einmal auf einer Ebene darüber geschrieben zu werden.

Die Begrenzung, ihre Einheit und der 429-Rumpf aus Vismas Leitfaden zur Ratenbegrenzung, geprüft am 14. August 2026. Die Konvention zur Fehler-ID aus seiner Entwickler-Startseite.

Das Problem

Eine Firma je E-Mail-Adresse, auf derselben URL wie die Produktion

Dieses System zu testen hat zwei Eigenschaften, die leicht zu übersehen und spät teuer zu entdecken sind. Die erste ist, dass die Sandbox keine eigene Adresse hat.

In den Worten des Herstellers: „Es sind dieselben URLs wie in der Produktion, aber mit einem IdentityServer-Client und einem Visma-Online-Konto, das einen bestimmten Sandbox-Typ hat.“ Nichts in einer Basis-URL und nichts in einem Hostnamen sagt Ihnen, mit welcher Umgebung Sie sprechen. Nur die Zugangsdaten tun das.

Die zwei Richtungen sind auch nicht symmetrisch: Eine Produktions-Client-ID kann eine Sandbox-Firma erreichen, während eine Sandbox-Client-ID nie eine Produktionsfirma erreicht.

Die zweite ist der Umfang. Eine Sandbox-Firma ist bei der Anlage an eine Region gebunden, die Region lässt sich danach nicht mehr ändern, und „Sie können maximal 1 Firma je E-Mail-Adresse haben“. Einen zweiten Markt zu testen heißt deshalb, ein zweites Konto unter einer anderen E-Mail-Adresse anzulegen. Der Hersteller merkt an, dass er daran arbeitet, das aufzuheben, womit es eine aktuelle Einschränkung ist und keine Festlegung.

Woran eine Sandbox-Firma gebunden ist, und was ihr fehlt
EigenschaftZustand
RegionBei der Anlage gewählt, nicht änderbar
Firmen je E-Mail-AdresseEine
Verfügbare RegionenSchweden, Norwegen, Finnland, die Niederlande
BeispieldatenRegionsspezifisch, oder eigene ergänzen
ZurücksetzenArchiviert alles außer dem Firmennamen
Interne DienstePayslip, AutoPay, AutoReport und AutoInvoice sind nachgebildet oder fehlen

Die letzte Zeile verdient einen Satz, denn der Hersteller ist offen über die Folge: Da einige interne Integrationen nachgebildet sind, „stoßen Sie womöglich auf seltsame Fehler, wenn Sie versuchen, auf diese Dienste zuzugreifen“. Ein Fehlschlag in der Sandbox ist deshalb nicht automatisch ein Fehlschlag in Ihrem Code.

Zwei Schritte in diesem Ablauf brauchen den Hersteller, und beide gehören in einen Plan, der vor der Startwoche geschrieben wird. Der Gang in die Produktion verlangt, Vismas Schnittstellen-Support zu kontaktieren. Und die Rückruf-URL wird vom Hersteller gesetzt und nicht von Ihnen: Die Dokumentation von maesn sagt ausdrücklich, dass „Sie Visma kontaktieren müssen, um die URL auf die richtige zu ändern“.

Was maesn hier ändert, ist die Sandbox selbst und nicht der Papierkram. Unsere Sandbox-Übersicht führt dieses System mit einer kostenlosen Testmöglichkeit und als von maesn bereitgestellt, sodass eine Testumgebung bereitsteht, ohne je Region eine eigene Visma-Registrierung. Die Regionen gibt es weiter; sie hören nur auf, getrennte Registrierungsprojekte zu sein.

Die geteilten URLs und die nachgebildeten Dienste aus Vismas Umgebungsseite, die Ein-Firma-Regel, die Regionsbindung, das Verhalten beim Zurücksetzen und die Asymmetrie der Client-ID aus den Sandbox-FAQ, der Produktionszugang aus der Startseite, alles geprüft am 14. August 2026. Der Rückruf-Schritt aus dem Anbindungsleitfaden und die Verfügbarkeit der Sandbox aus der Sandbox-Übersicht.

Wo unser Teil endet

Was maesn von der Liste nimmt, und was bei Ihnen bleibt

Alles bisher beschreibt, was das System tut. Dies ist die Aufteilung: die Teile, die auf dieser Ebene enden, und die Entscheidungen, die Ihre bleiben, weil nur Sie Ihr Produkt kennen.

Was maesn von der Liste nimmt:

  • Die Scope-Erklärung und die zwei Parameter. Einmal mit Ihren Zugangsdaten eingereicht und auf jede Autorisierungsanfrage angewendet.
  • Die Erneuerung, je Mandant. Token werden auf dieser Seite erneuert, der Lebenszyklus ist also nichts, was Ihr Produkt je Kunde einplant oder speichert.
  • Das Paginieren jeder Sammlung. Der Umschlag wird für Sie gelesen, sodass die vollständige Menge ankommt und nicht die ersten fünfzig.
  • Drei Markennamen, reduziert auf eine Verbindung. Welchen Namen der Kunde auch benutzt, Ihr Code spricht ein Zielsystem an, abgebildet in ein Common Data Model mit jedem anderen System.

Was bei Ihnen bleibt:

  • Die Scope-Entscheidung. Was Ihr Produkt in einem Jahr brauchen könnte, ist jetzt günstiger beantragt als nach der Zustimmung jedes Kunden.
  • Das Abfrageintervall. Wie aktuell Ihr Produkt sein muss, ist Ihre Wahl, und Sie haben 600 Anfragen pro Minute je Endpunkt dafür.
  • Welche Objekte freigeschaltet sein müssen. Benennen Sie sie aus Ihrem Anwendungsfall, und führen Sie dieses Gespräch vor einer Zusage an einen Kunden.
FAQ

Häufige Fragen

Brauche ich eine eigene Integration für Spiris?

Nein. Das System ist in den Niederlanden und in Norwegen als eAccounting bekannt und in Schweden als Spiris, früher SPCS, und alle drei Namen sitzen auf einem Zielsystem. Eine Verbindung, die für einen norwegischen Kunden gebaut wurde, erreicht einen schwedischen bereits. Zu klären lohnt sich die Ebene der Endpunkte: Die Verfügbarkeit ist nicht in jedem Markt identisch, nennen Sie also den Markt zusammen mit den Objekten, die Ihr Anwendungsfall braucht.

Welche Scopes braucht Visma eAccounting?

Zwei sind Pflicht: ea:api für den Zugang überhaupt und offline_access, um ein Refresh-Token zu erhalten. Der Rest geht nach Bereich, jeweils mit einer Nur-Lese-Variante: ea:sales, ea:accounting und ea:purchase. Die Scopes müssen sowohl in der Autorisierungsanfrage als auch in der App-Registrierung stehen, und wer sie später erweitert, lässt jeden verbundenen Kunden erneut zustimmen.

Wie lange gelten Visma-eAccounting-Token?

Das Access-Token läuft 60 Minuten nach seiner Ausgabe ab. Das Refresh-Token ist ab Ausgabe zwei Jahre gültig, mit einer dokumentierten Ausnahme: Ändert der Nutzer sein Passwort, wird es ungültig. Nichts in der Dokumentation beschreibt eine Benachrichtigung dafür, also ist das erste Signal ein 401.

Warum gibt meine Visma-eAccounting-Anfrage nur 50 Datensätze zurück?

Weil 50 die dokumentierte Seitengröße ist und 1.000 das Maximum. Erhöht wird mit $pagesize, durch die Seiten läuft man mit $page, oder man folgt dem Link-Antwortheader, der die nächste und die letzte Seite trägt. Der Antwortumschlag meldet TotalNumberOfPages und TotalNumberOfResults für die gesamte Menge.

Wie sind die Ratenbegrenzungen von Visma eAccounting?

600 Anfragen pro Minute, geführt je Client und je Endpunkt und nicht als ein Budget für Ihre Anwendung. Ein Überschreiten gibt 429 mit dem Fehlercode 4010 zurück und eine Entwicklermeldung, die die Sekunden bis zum nächsten Versuch nennt, und die Antwort normalisiert sich, sobald Sie wieder unter der Grenze sind.

Kann ich jeden Visma-eAccounting-Markt mit einem Visma-Konto testen?

Nein. Eine Sandbox-Firma ist bei der Anlage an eine Region gebunden, und die Region lässt sich nicht ändern, und jedes Konto hält genau eine Firma, ein zweiter Markt heißt also ein zweites Konto unter einer anderen E-Mail-Adresse. Eine Produktions-Client-ID erreicht eine Sandbox-Firma, eine Sandbox-Client-ID erreicht die Produktion aber nie.

Einmal bauen, auf der Unified API.

Visma eAccounting zählt 600 Anfragen pro Minute je Endpunkt und nennt sich selbst drei Dinge, Visma e-conomic bepreist jeden Aufruf und füllt je Vereinbarung nach, und beide gehören demselben Hersteller. Bauen Sie gegen eine Schnittstelle, und jeder dieser Unterschiede wird zu einer Zeile in einer Tabelle, die man einmal liest.