Bestandsaufnahme zur maschinenlesbaren Jahresrechnung in der Schweiz · 255 öffentliche Dokumente, jede Angabe mit Quelle und Datum

Zwei Standards, 26 Kantone · Teil 2 von 14

2 · Zwei Spuren, drei Artefakte — und warum es zwei Formate gibt

ERP /BuchhaltungkantonseigeneDeklarationsloesungHaupt- und Neben-steuerdomizilXBRLeCH-0276privateDeklarationsloesungvertraglich nicht geoeffnetswissdec, Transmitter-Unterlagen, Kommunikationsmatrix, Ausgabe 06.03.2026
Die zwei Spuren, wie die Kommunikationsmatrix sie beschreibt · swissdec, Transmitter-Unterlagen, Ausgabe 06.03.2026

Die Frage nach dem einen Format für die Schweiz trifft die Architektur nicht: es sind zwei Spuren. Die Architektur ist nicht ein Format für die Schweiz. Sie ist ein Netz mit zwei Spuren, die sich in fast jeder messbaren Eigenschaft unterscheiden: in der Zahl der Adressaten, in der Synchronität, im Zustandsautomaten und darin, ob am Ende noch ein Mensch etwas tun muss. Die Antwort auf die Frage «warum zwei Formate?» steht nicht in der Prosa der Spezifikation. Sie steht im Schema — und sie ist die beste verfügbare Erklärung des ganzen Programms.

Die Kommunikationsmatrix, vollständig

Die Grundlage ist Tabelle 2.1 der swissdec-Richtlinien, Ausgabe 06.03.2026, überschrieben «Kommunikationsmatrix über alle Geschäftsprozesse und Systeme». Sie hat vier Zeilen. In Darstellungen dieser Architektur — auch in einer früheren Fassung dieses Textes — erscheinen regelmässig drei.

Nr.VonNachOperationDatenformatBemerkung (wörtlich)
DISTRRIBUTOR[1] (sic)ERPSwissdecAdapterTeil 6, DeclareRawBalanceSheetXBRL«Einreichen der eBilanz»
SwissdecAdapterKantonseigene DeklarationslösungXBRL«Der SwissdecAdapter leitet die Empfangen eBilnanz an die kantonseigene Deklartionslösung weiter» (sic)
DISTRRIBUTOR[3] (sic)Kantonseigene DeklarationslösungSwissdecAdapterTeil 7, DeclareBalanceSheeteCH-0276«Die kantonseigene Deklarationslösung sendet den eCH-0276 via Distributor an Haupt- und Nebensteuerdomizile»
DISTRRIBUTOR[2] (sic)Private DeklarationslösungSwissdecAdapterTeil 7, DeclareBalanceSheeteCH-0276«Die Deklarationslösung sendet den eCH-0276 via Distributor an Haupt- und Nebensteuerdomizile»

Vier Beobachtungen, die eine Dreizeilenfassung verliert. Erstens: die XBRL-Strecke sind zwei Sprünge, nicht einer. Vom ERP zum SwissdecAdapter, dann vom SwissdecAdapter in die kantonseigene Deklarationslösung. Zweitens: der zweite Sprung trägt weder Operation noch Nummer. Das ist kein Versehen, sondern die Konsequenz der Reichweitenklausel aus Teil 1 derselben Spezifikation: «Dieses Dokument behandelt die Schnittstelle zwischen Transmitter und Distributor, nicht aber jene zwischen Distributor und Endreceiver.» Die letzte Strecke in den Kanton hinein ist in der Spezifikation, die alles andere regelt, schlicht nicht geregelt. Drittens: die Nummerierung läuft [1], —, [3], [2]. Die private Spur trägt die tiefere Nummer und steht zuletzt. Wir sagen nicht, was das über die Entstehungsreihenfolge bedeutet; wir sagen, was gedruckt ist. Viertens: DISTRRIBUTOR ist in allen drei nummerierten Zeilen mit drei R geschrieben. Wir zitieren es sic, weil ein Tippfehler die zuverlässigste Signatur dafür ist, dass ein Zitat wörtlich ist.

Unmittelbar unter dieser Tabelle steht eine Anmerkung, die eine der vier Zeilen aussetzt. Sie ist Gegenstand des nächsten Kapitels. Für hier genügt: die Matrix enthält die Zeile, bevor irgendein Vertrag sie trägt.

Die Zeichnung sagt dasselbe deutlicher

Abbildung 2.1 «Prozessübersicht eBilanz» steht eine Seite vorher. Die Knoten, wörtlich in Diagrammreihenfolge: Unternehmen · Jahresende · Auflösung · Abschluss Bilanz aufbereiten · private Deklarationslösung? · NEIN / JA · Aufbereitung Daten XBRL · XBRL · Ex- / Import · Deklaration ergänzen · Zusätzliche Daten bereithalten · KSTV von 1 bis 26 · Backend sdA · Verteilung aufbereiten · Format? · XBRL / eCH0276 · KSTV Deklaration Lsg · Ergänzungen verarbeiten · Private Deklaration Lsg · eCH0276 · privat versenden · privat empfangen · Veranlagung durchführen · KSTV · DISTRIBUTOR[1] DISTRIBUTOR[2] DISTRIBUTOR[3]. Ein Knoten liest sich eCH076 — auch das sic.

Drei dieser Knoten sind Architektur, nicht Dekoration. private Deklarationslösung? ist eine Entscheidungsraute mit JA- und NEIN-Zweig: das Diagramm lässt der privaten Lösung nicht bloss Platz, es verzweigt an ihr. KSTV von 1 bis 26 ist eine Schwimmbahn: die sechsundzwanzig kantonalen Steuerverwaltungen stehen im Bild, nummeriert. Und Format? ist ein Router im Distributor-Backend mit zwei Ausgängen, XBRL und eCH0276. Der Distributor ist kein Rohr. Er ist eine Weiche, die nach Format sortiert.

Der Kern: eine Kardinalität gegen viele

Warum zwei Formate? Weil die beiden Spuren nicht dieselbe Frage beantworten. Das steht nicht in der Prosa, sondern in BalanceSheetDeclarationContainer.xsd (Version 1.0-20260306, Buildnumber ea2c41b842), und es steht dort in zwei Zeilen:

<xs:complexType name="DeclareRawBalanceSheetJobType">        <!-- XBRL -->
  <xs:element name="Addressee" type="ep:AddresseeJobType"/>              <!-- [1..1] -->

<xs:complexType name="DeclareBalanceSheetAddresseesType">    <!-- eCH-0276 -->
  <xs:element maxOccurs="unbounded" minOccurs="0"
              name="Addressee" type="ep:AddresseeJobType"/>              <!-- [0..unbounded] -->

Die XBRL-Spur kann genau einen Empfänger adressieren. Die eCH-0276-Spur beliebig viele. Das ist die Haupt-/Nebensteuerdomizil-Verteilung, ausgedrückt als Kardinalität. Die Zahlen gehen an einen Kanton; die Deklaration geht an alle Steuerdomizile. Beide mitgelieferten Beispiele bestätigen es in der Struktur: DeclareRawBalanceSheet.xml trägt <bsc:Job><bsc:Addressee …> ohne Hülle, DeclareBalanceSheet.xml trägt <bsc:Job><bsc:Addressees><bsc:Addressee …>. Der Adressat ist in beiden Fällen ein Kantonskürzel: <ep:AddresseeIdentification>BE</ep:AddresseeIdentification>.

Der Zustandsautomat, und das Wort Raw

Die zweite Zeile des Beweises sind die Zustände. Auch sie stehen im selben Schema, achtundzwanzig Zeilen auseinander:

DeclareRawBalanceSheetStateType   =  Accepted · CompletionReleaseMissing · Finished
DeclareBalanceSheetStateType      =  Accepted · Processing · Finished

Und die Falltypen unterscheiden sich entsprechend: DeclareRawBalanceSheetConsumerCaseType führt neben CaseContext und State ein optionales Completion vom Typ ep:CompletionType; DeclareBalanceSheetConsumerCaseType führt es nicht. ep:CompletionType trägt eine AccessInformationType mit {Url, ExpiryDate} und dazu Credentials {Key, Password}. Was damit geschieht, beschreibt §8.11, UC011 «Completion aufrufen», Auslöser: «Der Akteur möchte die übermittelte Meldung ergänzen und freigeben.» Standardablauf, Schritt 3, wörtlich: «Das Sendersystem öffnet ein Browserfenster mit der zusammengestellten URL.»

Damit lässt sich die Frage beantworten, an der die Prosa vorbeiredet:

Die XBRL-Spur endet nicht bei einer Einreichung. Ihr Zustandsautomat kennt einen Zustand namens CompletionReleaseMissing — die Freigabe fehlt. Danach öffnet die Software einen Browser, ein Mensch ergänzt, ein Mensch gibt frei. Die eCH-0276-Spur kennt diesen Zustand nicht und führt kein Completion-Element: die Deklaration ist vollständig, wenn sie abgeschickt wird.

XBRL sind rohe Zahlen in ein Formular, das ein Mensch noch fertigmacht. eCH-0276 ist eine fertige Deklaration an ein Steuerdomizil. **Das Wort Raw steht im Operationsnamen, und es ist tragend.**

Die Synchronität folgt daraus zwangsläufig. Teil 6 der Spezifikation überschreibt seinen Ablauf mit «Initiale synchrone Meldung», Teil 7 mit «Initiale asynchrone Meldung». Wer Zahlen in ein Formular schiebt, bekommt die Antwort sofort. Wer eine Deklaration einreicht, bekommt einen JobKey und muss wiederkommen — mit einer Untergrenze, §8.2.1.1: «Der Abstand zwischen den einzelnen automatisierten Abfragen muss jedoch mindestens zehn Sekunden betragen.»

Drei Artefakte, nicht zwei

Auf der Ebene der Gewinnsteuerdeklaration juristischer Personen sind es zwei Standards. Auf Programmebene sind es drei. Der Umsetzungsplan der Digitalen Verwaltung Schweiz nennt unter Vorhaben INM2.084, leistungsverantwortliche Organisation Schweizerische Steuerkonferenz SSK, beide Ziele in einem Satz: die Unternehmen sollen «nach eCH-0276 für die Steuererklärung Juristische Personen in die Deklarationslösung der kantonalen Steuerverwaltungen übermitteln und … die notwendigen Daten nach eCH-0217 für die Abrechnung der Mehrwertsteuer an die Eidgenössische Steuerverwaltung übermitteln». Zwei Empfängerebenen, drei Zielartefakte: eCH-0276, eCH-0217, XBRL CH-Taxonomie. «Zwei Standards» bezeichnet die JP-Gewinnsteuerspur; auf Programmebene sind es drei Zielartefakte.

Der Widerspruch, den wir nicht auflösen

Derselbe DVS-Satz legt auf die ERP-Strecke ein anderes Format als die swissdec-Matrix. DVS/SSK: die Finanzdaten gehen «direkt auf Knopfdruck … nach eCH-0276 … in die Deklarationslösung der kantonalen Steuerverwaltungen». swissdec, Tabelle 2.1, Zeile [1] und Teil 6.1: auf genau dieser Strecke liegt XBRL; eCH-0276 verlässt eine Deklarationslösung, es erreicht sie nicht.

Beide Lesarten sind vertretbar. Gelesen als Programmbezeichnung ist «nach eCH-0276» korrekt: der Standard heisst «E-Bilanz und E-Tax JP», und das Vorhaben ist umgangssprachlich das eCH-0276-Programm. Gelesen als Formatangabe ist der Satz falsch. Wir entscheiden das nicht — es ist nicht unser Satz. Wir benennen die Mehrdeutigkeit als das, was sie kostet: der Plan, der das Programm nach aussen beschreibt, ist an der Stelle unscharf, an der die Transmitter-Spezifikation scharf ist. Ein Softwarehersteller, der nur das eine Dokument liest, baut die falsche Spur.

Eine Zeile aus dem SSK-Regelwerk versöhnt die beiden Formate besser als jede Interpretation, und sie steht auf dem Titelblatt: «Falls die E Bilanz nicht elektronisch übermittelt wird, ist die Jahresrechnung in der Deklarationslösung manuell zu erfassen. Auch für die manuelle Erfassung gilt die CH Taxonomie 2025.» Die CH-Taxonomie ist damit kein Parallelträger neben eCH-0276. Sie ist der Kontenrahmen unter allen Kanälen — auch unter der Tastatur. eCH-0276 ist die Nachricht; die CH-Taxonomie ist die Gliederung darunter.

Woher das alles kommt, und was wir nicht getan haben

Primärquelle ist swissdec-Richtlinien-eBilanz-Transmitter-1.0-20260306.zip, 9'405'318 Bytes, SHA-256 91747b94…f5a6, abgerufen am 04.08.2026 ohne Anmeldung. Inhalt, in dieser Sitzung gezählt: 35 XSD · 1 WSDL · 11 SOAP-Beispiele · 3 PDF (de/fr/it, je 126 Seiten). Unser eigenes Crawl-Manifest schreibt an zwei Stellen «10 SOAP samples». Es sind elf. Ein Text, dessen Autorität auf Zählen beruht, korrigiert die eigene Zählung, bevor er fremde zitiert.

Zwei Sätze aus dem Dokument selbst tragen den Rest dieses Textes. Der erste, Seite iv: «Verbindlich sind ausschliesslich die jeweils veröffentlichten offiziellen XML-Schemata.» Das ist swissdecs eigene Lizenz dafür, das Schema gegen die Prosa zu lesen — und sie wird später gebraucht. Der zweite steht im Container-Schema selbst. Der Nutzlast-Slot der eCH-0276-Spur bindet den Standard hart: <xs:element ref="eCH-0276:eBalanceSheetETaxLegalEntity"/>, importiert aus eCH-0276-1-0-4_20260115.xsd. Der Nutzlast-Slot der XBRL-Spur bindet nichts: <xs:element ref="xbrl:xbrl"/>, der generische Instanzwurzelknoten der XBRL-Spezifikation 2.1. Im selben schema/-Verzeichnis liegen acht Dateien der CH-Taxonomie 2025-05-31. Der Container importiert keine davon — gezählt: null Treffer für ch-taxonomy. swissdec liefert die CH-Taxonomie mit und bindet sie nicht. Ausliefern ist nicht binden.

Alles in diesem Kapitel ist aus Dateien gelesen, nicht aus einem Aufruf. Wir haben nie eine Datei in ein kantonales Portal importiert, und wir haben den Distributor nie aufgerufen — auch nicht Ping.