Spiris anbinden: ROT, RUT und wer die Verbindung hält
Spiris ist Visma eAccounting unter seinem schwedischen Namen, und die Umbenennung im Mai 2025 hat die Dokumentation bewegt, nicht die Schnittstelle. Auf dieser gemeinsamen Fläche kommen in Schweden drei Dinge dazu: ein Buchhaltungsbüro, das meist die Verbindung hält, eine Kontierung, die am Artikel hängt, und ein Abzugsmodell, das über drei Ebenen einer Rechnung verteilt ist.


Vier Namen im Umlauf, eine Schnittstelle darunter
Das erste Problem einer schwedischen Anbindung ist meist eines mit Namen, und das Nützliche an diesem hier ist, dass der Hersteller es datiert hat. Die Änderung ist ein Changelog-Eintrag vom 28. Mai 2025 und kein Gerücht, das ein Interessent weitererzählt.
Zwei Dinge haben sich in diesem Eintrag geändert. Aus der Firma Visma Spcs wurde Spiris, und in Schweden wurde aus dem Produkt Visma eEkonomi Bokföring & Fakturering, auf Englisch Bookkeeping & Invoicing. In jedem anderen Markt blieb der Produktname eAccounting. Der Hersteller schließt den Eintrag mit dem Teil, der für eine bestehende Anbindung zählt: „Unsere API unterstützt Integrationen über Ländergrenzen hinweg weiterhin, und diese Namensänderungen wirken sich nicht auf Ihre bestehenden Setups aus.“
Ein schwedischer Kunde sagt also Spiris, Bokföring & Fakturering, eEkonomi oder Spcs, und alle vier führen auf dasselbe Zielsystem. Das Entwicklerportal trägt den Namen Spiris inzwischen in seiner eigenen Navigation, die Schnittstelle darunter nicht: der Host ist weiterhin eaccountingapi.vismaonline.com, die Pfade sind weiterhin /v2/… und das Zielsystem über maesn heißt weiterhin vismaeaccounting.
Welche Objekte diese Verbindung erreicht und welche davon auf Anfrage stehen, steht Objekt für Objekt auf der Seite zur Spiris-Schnittstelle. Die Marktaufteilung, die Scopes, die Token-Laufzeiten, die Paginierung und die Rate Limits sind auf jeder Marke gleich und einmal auf der Seite zur Visma eAccounting Schnittstelle und in ihrem Leitfaden beschrieben. Alles unterhalb dieser Linie gilt nur in Schweden.
| Vorher | Nachher | |
|---|---|---|
| Firma | Visma Spcs | Spiris |
| Produkt in Schweden | Visma eEkonomi | Bokföring & Fakturering |
| Produkt anderswo | eAccounting | eAccounting |
| Host | eaccountingapi.vismaonline.com | unverändert |
| Scope-Präfix | ea: | unverändert |
| Zielsystem bei maesn | vismaeaccounting | unverändert |
Die Umbenennung, beide Produktnamen und der Satz über bestehende Setups aus Vismas Changelog-Eintrag vom 28. Mai 2025. Host, Pfade und die Benennung im Portal aus der Startseite für Entwickler, geprüft am 20. August 2026. Die Kennung des Zielsystems aus dem Connect-Leitfaden.
Meist hält das Buchhaltungsbüro die Verbindung
In Schweden ist die Partei, die sich authentifiziert, häufig nicht Ihr Kunde. Kleine Firmen arbeiten mit einem Buchhaltungsbüro, und der Hersteller hält diese Annahme in seiner eigenen Empfehlung fest, Sie müssen das also nicht vor Ort wissen.
Der Grund ist der Plan. In den Worten des Herstellers hat „das Buchhaltungsbüro immer Bookkeeping & Invoicing+, während der Kunde jede der anderen Varianten haben kann“, und die Empfehlung folgt daraus: Um alle Endpunkte zu erreichen, sollte ein Benutzer „aus dem Buchhaltungsbüro, der auch Zugriff auf Bookkeeping & Invoicing des Endkunden hat, die Authentifizierung durchführen“.
Das hat eine Folge für Ihr Produkt, bevor es eine für Ihren Code hat. Die Person, die den Zustimmungsdialog durchklickt, kann eine dritte Partei sein, die Dutzende Ihrer Kunden betreut. Was Ihre Oberfläche beim Verbinden sagt, liest also das Buchhaltungsbüro und nicht das Unternehmen, dessen Daten es sind.
Und es kommt mit einer Falle, die eine Verbindung zur falschen Firma erzeugt statt einer Fehlermeldung. Der Benutzer des Büros muss die richtige Firma im Wähler auswählen, und der Wähler kann fehlen: Ist für ein Büro in Spiris eine Standardfirma gesetzt, wird er übergangen. Das dokumentierte Mittel dagegen ist, prompt=select_account in die Autorisierungsanfrage zu senden, was der Hersteller ohnehin empfiehlt, weil ein Weglassen „zu automatischen oder unvorhersehbaren Anmeldungen mit einer bereits ausgewählten Firma führen kann“.
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-...# prompt=select_account den Firmenwähler immer zeigen# prompt=login den Benutzer zur Anmeldung zwingen# beides zusammen: prompt=login+select_account
acr_values schränkt den Wähler auf Firmen ein, die tatsächlich Zugriff auf das Produkt haben, und das ist die zweite Hälfte davon, nicht die falsche zu verbinden. Die vollständige Kennung steht auf der Authentifizierungsseite des Herstellers.
Über maesn ist das ein Ablauf für jedes System: Unified Authentication übergibt den Scope-Satz mit den Zugangsdaten, sendet diese Parameter bei jeder Autorisierungsanfrage und gibt einen Kontoschlüssel für die Verbindung zurück, gleich wer sie hergestellt hat.
Die Asymmetrie der Pläne, die Empfehlung und der übergangene Wähler aus Vismas FAQ zu Bookkeeping & Invoicing. Die zwei Parameter, ihr Wortlaut und die Syntax für die Kombination aus dem Authentifizierungsleitfaden. Beides geprüft am 20. August 2026.
Die Kontierung kommt mit dem Artikel, nicht mit der Rechnung
Die zweite schwedische Überraschung ist eine Einschränkung, und zwar die Sorte, die billiger zu wissen als zu entdecken ist. Sie können von außerhalb des Produkts nicht entscheiden, auf welche Konten eine Rechnung bucht.
Der Hersteller beantwortet es als klares Nein: „Alle Artikel haben vordefinierte Kontierungen, die bestimmen, welche Konten auf der Rechnung verwendet werden. Diese können nur direkt in Bookkeeping & Invoicing hinzugefügt oder geändert werden, nicht über die API.“ Die Kontierung ist eine Eigenschaft des Artikels, erreichbar als CodingId und gelistet unter /v2/articleaccountcodings.
Der Hebel, den Sie haben, ist also die Artikelauswahl. Eine Zeile referenziert einen Artikel, der Artikel trägt die Kontierung, und die Kontierung entscheidet über die Konten. Eine schwedische Rechnung zu bauen heißt damit, den eigenen Produktkatalog auf Artikel abzubilden, die in diesem Mandanten schon vorhanden sind, statt Konten zusammen mit den Beträgen zu senden.
Eine Regel folgt aus derselben Seite und ist beim ersten Schreiben leicht zu übersehen: Eine Rechnung braucht mindestens eine Zeile mit einer Artikel-ID, um gültig zu sein. Zeilen ohne eine solche sind Textzeilen, gekennzeichnet durch IsTextRow, und eine Rechnung, die nur daraus besteht, ist keine Rechnung.
Der Kontenrahmen selbst wird je Geschäftsjahr adressiert, unter /v2/accounts/{fiscalyearId}, mit einem getrennten Standardsatz unter /v2/accounts/standardaccounts. Einzelne Mandanten benennen Konten um, legen welche an und entfernen welche, es ist also eine Referenz je Kunde und keine nationale Konstante, die Sie im Code halten können.
| Entscheidung | Liegt auf | Von außen setzbar |
|---|---|---|
| Auf welche Konten gebucht wird | Der Kontierung des Artikels | Nein |
| Welchen Artikel eine Zeile nutzt | Der Rechnungszeile | Ja |
| Ob eine Zeile nur Text ist | IsTextRow an der Zeile | Ja |
| Welche Konten es überhaupt gibt | Dem Geschäftsjahr des Mandanten | Nein |
| Zuordnung zur Kostenstelle | Bis zu drei IDs an der Zeile | Ja |
Kostenstellen sind die eine Stelle, an der dieses System großzügiger ist, als es zunächst aussieht. Ein Mandant kann bis zu drei Gruppen von Kostenstellen führen, und eine Zeile trägt für jede davon eine ID, eine Zuordnung, die Ihr Produkt ohnehin führt, hat also einen Platz ohne eigenes Feld.
Die Antwort zur Kontierung, die Pflicht zur Artikel-ID und die drei Kostenstellengruppen aus Vismas FAQ zu Bookkeeping & Invoicing. CodingId, IsTextRow, die IDs der Kostenstellen und die Konten-Endpunkte aus der Schnittstellenreferenz, beides geprüft am 20. August 2026.
Ein Umsatzsteuerschlüssel führt auf bis zu drei Konten
Die Umsatzsteuer ist auf diesem System eine Referenz und keine Zahl, und der Grund ist an der Form des Objekts zu sehen. Ein Umsatzsteuerschlüssel trägt einen Code, eine Beschreibung und einen Satz, und er trägt die Konten, auf die dieser Satz bucht: AccountNumber1, AccountNumber2 und AccountNumber3.
Deshalb ist derselbe Prozentsatz zwischen zwei schwedischen Mandanten nicht austauschbar. Der Satz kann übereinstimmen, während die Konten dahinter sich unterscheiden, ein Umsatzsteuerschlüssel ist also eine Referenz je Kunde, zu lesen unter /v2/vatcodes oder unter /v2/vatcodesrates, wenn Sie die Sätze daneben haben wollen.
Zwei Schalter auf Kundenebene ändern die Berechnung, bevor es eine Zeile tut. DeliveryBasedVat macht die Lieferadresse zur Grundlage für Umsatzsteuer und OSS, womit Lieferort, Ländercode und Postleitzahl zur Pflicht werden. ForceBookkeepVat schließt Umsatzsteuer für einen Kunden außerhalb der EU ein und lässt sich für ein Land innerhalb der EU nicht setzen.
Und ein Kennzeichen entscheidet, ob eine schwedische Rechnung überhaupt einen Abzug tragen kann: IsPrivatePerson. Der nächste Abschnitt ist nur für diese Kunden erreichbar.
| Feld | Liegt auf | Was es entscheidet |
|---|---|---|
| VatRate | Dem Umsatzsteuerschlüssel | Der angewandte Prozentsatz |
| AccountNumber1 bis 3 | Dem Umsatzsteuerschlüssel | Auf welche Konten die Umsatzsteuer bucht |
| OssCodeType | Dem Umsatzsteuerschlüssel | Keine, Umsatz oder Umsatzsteuer für OSS |
| PercentVat, VatRate | Der Rechnungszeile | Der Satz auf dieser Zeile |
| IsVatFree | Der Rechnungszeile | Die Zeile ist befreit |
| DeliveryBasedVat | Dem Kunden | Die Lieferadresse ist die Grundlage |
| ForceBookkeepVat | Dem Kunden | Umsatzsteuer für einen Kunden außerhalb der EU |
Die Felder in dieser Tabelle stammen aus Vismas Schnittstellenreferenz, geprüft am 20. August 2026, aus ihrem OpenAPI-Dokument und nicht aus Fließtext, die Namen sind also die, die Sie tippen. Sätze werden nicht zitiert: auf dieser Schnittstelle sind sie Mandantendaten.
ROT und RUT sind auf drei verschiedenen Ebenen typisiert
Das ist der Teil einer schwedischen Anbindung, der im norwegischen und im niederländischen Markt keine Entsprechung hat. ROT und RUT sind Steuerermäßigungen, die ein Privatkunde für Arbeiten am eigenen Zuhause geltend macht, ROT für Reparatur- und Umbauarbeiten an einer Immobilie, RUT für haushaltsnahe Dienstleistungen, und beide sind in der Schnittstelle ausdrücklich modelliert.
Modelliert an drei Stellen, und das ist die Einzelheit, für die sich Planung lohnt. Die Rechnung trägt den Abzug, die Zeile trägt die Arbeit, der Artikel trägt das Gewerk. Fehlt eine Ebene, erzeugen die anderen beiden eine Rechnung, die vollständig aussieht und nichts ermäßigt.
| Ebene | Felder | Zweck |
|---|---|---|
| Rechnung | RotReducedInvoicingType, RotPropertyType, RotReducedInvoicingPropertyName, RotReducedInvoicingOrgNumber | Welcher Abzug, welche Immobilie und wessen Personennummer |
| Rechnung, Beträge | RotReducedInvoicingAmount, RotReducedInvoicingPercent, RotReducedInvoicingAutomaticDistribution | Der Betrag und wie er verteilt wird |
| Zeile | IsWorkCost, WorkCostType, WorkHours, MaterialCosts | Welche Zeilen Arbeit sind, und die Aufteilung hinter der Zahl |
| Artikel | HouseWorkType | Das Gewerk, einmal je Katalogeintrag |
| Firma | UsesRotReducedInvoicing, RotReducedInvoicingPercent, RotReducedInvoicingMaxAmount, RutReducedInvoicingPercent, RutMaxAmountForPersBelow65Year, RutMaxAmountForPersOver65Year | Ob es an ist, die Sätze und die Obergrenzen |
Drei dieser Felder haben Regeln und nicht nur Typen. Der Name der Immobilie wird Pflicht, sobald ein Immobilientyp gesetzt ist, die Personennummer des Käufers ist auf elf Zeichen begrenzt, und die Ermäßigung wird für Sie berechnet, solange Sie nicht selbst einen Betrag senden.
Die Gewerkeliste ist länger, als sie klingt, und sie ist nicht lückenlos. Es gibt 26 Werte, zwölf auf der ROT-Seite und dreizehn auf der RUT-Seite plus einen für keines von beidem, und sie laufen bis 29 mit Lücken bei 8, 11, 16 und 17. Eine Schleife über einen Zahlenbereich erzeugt deshalb Werte, die die Schnittstelle nicht kennt, und dieselbe Liste steht am Artikel als HouseWorkType und an der Zeile als WorkCostType.
Grüne Technologie steht daneben als eigenes kleines Enum an der Zeile, mit Solarzellen, Speichern für elektrische Energie und einem Ladepunkt für Fahrzeuge. Sie teilt sich das Feld für den Namen der Immobilie mit ROT, beides zu setzen macht dieses Feld also zur Pflicht.
0 None1 RotConstructionWork 9 RutCleanJobWork2 RotElectricalWork 10 RutCareClothTextile3 RotGlassSheetMetalWork 12 RutSnowRemove4 RotGroundWork 13 RutGarden5 RotBrickWork 14 RutBabySitting6 RotPaintDecorateWork 15 RutOtherCare7 RotPlumbWork 18 RutRemovalServices20 RotHeatPump 19 RutITServices21 RotHeatPump2 22 RutHomeAppliances23 RotSolarHeatingSystem 26 RutLaundry24 RotWoodBoiler 27 RutFurnishing25 RotFuelBoiler 28 RutGoodsTransport29 RutHomeSupervision# 8, 11, 16 und 17 sind nicht vergeben.
Gelesen aus dem OpenAPI-Dokument am 20. August 2026. Die Prozentsätze und Obergrenzen, die daraus Geld machen, stehen nicht in dieser Liste: sie sind Firmeneinstellungen, mit der Firma lesbar und über einen eigenen Endpunkt schreibbar.
Felder, Enum-Werte und die Lücken in der Nummerierung stammen aus Vismas Schnittstellenreferenz, geprüft am 20. August 2026. Schwedische Steuersätze und Obergrenzen werden nicht zitiert: diese Schnittstelle gibt sie als Firmeneinstellungen aus, eine Zahl hier wäre also eine Zahl ohne Quelle beim Hersteller.
Was eine Spiris-Verbindung Ihnen heute gibt
Alles oben ist die schwedische Fläche, die eine direkte Anbindung lernen muss. Über maesn kommt sie als eine Verbindung auf derselben Schnittstelle an wie jedes andere Buchhaltungssystem, das Sie unterstützen, und die Objekte, die Ihr Anwendungsfall braucht, sind dafür freigeschaltet.
Kunden und Lieferanten werden auf dieser Verbindung heute gelesen, und der Rest der Objektliste wird freigeschaltet, wenn ein Anwendungsfall ihn braucht. Die produktive Frage ist eine enge: Welche Objekte berührt Ihr schwedischer Anwendungsfall? Nennen Sie sie, und sie werden für Ihre Verbindung freigeschaltet.
Die Aktualität läuft über einen geplanten Lesezugriff, und die Paginierung dahinter liegt auf unserer Seite, ein Lesezugriff liefert also den vollständigen Satz und nicht die ersten fünfzig Datensätze. Alles, was Sie lesen, kommt im selben Common Data Model an wie bei jedem anderen angebundenen System, und genau das verhindert, dass ein schwedischer Kunde in Ihrem Produkt zu einer zweiten Form wird.
Was maesn Ihnen abnimmt:
- Die ganze schwedische Fläche von oben. Die Abzugsfelder auf drei Ebenen, die Gewerkeliste mit ihren Lücken, der Umsatzsteuerschlüssel, der auf drei Konten führt, und die Regeln der Kontierung liegen bei uns. Ihr Produkt sendet eine Form.
- Die Verbindung, gleich wer sie herstellt. Ein Buchhaltungsbüro, das im Auftrag eines Mandanten verbindet, ist hier der Normalfall, und der Ablauf, die Firmenauswahl und der Lebenszyklus des Tokens laufen auf unserer Seite.
- Drei Märkte auf einer Anbindung. Spiris und eAccounting in Norwegen und den Niederlanden sind ein Zielsystem. Ein schwedischer Kunde kostet keine zweite Implementierung.
- Paginierung und Reconnects. Sammlungen werden für Sie paginiert, und ein Token, das ohne Vorwarnung stirbt, erscheint als Zustand der Verbindung und nicht als 401 in Ihren Logs.
Was bei Ihnen bleibt:
- Die Artikelzuordnung. Die Kontierung reist mit dem Artikel, Ihren Katalog auf die Artikel eines Mandanten abzubilden ist also Ihre Modellierung.
- Welche Objekte Sie nennen. Zwei werden heute gelesen und der Rest steht auf Anfrage, die Liste, die Ihr Anwendungsfall braucht, gehört also vor eine Zusage an einen Kunden ins Gespräch.
- Wer sich authentifiziert. Ob Sie ein Buchhaltungsbüro oder das Unternehmen selbst durch den Verbindungsschritt führen, ist eine Produktentscheidung, und sie entscheidet, was Ihr Zustimmungsschritt sagen muss.
Objektzahlen aus der Matrix in der Integrationsdokumentation, je Operation über alle 37 Objekte des gemeinsamen Zielsystems gezählt. Es gibt keine eigene Spiris-Matrix, und es sollte auch keine geben: es ist dasselbe Zielsystem unter seinem schwedischen Namen, eine zweite Tabelle hieße also, dass eine der beiden falsch ist.
Häufige Fragen
Wer sollte eine Spiris-Verbindung herstellen, der Mandant oder sein Buchhaltungsbüro?
Warum erscheint der Firmenwähler nicht, wenn ich Spiris verbinde?
Kann ich die Konten auf einer Spiris-Kundenrechnung setzen?
Braucht jede Spiris-Rechnungszeile einen Artikel?
Welche Felder braucht eine ROT- oder RUT-Rechnung in Spiris?
Sind die Prozentsätze für ROT und RUT in Spiris fest?
Wie bekomme ich die Objekte, die mein schwedischer Anwendungsfall braucht?

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.
Schweden ergänzt ein Buchhaltungsbüro im Zustimmungsschritt, eine Kontierung, die sich von außen nicht setzen lässt, und ein Abzugsmodell auf drei Ebenen. Norwegen und die Niederlande ergänzen nichts davon, und beide laufen auf demselben Zielsystem. Sie über eine Schnittstelle zu erreichen macht aus diesem Unterschied eine Zeile in einer Tabelle.