← All documentation

API reference · 2026-10-15-github-archives-release

ERiC und ELSTER

Vorbereitung, Validierung und Test-Review; Steuerübermittlung bleibt gesperrt.

Availability: Limited

Current service status ↗

Versioned guides and examples

Published local documents for revision 2026-10-15-github-archives-release. SDK guidance describes integration options; no external SDK download is implied.

Overview · overview.md
Download overview.md
# ERiC und ELSTER — Produktion

Produkt- und Mandantenrechte werden pro Client gebunden. Das isolierte Testprofil bietet nur zwei deterministische Simulationsoperationen und keine steuerliche Übermittlung.

Quelle: devacc-eric-svc Commit 15215cc6dc683005868d1f0f0e61e5de7408ab03, api/openapi.yaml. Diese Dokumentation und der gefilterte OpenAPI-Vertrag sind unveränderliche Snapshots. Quellqualifikation bedeutet keine bestätigte Live-Verfügbarkeit.

Die jeweils andere Umgebung benötigt eigene Clients, Grants, Daten und Signaturschlüssel. OAuth-Issuer: https://auth.d0.eu; Ressource: https://api.d0.eu/eric. Maschine: Client Credentials mit private_key_jwt und DPoP. Signaturschlüssel bleiben ausschließlich im Serverprozess.

Der aktuelle E-Bilanz-Formplan enthält Schema-Versionen v7 bis v20 und die qualifizierten zusätzlichen Eingaben für unterjährige Abschlüsse. Maßgeblich sind die Felder dieser Revisions-OpenAPI.

Ein ungewisser `CreateFilingConsent`-Erfolg kann mit `X-ERIC-Replay-Only: true`, dem exakt gleichen Request und Idempotency-Key unter aktueller Berechtigung nur gelesen werden. Ein neuer Key oder veränderter Request erzeugt in diesem Modus keinen Consent und führt zum Konflikt.
Quickstart · quickstart.md
Download quickstart.md
# ERiC und ELSTER: Produktion in vier Schritten

1. Produkt und Organisationsberechtigung in der Console prüfen. Für Produktion einen eigenen Maschinenclient in d0-auth registrieren; nur die unten genannten Scopes freigeben.
2. Über `https://auth.d0.eu` ein Access Token für `https://api.d0.eu/eric` mit `private_key_jwt` und DPoP beziehen. Den DPoP-Proof an genau den Ziel-Request binden; Nonce-Antworten gemäß Auth-Transport behandeln.
3. Den Client auf eine Tenant-UUID binden, X-ERIC-Tenant entsprechend setzen und mit eric.read GET /eric/v1/products/{productId}/notices beginnen. Für Mutationen die jeweilige enge Scope und einen wiederverwendeten Idempotency-Key einsetzen. Keine Testsimulation an den Produktionshost senden.
4. Nur die im `public-openapi.json` dieser Revision gelisteten Operationen verwenden. Bei 429 die veröffentlichten technischen Limits beachten.

Verfügbare Produktions-Scopes: `eric.read`, `eric.write`, `eric.validate`, `eric.products.manage`, `eric.access.manage`, `eric.credentials.manage`, `eric.filings.manage`, `eric.retrievals.manage`, `eric.mappings.manage`. Pro Client nur den tatsächlich benötigten Teil beantragen.

Go v0.1.2 ist über den öffentlichen Go-Modul-Proxy installierbar. TypeScript und Python v0.1.2 samt gemeinsamem Auth-Transport sind als geprüfte Archive im [GitHub-Release](https://github.com/dev-null-GmbH/d0-sdk/releases/tag/sdk-2026-10-15) verfügbar; die genauen Installationsschritte stehen in den SDK-Guides. Die drei Beispiele sind Offline-Fixtures ohne Live-Credentials oder Live-Requests.
Examples · examples/typescript.mjs
Download examples/typescript.mjs
import { EricClient } from "../dist/index.js";
const tenant = "11111111-1111-4111-8111-111111111111", product = "22222222-2222-4222-8222-222222222222";
const transport = {async request(url, options) {
  const path = new URL(url).pathname;
  if (path.endsWith("/notices")) return new Response(JSON.stringify({schema_version:"eric.user-notices.v1",version:"fixture",sdk_release:"fixture",documentation_archive_sha256:"0".repeat(64),license_document_sha256:"0".repeat(64),license_member:"license",notices:[]}),{status:200,headers:{"Content-Type":"application/json"}});
  if (path.endsWith("/simulations")) {const fixture=JSON.parse(options.body).fixture; return new Response(JSON.stringify({id:"33333333-3333-4333-8333-333333333333",fixture,status:"completed",outcome:fixture === "validation-accepted-v1" ? "simulated_accepted" : "simulated_rejected",simulated:true}),{status:202,headers:{"Content-Type":"application/json"}});}
  throw new Error(`unexpected offline route ${path}`);
}};
const prod=new EricClient("production",tenant,transport);
const notices=await prod.GetUserNotices({productId:product});
if(notices.schema_version!=="eric.user-notices.v1")throw new Error("notice fixture failed");
const test=new EricClient("test",tenant,transport);
for(const fixture of ["validation-accepted-v1","validation-rejected-v1"]){const result=await test.createEricTestSimulation({productId:product,idempotencyKey:`offline-${fixture}`,body:{fixture}});if(!result.simulated)throw new Error("simulation fixture failed");}
console.log("ERiC production read-only + both test simulations: offline fixtures passed");
Examples · examples/go.go
Download examples/go.go
// Offline ERiC example: production notice read and both test simulations.
package main

import (
	"bytes"
	"context"
	"fmt"
	"io"
	"net/http"
	"strings"

	eric "github.com/dev-null-GmbH/d0-sdk/eric/go"
	"github.com/dev-null-GmbH/d0-sdk/eric/go/genprod"
	"github.com/google/uuid"
)

const tenant = "11111111-1111-4111-8111-111111111111"
const product = "22222222-2222-4222-8222-222222222222"

type fixtureTransport struct{}

func (fixtureTransport) RoundTrip(r *http.Request) (*http.Response, error) {
	var code = 200
	var body string
	switch {
	case strings.HasSuffix(r.URL.Path, "/notices"):
		body = `{"schema_version":"eric.user-notices.v1","version":"fixture","sdk_release":"fixture","documentation_archive_sha256":"digest","license_document_sha256":"digest","license_member":"license","notices":[]}`
	case strings.HasSuffix(r.URL.Path, "/simulations"):
		code = 202
		b, err := io.ReadAll(r.Body)
		if err != nil {
			return nil, err
		}
		fixture := "validation-accepted-v1"
		if bytes.Contains(b, []byte("validation-rejected-v1")) {
			fixture = "validation-rejected-v1"
		}
		outcome := "simulated_accepted"
		if fixture == "validation-rejected-v1" {
			outcome = "simulated_rejected"
		}
		body = fmt.Sprintf(`{"id":"33333333-3333-4333-8333-333333333333","fixture":%q,"status":"completed","outcome":%q,"simulated":true}`, fixture, outcome)
	default:
		return nil, fmt.Errorf("unexpected offline route %s", r.URL.Path)
	}
	h := make(http.Header)
	h.Set("Content-Type", "application/json")
	return &http.Response{StatusCode: code, Header: h, Body: io.NopCloser(strings.NewReader(body))}, nil
}
func main() {
	httpClient := &http.Client{Transport: fixtureTransport{}}
	prod, err := eric.NewClient(eric.Production, tenant, httpClient)
	if err != nil {
		panic(err)
	}
	notice, err := prod.GetUserNotices(context.Background(), genprod.ID(product), &genprod.GetUserNoticesParams{})
	if err != nil || notice.JSON200 == nil {
		panic(fmt.Sprint("notice fixture: ", err))
	}
	test, err := eric.NewClient(eric.Test, tenant, httpClient)
	if err != nil {
		panic(err)
	}
	for _, fixture := range []eric.SimulationFixture{eric.ValidationAccepted, eric.ValidationRejected} {
		result, err := test.Simulate(context.Background(), uuid.MustParse(product), fixture, "offline-eric-001")
		if err != nil || !result.Simulated {
			panic(fmt.Sprint("simulation fixture: ", err))
		}
	}
	fmt.Println("ERiC production read-only + both test simulations: offline fixtures passed")
}
Examples · examples/python.py
Download examples/python.py
"""Offline production notice and accepted/rejected test simulation examples."""
import io
import json
from email.message import Message
from typing import Any

from d0_auth_machine import MachineClient

from d0_eric import EricClient, resource_for

TENANT = "11111111-1111-4111-8111-111111111111"
PRODUCT = "22222222-2222-4222-8222-222222222222"

class Response(io.BytesIO):
    def __init__(self, code: int, value: dict[str, Any]):
        super().__init__(json.dumps(value).encode())
        self.status = code
        self.headers = Message()
        self.headers["Content-Type"] = "application/json"

class FixtureMachine(MachineClient):
    def __init__(self, profile: str):
        self.resource = resource_for(profile)  # type: ignore[arg-type]

    def request(self, url: str, *, method: str = "GET", headers: Any = None, body: Any = None, cancel: Any = None, timeout: float = 45.0) -> Any:
        assert headers["X-ERIC-Tenant"] == TENANT
        if url.endswith("/notices"):
            return Response(200, {"schema_version": "eric.user-notices.v1", "version": "fixture", "sdk_release": "fixture", "documentation_archive_sha256": "0"*64, "license_document_sha256": "0"*64, "license_member": "license", "notices": []})
        if url.endswith("/simulations"):
            fixture = json.loads(body)["fixture"]
            return Response(202, {"id": "33333333-3333-4333-8333-333333333333", "fixture": fixture, "status": "completed", "outcome": "simulated_accepted" if fixture == "validation-accepted-v1" else "simulated_rejected", "simulated": True})
        raise AssertionError(url)

prod = EricClient("production", TENANT, FixtureMachine("production"))  # type: ignore[arg-type]
assert prod.get_user_notices({"productId": PRODUCT})["schema_version"] == "eric.user-notices.v1"
test = EricClient("test", TENANT, FixtureMachine("test"))  # type: ignore[arg-type]
for fixture, outcome in (("validation-accepted-v1", "simulated_accepted"), ("validation-rejected-v1", "simulated_rejected")):
    result = test.create_eric_test_simulation({"productId": PRODUCT, "idempotencyKey": "offline-eric-001", "body": {"fixture": fixture}})  # type: ignore[typeddict-item]
    assert result["outcome"] == outcome
print("ERiC production read-only + both test simulations: offline fixtures passed")
Error catalog · errors.md
Download errors.md
# ERiC und ELSTER — Fehler und Wiederholung

Der genaue Fehlerkörper und die operationellen Antworten stehen in `public-openapi.json`. In den öffentlichen Operationen dieser Revision sind die Statuscodes `200`, `201`, `202`, `default` deklariert. Nicht jeder Code gilt für jede Operation.

- `400`/`422`: Eingabe und geforderte Header gegen die konkrete Operation prüfen; keinen veränderten Request unter demselben Idempotency-Key wiederholen.
- `401`: Token, DPoP-Proof, Nonce, Audience und Clientprofil prüfen.
- `403`: Scope, Organisationsrolle und fachliche Zuordnung prüfen; keine breiteren Scopes erraten.
- `404`: Pfad, Ressource und Tenant-Kontext prüfen; keine Existenz fremder Ressourcen ableiten.
- `409`/`412`: Konflikt bzw. ETag-Vorbedingung durch erneutes Lesen und fachliche Entscheidung auflösen.
- `429`: technische Limitantwort und Reset-/Retry-Hinweis beachten.
- `5xx` oder Transportabbruch: Bei Mutationen denselben vom Aufrufer vergebenen Idempotency-Key verwenden, sofern die Operation ihn vorsieht; sonst erst den serverseitigen Zustand lesen. Keine blinde Wiederholung einer nicht-idempotenten Operation.

Problemantworten und Request-ID helfen bei der Diagnose. Keine Tokens, Schlüssel, Dokumentinhalte oder personenbezogenen Daten in Support-Logs kopieren.

Bei ungewisser Antwort auf `CreateFilingConsent` den ursprünglichen Request mit demselben Idempotency-Key und `X-ERIC-Replay-Only: true` wiederholen. Eine neue oder veränderte Anfrage in diesem Modus führt zum Konflikt; aktuelle Maschinen-, Actor- und gegebenenfalls Human-Grants bleiben nötig.
Changelog · CHANGELOG.md
Download CHANGELOG.md
# ERiC und ELSTER 2026-10-15-github-archives-release

- Neue unveränderliche Dokumentationsrevision. Die vorige Revision `2026-10-15-filing-consent-go-012-release` bleibt bytegleich verfügbar; Quell-OpenAPI, öffentlicher Vertrag und klassifizierte Operationen sind unverändert.
- Das [GitHub-Release](https://github.com/dev-null-GmbH/d0-sdk/releases/tag/sdk-2026-10-15) stellt die geprüften TypeScript-Tarballs und Python-Wheels für eric v0.1.2 sowie den Auth-Transport v0.1.0 bereit. Der ZIP-Hash ist `6c11b63a5ce5f24dff79d1f3d33c7879ff48831d66dd9029b37abf073152dd93`; der innere `SHA256SUMS`-Katalog wird vor Installation geprüft. Go v0.1.2 bleibt über den öffentlichen Modul-Proxy verfügbar.
- npm und PyPI sind keine Voraussetzungen für diese Distribution. Die installierten Offline-Beispiele wurden im Release-Build geprüft; Service-Rollout und SDK-Download sind getrennte Nachweise.
SDK guidance · sdk-typescript.md
Download sdk-typescript.md
# ERiC und ELSTER typescript SDK

Paket: `@dev-null-gmbh/eric` v0.1.2, Auth-Transport `@dev-null-gmbh/auth-machine` v0.1.0. MIT-Lizenz; Node.js 24.21 bis unter 27.

Die [qualifizierte GitHub-Release-Datei](https://github.com/dev-null-GmbH/d0-sdk/releases/tag/sdk-2026-10-15) ist die direkte Distribution. Archiv und Prüfsumme herunterladen, dann äußere und innere SHA-256-Werte prüfen (unter Linux kann `sha256sum -c` statt `shasum -a 256 -c` verwendet werden):

```sh
curl -fLO https://github.com/dev-null-GmbH/d0-sdk/releases/download/sdk-2026-10-15/d0-sdk-2026-10-15.zip
curl -fLO https://github.com/dev-null-GmbH/d0-sdk/releases/download/sdk-2026-10-15/d0-sdk-2026-10-15.sha256
shasum -a 256 -c d0-sdk-2026-10-15.sha256
unzip d0-sdk-2026-10-15.zip -d d0-sdk-2026-10-15
(cd d0-sdk-2026-10-15 && shasum -a 256 -c SHA256SUMS)
```

Der äußere ZIP-Hash lautet `6c11b63a5ce5f24dff79d1f3d33c7879ff48831d66dd9029b37abf073152dd93`. Die Archive stammen aus [dem erfolgreichen Main-Build](https://github.com/dev-null-GmbH/d0-sdk/actions/runs/38748901791) bei `d0-sdk@6f2c39612a661ec557e96e5caff093a057e6e1de`. Das Release enthält SDKs und Auth-Transport, keine privaten Services oder Zugangsdaten.

Die beiden geprüften Tarballs lokal im Serverprojekt installieren (keine npm-Registry-Veröffentlichung erforderlich):

```sh
npm install --ignore-scripts --no-audit --no-fund ./d0-sdk-2026-10-15/npm/dev-null-gmbh-auth-machine-0.1.0.tgz ./d0-sdk-2026-10-15/npm/dev-null-gmbh-eric-0.1.2.tgz
```

Das Offline-Beispiel dieser Revision liegt unter `catalog/v1/bundles/eric/2026-10-15-github-archives-release/examples/typescript.mjs`. Das Paket ist für vertrauenswürdige Serveranwendungen gedacht; private Signaturschlüssel gehören nicht in Browser-Code. Öffentliche Operationen und Scopes stehen in `public-openapi.json`.
SDK guidance · sdk-go.md
Download sdk-go.md
# ERiC und ELSTER Go SDK

Paket: `github.com/dev-null-GmbH/d0-sdk/eric/go` v0.1.2. Gemeinsamer Maschinen-Auth-Transport: `github.com/dev-null-GmbH/d0-sdk/auth/go` v0.1.0. Beide wurden über den öffentlichen Go-Modul-Proxy mit aktiver Checksum-Datenbank aus frischer, anonymer Umgebung installiert und geprüft. Lizenz: MIT.

```sh
go get github.com/dev-null-GmbH/d0-sdk/eric/go@v0.1.2
```

Modul-Tag: `eric/go/v0.1.2` auf `d0-sdk@6f2c39612a661ec557e96e5caff093a057e6e1de`; Auth-Tag: `auth/go/v0.1.0` (unverändert). Der API-Quellvertrag ist `devacc-eric-svc@15215cc6dc683005868d1f0f0e61e5de7408ab03:api/openapi.yaml`. Go v0.1.1 bleibt unter seinem eigenen Tag als historische Version installierbar.

Das unveränderte Offline-Fixture aus `devacc-eric-svc@15215cc6dc683005868d1f0f0e61e5de7408ab03:sdk/go/examples/fixture/main.go` liegt unter `catalog/v1/bundles/eric/2026-10-15-github-archives-release/examples/go.go` (SHA-256 `820c9073c7292b8e6d753f9cc80b32979a0553758ba4fa69038597bfa70c2289`). Es demonstriert den Client mit festem production-Profil ohne Netzaufruf. Öffentliche Operationen und Scopes stehen ausschließlich in public-openapi.json.

Die übrigen Sprachpakete sind über das [geprüfte GitHub-Release](https://github.com/dev-null-GmbH/d0-sdk/releases/tag/sdk-2026-10-15) verfügbar. Go benötigt nur den oben gezeigten Modulbezug über den öffentlichen Proxy.
SDK guidance · sdk-python.md
Download sdk-python.md
# ERiC und ELSTER python SDK

Paket: `d0-eric` v0.1.2, Auth-Transport `d0-auth-machine` v0.1.0. MIT-Lizenz; Python 3.14.

Die [qualifizierte GitHub-Release-Datei](https://github.com/dev-null-GmbH/d0-sdk/releases/tag/sdk-2026-10-15) ist die direkte Distribution. Archiv und Prüfsumme herunterladen, dann äußere und innere SHA-256-Werte prüfen (unter Linux kann `sha256sum -c` statt `shasum -a 256 -c` verwendet werden):

```sh
curl -fLO https://github.com/dev-null-GmbH/d0-sdk/releases/download/sdk-2026-10-15/d0-sdk-2026-10-15.zip
curl -fLO https://github.com/dev-null-GmbH/d0-sdk/releases/download/sdk-2026-10-15/d0-sdk-2026-10-15.sha256
shasum -a 256 -c d0-sdk-2026-10-15.sha256
unzip d0-sdk-2026-10-15.zip -d d0-sdk-2026-10-15
(cd d0-sdk-2026-10-15 && shasum -a 256 -c SHA256SUMS)
```

Der äußere ZIP-Hash lautet `6c11b63a5ce5f24dff79d1f3d33c7879ff48831d66dd9029b37abf073152dd93`. Die Archive stammen aus [dem erfolgreichen Main-Build](https://github.com/dev-null-GmbH/d0-sdk/actions/runs/38748901791) bei `d0-sdk@6f2c39612a661ec557e96e5caff093a057e6e1de`. Das Release enthält SDKs und Auth-Transport, keine privaten Services oder Zugangsdaten.

Die beiden geprüften Wheels in einer virtuellen Umgebung installieren (keine PyPI-Veröffentlichung erforderlich):

```sh
python3.14 -m venv .venv
.venv/bin/python -m pip install ./d0-sdk-2026-10-15/python/d0_auth_machine-0.1.0-py3-none-any.whl ./d0-sdk-2026-10-15/python/d0_eric-0.1.2-py3-none-any.whl
```

Das Offline-Beispiel dieser Revision liegt unter `catalog/v1/bundles/eric/2026-10-15-github-archives-release/examples/python.py`. Das Paket ist für vertrauenswürdige Serveranwendungen gedacht; private Signaturschlüssel gehören nicht in Browser-Code. Öffentliche Operationen und Scopes stehen in `public-openapi.json`.

Get started

  1. Produkt- und Organisationsberechtigung prüfen.
  2. Öffentliche Operationen erst nach Releasefreigabe verwenden.
Open Developer Console →

Operations

Implemented rows describe supported contract behavior. Product availability above still controls whether the runtime is open to customers. Declared and blocked rows describe contract intent or a release gate.

MethodPathOperationReadiness
GET/products/{productId}/noticesGetUserNoticesImplemented
POST/products/{productId}/profilesCreateProfileImplemented
GET/products/{productId}/profiles/{version}GetProfileImplemented
POST/products/{productId}/draftsCreateDraftImplemented
PUT/products/{productId}/drafts/{draftId}ReviseDraftImplemented
GET/products/{productId}/drafts/{draftId}GetDraftImplemented
GET/products/{productId}/drafts/{draftId}/revisions/{revision}GetDraftRevisionImplemented
POST/products/{productId}/preparationsCreatePreparationImplemented
GET/products/{productId}/preparations/{preparationId}GetPreparationImplemented
GET/products/{productId}/preparations/{preparationId}/artifacts/{kind}GetPreparationArtifactImplemented
POST/products/{productId}/validationsCreateValidationImplemented
GET/products/{productId}/validations/{validationId}GetValidationImplemented
GET/products/{productId}/validations/{validationId}/artifacts/{kind}GetValidationArtifactImplemented
POST/products/{productId}/preparations/{preparationId}/delegated-reviewsCreateDelegatedReviewImplemented
GET/products/{productId}/delegated-reviews/{reviewId}GetDelegatedReviewImplemented
POST/products/{productId}/delegated-reviews/{reviewId}/confirmationsConfirmDelegatedReviewImplemented
POST/products/{productId}/delegated-reviews/{reviewId}/revocationsRevokeDelegatedReviewImplemented
GET/products/{productId}/modules/ustva-2026/field-catalogGetUStVAFieldCatalogImplemented
POST/products/{productId}/utilitiesCreateUtilityImplemented
GET/products/{productId}/utilities/{utilityId}GetUtilityImplemented
POST/products/{productId}/credential-intakesCreateCredentialIntakeImplemented
GET/products/{productId}/credentials/{credentialId}GetSoftwareCredentialImplemented
POST/products/{productId}/credentials/{credentialId}/revokeRevokeSoftwareCredentialImplemented
GET/products/{productId}/modules/ustva-2026/derived-rulesGetUStVADerivedRulesImplemented
POST/products/{productId}/preparations/{preparationId}/filing-consentsCreateFilingConsentImplemented
GET/products/{productId}/filing-consents/{consentId}GetFilingConsentImplemented
POST/products/{productId}/filing-consents/{consentId}/confirmationsConfirmFilingConsentImplemented
POST/products/{productId}/filing-consents/{consentId}/revocationsRevokeFilingConsentImplemented
POST/products/{productId}/filing-consents/{consentId}/submissionsCreateFilingSubmissionBlocked
GET/products/{productId}/submissions/{submissionId}GetFilingSubmissionBlocked
GET/products/{productId}/credential-operations/{intakeId}GetCredentialOperationImplemented
GET/products/{productId}/retrieval-artifacts/{artifactId}GetRetrievalArtifactImplemented
GET/products/{productId}/retrieval-artifacts/{artifactId}/{kind}GetRetrievalArtifactContentImplemented
POST/products/{productId}/retrieval-artifacts/{artifactId}/archive-acknowledgementCreateRetrievalArchiveAcknowledgementImplemented
POST/products/{productId}/mappingsCreateUStVAMappingImplemented
PUT/products/{productId}/mappings/{mappingId}ReviseUStVAMappingImplemented
GET/products/{productId}/mappings/{mappingId}GetUStVAMappingImplemented
GET/products/{productId}/mappings/{mappingId}/revisions/{revision}GetUStVAMappingRevisionImplemented
POST/products/{productId}/mappings/{mappingId}/revisions/{revision}/confirmationsConfirmUStVAMappingImplemented
POST/products/{productId}/mappings/{mappingId}/revisions/{revision}/withdrawalsWithdrawUStVAMappingImplemented
POST/products/{productId}/ebilanz-mappingsCreateEBilanzMappingImplemented
PUT/products/{productId}/ebilanz-mappings/{mappingId}ReviseEBilanzMappingImplemented
GET/products/{productId}/ebilanz-mappings/{mappingId}GetEBilanzMappingImplemented
GET/products/{productId}/ebilanz-mappings/{mappingId}/revisions/{revision}GetEBilanzMappingRevisionImplemented
POST/products/{productId}/ebilanz-mappings/{mappingId}/revisions/{revision}/confirmationsConfirmEBilanzMappingImplemented
POST/products/{productId}/ebilanz-mappings/{mappingId}/revisions/{revision}/withdrawalsWithdrawEBilanzMappingImplemented
GET/products/{productId}/modules/ebilanz-6.9/mapping-catalogGetEBilanzMappingCatalogImplemented
POST/products/{productId}/retrieval-decryptionsCreateRetrievalDecryptionImplemented
GET/products/{productId}/retrieval-decryptions/{decryptionId}GetRetrievalDecryptionImplemented
POST/products/{productId}/retrieval-decryptions/{decryptionId}/preservationCreateRetrievalPreservationImplemented
POST/products/{productId}/modules/ebilanz-6.9/form-planPlanEBilanzFormImplemented

Operation reference

Parameters, request bodies and responses come from the filtered public OpenAPI contract for this revision. Required fields are marked in each schema’s required array.

49 of 49 operations

POST /products/{productId}/credential-intakesCreateCredentialIntake

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

Request body

application/json · required

Required fields: origin, action

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "origin",
    "action"
  ],
  "properties": {
    "origin": {
      "type": "string",
      "maxLength": 512
    },
    "action": {
      "type": "string",
      "enum": [
        "create",
        "rotate",
        "create-cez",
        "change-cez-pin"
      ]
    },
    "credential_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "expected_version_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    }
  },
  "description": "Reserve direct-browser custody. create and create-cez require no credential IDs; rotate and change-cez-pin require credential_id and expected_version_id. PIN changes admit only generated CEZ; ordinary CEZ rotation remains unavailable."
}

Responses

201 · application/json

Successful operation

Required fields: intake_id, credential_id, version_id, job_id, expires_at, capability, upload_url

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "intake_id",
    "credential_id",
    "version_id",
    "job_id",
    "expires_at",
    "capability",
    "upload_url"
  ],
  "properties": {
    "intake_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "credential_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "version_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "job_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "expires_at": {
      "type": "string",
      "format": "date-time"
    },
    "capability": {
      "type": "string",
      "maxLength": 24576
    },
    "upload_url": {
      "type": "string"
    }
  }
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/credential-operations/{intakeId}GetCredentialOperation

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

intakeId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

X-ERIC-Credential-Origin · header · required

{
  "type": "string",
  "maxLength": 512
}

Responses

200 · application/json

Successful operation

Required fields: intake_id, credential_id, source_version_id, version_id, job_id, status, qualification

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "intake_id",
    "credential_id",
    "source_version_id",
    "version_id",
    "job_id",
    "status",
    "qualification"
  ],
  "properties": {
    "intake_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "credential_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "source_version_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "version_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "job_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "status": {
      "type": "string",
      "enum": [
        "queued",
        "running",
        "completed",
        "failed",
        "revoked"
      ]
    },
    "qualification": {
      "type": "string",
      "enum": [
        "unqualified"
      ]
    }
  },
  "description": "Safe CEZ PIN-change operation state. Current credential metadata continues to describe the old version until this operation publishes successfully. No PIN, certificate, body hash or native properties are exposed."
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/credentials/{credentialId}GetSoftwareCredential

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

credentialId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

X-ERIC-Credential-Origin · header · required

{
  "type": "string",
  "maxLength": 512
}

Responses

200 · application/json

Successful operation

Required fields: id, version_id, job_id, status, qualification, credential_kind

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "version_id",
    "job_id",
    "status",
    "qualification",
    "credential_kind"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "version_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "job_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "status": {
      "type": "string",
      "enum": [
        "queued",
        "running",
        "inspected",
        "failed",
        "revoked",
        "created"
      ]
    },
    "qualification": {
      "type": "string",
      "enum": [
        "unqualified"
      ]
    },
    "credential_kind": {
      "type": "string",
      "enum": [
        "software",
        "cez"
      ],
      "description": "Known CEZ are encryption-only. software identifies uploaded custody and is not evidence of ELSTER usability. version_id can be reserved while CEZ creation is pending."
    }
  },
  "description": "Opaque custody metadata only. A generated CEZ reaches created after encrypted bundle persistence. Inspected uploads remain unqualified. No secrets or native properties are returned."
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/credentials/{credentialId}/revokeRevokeSoftwareCredential

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

credentialId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

X-ERIC-Credential-Origin · header · required

{
  "type": "string",
  "maxLength": 512
}

Responses

200 · application/json

Successful operation

Required fields: id, version_id, job_id, status, qualification, credential_kind

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "version_id",
    "job_id",
    "status",
    "qualification",
    "credential_kind"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "version_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "job_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "status": {
      "type": "string",
      "enum": [
        "queued",
        "running",
        "inspected",
        "failed",
        "revoked",
        "created"
      ]
    },
    "qualification": {
      "type": "string",
      "enum": [
        "unqualified"
      ]
    },
    "credential_kind": {
      "type": "string",
      "enum": [
        "software",
        "cez"
      ],
      "description": "Known CEZ are encryption-only. software identifies uploaded custody and is not evidence of ELSTER usability. version_id can be reserved while CEZ creation is pending."
    }
  },
  "description": "Opaque custody metadata only. A generated CEZ reaches created after encrypted bundle persistence. Inspected uploads remain unqualified. No secrets or native properties are returned."
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/delegated-reviews/{reviewId}Get delegated test review

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

reviewId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

Responses

200 · application/json

Successful delegated test review operation

Required fields: id, product_id, preparation_id, draft_id, revision, profile_version, manifest_sha256, manifest_id, payload_sha256, review_html_sha256, review_json_sha256, statement_version, purpose, status, expires_at, statement, evidence_type, authority_id, authority_version, actor_id

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "product_id",
    "preparation_id",
    "draft_id",
    "revision",
    "profile_version",
    "manifest_sha256",
    "manifest_id",
    "payload_sha256",
    "review_html_sha256",
    "review_json_sha256",
    "statement_version",
    "purpose",
    "status",
    "expires_at",
    "statement",
    "evidence_type",
    "authority_id",
    "authority_version",
    "actor_id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "preparation_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "draft_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1
    },
    "profile_version": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,9}$"
    },
    "manifest_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "manifest_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "payload_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "review_html_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "review_json_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "statement_version": {
      "type": "string",
      "enum": [
        "eric.test-review.v1"
      ]
    },
    "purpose": {
      "type": "string",
      "enum": [
        "test_review_only"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "confirmed",
        "revoked",
        "expired"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time"
    },
    "statement": {
      "type": "string"
    },
    "evidence_type": {
      "type": "string",
      "enum": [
        "partner_asserted"
      ]
    },
    "authority_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "authority_version": {
      "type": "integer",
      "format": "int64",
      "minimum": 1
    },
    "actor_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128
    }
  },
  "description": "SaaS-signed own-login assertion; ERiC did not observe the user reading or clicking. Test review only, never filing consent."
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/delegated-reviews/{reviewId}/confirmationsConfirm delegated test review

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

reviewId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

Request body

application/json · required

Required fields: decision_jws

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "decision_jws"
  ],
  "properties": {
    "decision_jws": {
      "type": "string",
      "minLength": 1,
      "maxLength": 16384,
      "description": "Compact EdDSA JWS from the registered product approval authority; exact action and frozen review tuple are signed."
    }
  }
}

Responses

201 · application/json

Successful delegated test review operation

Required fields: id, product_id, preparation_id, draft_id, revision, profile_version, manifest_sha256, manifest_id, payload_sha256, review_html_sha256, review_json_sha256, statement_version, purpose, status, expires_at, statement, evidence_type, authority_id, authority_version, actor_id

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "product_id",
    "preparation_id",
    "draft_id",
    "revision",
    "profile_version",
    "manifest_sha256",
    "manifest_id",
    "payload_sha256",
    "review_html_sha256",
    "review_json_sha256",
    "statement_version",
    "purpose",
    "status",
    "expires_at",
    "statement",
    "evidence_type",
    "authority_id",
    "authority_version",
    "actor_id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "preparation_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "draft_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1
    },
    "profile_version": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,9}$"
    },
    "manifest_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "manifest_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "payload_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "review_html_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "review_json_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "statement_version": {
      "type": "string",
      "enum": [
        "eric.test-review.v1"
      ]
    },
    "purpose": {
      "type": "string",
      "enum": [
        "test_review_only"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "confirmed",
        "revoked",
        "expired"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time"
    },
    "statement": {
      "type": "string"
    },
    "evidence_type": {
      "type": "string",
      "enum": [
        "partner_asserted"
      ]
    },
    "authority_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "authority_version": {
      "type": "integer",
      "format": "int64",
      "minimum": 1
    },
    "actor_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128
    }
  },
  "description": "SaaS-signed own-login assertion; ERiC did not observe the user reading or clicking. Test review only, never filing consent."
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/delegated-reviews/{reviewId}/revocationsRevoke delegated test review

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

reviewId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

Request body

application/json · required

Required fields: decision_jws

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "decision_jws"
  ],
  "properties": {
    "decision_jws": {
      "type": "string",
      "minLength": 1,
      "maxLength": 16384,
      "description": "Compact EdDSA JWS from the registered product approval authority; exact action and frozen review tuple are signed."
    }
  }
}

Responses

201 · application/json

Successful delegated test review operation

Required fields: id, product_id, preparation_id, draft_id, revision, profile_version, manifest_sha256, manifest_id, payload_sha256, review_html_sha256, review_json_sha256, statement_version, purpose, status, expires_at, statement, evidence_type, authority_id, authority_version, actor_id

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "product_id",
    "preparation_id",
    "draft_id",
    "revision",
    "profile_version",
    "manifest_sha256",
    "manifest_id",
    "payload_sha256",
    "review_html_sha256",
    "review_json_sha256",
    "statement_version",
    "purpose",
    "status",
    "expires_at",
    "statement",
    "evidence_type",
    "authority_id",
    "authority_version",
    "actor_id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "preparation_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "draft_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1
    },
    "profile_version": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,9}$"
    },
    "manifest_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "manifest_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "payload_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "review_html_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "review_json_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "statement_version": {
      "type": "string",
      "enum": [
        "eric.test-review.v1"
      ]
    },
    "purpose": {
      "type": "string",
      "enum": [
        "test_review_only"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "confirmed",
        "revoked",
        "expired"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time"
    },
    "statement": {
      "type": "string"
    },
    "evidence_type": {
      "type": "string",
      "enum": [
        "partner_asserted"
      ]
    },
    "authority_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "authority_version": {
      "type": "integer",
      "format": "int64",
      "minimum": 1
    },
    "actor_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128
    }
  },
  "description": "SaaS-signed own-login assertion; ERiC did not observe the user reading or clicking. Test review only, never filing consent."
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/draftsCreateDraft

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

Request body

application/json · required

Required fields: profile_version, input

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "profile_version": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,9}$"
    },
    "input": {
      "oneOf": [
        {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-v1"
                  ]
                },
                "source_revision": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                },
                "creation_date": {
                  "type": "string",
                  "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                },
                "year": {
                  "type": "integer",
                  "enum": [
                    2026
                  ]
                },
                "month": {
                  "type": "string",
                  "pattern": "^(0[1-9]|1[0-2])$"
                },
                "tax_office": {
                  "type": "string",
                  "pattern": "^[0-9]{4}$"
                },
                "tax_number": {
                  "type": "string",
                  "pattern": "^[0-9]{4}0[0-9]{8}$"
                },
                "supplier": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 45
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "house_number": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 9
                    },
                    "postal_code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 12
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "country": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "phone": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "email": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 70
                    }
                  },
                  "required": [
                    "name",
                    "street",
                    "house_number",
                    "postal_code",
                    "city",
                    "country",
                    "phone",
                    "email"
                  ]
                },
                "taxpayer": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "designation": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 50
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 60
                    },
                    "first_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 33
                    },
                    "house_number": {
                      "type": "string",
                      "pattern": "^[0-9]{1,9}$"
                    },
                    "postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 34
                    }
                  },
                  "required": [
                    "designation",
                    "name",
                    "first_name",
                    "street",
                    "house_number",
                    "postal_code",
                    "city"
                  ]
                },
                "fields": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "Kz81": {
                      "type": "string",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz86": {
                      "type": "string",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz66": {
                      "type": "string",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz83": {
                      "type": "string",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    }
                  },
                  "required": [
                    "Kz83"
                  ]
                }
              },
              "required": [
                "schema_version",
                "source_revision",
                "creation_date",
                "year",
                "month",
                "tax_office",
                "tax_number",
                "supplier",
                "taxpayer",
                "fields"
              ],
              "x-go-type": "json.RawMessage"
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-v2"
                  ]
                },
                "source_revision": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                },
                "creation_date": {
                  "type": "string",
                  "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                },
                "year": {
                  "type": "integer",
                  "enum": [
                    2026
                  ]
                },
                "tax_office": {
                  "type": "string",
                  "pattern": "^[0-9]{4}$"
                },
                "tax_number": {
                  "type": "string",
                  "pattern": "^[0-9]{4}0[0-9]{8}$"
                },
                "supplier": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 45
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "house_number": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 9
                    },
                    "postal_code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 12
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "country": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "phone": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "email": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 70
                    }
                  },
                  "required": [
                    "name",
                    "street",
                    "house_number",
                    "postal_code",
                    "city",
                    "country",
                    "phone",
                    "email"
                  ]
                },
                "taxpayer": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "designation": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 50
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 60
                    },
                    "first_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 33
                    },
                    "house_number": {
                      "type": "string",
                      "pattern": "^[0-9]{1,9}$"
                    },
                    "postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 34
                    },
                    "name_prefix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "name_suffix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "house_number_suffix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 15
                    },
                    "address_supplement": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "foreign_postal_code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 13
                    },
                    "country": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "po_box_city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 34
                    },
                    "po_box": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 10
                    },
                    "phone": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "email": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 70
                    },
                    "po_box_postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    },
                    "large_recipient_postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    }
                  },
                  "required": [
                    "name"
                  ]
                },
                "fields": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "Kz21": {
                      "type": "string",
                      "description": "Nicht steuerbare sonstige Leistungen gemäß § 18b Satz 1 Nummer 2 UStG (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz22": {
                      "type": "string",
                      "description": "Belege (z.B. Verträge, Rechnungen) werden gesondert eingereicht (flag)",
                      "enum": [
                        "1"
                      ]
                    },
                    "Kz26": {
                      "type": "string",
                      "description": "Das SEPA-Lastschriftmandat soll ausnahmsweise (z. B. wegen Verrechnungswünschen) für diesen Voranmeldungszeitraum nicht verwendet werden. Ein ggf. verbleibender Restbetrag ist gesondert zu entrichten. (flag)",
                      "enum": [
                        "1"
                      ]
                    },
                    "Kz29": {
                      "type": "string",
                      "description": "Verrechnung des Erstattungsbetrags erwünscht / Erstattungsbetrag ist abgetreten (Teilen Sie bitte die Verrechnungswünsche dem Finanzamt gesondert mit). (flag)",
                      "enum": [
                        "1"
                      ]
                    },
                    "Kz35": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz36": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz37": {
                      "type": "string",
                      "description": "Minderung der abziehbaren Vorsteuerbeträge (in der Zeile $Kz66.Vordruckzeile$ aus Rechnungen von anderen Unternehmen (§ 15 Absatz 1 Satz 1 Nummer 1 UStG) sowie in den Zeilen $Kz63.Vordruckzeile$ und $Kz59.Vordruckzeile$ enthalten) (EUR)",
                      "pattern": "^(0\\.00|[1-9][0-9]{0,10}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz39": {
                      "type": "string",
                      "description": "Abzug der festgesetzten Sondervorauszahlung für Dauerfristverlängerung (in der Regel nur in der letzten Voranmeldung des Besteuerungszeitraums auszufüllen) (EUR)",
                      "pattern": "^(0\\.00|[1-9][0-9]{0,10}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz41": {
                      "type": "string",
                      "description": "Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) an Abnehmer mit Umsatzsteuer-Identifikationsnummer (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz42": {
                      "type": "string",
                      "description": "Lieferungen des ersten Abnehmers bei innergemeinschaftlichen Dreiecksgeschäften (§ 25b UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz43": {
                      "type": "string",
                      "description": "Weitere steuerfreie Umsätze mit Vorsteuerabzug (z. B. Ausfuhrlieferungen, Umsätze nach § 4 Nummer 2 bis 7 UStG, Umsätze nach Verordnungen der EU) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz44": {
                      "type": "string",
                      "description": "Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) neuer Fahrzeuge an Abnehmer ohne Umsatzsteuer-Identifikationsnummer (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz45": {
                      "type": "string",
                      "description": "Übrige nicht steuerbare Umsätze (Leistungsort nicht im Inland) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz46": {
                      "type": "string",
                      "description": "Sonstige Leistungen nach § 3a Absatz 2 UStG eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz47": {
                      "type": "string",
                      "description": "Sonstige Leistungen nach § 3a Absatz 2 UStG eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz48": {
                      "type": "string",
                      "description": "Steuerfreie Umsätze ohne Vorsteuerabzug (z. B. Umsätze nach § 4 Nummer 8 bis 29 oder § 19 Absatz 1 UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz49": {
                      "type": "string",
                      "description": "Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz50": {
                      "type": "string",
                      "description": "Minderung der Bemessungsgrundlage (in den Zeilen $Kz81.Vordruckzeile$ bis $Kz76.Vordruckzeile$ enthalten) (whole EUR)",
                      "pattern": "^(0|[1-9][0-9]{0,12})$"
                    },
                    "Kz59": {
                      "type": "string",
                      "description": "Vorsteuerabzug für innergemeinschaftliche Lieferungen neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) sowie von Kleinunternehmern im Sinne des § 19 Absatz 1 UStG (§ 15 Absatz 4a UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz60": {
                      "type": "string",
                      "description": "Steuerpflichtige Umsätze des leistenden Unternehmers, für die der Leistungsempfänger die Steuer nach § 13b Absatz 5 UStG schuldet (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz61": {
                      "type": "string",
                      "description": "Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb von Gegenständen (§ 15 Absatz 1 Satz 1 Nummer 3 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz62": {
                      "type": "string",
                      "description": "Entstandene Einfuhrumsatzsteuer (§ 15 Absatz 1 Satz 1 Nummer 2 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz63": {
                      "type": "string",
                      "description": "Vorsteuerbeträge, die nach allgemeinen Durchschnittssätzen berechnet sind (§ 23a UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz64": {
                      "type": "string",
                      "description": "Berichtigung des Vorsteuerabzugs (§ 15a UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz65": {
                      "type": "string",
                      "description": "Steuer infolge des Wechsels der Besteuerungsform sowie Nachsteuer auf versteuerte Anzahlungen und ähnlichem wegen Steuersatzänderung (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz66": {
                      "type": "string",
                      "description": "Vorsteuerbeträge aus Rechnungen von anderen Unternehmern (§ 15 Absatz 1 Satz 1 Nummer 1 UStG), aus Leistungen im Sinne des § 27 Absatz 40a UStG und aus innergemeinschaftlichen Dreiecksgeschäften (§ 25b Absatz 5 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz67": {
                      "type": "string",
                      "description": "Vorsteuerbeträge aus Leistungen im Sinne des § 13b UStG (§ 15 Absatz 1 Satz 1 Nummer 4 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz69": {
                      "type": "string",
                      "description": "In Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (§ 14c UStG) sowie Steuerbeträge, die nach § 6a Absatz 4 Satz 2, § 17 Absatz 1 Satz 7, § 25b Absatz 2 UStG oder von einem Auslagerer oder Lagerhalter nach § 27 Absatz 40a UStG geschuldet werden. (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz70": {
                      "type": "string",
                      "description": "Wechsel von der Kleinunternehmer-Regelung (§ 19 UStG) zur Regelbesteuerung\nDatum des Wechsels (date); compiler also checks real calendar dates",
                      "pattern": "^(0[1-9]|[12][0-9]|3[01])\\.(0[1-9]|1[0-2])\\.[0-9]{4}$"
                    },
                    "Kz73": {
                      "type": "string",
                      "description": "Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz74": {
                      "type": "string",
                      "description": "Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz76": {
                      "type": "string",
                      "description": "Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (Sägewerkserzeugnisse, Getränke und alkoholische Flüssigkeiten, z. B. Wein) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz77": {
                      "type": "string",
                      "description": "Lieferungen land- und forstwirtschaftlicher Betriebe nach § 24 UStG an Abnehmer mit Umsatzsteuer-Identifikationsnummer (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz80": {
                      "type": "string",
                      "description": "Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (Sägewerkserzeugnisse, Getränke und alkoholische Flüssigkeiten, z. B. Wein) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz81": {
                      "type": "string",
                      "description": "zum Steuersatz von 19 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz83": {
                      "type": "string",
                      "description": "Verbleibende Umsatzsteuer-Vorauszahlung beziehungsweise verbleibender Überschuss (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz84": {
                      "type": "string",
                      "description": "Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz85": {
                      "type": "string",
                      "description": "Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz86": {
                      "type": "string",
                      "description": "zum Steuersatz von 7 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz87": {
                      "type": "string",
                      "description": "zum Steuersatz von 0 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz89": {
                      "type": "string",
                      "description": "zum Steuersatz von 19 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz91": {
                      "type": "string",
                      "description": "Steuerfreie innergemeinschaftliche Erwerbe von bestimmten Gegenständen und Anlagegold (§§ 4b und 25c UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz93": {
                      "type": "string",
                      "description": "zum Steuersatz von 7 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz90": {
                      "type": "string",
                      "description": "zum Steuersatz von 0 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz94": {
                      "type": "string",
                      "description": "neuer Fahrzeuge (§ 1b Absatz 2 und 3 UStG) von Lieferern ohne Umsatzsteuer-Identifikationsnummer zum allgemeinen Steuersatz (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz95": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz96": {
                      "type": "string",
                      "description": "neuer Fahrzeuge (§ 1b Absatz 2 und 3 UStG) von Lieferern ohne Umsatzsteuer-Identifikationsnummer zum allgemeinen Steuersatz (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz98": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz500": {
                      "type": "string",
                      "description": "In dieser Steueranmeldung (choice)",
                      "enum": [
                        "1",
                        "2",
                        "3",
                        "4"
                      ]
                    },
                    "Kz500_Begruendung": {
                      "type": "string",
                      "description": "Ergänzende Angaben zur Steueranmeldung (text)",
                      "minLength": 1,
                      "maxLength": 180
                    }
                  },
                  "required": [
                    "Kz83"
                  ]
                },
                "period": {
                  "type": "string",
                  "enum": [
                    "01",
                    "02",
                    "03",
                    "04",
                    "05",
                    "06",
                    "07",
                    "08",
                    "09",
                    "10",
                    "11",
                    "12",
                    "41",
                    "42",
                    "43",
                    "44"
                  ]
                },
                "correction": {
                  "type": "boolean"
                },
                "economic_id": {
                  "type": "string",
                  "pattern": "^DE[0-9]{9}$"
                }
              },
              "required": [
                "schema_version",
                "source_revision",
                "creation_date",
                "year",
                "period",
                "tax_office",
                "tax_number",
                "supplier",
                "taxpayer",
                "fields"
              ],
              "x-go-type": "json.RawMessage",
              "description": "Final reported values, not automatic tax calculation. Every payload remains test-marked. Schema and native plausibility are separate checks."
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-derived-v1"
                  ]
                },
                "source_snapshot_sha256": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "mapping_version": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                },
                "mapping_sha256": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "draft": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "schema_version": {
                      "type": "string",
                      "enum": [
                        "ustva-2026-v2"
                      ]
                    },
                    "source_revision": {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                    },
                    "creation_date": {
                      "type": "string",
                      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                    },
                    "year": {
                      "type": "integer",
                      "enum": [
                        2026
                      ]
                    },
                    "tax_office": {
                      "type": "string",
                      "pattern": "^[0-9]{4}$"
                    },
                    "tax_number": {
                      "type": "string",
                      "pattern": "^[0-9]{4}0[0-9]{8}$"
                    },
                    "supplier": {
                      "$ref": "#/components/schemas/Supplier"
                    },
                    "taxpayer": {
                      "$ref": "#/components/schemas/TaxpayerV2"
                    },
                    "period": {
                      "type": "string",
                      "enum": [
                        "01",
                        "02",
                        "03",
                        "04",
                        "05",
                        "06",
                        "07",
                        "08",
                        "09",
                        "10",
                        "11",
                        "12",
                        "41",
                        "42",
                        "43",
                        "44"
                      ]
                    },
                    "correction": {
                      "type": "boolean"
                    },
                    "economic_id": {
                      "type": "string",
                      "pattern": "^DE[0-9]{9}$"
                    }
                  },
                  "required": [
                    "schema_version",
                    "source_revision",
                    "creation_date",
                    "year",
                    "period",
                    "tax_office",
                    "tax_number",
                    "supplier",
                    "taxpayer"
                  ],
                  "x-go-type": "json.RawMessage",
                  "description": "Reporting metadata for classified facts. Final fields and month are forbidden; period is explicit."
                },
                "facts": {
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 256,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_ref": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "group": {
                        "type": "string",
                        "enum": [
                          "Kz21",
                          "Kz35",
                          "Kz37",
                          "Kz39",
                          "Kz41",
                          "Kz42",
                          "Kz43",
                          "Kz44",
                          "Kz45",
                          "Kz46",
                          "Kz48",
                          "Kz49",
                          "Kz50",
                          "Kz59",
                          "Kz60",
                          "Kz61",
                          "Kz62",
                          "Kz63",
                          "Kz64",
                          "Kz65",
                          "Kz66",
                          "Kz67",
                          "Kz69",
                          "Kz73",
                          "Kz76",
                          "Kz77",
                          "Kz81",
                          "Kz84",
                          "Kz86",
                          "Kz87",
                          "Kz89",
                          "Kz90",
                          "Kz91",
                          "Kz93",
                          "Kz94",
                          "Kz95"
                        ]
                      },
                      "base": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$",
                        "description": "Exact caller-confirmed EUR amount; no rate calculation."
                      },
                      "tax": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$",
                        "description": "Exact caller-confirmed EUR amount; no rate calculation."
                      }
                    },
                    "required": [
                      "id",
                      "source_ref",
                      "source_version",
                      "group"
                    ],
                    "oneOf": [
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz21",
                              "Kz41",
                              "Kz42",
                              "Kz43",
                              "Kz44",
                              "Kz45",
                              "Kz48",
                              "Kz49",
                              "Kz60",
                              "Kz77",
                              "Kz87",
                              "Kz90",
                              "Kz91"
                            ]
                          }
                        },
                        "required": [
                          "base"
                        ],
                        "not": {
                          "required": [
                            "tax"
                          ]
                        }
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz35",
                              "Kz46",
                              "Kz73",
                              "Kz76",
                              "Kz81",
                              "Kz84",
                              "Kz86",
                              "Kz89",
                              "Kz93",
                              "Kz94",
                              "Kz95"
                            ]
                          }
                        },
                        "required": [
                          "base",
                          "tax"
                        ]
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz59",
                              "Kz61",
                              "Kz62",
                              "Kz63",
                              "Kz64",
                              "Kz65",
                              "Kz66",
                              "Kz67",
                              "Kz69"
                            ]
                          }
                        },
                        "required": [
                          "tax"
                        ],
                        "not": {
                          "required": [
                            "base"
                          ]
                        }
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz37",
                              "Kz39"
                            ]
                          },
                          "tax": {
                            "type": "string",
                            "pattern": "^(0\\.00|[1-9][0-9]{0,12}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                          }
                        },
                        "required": [
                          "tax"
                        ],
                        "not": {
                          "required": [
                            "base"
                          ]
                        }
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz50"
                            ]
                          },
                          "base": {
                            "type": "string",
                            "pattern": "^(0\\.00|[1-9][0-9]{0,12}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                          }
                        },
                        "required": [
                          "base"
                        ],
                        "not": {
                          "required": [
                            "tax"
                          ]
                        }
                      }
                    ],
                    "x-go-type": "json.RawMessage",
                    "description": "Caller-confirmed annual group and exact amounts. Kz37/Kz39 tax and Kz50 base must be nonnegative per fact. Kz50 and Kz37 are additional informational reductions already reflected in the main groups; they do not affect Kz83. No classification inference; source references need not identify Accounting records."
                  }
                }
              },
              "required": [
                "schema_version",
                "source_snapshot_sha256",
                "mapping_version",
                "mapping_sha256",
                "draft",
                "facts"
              ],
              "x-go-type": "json.RawMessage",
              "description": "Restricted derived EUR mode. Aggregate exact cents before whole-euro projection; fractional aggregate bases fail. Preserve supplied tax cents and derive Kz83 using pinned form rules. Kz50/Kz37 are informational and never counted again in Kz83. Final fields and control/text/date Kennziffer fields are unsupported. Test-marked and unvalidated; no filing permission."
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-mapped-v1"
                  ]
                },
                "source_snapshot_sha256": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "mapping_id": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
                },
                "mapping_revision": {
                  "type": "integer",
                  "format": "int64",
                  "minimum": 1,
                  "maximum": 2147483647
                },
                "draft": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "schema_version": {
                      "type": "string",
                      "enum": [
                        "ustva-2026-v2"
                      ]
                    },
                    "source_revision": {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                    },
                    "creation_date": {
                      "type": "string",
                      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                    },
                    "year": {
                      "type": "integer",
                      "enum": [
                        2026
                      ]
                    },
                    "tax_office": {
                      "type": "string",
                      "pattern": "^[0-9]{4}$"
                    },
                    "tax_number": {
                      "type": "string",
                      "pattern": "^[0-9]{4}0[0-9]{8}$"
                    },
                    "supplier": {
                      "$ref": "#/components/schemas/Supplier"
                    },
                    "taxpayer": {
                      "$ref": "#/components/schemas/TaxpayerV2"
                    },
                    "period": {
                      "type": "string",
                      "enum": [
                        "01",
                        "02",
                        "03",
                        "04",
                        "05",
                        "06",
                        "07",
                        "08",
                        "09",
                        "10",
                        "11",
                        "12",
                        "41",
                        "42",
                        "43",
                        "44"
                      ]
                    },
                    "correction": {
                      "type": "boolean"
                    },
                    "economic_id": {
                      "type": "string",
                      "pattern": "^DE[0-9]{9}$"
                    }
                  },
                  "required": [
                    "schema_version",
                    "source_revision",
                    "creation_date",
                    "year",
                    "period",
                    "tax_office",
                    "tax_number",
                    "supplier",
                    "taxpayer"
                  ],
                  "x-go-type": "json.RawMessage",
                  "description": "Reporting metadata for classified facts. Final fields and month are forbidden; period is explicit."
                },
                "facts": {
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 256,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_ref": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_key": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "base": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      },
                      "tax": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      }
                    },
                    "required": [
                      "id",
                      "source_ref",
                      "source_version",
                      "source_key"
                    ],
                    "anyOf": [
                      {
                        "required": [
                          "base"
                        ]
                      },
                      {
                        "required": [
                          "tax"
                        ]
                      }
                    ],
                    "description": "Mapped fact input. The confirmed source mapping determines which base/tax fields are valid for its source_key; values remain caller-classified exact EUR amounts."
                  }
                }
              },
              "required": [
                "schema_version",
                "source_snapshot_sha256",
                "mapping_id",
                "mapping_revision",
                "draft",
                "facts"
              ],
              "x-go-type": "json.RawMessage",
              "description": "Public source-key-mapped UStVA input. The referenced confirmed mapping revision binds each source_key to a pinned group. Never supply final form fields or compiler-private representations."
            }
          ],
          "x-go-type": "json.RawMessage"
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "corporation_tax_option": {
              "type": "boolean",
              "description": "Explicit section 1a KStG case assertion, bound to the GCD option. Omitted/false retains the ordinary case; true currently permits eligible domestic annual AO/GKV or UKV core reports without EV/MicroBilG. Filing remains denied."
            },
            "micro_bilg_prepared": {
              "type": "boolean",
              "description": "Explicit customer assertion that this corporation's statements were prepared under MicroBilG. True selects the fiscal-microbilg entry schema; absent or false selects the ordinary fiscal schema."
            },
            "schema_version": {
              "type": "string",
              "enum": [
                "ebilanz-core-6.9-v1"
              ]
            },
            "source_revision": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
            },
            "mapping_version": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
            },
            "tax_number": {
              "type": "string",
              "minLength": 13,
              "maxLength": 13,
              "pattern": "^[0-9]{4}0[0-9]{8}$"
            },
            "tax_office": {
              "type": "string",
              "minLength": 4,
              "maxLength": 4,
              "pattern": "^[0-9]{4}$"
            },
            "supplier": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "closing_date": {
              "type": "string",
              "format": "date",
              "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
            },
            "contexts": {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "dimensions": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/EBilanzDimension"
                        },
                        "minItems": 0,
                        "maxItems": 16
                      },
                      "start_date": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                      },
                      "end_date": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                      }
                    },
                    "required": [
                      "id",
                      "start_date",
                      "end_date"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "dimensions": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/EBilanzDimension"
                        },
                        "minItems": 0,
                        "maxItems": 16
                      },
                      "instant": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                      }
                    },
                    "required": [
                      "id",
                      "instant"
                    ]
                  }
                ],
                "description": "Exactly one instant or duration period. The module verifies date equality, semantic uniqueness and official dimensions."
              },
              "minItems": 2,
              "maxItems": 256
            },
            "facts": {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "value"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "minLength": 0,
                        "maxLength": 4096
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "context",
                      "state",
                      "value"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "nil"
                        ]
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "context",
                      "state"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "tuple"
                        ]
                      },
                      "children": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/EBilanzFact"
                        },
                        "minItems": 1,
                        "maxItems": 5000
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "state",
                      "children"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "nil"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "state"
                    ]
                  }
                ],
                "description": "Closed value, nil item, populated tuple or nil tuple shapes. Nil tuples omit context, unit, value and children. Official concept/type/nillability, total fact count 5000 and tuple depth 4 are enforced by the pinned module."
              },
              "minItems": 1,
              "maxItems": 5000
            },
            "accounts": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80,
                    "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                  },
                  "number": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  },
                  "label": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "balance": {
                    "type": "string",
                    "minLength": 4,
                    "maxLength": 21,
                    "pattern": "^(0\\.00|-?[1-9][0-9]*\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                  },
                  "fact_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80,
                    "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                  },
                  "source": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  }
                },
                "required": [
                  "id",
                  "number",
                  "label",
                  "balance",
                  "fact_id",
                  "source"
                ]
              },
              "minItems": 0,
              "maxItems": 5000
            }
          },
          "required": [
            "schema_version",
            "source_revision",
            "mapping_version",
            "tax_number",
            "tax_office",
            "supplier",
            "closing_date",
            "contexts",
            "facts"
          ],
          "description": "Final reported facts and explicitly mapped Kontensalden under pinned E-Bilanz 6.9 artifacts. No caller-supplied profile, runtime, catalog or procedure overrides. Official semantic/taxonomy relationships, byte bounds and source mapping consistency are validated by the module; this shape is not qualification evidence."
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "schema_version": {
              "type": "string",
              "enum": [
                "ebilanz-core-6.9-mapped-v1"
              ]
            },
            "source_snapshot_sha256": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            "mapping_id": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
            },
            "mapping_revision": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 2147483647
            },
            "draft": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ebilanz-core-6.9-v1"
                  ]
                },
                "source_revision": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 80,
                  "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                },
                "tax_number": {
                  "type": "string",
                  "minLength": 13,
                  "maxLength": 13,
                  "pattern": "^[0-9]{4}0[0-9]{8}$"
                },
                "tax_office": {
                  "type": "string",
                  "minLength": 4,
                  "maxLength": 4,
                  "pattern": "^[0-9]{4}$"
                },
                "supplier": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512
                },
                "closing_date": {
                  "type": "string",
                  "format": "date",
                  "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                },
                "contexts": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "dimensions": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/EBilanzDimension"
                            },
                            "minItems": 0,
                            "maxItems": 16
                          },
                          "start_date": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                          },
                          "end_date": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                          }
                        },
                        "required": [
                          "id",
                          "start_date",
                          "end_date"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "dimensions": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/EBilanzDimension"
                            },
                            "minItems": 0,
                            "maxItems": 16
                          },
                          "instant": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                          }
                        },
                        "required": [
                          "id",
                          "instant"
                        ]
                      }
                    ],
                    "description": "Exactly one instant or duration period. The module verifies date equality, semantic uniqueness and official dimensions."
                  },
                  "minItems": 2,
                  "maxItems": 256
                },
                "facts": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "context": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "unit": {
                            "type": "string",
                            "enum": [
                              "EUR"
                            ]
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "value"
                            ]
                          },
                          "value": {
                            "type": "string",
                            "minLength": 0,
                            "maxLength": 4096
                          },
                          "footnote": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 16384,
                            "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "context",
                          "state",
                          "value"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "context": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "unit": {
                            "type": "string",
                            "enum": [
                              "EUR"
                            ]
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "nil"
                            ]
                          },
                          "footnote": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 16384,
                            "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "context",
                          "state"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "tuple"
                            ]
                          },
                          "children": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/EBilanzFact"
                            },
                            "minItems": 1,
                            "maxItems": 5000
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "state",
                          "children"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "nil"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "state"
                        ]
                      }
                    ],
                    "description": "Closed value, nil item, populated tuple or nil tuple shapes. Nil tuples omit context, unit, value and children. Official concept/type/nillability, total fact count 5000 and tuple depth 4 are enforced by the pinned module."
                  },
                  "minItems": 0,
                  "maxItems": 5000
                },
                "accounts": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "number": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      },
                      "label": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "balance": {
                        "type": "string",
                        "minLength": 4,
                        "maxLength": 21,
                        "pattern": "^(0\\.00|-?[1-9][0-9]*\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      },
                      "fact_id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      }
                    },
                    "required": [
                      "id",
                      "number",
                      "label",
                      "balance",
                      "fact_id",
                      "source"
                    ]
                  },
                  "minItems": 0,
                  "maxItems": 5000
                }
              },
              "required": [
                "schema_version",
                "source_revision",
                "tax_number",
                "tax_office",
                "supplier",
                "closing_date",
                "contexts",
                "facts"
              ],
              "description": "Explicit E-Bilanz metadata, contexts, GCD facts and account details accompanying mapped monetary facts. The service supplies mapping_version. Explicit facts cannot override mapped target cells or identifiers."
            },
            "source_facts": {
              "type": "array",
              "minItems": 1,
              "maxItems": 256,
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "source_ref": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_key": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "value"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "maxLength": 21,
                        "pattern": "^(0\\.00|-?[1-9][0-9]*\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "context",
                      "unit",
                      "sources",
                      "source_ref",
                      "source_version",
                      "source_key",
                      "state",
                      "value"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "source_ref": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_key": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "nil"
                        ]
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "context",
                      "unit",
                      "sources",
                      "source_ref",
                      "source_version",
                      "source_key",
                      "state"
                    ]
                  }
                ],
                "description": "One final monetary fact per source key. sources must contain source_ref. The confirmed mapping supplies the concept and exact dimensions; only value or NIL is accepted."
              }
            }
          },
          "required": [
            "schema_version",
            "source_snapshot_sha256",
            "mapping_id",
            "mapping_revision",
            "draft",
            "source_facts"
          ],
          "x-go-type": "json.RawMessage",
          "description": "Public source-key-mapped E-Bilanz input, at most 512 KiB. Names an exact confirmed revision. Compiler-private snapshots and caller-supplied confirmation are rejected."
        }
      ],
      "x-go-type": "json.RawMessage"
    }
  },
  "required": [
    "profile_version",
    "input"
  ]
}

Responses

201 · application/json

Successful operation

Required fields: id, product_id, revision, profile_version, input

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "profile_version": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,9}$"
    },
    "input": {
      "oneOf": [
        {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-v1"
                  ]
                },
                "source_revision": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                },
                "creation_date": {
                  "type": "string",
                  "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                },
                "year": {
                  "type": "integer",
                  "enum": [
                    2026
                  ]
                },
                "month": {
                  "type": "string",
                  "pattern": "^(0[1-9]|1[0-2])$"
                },
                "tax_office": {
                  "type": "string",
                  "pattern": "^[0-9]{4}$"
                },
                "tax_number": {
                  "type": "string",
                  "pattern": "^[0-9]{4}0[0-9]{8}$"
                },
                "supplier": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 45
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "house_number": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 9
                    },
                    "postal_code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 12
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "country": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "phone": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "email": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 70
                    }
                  },
                  "required": [
                    "name",
                    "street",
                    "house_number",
                    "postal_code",
                    "city",
                    "country",
                    "phone",
                    "email"
                  ]
                },
                "taxpayer": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "designation": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 50
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 60
                    },
                    "first_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 33
                    },
                    "house_number": {
                      "type": "string",
                      "pattern": "^[0-9]{1,9}$"
                    },
                    "postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 34
                    }
                  },
                  "required": [
                    "designation",
                    "name",
                    "first_name",
                    "street",
                    "house_number",
                    "postal_code",
                    "city"
                  ]
                },
                "fields": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "Kz81": {
                      "type": "string",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz86": {
                      "type": "string",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz66": {
                      "type": "string",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz83": {
                      "type": "string",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    }
                  },
                  "required": [
                    "Kz83"
                  ]
                }
              },
              "required": [
                "schema_version",
                "source_revision",
                "creation_date",
                "year",
                "month",
                "tax_office",
                "tax_number",
                "supplier",
                "taxpayer",
                "fields"
              ],
              "x-go-type": "json.RawMessage"
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-v2"
                  ]
                },
                "source_revision": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                },
                "creation_date": {
                  "type": "string",
                  "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                },
                "year": {
                  "type": "integer",
                  "enum": [
                    2026
                  ]
                },
                "tax_office": {
                  "type": "string",
                  "pattern": "^[0-9]{4}$"
                },
                "tax_number": {
                  "type": "string",
                  "pattern": "^[0-9]{4}0[0-9]{8}$"
                },
                "supplier": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 45
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "house_number": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 9
                    },
                    "postal_code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 12
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "country": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "phone": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "email": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 70
                    }
                  },
                  "required": [
                    "name",
                    "street",
                    "house_number",
                    "postal_code",
                    "city",
                    "country",
                    "phone",
                    "email"
                  ]
                },
                "taxpayer": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "designation": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 50
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 60
                    },
                    "first_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 33
                    },
                    "house_number": {
                      "type": "string",
                      "pattern": "^[0-9]{1,9}$"
                    },
                    "postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 34
                    },
                    "name_prefix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "name_suffix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "house_number_suffix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 15
                    },
                    "address_supplement": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "foreign_postal_code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 13
                    },
                    "country": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "po_box_city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 34
                    },
                    "po_box": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 10
                    },
                    "phone": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "email": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 70
                    },
                    "po_box_postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    },
                    "large_recipient_postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    }
                  },
                  "required": [
                    "name"
                  ]
                },
                "fields": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "Kz21": {
                      "type": "string",
                      "description": "Nicht steuerbare sonstige Leistungen gemäß § 18b Satz 1 Nummer 2 UStG (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz22": {
                      "type": "string",
                      "description": "Belege (z.B. Verträge, Rechnungen) werden gesondert eingereicht (flag)",
                      "enum": [
                        "1"
                      ]
                    },
                    "Kz26": {
                      "type": "string",
                      "description": "Das SEPA-Lastschriftmandat soll ausnahmsweise (z. B. wegen Verrechnungswünschen) für diesen Voranmeldungszeitraum nicht verwendet werden. Ein ggf. verbleibender Restbetrag ist gesondert zu entrichten. (flag)",
                      "enum": [
                        "1"
                      ]
                    },
                    "Kz29": {
                      "type": "string",
                      "description": "Verrechnung des Erstattungsbetrags erwünscht / Erstattungsbetrag ist abgetreten (Teilen Sie bitte die Verrechnungswünsche dem Finanzamt gesondert mit). (flag)",
                      "enum": [
                        "1"
                      ]
                    },
                    "Kz35": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz36": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz37": {
                      "type": "string",
                      "description": "Minderung der abziehbaren Vorsteuerbeträge (in der Zeile $Kz66.Vordruckzeile$ aus Rechnungen von anderen Unternehmen (§ 15 Absatz 1 Satz 1 Nummer 1 UStG) sowie in den Zeilen $Kz63.Vordruckzeile$ und $Kz59.Vordruckzeile$ enthalten) (EUR)",
                      "pattern": "^(0\\.00|[1-9][0-9]{0,10}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz39": {
                      "type": "string",
                      "description": "Abzug der festgesetzten Sondervorauszahlung für Dauerfristverlängerung (in der Regel nur in der letzten Voranmeldung des Besteuerungszeitraums auszufüllen) (EUR)",
                      "pattern": "^(0\\.00|[1-9][0-9]{0,10}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz41": {
                      "type": "string",
                      "description": "Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) an Abnehmer mit Umsatzsteuer-Identifikationsnummer (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz42": {
                      "type": "string",
                      "description": "Lieferungen des ersten Abnehmers bei innergemeinschaftlichen Dreiecksgeschäften (§ 25b UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz43": {
                      "type": "string",
                      "description": "Weitere steuerfreie Umsätze mit Vorsteuerabzug (z. B. Ausfuhrlieferungen, Umsätze nach § 4 Nummer 2 bis 7 UStG, Umsätze nach Verordnungen der EU) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz44": {
                      "type": "string",
                      "description": "Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) neuer Fahrzeuge an Abnehmer ohne Umsatzsteuer-Identifikationsnummer (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz45": {
                      "type": "string",
                      "description": "Übrige nicht steuerbare Umsätze (Leistungsort nicht im Inland) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz46": {
                      "type": "string",
                      "description": "Sonstige Leistungen nach § 3a Absatz 2 UStG eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz47": {
                      "type": "string",
                      "description": "Sonstige Leistungen nach § 3a Absatz 2 UStG eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz48": {
                      "type": "string",
                      "description": "Steuerfreie Umsätze ohne Vorsteuerabzug (z. B. Umsätze nach § 4 Nummer 8 bis 29 oder § 19 Absatz 1 UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz49": {
                      "type": "string",
                      "description": "Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz50": {
                      "type": "string",
                      "description": "Minderung der Bemessungsgrundlage (in den Zeilen $Kz81.Vordruckzeile$ bis $Kz76.Vordruckzeile$ enthalten) (whole EUR)",
                      "pattern": "^(0|[1-9][0-9]{0,12})$"
                    },
                    "Kz59": {
                      "type": "string",
                      "description": "Vorsteuerabzug für innergemeinschaftliche Lieferungen neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) sowie von Kleinunternehmern im Sinne des § 19 Absatz 1 UStG (§ 15 Absatz 4a UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz60": {
                      "type": "string",
                      "description": "Steuerpflichtige Umsätze des leistenden Unternehmers, für die der Leistungsempfänger die Steuer nach § 13b Absatz 5 UStG schuldet (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz61": {
                      "type": "string",
                      "description": "Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb von Gegenständen (§ 15 Absatz 1 Satz 1 Nummer 3 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz62": {
                      "type": "string",
                      "description": "Entstandene Einfuhrumsatzsteuer (§ 15 Absatz 1 Satz 1 Nummer 2 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz63": {
                      "type": "string",
                      "description": "Vorsteuerbeträge, die nach allgemeinen Durchschnittssätzen berechnet sind (§ 23a UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz64": {
                      "type": "string",
                      "description": "Berichtigung des Vorsteuerabzugs (§ 15a UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz65": {
                      "type": "string",
                      "description": "Steuer infolge des Wechsels der Besteuerungsform sowie Nachsteuer auf versteuerte Anzahlungen und ähnlichem wegen Steuersatzänderung (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz66": {
                      "type": "string",
                      "description": "Vorsteuerbeträge aus Rechnungen von anderen Unternehmern (§ 15 Absatz 1 Satz 1 Nummer 1 UStG), aus Leistungen im Sinne des § 27 Absatz 40a UStG und aus innergemeinschaftlichen Dreiecksgeschäften (§ 25b Absatz 5 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz67": {
                      "type": "string",
                      "description": "Vorsteuerbeträge aus Leistungen im Sinne des § 13b UStG (§ 15 Absatz 1 Satz 1 Nummer 4 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz69": {
                      "type": "string",
                      "description": "In Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (§ 14c UStG) sowie Steuerbeträge, die nach § 6a Absatz 4 Satz 2, § 17 Absatz 1 Satz 7, § 25b Absatz 2 UStG oder von einem Auslagerer oder Lagerhalter nach § 27 Absatz 40a UStG geschuldet werden. (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz70": {
                      "type": "string",
                      "description": "Wechsel von der Kleinunternehmer-Regelung (§ 19 UStG) zur Regelbesteuerung\nDatum des Wechsels (date); compiler also checks real calendar dates",
                      "pattern": "^(0[1-9]|[12][0-9]|3[01])\\.(0[1-9]|1[0-2])\\.[0-9]{4}$"
                    },
                    "Kz73": {
                      "type": "string",
                      "description": "Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz74": {
                      "type": "string",
                      "description": "Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz76": {
                      "type": "string",
                      "description": "Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (Sägewerkserzeugnisse, Getränke und alkoholische Flüssigkeiten, z. B. Wein) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz77": {
                      "type": "string",
                      "description": "Lieferungen land- und forstwirtschaftlicher Betriebe nach § 24 UStG an Abnehmer mit Umsatzsteuer-Identifikationsnummer (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz80": {
                      "type": "string",
                      "description": "Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (Sägewerkserzeugnisse, Getränke und alkoholische Flüssigkeiten, z. B. Wein) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz81": {
                      "type": "string",
                      "description": "zum Steuersatz von 19 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz83": {
                      "type": "string",
                      "description": "Verbleibende Umsatzsteuer-Vorauszahlung beziehungsweise verbleibender Überschuss (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz84": {
                      "type": "string",
                      "description": "Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz85": {
                      "type": "string",
                      "description": "Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz86": {
                      "type": "string",
                      "description": "zum Steuersatz von 7 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz87": {
                      "type": "string",
                      "description": "zum Steuersatz von 0 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz89": {
                      "type": "string",
                      "description": "zum Steuersatz von 19 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz91": {
                      "type": "string",
                      "description": "Steuerfreie innergemeinschaftliche Erwerbe von bestimmten Gegenständen und Anlagegold (§§ 4b und 25c UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz93": {
                      "type": "string",
                      "description": "zum Steuersatz von 7 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz90": {
                      "type": "string",
                      "description": "zum Steuersatz von 0 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz94": {
                      "type": "string",
                      "description": "neuer Fahrzeuge (§ 1b Absatz 2 und 3 UStG) von Lieferern ohne Umsatzsteuer-Identifikationsnummer zum allgemeinen Steuersatz (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz95": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz96": {
                      "type": "string",
                      "description": "neuer Fahrzeuge (§ 1b Absatz 2 und 3 UStG) von Lieferern ohne Umsatzsteuer-Identifikationsnummer zum allgemeinen Steuersatz (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz98": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz500": {
                      "type": "string",
                      "description": "In dieser Steueranmeldung (choice)",
                      "enum": [
                        "1",
                        "2",
                        "3",
                        "4"
                      ]
                    },
                    "Kz500_Begruendung": {
                      "type": "string",
                      "description": "Ergänzende Angaben zur Steueranmeldung (text)",
                      "minLength": 1,
                      "maxLength": 180
                    }
                  },
                  "required": [
                    "Kz83"
                  ]
                },
                "period": {
                  "type": "string",
                  "enum": [
                    "01",
                    "02",
                    "03",
                    "04",
                    "05",
                    "06",
                    "07",
                    "08",
                    "09",
                    "10",
                    "11",
                    "12",
                    "41",
                    "42",
                    "43",
                    "44"
                  ]
                },
                "correction": {
                  "type": "boolean"
                },
                "economic_id": {
                  "type": "string",
                  "pattern": "^DE[0-9]{9}$"
                }
              },
              "required": [
                "schema_version",
                "source_revision",
                "creation_date",
                "year",
                "period",
                "tax_office",
                "tax_number",
                "supplier",
                "taxpayer",
                "fields"
              ],
              "x-go-type": "json.RawMessage",
              "description": "Final reported values, not automatic tax calculation. Every payload remains test-marked. Schema and native plausibility are separate checks."
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-derived-v1"
                  ]
                },
                "source_snapshot_sha256": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "mapping_version": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                },
                "mapping_sha256": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "draft": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "schema_version": {
                      "type": "string",
                      "enum": [
                        "ustva-2026-v2"
                      ]
                    },
                    "source_revision": {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                    },
                    "creation_date": {
                      "type": "string",
                      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                    },
                    "year": {
                      "type": "integer",
                      "enum": [
                        2026
                      ]
                    },
                    "tax_office": {
                      "type": "string",
                      "pattern": "^[0-9]{4}$"
                    },
                    "tax_number": {
                      "type": "string",
                      "pattern": "^[0-9]{4}0[0-9]{8}$"
                    },
                    "supplier": {
                      "$ref": "#/components/schemas/Supplier"
                    },
                    "taxpayer": {
                      "$ref": "#/components/schemas/TaxpayerV2"
                    },
                    "period": {
                      "type": "string",
                      "enum": [
                        "01",
                        "02",
                        "03",
                        "04",
                        "05",
                        "06",
                        "07",
                        "08",
                        "09",
                        "10",
                        "11",
                        "12",
                        "41",
                        "42",
                        "43",
                        "44"
                      ]
                    },
                    "correction": {
                      "type": "boolean"
                    },
                    "economic_id": {
                      "type": "string",
                      "pattern": "^DE[0-9]{9}$"
                    }
                  },
                  "required": [
                    "schema_version",
                    "source_revision",
                    "creation_date",
                    "year",
                    "period",
                    "tax_office",
                    "tax_number",
                    "supplier",
                    "taxpayer"
                  ],
                  "x-go-type": "json.RawMessage",
                  "description": "Reporting metadata for classified facts. Final fields and month are forbidden; period is explicit."
                },
                "facts": {
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 256,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_ref": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "group": {
                        "type": "string",
                        "enum": [
                          "Kz21",
                          "Kz35",
                          "Kz37",
                          "Kz39",
                          "Kz41",
                          "Kz42",
                          "Kz43",
                          "Kz44",
                          "Kz45",
                          "Kz46",
                          "Kz48",
                          "Kz49",
                          "Kz50",
                          "Kz59",
                          "Kz60",
                          "Kz61",
                          "Kz62",
                          "Kz63",
                          "Kz64",
                          "Kz65",
                          "Kz66",
                          "Kz67",
                          "Kz69",
                          "Kz73",
                          "Kz76",
                          "Kz77",
                          "Kz81",
                          "Kz84",
                          "Kz86",
                          "Kz87",
                          "Kz89",
                          "Kz90",
                          "Kz91",
                          "Kz93",
                          "Kz94",
                          "Kz95"
                        ]
                      },
                      "base": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$",
                        "description": "Exact caller-confirmed EUR amount; no rate calculation."
                      },
                      "tax": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$",
                        "description": "Exact caller-confirmed EUR amount; no rate calculation."
                      }
                    },
                    "required": [
                      "id",
                      "source_ref",
                      "source_version",
                      "group"
                    ],
                    "oneOf": [
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz21",
                              "Kz41",
                              "Kz42",
                              "Kz43",
                              "Kz44",
                              "Kz45",
                              "Kz48",
                              "Kz49",
                              "Kz60",
                              "Kz77",
                              "Kz87",
                              "Kz90",
                              "Kz91"
                            ]
                          }
                        },
                        "required": [
                          "base"
                        ],
                        "not": {
                          "required": [
                            "tax"
                          ]
                        }
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz35",
                              "Kz46",
                              "Kz73",
                              "Kz76",
                              "Kz81",
                              "Kz84",
                              "Kz86",
                              "Kz89",
                              "Kz93",
                              "Kz94",
                              "Kz95"
                            ]
                          }
                        },
                        "required": [
                          "base",
                          "tax"
                        ]
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz59",
                              "Kz61",
                              "Kz62",
                              "Kz63",
                              "Kz64",
                              "Kz65",
                              "Kz66",
                              "Kz67",
                              "Kz69"
                            ]
                          }
                        },
                        "required": [
                          "tax"
                        ],
                        "not": {
                          "required": [
                            "base"
                          ]
                        }
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz37",
                              "Kz39"
                            ]
                          },
                          "tax": {
                            "type": "string",
                            "pattern": "^(0\\.00|[1-9][0-9]{0,12}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                          }
                        },
                        "required": [
                          "tax"
                        ],
                        "not": {
                          "required": [
                            "base"
                          ]
                        }
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz50"
                            ]
                          },
                          "base": {
                            "type": "string",
                            "pattern": "^(0\\.00|[1-9][0-9]{0,12}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                          }
                        },
                        "required": [
                          "base"
                        ],
                        "not": {
                          "required": [
                            "tax"
                          ]
                        }
                      }
                    ],
                    "x-go-type": "json.RawMessage",
                    "description": "Caller-confirmed annual group and exact amounts. Kz37/Kz39 tax and Kz50 base must be nonnegative per fact. Kz50 and Kz37 are additional informational reductions already reflected in the main groups; they do not affect Kz83. No classification inference; source references need not identify Accounting records."
                  }
                }
              },
              "required": [
                "schema_version",
                "source_snapshot_sha256",
                "mapping_version",
                "mapping_sha256",
                "draft",
                "facts"
              ],
              "x-go-type": "json.RawMessage",
              "description": "Restricted derived EUR mode. Aggregate exact cents before whole-euro projection; fractional aggregate bases fail. Preserve supplied tax cents and derive Kz83 using pinned form rules. Kz50/Kz37 are informational and never counted again in Kz83. Final fields and control/text/date Kennziffer fields are unsupported. Test-marked and unvalidated; no filing permission."
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-mapped-v1"
                  ]
                },
                "source_snapshot_sha256": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "mapping_id": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
                },
                "mapping_revision": {
                  "type": "integer",
                  "format": "int64",
                  "minimum": 1,
                  "maximum": 2147483647
                },
                "draft": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "schema_version": {
                      "type": "string",
                      "enum": [
                        "ustva-2026-v2"
                      ]
                    },
                    "source_revision": {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                    },
                    "creation_date": {
                      "type": "string",
                      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                    },
                    "year": {
                      "type": "integer",
                      "enum": [
                        2026
                      ]
                    },
                    "tax_office": {
                      "type": "string",
                      "pattern": "^[0-9]{4}$"
                    },
                    "tax_number": {
                      "type": "string",
                      "pattern": "^[0-9]{4}0[0-9]{8}$"
                    },
                    "supplier": {
                      "$ref": "#/components/schemas/Supplier"
                    },
                    "taxpayer": {
                      "$ref": "#/components/schemas/TaxpayerV2"
                    },
                    "period": {
                      "type": "string",
                      "enum": [
                        "01",
                        "02",
                        "03",
                        "04",
                        "05",
                        "06",
                        "07",
                        "08",
                        "09",
                        "10",
                        "11",
                        "12",
                        "41",
                        "42",
                        "43",
                        "44"
                      ]
                    },
                    "correction": {
                      "type": "boolean"
                    },
                    "economic_id": {
                      "type": "string",
                      "pattern": "^DE[0-9]{9}$"
                    }
                  },
                  "required": [
                    "schema_version",
                    "source_revision",
                    "creation_date",
                    "year",
                    "period",
                    "tax_office",
                    "tax_number",
                    "supplier",
                    "taxpayer"
                  ],
                  "x-go-type": "json.RawMessage",
                  "description": "Reporting metadata for classified facts. Final fields and month are forbidden; period is explicit."
                },
                "facts": {
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 256,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_ref": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_key": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "base": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      },
                      "tax": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      }
                    },
                    "required": [
                      "id",
                      "source_ref",
                      "source_version",
                      "source_key"
                    ],
                    "anyOf": [
                      {
                        "required": [
                          "base"
                        ]
                      },
                      {
                        "required": [
                          "tax"
                        ]
                      }
                    ],
                    "description": "Mapped fact input. The confirmed source mapping determines which base/tax fields are valid for its source_key; values remain caller-classified exact EUR amounts."
                  }
                }
              },
              "required": [
                "schema_version",
                "source_snapshot_sha256",
                "mapping_id",
                "mapping_revision",
                "draft",
                "facts"
              ],
              "x-go-type": "json.RawMessage",
              "description": "Public source-key-mapped UStVA input. The referenced confirmed mapping revision binds each source_key to a pinned group. Never supply final form fields or compiler-private representations."
            }
          ],
          "x-go-type": "json.RawMessage"
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "corporation_tax_option": {
              "type": "boolean",
              "description": "Explicit section 1a KStG case assertion, bound to the GCD option. Omitted/false retains the ordinary case; true currently permits eligible domestic annual AO/GKV or UKV core reports without EV/MicroBilG. Filing remains denied."
            },
            "micro_bilg_prepared": {
              "type": "boolean",
              "description": "Explicit customer assertion that this corporation's statements were prepared under MicroBilG. True selects the fiscal-microbilg entry schema; absent or false selects the ordinary fiscal schema."
            },
            "schema_version": {
              "type": "string",
              "enum": [
                "ebilanz-core-6.9-v1"
              ]
            },
            "source_revision": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
            },
            "mapping_version": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
            },
            "tax_number": {
              "type": "string",
              "minLength": 13,
              "maxLength": 13,
              "pattern": "^[0-9]{4}0[0-9]{8}$"
            },
            "tax_office": {
              "type": "string",
              "minLength": 4,
              "maxLength": 4,
              "pattern": "^[0-9]{4}$"
            },
            "supplier": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "closing_date": {
              "type": "string",
              "format": "date",
              "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
            },
            "contexts": {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "dimensions": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/EBilanzDimension"
                        },
                        "minItems": 0,
                        "maxItems": 16
                      },
                      "start_date": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                      },
                      "end_date": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                      }
                    },
                    "required": [
                      "id",
                      "start_date",
                      "end_date"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "dimensions": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/EBilanzDimension"
                        },
                        "minItems": 0,
                        "maxItems": 16
                      },
                      "instant": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                      }
                    },
                    "required": [
                      "id",
                      "instant"
                    ]
                  }
                ],
                "description": "Exactly one instant or duration period. The module verifies date equality, semantic uniqueness and official dimensions."
              },
              "minItems": 2,
              "maxItems": 256
            },
            "facts": {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "value"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "minLength": 0,
                        "maxLength": 4096
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "context",
                      "state",
                      "value"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "nil"
                        ]
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "context",
                      "state"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "tuple"
                        ]
                      },
                      "children": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/EBilanzFact"
                        },
                        "minItems": 1,
                        "maxItems": 5000
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "state",
                      "children"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "nil"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "state"
                    ]
                  }
                ],
                "description": "Closed value, nil item, populated tuple or nil tuple shapes. Nil tuples omit context, unit, value and children. Official concept/type/nillability, total fact count 5000 and tuple depth 4 are enforced by the pinned module."
              },
              "minItems": 1,
              "maxItems": 5000
            },
            "accounts": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80,
                    "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                  },
                  "number": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  },
                  "label": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "balance": {
                    "type": "string",
                    "minLength": 4,
                    "maxLength": 21,
                    "pattern": "^(0\\.00|-?[1-9][0-9]*\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                  },
                  "fact_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80,
                    "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                  },
                  "source": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  }
                },
                "required": [
                  "id",
                  "number",
                  "label",
                  "balance",
                  "fact_id",
                  "source"
                ]
              },
              "minItems": 0,
              "maxItems": 5000
            }
          },
          "required": [
            "schema_version",
            "source_revision",
            "mapping_version",
            "tax_number",
            "tax_office",
            "supplier",
            "closing_date",
            "contexts",
            "facts"
          ],
          "description": "Final reported facts and explicitly mapped Kontensalden under pinned E-Bilanz 6.9 artifacts. No caller-supplied profile, runtime, catalog or procedure overrides. Official semantic/taxonomy relationships, byte bounds and source mapping consistency are validated by the module; this shape is not qualification evidence."
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "schema_version": {
              "type": "string",
              "enum": [
                "ebilanz-core-6.9-mapped-v1"
              ]
            },
            "source_snapshot_sha256": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            "mapping_id": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
            },
            "mapping_revision": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 2147483647
            },
            "draft": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ebilanz-core-6.9-v1"
                  ]
                },
                "source_revision": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 80,
                  "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                },
                "tax_number": {
                  "type": "string",
                  "minLength": 13,
                  "maxLength": 13,
                  "pattern": "^[0-9]{4}0[0-9]{8}$"
                },
                "tax_office": {
                  "type": "string",
                  "minLength": 4,
                  "maxLength": 4,
                  "pattern": "^[0-9]{4}$"
                },
                "supplier": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512
                },
                "closing_date": {
                  "type": "string",
                  "format": "date",
                  "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                },
                "contexts": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "dimensions": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/EBilanzDimension"
                            },
                            "minItems": 0,
                            "maxItems": 16
                          },
                          "start_date": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                          },
                          "end_date": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                          }
                        },
                        "required": [
                          "id",
                          "start_date",
                          "end_date"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "dimensions": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/EBilanzDimension"
                            },
                            "minItems": 0,
                            "maxItems": 16
                          },
                          "instant": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                          }
                        },
                        "required": [
                          "id",
                          "instant"
                        ]
                      }
                    ],
                    "description": "Exactly one instant or duration period. The module verifies date equality, semantic uniqueness and official dimensions."
                  },
                  "minItems": 2,
                  "maxItems": 256
                },
                "facts": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "context": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "unit": {
                            "type": "string",
                            "enum": [
                              "EUR"
                            ]
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "value"
                            ]
                          },
                          "value": {
                            "type": "string",
                            "minLength": 0,
                            "maxLength": 4096
                          },
                          "footnote": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 16384,
                            "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "context",
                          "state",
                          "value"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "context": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "unit": {
                            "type": "string",
                            "enum": [
                              "EUR"
                            ]
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "nil"
                            ]
                          },
                          "footnote": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 16384,
                            "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "context",
                          "state"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "tuple"
                            ]
                          },
                          "children": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/EBilanzFact"
                            },
                            "minItems": 1,
                            "maxItems": 5000
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "state",
                          "children"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "nil"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "state"
                        ]
                      }
                    ],
                    "description": "Closed value, nil item, populated tuple or nil tuple shapes. Nil tuples omit context, unit, value and children. Official concept/type/nillability, total fact count 5000 and tuple depth 4 are enforced by the pinned module."
                  },
                  "minItems": 0,
                  "maxItems": 5000
                },
                "accounts": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "number": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      },
                      "label": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "balance": {
                        "type": "string",
                        "minLength": 4,
                        "maxLength": 21,
                        "pattern": "^(0\\.00|-?[1-9][0-9]*\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      },
                      "fact_id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      }
                    },
                    "required": [
                      "id",
                      "number",
                      "label",
                      "balance",
                      "fact_id",
                      "source"
                    ]
                  },
                  "minItems": 0,
                  "maxItems": 5000
                }
              },
              "required": [
                "schema_version",
                "source_revision",
                "tax_number",
                "tax_office",
                "supplier",
                "closing_date",
                "contexts",
                "facts"
              ],
              "description": "Explicit E-Bilanz metadata, contexts, GCD facts and account details accompanying mapped monetary facts. The service supplies mapping_version. Explicit facts cannot override mapped target cells or identifiers."
            },
            "source_facts": {
              "type": "array",
              "minItems": 1,
              "maxItems": 256,
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "source_ref": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_key": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "value"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "maxLength": 21,
                        "pattern": "^(0\\.00|-?[1-9][0-9]*\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "context",
                      "unit",
                      "sources",
                      "source_ref",
                      "source_version",
                      "source_key",
                      "state",
                      "value"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "source_ref": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_key": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "nil"
                        ]
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "context",
                      "unit",
                      "sources",
                      "source_ref",
                      "source_version",
                      "source_key",
                      "state"
                    ]
                  }
                ],
                "description": "One final monetary fact per source key. sources must contain source_ref. The confirmed mapping supplies the concept and exact dimensions; only value or NIL is accepted."
              }
            }
          },
          "required": [
            "schema_version",
            "source_snapshot_sha256",
            "mapping_id",
            "mapping_revision",
            "draft",
            "source_facts"
          ],
          "x-go-type": "json.RawMessage",
          "description": "Public source-key-mapped E-Bilanz input, at most 512 KiB. Names an exact confirmed revision. Compiler-private snapshots and caller-supplied confirmation are rejected."
        }
      ],
      "x-go-type": "json.RawMessage"
    }
  },
  "required": [
    "id",
    "product_id",
    "revision",
    "profile_version",
    "input"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/drafts/{draftId}GetDraft

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

draftId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Responses

200 · application/json

Successful operation

Required fields: id, product_id, revision, profile_version, input

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "profile_version": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,9}$"
    },
    "input": {
      "oneOf": [
        {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-v1"
                  ]
                },
                "source_revision": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                },
                "creation_date": {
                  "type": "string",
                  "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                },
                "year": {
                  "type": "integer",
                  "enum": [
                    2026
                  ]
                },
                "month": {
                  "type": "string",
                  "pattern": "^(0[1-9]|1[0-2])$"
                },
                "tax_office": {
                  "type": "string",
                  "pattern": "^[0-9]{4}$"
                },
                "tax_number": {
                  "type": "string",
                  "pattern": "^[0-9]{4}0[0-9]{8}$"
                },
                "supplier": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 45
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "house_number": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 9
                    },
                    "postal_code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 12
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "country": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "phone": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "email": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 70
                    }
                  },
                  "required": [
                    "name",
                    "street",
                    "house_number",
                    "postal_code",
                    "city",
                    "country",
                    "phone",
                    "email"
                  ]
                },
                "taxpayer": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "designation": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 50
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 60
                    },
                    "first_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 33
                    },
                    "house_number": {
                      "type": "string",
                      "pattern": "^[0-9]{1,9}$"
                    },
                    "postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 34
                    }
                  },
                  "required": [
                    "designation",
                    "name",
                    "first_name",
                    "street",
                    "house_number",
                    "postal_code",
                    "city"
                  ]
                },
                "fields": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "Kz81": {
                      "type": "string",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz86": {
                      "type": "string",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz66": {
                      "type": "string",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz83": {
                      "type": "string",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    }
                  },
                  "required": [
                    "Kz83"
                  ]
                }
              },
              "required": [
                "schema_version",
                "source_revision",
                "creation_date",
                "year",
                "month",
                "tax_office",
                "tax_number",
                "supplier",
                "taxpayer",
                "fields"
              ],
              "x-go-type": "json.RawMessage"
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-v2"
                  ]
                },
                "source_revision": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                },
                "creation_date": {
                  "type": "string",
                  "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                },
                "year": {
                  "type": "integer",
                  "enum": [
                    2026
                  ]
                },
                "tax_office": {
                  "type": "string",
                  "pattern": "^[0-9]{4}$"
                },
                "tax_number": {
                  "type": "string",
                  "pattern": "^[0-9]{4}0[0-9]{8}$"
                },
                "supplier": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 45
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "house_number": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 9
                    },
                    "postal_code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 12
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "country": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "phone": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "email": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 70
                    }
                  },
                  "required": [
                    "name",
                    "street",
                    "house_number",
                    "postal_code",
                    "city",
                    "country",
                    "phone",
                    "email"
                  ]
                },
                "taxpayer": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "designation": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 50
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 60
                    },
                    "first_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 33
                    },
                    "house_number": {
                      "type": "string",
                      "pattern": "^[0-9]{1,9}$"
                    },
                    "postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 34
                    },
                    "name_prefix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "name_suffix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "house_number_suffix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 15
                    },
                    "address_supplement": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "foreign_postal_code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 13
                    },
                    "country": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "po_box_city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 34
                    },
                    "po_box": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 10
                    },
                    "phone": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "email": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 70
                    },
                    "po_box_postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    },
                    "large_recipient_postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    }
                  },
                  "required": [
                    "name"
                  ]
                },
                "fields": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "Kz21": {
                      "type": "string",
                      "description": "Nicht steuerbare sonstige Leistungen gemäß § 18b Satz 1 Nummer 2 UStG (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz22": {
                      "type": "string",
                      "description": "Belege (z.B. Verträge, Rechnungen) werden gesondert eingereicht (flag)",
                      "enum": [
                        "1"
                      ]
                    },
                    "Kz26": {
                      "type": "string",
                      "description": "Das SEPA-Lastschriftmandat soll ausnahmsweise (z. B. wegen Verrechnungswünschen) für diesen Voranmeldungszeitraum nicht verwendet werden. Ein ggf. verbleibender Restbetrag ist gesondert zu entrichten. (flag)",
                      "enum": [
                        "1"
                      ]
                    },
                    "Kz29": {
                      "type": "string",
                      "description": "Verrechnung des Erstattungsbetrags erwünscht / Erstattungsbetrag ist abgetreten (Teilen Sie bitte die Verrechnungswünsche dem Finanzamt gesondert mit). (flag)",
                      "enum": [
                        "1"
                      ]
                    },
                    "Kz35": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz36": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz37": {
                      "type": "string",
                      "description": "Minderung der abziehbaren Vorsteuerbeträge (in der Zeile $Kz66.Vordruckzeile$ aus Rechnungen von anderen Unternehmen (§ 15 Absatz 1 Satz 1 Nummer 1 UStG) sowie in den Zeilen $Kz63.Vordruckzeile$ und $Kz59.Vordruckzeile$ enthalten) (EUR)",
                      "pattern": "^(0\\.00|[1-9][0-9]{0,10}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz39": {
                      "type": "string",
                      "description": "Abzug der festgesetzten Sondervorauszahlung für Dauerfristverlängerung (in der Regel nur in der letzten Voranmeldung des Besteuerungszeitraums auszufüllen) (EUR)",
                      "pattern": "^(0\\.00|[1-9][0-9]{0,10}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz41": {
                      "type": "string",
                      "description": "Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) an Abnehmer mit Umsatzsteuer-Identifikationsnummer (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz42": {
                      "type": "string",
                      "description": "Lieferungen des ersten Abnehmers bei innergemeinschaftlichen Dreiecksgeschäften (§ 25b UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz43": {
                      "type": "string",
                      "description": "Weitere steuerfreie Umsätze mit Vorsteuerabzug (z. B. Ausfuhrlieferungen, Umsätze nach § 4 Nummer 2 bis 7 UStG, Umsätze nach Verordnungen der EU) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz44": {
                      "type": "string",
                      "description": "Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) neuer Fahrzeuge an Abnehmer ohne Umsatzsteuer-Identifikationsnummer (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz45": {
                      "type": "string",
                      "description": "Übrige nicht steuerbare Umsätze (Leistungsort nicht im Inland) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz46": {
                      "type": "string",
                      "description": "Sonstige Leistungen nach § 3a Absatz 2 UStG eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz47": {
                      "type": "string",
                      "description": "Sonstige Leistungen nach § 3a Absatz 2 UStG eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz48": {
                      "type": "string",
                      "description": "Steuerfreie Umsätze ohne Vorsteuerabzug (z. B. Umsätze nach § 4 Nummer 8 bis 29 oder § 19 Absatz 1 UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz49": {
                      "type": "string",
                      "description": "Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz50": {
                      "type": "string",
                      "description": "Minderung der Bemessungsgrundlage (in den Zeilen $Kz81.Vordruckzeile$ bis $Kz76.Vordruckzeile$ enthalten) (whole EUR)",
                      "pattern": "^(0|[1-9][0-9]{0,12})$"
                    },
                    "Kz59": {
                      "type": "string",
                      "description": "Vorsteuerabzug für innergemeinschaftliche Lieferungen neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) sowie von Kleinunternehmern im Sinne des § 19 Absatz 1 UStG (§ 15 Absatz 4a UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz60": {
                      "type": "string",
                      "description": "Steuerpflichtige Umsätze des leistenden Unternehmers, für die der Leistungsempfänger die Steuer nach § 13b Absatz 5 UStG schuldet (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz61": {
                      "type": "string",
                      "description": "Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb von Gegenständen (§ 15 Absatz 1 Satz 1 Nummer 3 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz62": {
                      "type": "string",
                      "description": "Entstandene Einfuhrumsatzsteuer (§ 15 Absatz 1 Satz 1 Nummer 2 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz63": {
                      "type": "string",
                      "description": "Vorsteuerbeträge, die nach allgemeinen Durchschnittssätzen berechnet sind (§ 23a UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz64": {
                      "type": "string",
                      "description": "Berichtigung des Vorsteuerabzugs (§ 15a UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz65": {
                      "type": "string",
                      "description": "Steuer infolge des Wechsels der Besteuerungsform sowie Nachsteuer auf versteuerte Anzahlungen und ähnlichem wegen Steuersatzänderung (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz66": {
                      "type": "string",
                      "description": "Vorsteuerbeträge aus Rechnungen von anderen Unternehmern (§ 15 Absatz 1 Satz 1 Nummer 1 UStG), aus Leistungen im Sinne des § 27 Absatz 40a UStG und aus innergemeinschaftlichen Dreiecksgeschäften (§ 25b Absatz 5 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz67": {
                      "type": "string",
                      "description": "Vorsteuerbeträge aus Leistungen im Sinne des § 13b UStG (§ 15 Absatz 1 Satz 1 Nummer 4 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz69": {
                      "type": "string",
                      "description": "In Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (§ 14c UStG) sowie Steuerbeträge, die nach § 6a Absatz 4 Satz 2, § 17 Absatz 1 Satz 7, § 25b Absatz 2 UStG oder von einem Auslagerer oder Lagerhalter nach § 27 Absatz 40a UStG geschuldet werden. (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz70": {
                      "type": "string",
                      "description": "Wechsel von der Kleinunternehmer-Regelung (§ 19 UStG) zur Regelbesteuerung\nDatum des Wechsels (date); compiler also checks real calendar dates",
                      "pattern": "^(0[1-9]|[12][0-9]|3[01])\\.(0[1-9]|1[0-2])\\.[0-9]{4}$"
                    },
                    "Kz73": {
                      "type": "string",
                      "description": "Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz74": {
                      "type": "string",
                      "description": "Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz76": {
                      "type": "string",
                      "description": "Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (Sägewerkserzeugnisse, Getränke und alkoholische Flüssigkeiten, z. B. Wein) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz77": {
                      "type": "string",
                      "description": "Lieferungen land- und forstwirtschaftlicher Betriebe nach § 24 UStG an Abnehmer mit Umsatzsteuer-Identifikationsnummer (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz80": {
                      "type": "string",
                      "description": "Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (Sägewerkserzeugnisse, Getränke und alkoholische Flüssigkeiten, z. B. Wein) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz81": {
                      "type": "string",
                      "description": "zum Steuersatz von 19 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz83": {
                      "type": "string",
                      "description": "Verbleibende Umsatzsteuer-Vorauszahlung beziehungsweise verbleibender Überschuss (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz84": {
                      "type": "string",
                      "description": "Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz85": {
                      "type": "string",
                      "description": "Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz86": {
                      "type": "string",
                      "description": "zum Steuersatz von 7 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz87": {
                      "type": "string",
                      "description": "zum Steuersatz von 0 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz89": {
                      "type": "string",
                      "description": "zum Steuersatz von 19 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz91": {
                      "type": "string",
                      "description": "Steuerfreie innergemeinschaftliche Erwerbe von bestimmten Gegenständen und Anlagegold (§§ 4b und 25c UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz93": {
                      "type": "string",
                      "description": "zum Steuersatz von 7 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz90": {
                      "type": "string",
                      "description": "zum Steuersatz von 0 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz94": {
                      "type": "string",
                      "description": "neuer Fahrzeuge (§ 1b Absatz 2 und 3 UStG) von Lieferern ohne Umsatzsteuer-Identifikationsnummer zum allgemeinen Steuersatz (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz95": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz96": {
                      "type": "string",
                      "description": "neuer Fahrzeuge (§ 1b Absatz 2 und 3 UStG) von Lieferern ohne Umsatzsteuer-Identifikationsnummer zum allgemeinen Steuersatz (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz98": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz500": {
                      "type": "string",
                      "description": "In dieser Steueranmeldung (choice)",
                      "enum": [
                        "1",
                        "2",
                        "3",
                        "4"
                      ]
                    },
                    "Kz500_Begruendung": {
                      "type": "string",
                      "description": "Ergänzende Angaben zur Steueranmeldung (text)",
                      "minLength": 1,
                      "maxLength": 180
                    }
                  },
                  "required": [
                    "Kz83"
                  ]
                },
                "period": {
                  "type": "string",
                  "enum": [
                    "01",
                    "02",
                    "03",
                    "04",
                    "05",
                    "06",
                    "07",
                    "08",
                    "09",
                    "10",
                    "11",
                    "12",
                    "41",
                    "42",
                    "43",
                    "44"
                  ]
                },
                "correction": {
                  "type": "boolean"
                },
                "economic_id": {
                  "type": "string",
                  "pattern": "^DE[0-9]{9}$"
                }
              },
              "required": [
                "schema_version",
                "source_revision",
                "creation_date",
                "year",
                "period",
                "tax_office",
                "tax_number",
                "supplier",
                "taxpayer",
                "fields"
              ],
              "x-go-type": "json.RawMessage",
              "description": "Final reported values, not automatic tax calculation. Every payload remains test-marked. Schema and native plausibility are separate checks."
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-derived-v1"
                  ]
                },
                "source_snapshot_sha256": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "mapping_version": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                },
                "mapping_sha256": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "draft": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "schema_version": {
                      "type": "string",
                      "enum": [
                        "ustva-2026-v2"
                      ]
                    },
                    "source_revision": {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                    },
                    "creation_date": {
                      "type": "string",
                      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                    },
                    "year": {
                      "type": "integer",
                      "enum": [
                        2026
                      ]
                    },
                    "tax_office": {
                      "type": "string",
                      "pattern": "^[0-9]{4}$"
                    },
                    "tax_number": {
                      "type": "string",
                      "pattern": "^[0-9]{4}0[0-9]{8}$"
                    },
                    "supplier": {
                      "$ref": "#/components/schemas/Supplier"
                    },
                    "taxpayer": {
                      "$ref": "#/components/schemas/TaxpayerV2"
                    },
                    "period": {
                      "type": "string",
                      "enum": [
                        "01",
                        "02",
                        "03",
                        "04",
                        "05",
                        "06",
                        "07",
                        "08",
                        "09",
                        "10",
                        "11",
                        "12",
                        "41",
                        "42",
                        "43",
                        "44"
                      ]
                    },
                    "correction": {
                      "type": "boolean"
                    },
                    "economic_id": {
                      "type": "string",
                      "pattern": "^DE[0-9]{9}$"
                    }
                  },
                  "required": [
                    "schema_version",
                    "source_revision",
                    "creation_date",
                    "year",
                    "period",
                    "tax_office",
                    "tax_number",
                    "supplier",
                    "taxpayer"
                  ],
                  "x-go-type": "json.RawMessage",
                  "description": "Reporting metadata for classified facts. Final fields and month are forbidden; period is explicit."
                },
                "facts": {
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 256,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_ref": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "group": {
                        "type": "string",
                        "enum": [
                          "Kz21",
                          "Kz35",
                          "Kz37",
                          "Kz39",
                          "Kz41",
                          "Kz42",
                          "Kz43",
                          "Kz44",
                          "Kz45",
                          "Kz46",
                          "Kz48",
                          "Kz49",
                          "Kz50",
                          "Kz59",
                          "Kz60",
                          "Kz61",
                          "Kz62",
                          "Kz63",
                          "Kz64",
                          "Kz65",
                          "Kz66",
                          "Kz67",
                          "Kz69",
                          "Kz73",
                          "Kz76",
                          "Kz77",
                          "Kz81",
                          "Kz84",
                          "Kz86",
                          "Kz87",
                          "Kz89",
                          "Kz90",
                          "Kz91",
                          "Kz93",
                          "Kz94",
                          "Kz95"
                        ]
                      },
                      "base": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$",
                        "description": "Exact caller-confirmed EUR amount; no rate calculation."
                      },
                      "tax": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$",
                        "description": "Exact caller-confirmed EUR amount; no rate calculation."
                      }
                    },
                    "required": [
                      "id",
                      "source_ref",
                      "source_version",
                      "group"
                    ],
                    "oneOf": [
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz21",
                              "Kz41",
                              "Kz42",
                              "Kz43",
                              "Kz44",
                              "Kz45",
                              "Kz48",
                              "Kz49",
                              "Kz60",
                              "Kz77",
                              "Kz87",
                              "Kz90",
                              "Kz91"
                            ]
                          }
                        },
                        "required": [
                          "base"
                        ],
                        "not": {
                          "required": [
                            "tax"
                          ]
                        }
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz35",
                              "Kz46",
                              "Kz73",
                              "Kz76",
                              "Kz81",
                              "Kz84",
                              "Kz86",
                              "Kz89",
                              "Kz93",
                              "Kz94",
                              "Kz95"
                            ]
                          }
                        },
                        "required": [
                          "base",
                          "tax"
                        ]
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz59",
                              "Kz61",
                              "Kz62",
                              "Kz63",
                              "Kz64",
                              "Kz65",
                              "Kz66",
                              "Kz67",
                              "Kz69"
                            ]
                          }
                        },
                        "required": [
                          "tax"
                        ],
                        "not": {
                          "required": [
                            "base"
                          ]
                        }
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz37",
                              "Kz39"
                            ]
                          },
                          "tax": {
                            "type": "string",
                            "pattern": "^(0\\.00|[1-9][0-9]{0,12}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                          }
                        },
                        "required": [
                          "tax"
                        ],
                        "not": {
                          "required": [
                            "base"
                          ]
                        }
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz50"
                            ]
                          },
                          "base": {
                            "type": "string",
                            "pattern": "^(0\\.00|[1-9][0-9]{0,12}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                          }
                        },
                        "required": [
                          "base"
                        ],
                        "not": {
                          "required": [
                            "tax"
                          ]
                        }
                      }
                    ],
                    "x-go-type": "json.RawMessage",
                    "description": "Caller-confirmed annual group and exact amounts. Kz37/Kz39 tax and Kz50 base must be nonnegative per fact. Kz50 and Kz37 are additional informational reductions already reflected in the main groups; they do not affect Kz83. No classification inference; source references need not identify Accounting records."
                  }
                }
              },
              "required": [
                "schema_version",
                "source_snapshot_sha256",
                "mapping_version",
                "mapping_sha256",
                "draft",
                "facts"
              ],
              "x-go-type": "json.RawMessage",
              "description": "Restricted derived EUR mode. Aggregate exact cents before whole-euro projection; fractional aggregate bases fail. Preserve supplied tax cents and derive Kz83 using pinned form rules. Kz50/Kz37 are informational and never counted again in Kz83. Final fields and control/text/date Kennziffer fields are unsupported. Test-marked and unvalidated; no filing permission."
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-mapped-v1"
                  ]
                },
                "source_snapshot_sha256": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "mapping_id": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
                },
                "mapping_revision": {
                  "type": "integer",
                  "format": "int64",
                  "minimum": 1,
                  "maximum": 2147483647
                },
                "draft": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "schema_version": {
                      "type": "string",
                      "enum": [
                        "ustva-2026-v2"
                      ]
                    },
                    "source_revision": {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                    },
                    "creation_date": {
                      "type": "string",
                      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                    },
                    "year": {
                      "type": "integer",
                      "enum": [
                        2026
                      ]
                    },
                    "tax_office": {
                      "type": "string",
                      "pattern": "^[0-9]{4}$"
                    },
                    "tax_number": {
                      "type": "string",
                      "pattern": "^[0-9]{4}0[0-9]{8}$"
                    },
                    "supplier": {
                      "$ref": "#/components/schemas/Supplier"
                    },
                    "taxpayer": {
                      "$ref": "#/components/schemas/TaxpayerV2"
                    },
                    "period": {
                      "type": "string",
                      "enum": [
                        "01",
                        "02",
                        "03",
                        "04",
                        "05",
                        "06",
                        "07",
                        "08",
                        "09",
                        "10",
                        "11",
                        "12",
                        "41",
                        "42",
                        "43",
                        "44"
                      ]
                    },
                    "correction": {
                      "type": "boolean"
                    },
                    "economic_id": {
                      "type": "string",
                      "pattern": "^DE[0-9]{9}$"
                    }
                  },
                  "required": [
                    "schema_version",
                    "source_revision",
                    "creation_date",
                    "year",
                    "period",
                    "tax_office",
                    "tax_number",
                    "supplier",
                    "taxpayer"
                  ],
                  "x-go-type": "json.RawMessage",
                  "description": "Reporting metadata for classified facts. Final fields and month are forbidden; period is explicit."
                },
                "facts": {
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 256,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_ref": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_key": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "base": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      },
                      "tax": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      }
                    },
                    "required": [
                      "id",
                      "source_ref",
                      "source_version",
                      "source_key"
                    ],
                    "anyOf": [
                      {
                        "required": [
                          "base"
                        ]
                      },
                      {
                        "required": [
                          "tax"
                        ]
                      }
                    ],
                    "description": "Mapped fact input. The confirmed source mapping determines which base/tax fields are valid for its source_key; values remain caller-classified exact EUR amounts."
                  }
                }
              },
              "required": [
                "schema_version",
                "source_snapshot_sha256",
                "mapping_id",
                "mapping_revision",
                "draft",
                "facts"
              ],
              "x-go-type": "json.RawMessage",
              "description": "Public source-key-mapped UStVA input. The referenced confirmed mapping revision binds each source_key to a pinned group. Never supply final form fields or compiler-private representations."
            }
          ],
          "x-go-type": "json.RawMessage"
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "corporation_tax_option": {
              "type": "boolean",
              "description": "Explicit section 1a KStG case assertion, bound to the GCD option. Omitted/false retains the ordinary case; true currently permits eligible domestic annual AO/GKV or UKV core reports without EV/MicroBilG. Filing remains denied."
            },
            "micro_bilg_prepared": {
              "type": "boolean",
              "description": "Explicit customer assertion that this corporation's statements were prepared under MicroBilG. True selects the fiscal-microbilg entry schema; absent or false selects the ordinary fiscal schema."
            },
            "schema_version": {
              "type": "string",
              "enum": [
                "ebilanz-core-6.9-v1"
              ]
            },
            "source_revision": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
            },
            "mapping_version": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
            },
            "tax_number": {
              "type": "string",
              "minLength": 13,
              "maxLength": 13,
              "pattern": "^[0-9]{4}0[0-9]{8}$"
            },
            "tax_office": {
              "type": "string",
              "minLength": 4,
              "maxLength": 4,
              "pattern": "^[0-9]{4}$"
            },
            "supplier": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "closing_date": {
              "type": "string",
              "format": "date",
              "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
            },
            "contexts": {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "dimensions": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/EBilanzDimension"
                        },
                        "minItems": 0,
                        "maxItems": 16
                      },
                      "start_date": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                      },
                      "end_date": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                      }
                    },
                    "required": [
                      "id",
                      "start_date",
                      "end_date"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "dimensions": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/EBilanzDimension"
                        },
                        "minItems": 0,
                        "maxItems": 16
                      },
                      "instant": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                      }
                    },
                    "required": [
                      "id",
                      "instant"
                    ]
                  }
                ],
                "description": "Exactly one instant or duration period. The module verifies date equality, semantic uniqueness and official dimensions."
              },
              "minItems": 2,
              "maxItems": 256
            },
            "facts": {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "value"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "minLength": 0,
                        "maxLength": 4096
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "context",
                      "state",
                      "value"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "nil"
                        ]
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "context",
                      "state"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "tuple"
                        ]
                      },
                      "children": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/EBilanzFact"
                        },
                        "minItems": 1,
                        "maxItems": 5000
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "state",
                      "children"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "nil"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "state"
                    ]
                  }
                ],
                "description": "Closed value, nil item, populated tuple or nil tuple shapes. Nil tuples omit context, unit, value and children. Official concept/type/nillability, total fact count 5000 and tuple depth 4 are enforced by the pinned module."
              },
              "minItems": 1,
              "maxItems": 5000
            },
            "accounts": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80,
                    "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                  },
                  "number": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  },
                  "label": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "balance": {
                    "type": "string",
                    "minLength": 4,
                    "maxLength": 21,
                    "pattern": "^(0\\.00|-?[1-9][0-9]*\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                  },
                  "fact_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80,
                    "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                  },
                  "source": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  }
                },
                "required": [
                  "id",
                  "number",
                  "label",
                  "balance",
                  "fact_id",
                  "source"
                ]
              },
              "minItems": 0,
              "maxItems": 5000
            }
          },
          "required": [
            "schema_version",
            "source_revision",
            "mapping_version",
            "tax_number",
            "tax_office",
            "supplier",
            "closing_date",
            "contexts",
            "facts"
          ],
          "description": "Final reported facts and explicitly mapped Kontensalden under pinned E-Bilanz 6.9 artifacts. No caller-supplied profile, runtime, catalog or procedure overrides. Official semantic/taxonomy relationships, byte bounds and source mapping consistency are validated by the module; this shape is not qualification evidence."
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "schema_version": {
              "type": "string",
              "enum": [
                "ebilanz-core-6.9-mapped-v1"
              ]
            },
            "source_snapshot_sha256": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            "mapping_id": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
            },
            "mapping_revision": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 2147483647
            },
            "draft": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ebilanz-core-6.9-v1"
                  ]
                },
                "source_revision": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 80,
                  "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                },
                "tax_number": {
                  "type": "string",
                  "minLength": 13,
                  "maxLength": 13,
                  "pattern": "^[0-9]{4}0[0-9]{8}$"
                },
                "tax_office": {
                  "type": "string",
                  "minLength": 4,
                  "maxLength": 4,
                  "pattern": "^[0-9]{4}$"
                },
                "supplier": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512
                },
                "closing_date": {
                  "type": "string",
                  "format": "date",
                  "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                },
                "contexts": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "dimensions": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/EBilanzDimension"
                            },
                            "minItems": 0,
                            "maxItems": 16
                          },
                          "start_date": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                          },
                          "end_date": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                          }
                        },
                        "required": [
                          "id",
                          "start_date",
                          "end_date"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "dimensions": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/EBilanzDimension"
                            },
                            "minItems": 0,
                            "maxItems": 16
                          },
                          "instant": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                          }
                        },
                        "required": [
                          "id",
                          "instant"
                        ]
                      }
                    ],
                    "description": "Exactly one instant or duration period. The module verifies date equality, semantic uniqueness and official dimensions."
                  },
                  "minItems": 2,
                  "maxItems": 256
                },
                "facts": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "context": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "unit": {
                            "type": "string",
                            "enum": [
                              "EUR"
                            ]
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "value"
                            ]
                          },
                          "value": {
                            "type": "string",
                            "minLength": 0,
                            "maxLength": 4096
                          },
                          "footnote": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 16384,
                            "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "context",
                          "state",
                          "value"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "context": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "unit": {
                            "type": "string",
                            "enum": [
                              "EUR"
                            ]
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "nil"
                            ]
                          },
                          "footnote": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 16384,
                            "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "context",
                          "state"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "tuple"
                            ]
                          },
                          "children": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/EBilanzFact"
                            },
                            "minItems": 1,
                            "maxItems": 5000
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "state",
                          "children"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "nil"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "state"
                        ]
                      }
                    ],
                    "description": "Closed value, nil item, populated tuple or nil tuple shapes. Nil tuples omit context, unit, value and children. Official concept/type/nillability, total fact count 5000 and tuple depth 4 are enforced by the pinned module."
                  },
                  "minItems": 0,
                  "maxItems": 5000
                },
                "accounts": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "number": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      },
                      "label": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "balance": {
                        "type": "string",
                        "minLength": 4,
                        "maxLength": 21,
                        "pattern": "^(0\\.00|-?[1-9][0-9]*\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      },
                      "fact_id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      }
                    },
                    "required": [
                      "id",
                      "number",
                      "label",
                      "balance",
                      "fact_id",
                      "source"
                    ]
                  },
                  "minItems": 0,
                  "maxItems": 5000
                }
              },
              "required": [
                "schema_version",
                "source_revision",
                "tax_number",
                "tax_office",
                "supplier",
                "closing_date",
                "contexts",
                "facts"
              ],
              "description": "Explicit E-Bilanz metadata, contexts, GCD facts and account details accompanying mapped monetary facts. The service supplies mapping_version. Explicit facts cannot override mapped target cells or identifiers."
            },
            "source_facts": {
              "type": "array",
              "minItems": 1,
              "maxItems": 256,
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "source_ref": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_key": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "value"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "maxLength": 21,
                        "pattern": "^(0\\.00|-?[1-9][0-9]*\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "context",
                      "unit",
                      "sources",
                      "source_ref",
                      "source_version",
                      "source_key",
                      "state",
                      "value"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "source_ref": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_key": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "nil"
                        ]
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "context",
                      "unit",
                      "sources",
                      "source_ref",
                      "source_version",
                      "source_key",
                      "state"
                    ]
                  }
                ],
                "description": "One final monetary fact per source key. sources must contain source_ref. The confirmed mapping supplies the concept and exact dimensions; only value or NIL is accepted."
              }
            }
          },
          "required": [
            "schema_version",
            "source_snapshot_sha256",
            "mapping_id",
            "mapping_revision",
            "draft",
            "source_facts"
          ],
          "x-go-type": "json.RawMessage",
          "description": "Public source-key-mapped E-Bilanz input, at most 512 KiB. Names an exact confirmed revision. Compiler-private snapshots and caller-supplied confirmation are rejected."
        }
      ],
      "x-go-type": "json.RawMessage"
    }
  },
  "required": [
    "id",
    "product_id",
    "revision",
    "profile_version",
    "input"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
PUT /products/{productId}/drafts/{draftId}ReviseDraft

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

draftId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

Request body

application/json · required

Required fields: expected_revision, profile_version, input

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "expected_revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "profile_version": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,9}$"
    },
    "input": {
      "oneOf": [
        {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-v1"
                  ]
                },
                "source_revision": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                },
                "creation_date": {
                  "type": "string",
                  "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                },
                "year": {
                  "type": "integer",
                  "enum": [
                    2026
                  ]
                },
                "month": {
                  "type": "string",
                  "pattern": "^(0[1-9]|1[0-2])$"
                },
                "tax_office": {
                  "type": "string",
                  "pattern": "^[0-9]{4}$"
                },
                "tax_number": {
                  "type": "string",
                  "pattern": "^[0-9]{4}0[0-9]{8}$"
                },
                "supplier": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 45
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "house_number": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 9
                    },
                    "postal_code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 12
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "country": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "phone": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "email": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 70
                    }
                  },
                  "required": [
                    "name",
                    "street",
                    "house_number",
                    "postal_code",
                    "city",
                    "country",
                    "phone",
                    "email"
                  ]
                },
                "taxpayer": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "designation": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 50
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 60
                    },
                    "first_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 33
                    },
                    "house_number": {
                      "type": "string",
                      "pattern": "^[0-9]{1,9}$"
                    },
                    "postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 34
                    }
                  },
                  "required": [
                    "designation",
                    "name",
                    "first_name",
                    "street",
                    "house_number",
                    "postal_code",
                    "city"
                  ]
                },
                "fields": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "Kz81": {
                      "type": "string",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz86": {
                      "type": "string",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz66": {
                      "type": "string",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz83": {
                      "type": "string",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    }
                  },
                  "required": [
                    "Kz83"
                  ]
                }
              },
              "required": [
                "schema_version",
                "source_revision",
                "creation_date",
                "year",
                "month",
                "tax_office",
                "tax_number",
                "supplier",
                "taxpayer",
                "fields"
              ],
              "x-go-type": "json.RawMessage"
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-v2"
                  ]
                },
                "source_revision": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                },
                "creation_date": {
                  "type": "string",
                  "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                },
                "year": {
                  "type": "integer",
                  "enum": [
                    2026
                  ]
                },
                "tax_office": {
                  "type": "string",
                  "pattern": "^[0-9]{4}$"
                },
                "tax_number": {
                  "type": "string",
                  "pattern": "^[0-9]{4}0[0-9]{8}$"
                },
                "supplier": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 45
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "house_number": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 9
                    },
                    "postal_code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 12
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "country": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "phone": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "email": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 70
                    }
                  },
                  "required": [
                    "name",
                    "street",
                    "house_number",
                    "postal_code",
                    "city",
                    "country",
                    "phone",
                    "email"
                  ]
                },
                "taxpayer": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "designation": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 50
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 60
                    },
                    "first_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 33
                    },
                    "house_number": {
                      "type": "string",
                      "pattern": "^[0-9]{1,9}$"
                    },
                    "postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 34
                    },
                    "name_prefix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "name_suffix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "house_number_suffix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 15
                    },
                    "address_supplement": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "foreign_postal_code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 13
                    },
                    "country": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "po_box_city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 34
                    },
                    "po_box": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 10
                    },
                    "phone": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "email": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 70
                    },
                    "po_box_postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    },
                    "large_recipient_postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    }
                  },
                  "required": [
                    "name"
                  ]
                },
                "fields": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "Kz21": {
                      "type": "string",
                      "description": "Nicht steuerbare sonstige Leistungen gemäß § 18b Satz 1 Nummer 2 UStG (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz22": {
                      "type": "string",
                      "description": "Belege (z.B. Verträge, Rechnungen) werden gesondert eingereicht (flag)",
                      "enum": [
                        "1"
                      ]
                    },
                    "Kz26": {
                      "type": "string",
                      "description": "Das SEPA-Lastschriftmandat soll ausnahmsweise (z. B. wegen Verrechnungswünschen) für diesen Voranmeldungszeitraum nicht verwendet werden. Ein ggf. verbleibender Restbetrag ist gesondert zu entrichten. (flag)",
                      "enum": [
                        "1"
                      ]
                    },
                    "Kz29": {
                      "type": "string",
                      "description": "Verrechnung des Erstattungsbetrags erwünscht / Erstattungsbetrag ist abgetreten (Teilen Sie bitte die Verrechnungswünsche dem Finanzamt gesondert mit). (flag)",
                      "enum": [
                        "1"
                      ]
                    },
                    "Kz35": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz36": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz37": {
                      "type": "string",
                      "description": "Minderung der abziehbaren Vorsteuerbeträge (in der Zeile $Kz66.Vordruckzeile$ aus Rechnungen von anderen Unternehmen (§ 15 Absatz 1 Satz 1 Nummer 1 UStG) sowie in den Zeilen $Kz63.Vordruckzeile$ und $Kz59.Vordruckzeile$ enthalten) (EUR)",
                      "pattern": "^(0\\.00|[1-9][0-9]{0,10}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz39": {
                      "type": "string",
                      "description": "Abzug der festgesetzten Sondervorauszahlung für Dauerfristverlängerung (in der Regel nur in der letzten Voranmeldung des Besteuerungszeitraums auszufüllen) (EUR)",
                      "pattern": "^(0\\.00|[1-9][0-9]{0,10}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz41": {
                      "type": "string",
                      "description": "Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) an Abnehmer mit Umsatzsteuer-Identifikationsnummer (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz42": {
                      "type": "string",
                      "description": "Lieferungen des ersten Abnehmers bei innergemeinschaftlichen Dreiecksgeschäften (§ 25b UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz43": {
                      "type": "string",
                      "description": "Weitere steuerfreie Umsätze mit Vorsteuerabzug (z. B. Ausfuhrlieferungen, Umsätze nach § 4 Nummer 2 bis 7 UStG, Umsätze nach Verordnungen der EU) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz44": {
                      "type": "string",
                      "description": "Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) neuer Fahrzeuge an Abnehmer ohne Umsatzsteuer-Identifikationsnummer (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz45": {
                      "type": "string",
                      "description": "Übrige nicht steuerbare Umsätze (Leistungsort nicht im Inland) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz46": {
                      "type": "string",
                      "description": "Sonstige Leistungen nach § 3a Absatz 2 UStG eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz47": {
                      "type": "string",
                      "description": "Sonstige Leistungen nach § 3a Absatz 2 UStG eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz48": {
                      "type": "string",
                      "description": "Steuerfreie Umsätze ohne Vorsteuerabzug (z. B. Umsätze nach § 4 Nummer 8 bis 29 oder § 19 Absatz 1 UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz49": {
                      "type": "string",
                      "description": "Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz50": {
                      "type": "string",
                      "description": "Minderung der Bemessungsgrundlage (in den Zeilen $Kz81.Vordruckzeile$ bis $Kz76.Vordruckzeile$ enthalten) (whole EUR)",
                      "pattern": "^(0|[1-9][0-9]{0,12})$"
                    },
                    "Kz59": {
                      "type": "string",
                      "description": "Vorsteuerabzug für innergemeinschaftliche Lieferungen neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) sowie von Kleinunternehmern im Sinne des § 19 Absatz 1 UStG (§ 15 Absatz 4a UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz60": {
                      "type": "string",
                      "description": "Steuerpflichtige Umsätze des leistenden Unternehmers, für die der Leistungsempfänger die Steuer nach § 13b Absatz 5 UStG schuldet (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz61": {
                      "type": "string",
                      "description": "Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb von Gegenständen (§ 15 Absatz 1 Satz 1 Nummer 3 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz62": {
                      "type": "string",
                      "description": "Entstandene Einfuhrumsatzsteuer (§ 15 Absatz 1 Satz 1 Nummer 2 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz63": {
                      "type": "string",
                      "description": "Vorsteuerbeträge, die nach allgemeinen Durchschnittssätzen berechnet sind (§ 23a UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz64": {
                      "type": "string",
                      "description": "Berichtigung des Vorsteuerabzugs (§ 15a UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz65": {
                      "type": "string",
                      "description": "Steuer infolge des Wechsels der Besteuerungsform sowie Nachsteuer auf versteuerte Anzahlungen und ähnlichem wegen Steuersatzänderung (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz66": {
                      "type": "string",
                      "description": "Vorsteuerbeträge aus Rechnungen von anderen Unternehmern (§ 15 Absatz 1 Satz 1 Nummer 1 UStG), aus Leistungen im Sinne des § 27 Absatz 40a UStG und aus innergemeinschaftlichen Dreiecksgeschäften (§ 25b Absatz 5 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz67": {
                      "type": "string",
                      "description": "Vorsteuerbeträge aus Leistungen im Sinne des § 13b UStG (§ 15 Absatz 1 Satz 1 Nummer 4 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz69": {
                      "type": "string",
                      "description": "In Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (§ 14c UStG) sowie Steuerbeträge, die nach § 6a Absatz 4 Satz 2, § 17 Absatz 1 Satz 7, § 25b Absatz 2 UStG oder von einem Auslagerer oder Lagerhalter nach § 27 Absatz 40a UStG geschuldet werden. (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz70": {
                      "type": "string",
                      "description": "Wechsel von der Kleinunternehmer-Regelung (§ 19 UStG) zur Regelbesteuerung\nDatum des Wechsels (date); compiler also checks real calendar dates",
                      "pattern": "^(0[1-9]|[12][0-9]|3[01])\\.(0[1-9]|1[0-2])\\.[0-9]{4}$"
                    },
                    "Kz73": {
                      "type": "string",
                      "description": "Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz74": {
                      "type": "string",
                      "description": "Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz76": {
                      "type": "string",
                      "description": "Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (Sägewerkserzeugnisse, Getränke und alkoholische Flüssigkeiten, z. B. Wein) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz77": {
                      "type": "string",
                      "description": "Lieferungen land- und forstwirtschaftlicher Betriebe nach § 24 UStG an Abnehmer mit Umsatzsteuer-Identifikationsnummer (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz80": {
                      "type": "string",
                      "description": "Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (Sägewerkserzeugnisse, Getränke und alkoholische Flüssigkeiten, z. B. Wein) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz81": {
                      "type": "string",
                      "description": "zum Steuersatz von 19 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz83": {
                      "type": "string",
                      "description": "Verbleibende Umsatzsteuer-Vorauszahlung beziehungsweise verbleibender Überschuss (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz84": {
                      "type": "string",
                      "description": "Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz85": {
                      "type": "string",
                      "description": "Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz86": {
                      "type": "string",
                      "description": "zum Steuersatz von 7 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz87": {
                      "type": "string",
                      "description": "zum Steuersatz von 0 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz89": {
                      "type": "string",
                      "description": "zum Steuersatz von 19 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz91": {
                      "type": "string",
                      "description": "Steuerfreie innergemeinschaftliche Erwerbe von bestimmten Gegenständen und Anlagegold (§§ 4b und 25c UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz93": {
                      "type": "string",
                      "description": "zum Steuersatz von 7 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz90": {
                      "type": "string",
                      "description": "zum Steuersatz von 0 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz94": {
                      "type": "string",
                      "description": "neuer Fahrzeuge (§ 1b Absatz 2 und 3 UStG) von Lieferern ohne Umsatzsteuer-Identifikationsnummer zum allgemeinen Steuersatz (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz95": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz96": {
                      "type": "string",
                      "description": "neuer Fahrzeuge (§ 1b Absatz 2 und 3 UStG) von Lieferern ohne Umsatzsteuer-Identifikationsnummer zum allgemeinen Steuersatz (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz98": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz500": {
                      "type": "string",
                      "description": "In dieser Steueranmeldung (choice)",
                      "enum": [
                        "1",
                        "2",
                        "3",
                        "4"
                      ]
                    },
                    "Kz500_Begruendung": {
                      "type": "string",
                      "description": "Ergänzende Angaben zur Steueranmeldung (text)",
                      "minLength": 1,
                      "maxLength": 180
                    }
                  },
                  "required": [
                    "Kz83"
                  ]
                },
                "period": {
                  "type": "string",
                  "enum": [
                    "01",
                    "02",
                    "03",
                    "04",
                    "05",
                    "06",
                    "07",
                    "08",
                    "09",
                    "10",
                    "11",
                    "12",
                    "41",
                    "42",
                    "43",
                    "44"
                  ]
                },
                "correction": {
                  "type": "boolean"
                },
                "economic_id": {
                  "type": "string",
                  "pattern": "^DE[0-9]{9}$"
                }
              },
              "required": [
                "schema_version",
                "source_revision",
                "creation_date",
                "year",
                "period",
                "tax_office",
                "tax_number",
                "supplier",
                "taxpayer",
                "fields"
              ],
              "x-go-type": "json.RawMessage",
              "description": "Final reported values, not automatic tax calculation. Every payload remains test-marked. Schema and native plausibility are separate checks."
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-derived-v1"
                  ]
                },
                "source_snapshot_sha256": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "mapping_version": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                },
                "mapping_sha256": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "draft": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "schema_version": {
                      "type": "string",
                      "enum": [
                        "ustva-2026-v2"
                      ]
                    },
                    "source_revision": {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                    },
                    "creation_date": {
                      "type": "string",
                      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                    },
                    "year": {
                      "type": "integer",
                      "enum": [
                        2026
                      ]
                    },
                    "tax_office": {
                      "type": "string",
                      "pattern": "^[0-9]{4}$"
                    },
                    "tax_number": {
                      "type": "string",
                      "pattern": "^[0-9]{4}0[0-9]{8}$"
                    },
                    "supplier": {
                      "$ref": "#/components/schemas/Supplier"
                    },
                    "taxpayer": {
                      "$ref": "#/components/schemas/TaxpayerV2"
                    },
                    "period": {
                      "type": "string",
                      "enum": [
                        "01",
                        "02",
                        "03",
                        "04",
                        "05",
                        "06",
                        "07",
                        "08",
                        "09",
                        "10",
                        "11",
                        "12",
                        "41",
                        "42",
                        "43",
                        "44"
                      ]
                    },
                    "correction": {
                      "type": "boolean"
                    },
                    "economic_id": {
                      "type": "string",
                      "pattern": "^DE[0-9]{9}$"
                    }
                  },
                  "required": [
                    "schema_version",
                    "source_revision",
                    "creation_date",
                    "year",
                    "period",
                    "tax_office",
                    "tax_number",
                    "supplier",
                    "taxpayer"
                  ],
                  "x-go-type": "json.RawMessage",
                  "description": "Reporting metadata for classified facts. Final fields and month are forbidden; period is explicit."
                },
                "facts": {
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 256,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_ref": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "group": {
                        "type": "string",
                        "enum": [
                          "Kz21",
                          "Kz35",
                          "Kz37",
                          "Kz39",
                          "Kz41",
                          "Kz42",
                          "Kz43",
                          "Kz44",
                          "Kz45",
                          "Kz46",
                          "Kz48",
                          "Kz49",
                          "Kz50",
                          "Kz59",
                          "Kz60",
                          "Kz61",
                          "Kz62",
                          "Kz63",
                          "Kz64",
                          "Kz65",
                          "Kz66",
                          "Kz67",
                          "Kz69",
                          "Kz73",
                          "Kz76",
                          "Kz77",
                          "Kz81",
                          "Kz84",
                          "Kz86",
                          "Kz87",
                          "Kz89",
                          "Kz90",
                          "Kz91",
                          "Kz93",
                          "Kz94",
                          "Kz95"
                        ]
                      },
                      "base": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$",
                        "description": "Exact caller-confirmed EUR amount; no rate calculation."
                      },
                      "tax": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$",
                        "description": "Exact caller-confirmed EUR amount; no rate calculation."
                      }
                    },
                    "required": [
                      "id",
                      "source_ref",
                      "source_version",
                      "group"
                    ],
                    "oneOf": [
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz21",
                              "Kz41",
                              "Kz42",
                              "Kz43",
                              "Kz44",
                              "Kz45",
                              "Kz48",
                              "Kz49",
                              "Kz60",
                              "Kz77",
                              "Kz87",
                              "Kz90",
                              "Kz91"
                            ]
                          }
                        },
                        "required": [
                          "base"
                        ],
                        "not": {
                          "required": [
                            "tax"
                          ]
                        }
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz35",
                              "Kz46",
                              "Kz73",
                              "Kz76",
                              "Kz81",
                              "Kz84",
                              "Kz86",
                              "Kz89",
                              "Kz93",
                              "Kz94",
                              "Kz95"
                            ]
                          }
                        },
                        "required": [
                          "base",
                          "tax"
                        ]
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz59",
                              "Kz61",
                              "Kz62",
                              "Kz63",
                              "Kz64",
                              "Kz65",
                              "Kz66",
                              "Kz67",
                              "Kz69"
                            ]
                          }
                        },
                        "required": [
                          "tax"
                        ],
                        "not": {
                          "required": [
                            "base"
                          ]
                        }
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz37",
                              "Kz39"
                            ]
                          },
                          "tax": {
                            "type": "string",
                            "pattern": "^(0\\.00|[1-9][0-9]{0,12}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                          }
                        },
                        "required": [
                          "tax"
                        ],
                        "not": {
                          "required": [
                            "base"
                          ]
                        }
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz50"
                            ]
                          },
                          "base": {
                            "type": "string",
                            "pattern": "^(0\\.00|[1-9][0-9]{0,12}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                          }
                        },
                        "required": [
                          "base"
                        ],
                        "not": {
                          "required": [
                            "tax"
                          ]
                        }
                      }
                    ],
                    "x-go-type": "json.RawMessage",
                    "description": "Caller-confirmed annual group and exact amounts. Kz37/Kz39 tax and Kz50 base must be nonnegative per fact. Kz50 and Kz37 are additional informational reductions already reflected in the main groups; they do not affect Kz83. No classification inference; source references need not identify Accounting records."
                  }
                }
              },
              "required": [
                "schema_version",
                "source_snapshot_sha256",
                "mapping_version",
                "mapping_sha256",
                "draft",
                "facts"
              ],
              "x-go-type": "json.RawMessage",
              "description": "Restricted derived EUR mode. Aggregate exact cents before whole-euro projection; fractional aggregate bases fail. Preserve supplied tax cents and derive Kz83 using pinned form rules. Kz50/Kz37 are informational and never counted again in Kz83. Final fields and control/text/date Kennziffer fields are unsupported. Test-marked and unvalidated; no filing permission."
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-mapped-v1"
                  ]
                },
                "source_snapshot_sha256": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "mapping_id": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
                },
                "mapping_revision": {
                  "type": "integer",
                  "format": "int64",
                  "minimum": 1,
                  "maximum": 2147483647
                },
                "draft": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "schema_version": {
                      "type": "string",
                      "enum": [
                        "ustva-2026-v2"
                      ]
                    },
                    "source_revision": {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                    },
                    "creation_date": {
                      "type": "string",
                      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                    },
                    "year": {
                      "type": "integer",
                      "enum": [
                        2026
                      ]
                    },
                    "tax_office": {
                      "type": "string",
                      "pattern": "^[0-9]{4}$"
                    },
                    "tax_number": {
                      "type": "string",
                      "pattern": "^[0-9]{4}0[0-9]{8}$"
                    },
                    "supplier": {
                      "$ref": "#/components/schemas/Supplier"
                    },
                    "taxpayer": {
                      "$ref": "#/components/schemas/TaxpayerV2"
                    },
                    "period": {
                      "type": "string",
                      "enum": [
                        "01",
                        "02",
                        "03",
                        "04",
                        "05",
                        "06",
                        "07",
                        "08",
                        "09",
                        "10",
                        "11",
                        "12",
                        "41",
                        "42",
                        "43",
                        "44"
                      ]
                    },
                    "correction": {
                      "type": "boolean"
                    },
                    "economic_id": {
                      "type": "string",
                      "pattern": "^DE[0-9]{9}$"
                    }
                  },
                  "required": [
                    "schema_version",
                    "source_revision",
                    "creation_date",
                    "year",
                    "period",
                    "tax_office",
                    "tax_number",
                    "supplier",
                    "taxpayer"
                  ],
                  "x-go-type": "json.RawMessage",
                  "description": "Reporting metadata for classified facts. Final fields and month are forbidden; period is explicit."
                },
                "facts": {
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 256,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_ref": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_key": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "base": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      },
                      "tax": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      }
                    },
                    "required": [
                      "id",
                      "source_ref",
                      "source_version",
                      "source_key"
                    ],
                    "anyOf": [
                      {
                        "required": [
                          "base"
                        ]
                      },
                      {
                        "required": [
                          "tax"
                        ]
                      }
                    ],
                    "description": "Mapped fact input. The confirmed source mapping determines which base/tax fields are valid for its source_key; values remain caller-classified exact EUR amounts."
                  }
                }
              },
              "required": [
                "schema_version",
                "source_snapshot_sha256",
                "mapping_id",
                "mapping_revision",
                "draft",
                "facts"
              ],
              "x-go-type": "json.RawMessage",
              "description": "Public source-key-mapped UStVA input. The referenced confirmed mapping revision binds each source_key to a pinned group. Never supply final form fields or compiler-private representations."
            }
          ],
          "x-go-type": "json.RawMessage"
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "corporation_tax_option": {
              "type": "boolean",
              "description": "Explicit section 1a KStG case assertion, bound to the GCD option. Omitted/false retains the ordinary case; true currently permits eligible domestic annual AO/GKV or UKV core reports without EV/MicroBilG. Filing remains denied."
            },
            "micro_bilg_prepared": {
              "type": "boolean",
              "description": "Explicit customer assertion that this corporation's statements were prepared under MicroBilG. True selects the fiscal-microbilg entry schema; absent or false selects the ordinary fiscal schema."
            },
            "schema_version": {
              "type": "string",
              "enum": [
                "ebilanz-core-6.9-v1"
              ]
            },
            "source_revision": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
            },
            "mapping_version": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
            },
            "tax_number": {
              "type": "string",
              "minLength": 13,
              "maxLength": 13,
              "pattern": "^[0-9]{4}0[0-9]{8}$"
            },
            "tax_office": {
              "type": "string",
              "minLength": 4,
              "maxLength": 4,
              "pattern": "^[0-9]{4}$"
            },
            "supplier": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "closing_date": {
              "type": "string",
              "format": "date",
              "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
            },
            "contexts": {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "dimensions": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/EBilanzDimension"
                        },
                        "minItems": 0,
                        "maxItems": 16
                      },
                      "start_date": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                      },
                      "end_date": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                      }
                    },
                    "required": [
                      "id",
                      "start_date",
                      "end_date"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "dimensions": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/EBilanzDimension"
                        },
                        "minItems": 0,
                        "maxItems": 16
                      },
                      "instant": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                      }
                    },
                    "required": [
                      "id",
                      "instant"
                    ]
                  }
                ],
                "description": "Exactly one instant or duration period. The module verifies date equality, semantic uniqueness and official dimensions."
              },
              "minItems": 2,
              "maxItems": 256
            },
            "facts": {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "value"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "minLength": 0,
                        "maxLength": 4096
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "context",
                      "state",
                      "value"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "nil"
                        ]
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "context",
                      "state"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "tuple"
                        ]
                      },
                      "children": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/EBilanzFact"
                        },
                        "minItems": 1,
                        "maxItems": 5000
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "state",
                      "children"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "nil"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "state"
                    ]
                  }
                ],
                "description": "Closed value, nil item, populated tuple or nil tuple shapes. Nil tuples omit context, unit, value and children. Official concept/type/nillability, total fact count 5000 and tuple depth 4 are enforced by the pinned module."
              },
              "minItems": 1,
              "maxItems": 5000
            },
            "accounts": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80,
                    "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                  },
                  "number": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  },
                  "label": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "balance": {
                    "type": "string",
                    "minLength": 4,
                    "maxLength": 21,
                    "pattern": "^(0\\.00|-?[1-9][0-9]*\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                  },
                  "fact_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80,
                    "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                  },
                  "source": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  }
                },
                "required": [
                  "id",
                  "number",
                  "label",
                  "balance",
                  "fact_id",
                  "source"
                ]
              },
              "minItems": 0,
              "maxItems": 5000
            }
          },
          "required": [
            "schema_version",
            "source_revision",
            "mapping_version",
            "tax_number",
            "tax_office",
            "supplier",
            "closing_date",
            "contexts",
            "facts"
          ],
          "description": "Final reported facts and explicitly mapped Kontensalden under pinned E-Bilanz 6.9 artifacts. No caller-supplied profile, runtime, catalog or procedure overrides. Official semantic/taxonomy relationships, byte bounds and source mapping consistency are validated by the module; this shape is not qualification evidence."
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "schema_version": {
              "type": "string",
              "enum": [
                "ebilanz-core-6.9-mapped-v1"
              ]
            },
            "source_snapshot_sha256": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            "mapping_id": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
            },
            "mapping_revision": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 2147483647
            },
            "draft": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ebilanz-core-6.9-v1"
                  ]
                },
                "source_revision": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 80,
                  "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                },
                "tax_number": {
                  "type": "string",
                  "minLength": 13,
                  "maxLength": 13,
                  "pattern": "^[0-9]{4}0[0-9]{8}$"
                },
                "tax_office": {
                  "type": "string",
                  "minLength": 4,
                  "maxLength": 4,
                  "pattern": "^[0-9]{4}$"
                },
                "supplier": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512
                },
                "closing_date": {
                  "type": "string",
                  "format": "date",
                  "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                },
                "contexts": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "dimensions": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/EBilanzDimension"
                            },
                            "minItems": 0,
                            "maxItems": 16
                          },
                          "start_date": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                          },
                          "end_date": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                          }
                        },
                        "required": [
                          "id",
                          "start_date",
                          "end_date"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "dimensions": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/EBilanzDimension"
                            },
                            "minItems": 0,
                            "maxItems": 16
                          },
                          "instant": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                          }
                        },
                        "required": [
                          "id",
                          "instant"
                        ]
                      }
                    ],
                    "description": "Exactly one instant or duration period. The module verifies date equality, semantic uniqueness and official dimensions."
                  },
                  "minItems": 2,
                  "maxItems": 256
                },
                "facts": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "context": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "unit": {
                            "type": "string",
                            "enum": [
                              "EUR"
                            ]
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "value"
                            ]
                          },
                          "value": {
                            "type": "string",
                            "minLength": 0,
                            "maxLength": 4096
                          },
                          "footnote": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 16384,
                            "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "context",
                          "state",
                          "value"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "context": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "unit": {
                            "type": "string",
                            "enum": [
                              "EUR"
                            ]
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "nil"
                            ]
                          },
                          "footnote": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 16384,
                            "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "context",
                          "state"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "tuple"
                            ]
                          },
                          "children": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/EBilanzFact"
                            },
                            "minItems": 1,
                            "maxItems": 5000
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "state",
                          "children"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "nil"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "state"
                        ]
                      }
                    ],
                    "description": "Closed value, nil item, populated tuple or nil tuple shapes. Nil tuples omit context, unit, value and children. Official concept/type/nillability, total fact count 5000 and tuple depth 4 are enforced by the pinned module."
                  },
                  "minItems": 0,
                  "maxItems": 5000
                },
                "accounts": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "number": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      },
                      "label": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "balance": {
                        "type": "string",
                        "minLength": 4,
                        "maxLength": 21,
                        "pattern": "^(0\\.00|-?[1-9][0-9]*\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      },
                      "fact_id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      }
                    },
                    "required": [
                      "id",
                      "number",
                      "label",
                      "balance",
                      "fact_id",
                      "source"
                    ]
                  },
                  "minItems": 0,
                  "maxItems": 5000
                }
              },
              "required": [
                "schema_version",
                "source_revision",
                "tax_number",
                "tax_office",
                "supplier",
                "closing_date",
                "contexts",
                "facts"
              ],
              "description": "Explicit E-Bilanz metadata, contexts, GCD facts and account details accompanying mapped monetary facts. The service supplies mapping_version. Explicit facts cannot override mapped target cells or identifiers."
            },
            "source_facts": {
              "type": "array",
              "minItems": 1,
              "maxItems": 256,
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "source_ref": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_key": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "value"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "maxLength": 21,
                        "pattern": "^(0\\.00|-?[1-9][0-9]*\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "context",
                      "unit",
                      "sources",
                      "source_ref",
                      "source_version",
                      "source_key",
                      "state",
                      "value"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "source_ref": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_key": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "nil"
                        ]
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "context",
                      "unit",
                      "sources",
                      "source_ref",
                      "source_version",
                      "source_key",
                      "state"
                    ]
                  }
                ],
                "description": "One final monetary fact per source key. sources must contain source_ref. The confirmed mapping supplies the concept and exact dimensions; only value or NIL is accepted."
              }
            }
          },
          "required": [
            "schema_version",
            "source_snapshot_sha256",
            "mapping_id",
            "mapping_revision",
            "draft",
            "source_facts"
          ],
          "x-go-type": "json.RawMessage",
          "description": "Public source-key-mapped E-Bilanz input, at most 512 KiB. Names an exact confirmed revision. Compiler-private snapshots and caller-supplied confirmation are rejected."
        }
      ],
      "x-go-type": "json.RawMessage"
    }
  },
  "required": [
    "expected_revision",
    "profile_version",
    "input"
  ]
}

Responses

201 · application/json

Successful operation

Required fields: id, product_id, revision, profile_version, input

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "profile_version": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,9}$"
    },
    "input": {
      "oneOf": [
        {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-v1"
                  ]
                },
                "source_revision": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                },
                "creation_date": {
                  "type": "string",
                  "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                },
                "year": {
                  "type": "integer",
                  "enum": [
                    2026
                  ]
                },
                "month": {
                  "type": "string",
                  "pattern": "^(0[1-9]|1[0-2])$"
                },
                "tax_office": {
                  "type": "string",
                  "pattern": "^[0-9]{4}$"
                },
                "tax_number": {
                  "type": "string",
                  "pattern": "^[0-9]{4}0[0-9]{8}$"
                },
                "supplier": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 45
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "house_number": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 9
                    },
                    "postal_code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 12
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "country": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "phone": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "email": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 70
                    }
                  },
                  "required": [
                    "name",
                    "street",
                    "house_number",
                    "postal_code",
                    "city",
                    "country",
                    "phone",
                    "email"
                  ]
                },
                "taxpayer": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "designation": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 50
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 60
                    },
                    "first_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 33
                    },
                    "house_number": {
                      "type": "string",
                      "pattern": "^[0-9]{1,9}$"
                    },
                    "postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 34
                    }
                  },
                  "required": [
                    "designation",
                    "name",
                    "first_name",
                    "street",
                    "house_number",
                    "postal_code",
                    "city"
                  ]
                },
                "fields": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "Kz81": {
                      "type": "string",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz86": {
                      "type": "string",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz66": {
                      "type": "string",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz83": {
                      "type": "string",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    }
                  },
                  "required": [
                    "Kz83"
                  ]
                }
              },
              "required": [
                "schema_version",
                "source_revision",
                "creation_date",
                "year",
                "month",
                "tax_office",
                "tax_number",
                "supplier",
                "taxpayer",
                "fields"
              ],
              "x-go-type": "json.RawMessage"
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-v2"
                  ]
                },
                "source_revision": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                },
                "creation_date": {
                  "type": "string",
                  "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                },
                "year": {
                  "type": "integer",
                  "enum": [
                    2026
                  ]
                },
                "tax_office": {
                  "type": "string",
                  "pattern": "^[0-9]{4}$"
                },
                "tax_number": {
                  "type": "string",
                  "pattern": "^[0-9]{4}0[0-9]{8}$"
                },
                "supplier": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 45
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "house_number": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 9
                    },
                    "postal_code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 12
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "country": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "phone": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "email": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 70
                    }
                  },
                  "required": [
                    "name",
                    "street",
                    "house_number",
                    "postal_code",
                    "city",
                    "country",
                    "phone",
                    "email"
                  ]
                },
                "taxpayer": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "designation": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 50
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 60
                    },
                    "first_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 33
                    },
                    "house_number": {
                      "type": "string",
                      "pattern": "^[0-9]{1,9}$"
                    },
                    "postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 34
                    },
                    "name_prefix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "name_suffix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "house_number_suffix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 15
                    },
                    "address_supplement": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "foreign_postal_code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 13
                    },
                    "country": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "po_box_city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 34
                    },
                    "po_box": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 10
                    },
                    "phone": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "email": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 70
                    },
                    "po_box_postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    },
                    "large_recipient_postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    }
                  },
                  "required": [
                    "name"
                  ]
                },
                "fields": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "Kz21": {
                      "type": "string",
                      "description": "Nicht steuerbare sonstige Leistungen gemäß § 18b Satz 1 Nummer 2 UStG (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz22": {
                      "type": "string",
                      "description": "Belege (z.B. Verträge, Rechnungen) werden gesondert eingereicht (flag)",
                      "enum": [
                        "1"
                      ]
                    },
                    "Kz26": {
                      "type": "string",
                      "description": "Das SEPA-Lastschriftmandat soll ausnahmsweise (z. B. wegen Verrechnungswünschen) für diesen Voranmeldungszeitraum nicht verwendet werden. Ein ggf. verbleibender Restbetrag ist gesondert zu entrichten. (flag)",
                      "enum": [
                        "1"
                      ]
                    },
                    "Kz29": {
                      "type": "string",
                      "description": "Verrechnung des Erstattungsbetrags erwünscht / Erstattungsbetrag ist abgetreten (Teilen Sie bitte die Verrechnungswünsche dem Finanzamt gesondert mit). (flag)",
                      "enum": [
                        "1"
                      ]
                    },
                    "Kz35": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz36": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz37": {
                      "type": "string",
                      "description": "Minderung der abziehbaren Vorsteuerbeträge (in der Zeile $Kz66.Vordruckzeile$ aus Rechnungen von anderen Unternehmen (§ 15 Absatz 1 Satz 1 Nummer 1 UStG) sowie in den Zeilen $Kz63.Vordruckzeile$ und $Kz59.Vordruckzeile$ enthalten) (EUR)",
                      "pattern": "^(0\\.00|[1-9][0-9]{0,10}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz39": {
                      "type": "string",
                      "description": "Abzug der festgesetzten Sondervorauszahlung für Dauerfristverlängerung (in der Regel nur in der letzten Voranmeldung des Besteuerungszeitraums auszufüllen) (EUR)",
                      "pattern": "^(0\\.00|[1-9][0-9]{0,10}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz41": {
                      "type": "string",
                      "description": "Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) an Abnehmer mit Umsatzsteuer-Identifikationsnummer (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz42": {
                      "type": "string",
                      "description": "Lieferungen des ersten Abnehmers bei innergemeinschaftlichen Dreiecksgeschäften (§ 25b UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz43": {
                      "type": "string",
                      "description": "Weitere steuerfreie Umsätze mit Vorsteuerabzug (z. B. Ausfuhrlieferungen, Umsätze nach § 4 Nummer 2 bis 7 UStG, Umsätze nach Verordnungen der EU) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz44": {
                      "type": "string",
                      "description": "Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) neuer Fahrzeuge an Abnehmer ohne Umsatzsteuer-Identifikationsnummer (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz45": {
                      "type": "string",
                      "description": "Übrige nicht steuerbare Umsätze (Leistungsort nicht im Inland) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz46": {
                      "type": "string",
                      "description": "Sonstige Leistungen nach § 3a Absatz 2 UStG eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz47": {
                      "type": "string",
                      "description": "Sonstige Leistungen nach § 3a Absatz 2 UStG eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz48": {
                      "type": "string",
                      "description": "Steuerfreie Umsätze ohne Vorsteuerabzug (z. B. Umsätze nach § 4 Nummer 8 bis 29 oder § 19 Absatz 1 UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz49": {
                      "type": "string",
                      "description": "Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz50": {
                      "type": "string",
                      "description": "Minderung der Bemessungsgrundlage (in den Zeilen $Kz81.Vordruckzeile$ bis $Kz76.Vordruckzeile$ enthalten) (whole EUR)",
                      "pattern": "^(0|[1-9][0-9]{0,12})$"
                    },
                    "Kz59": {
                      "type": "string",
                      "description": "Vorsteuerabzug für innergemeinschaftliche Lieferungen neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) sowie von Kleinunternehmern im Sinne des § 19 Absatz 1 UStG (§ 15 Absatz 4a UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz60": {
                      "type": "string",
                      "description": "Steuerpflichtige Umsätze des leistenden Unternehmers, für die der Leistungsempfänger die Steuer nach § 13b Absatz 5 UStG schuldet (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz61": {
                      "type": "string",
                      "description": "Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb von Gegenständen (§ 15 Absatz 1 Satz 1 Nummer 3 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz62": {
                      "type": "string",
                      "description": "Entstandene Einfuhrumsatzsteuer (§ 15 Absatz 1 Satz 1 Nummer 2 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz63": {
                      "type": "string",
                      "description": "Vorsteuerbeträge, die nach allgemeinen Durchschnittssätzen berechnet sind (§ 23a UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz64": {
                      "type": "string",
                      "description": "Berichtigung des Vorsteuerabzugs (§ 15a UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz65": {
                      "type": "string",
                      "description": "Steuer infolge des Wechsels der Besteuerungsform sowie Nachsteuer auf versteuerte Anzahlungen und ähnlichem wegen Steuersatzänderung (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz66": {
                      "type": "string",
                      "description": "Vorsteuerbeträge aus Rechnungen von anderen Unternehmern (§ 15 Absatz 1 Satz 1 Nummer 1 UStG), aus Leistungen im Sinne des § 27 Absatz 40a UStG und aus innergemeinschaftlichen Dreiecksgeschäften (§ 25b Absatz 5 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz67": {
                      "type": "string",
                      "description": "Vorsteuerbeträge aus Leistungen im Sinne des § 13b UStG (§ 15 Absatz 1 Satz 1 Nummer 4 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz69": {
                      "type": "string",
                      "description": "In Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (§ 14c UStG) sowie Steuerbeträge, die nach § 6a Absatz 4 Satz 2, § 17 Absatz 1 Satz 7, § 25b Absatz 2 UStG oder von einem Auslagerer oder Lagerhalter nach § 27 Absatz 40a UStG geschuldet werden. (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz70": {
                      "type": "string",
                      "description": "Wechsel von der Kleinunternehmer-Regelung (§ 19 UStG) zur Regelbesteuerung\nDatum des Wechsels (date); compiler also checks real calendar dates",
                      "pattern": "^(0[1-9]|[12][0-9]|3[01])\\.(0[1-9]|1[0-2])\\.[0-9]{4}$"
                    },
                    "Kz73": {
                      "type": "string",
                      "description": "Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz74": {
                      "type": "string",
                      "description": "Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz76": {
                      "type": "string",
                      "description": "Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (Sägewerkserzeugnisse, Getränke und alkoholische Flüssigkeiten, z. B. Wein) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz77": {
                      "type": "string",
                      "description": "Lieferungen land- und forstwirtschaftlicher Betriebe nach § 24 UStG an Abnehmer mit Umsatzsteuer-Identifikationsnummer (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz80": {
                      "type": "string",
                      "description": "Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (Sägewerkserzeugnisse, Getränke und alkoholische Flüssigkeiten, z. B. Wein) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz81": {
                      "type": "string",
                      "description": "zum Steuersatz von 19 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz83": {
                      "type": "string",
                      "description": "Verbleibende Umsatzsteuer-Vorauszahlung beziehungsweise verbleibender Überschuss (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz84": {
                      "type": "string",
                      "description": "Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz85": {
                      "type": "string",
                      "description": "Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz86": {
                      "type": "string",
                      "description": "zum Steuersatz von 7 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz87": {
                      "type": "string",
                      "description": "zum Steuersatz von 0 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz89": {
                      "type": "string",
                      "description": "zum Steuersatz von 19 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz91": {
                      "type": "string",
                      "description": "Steuerfreie innergemeinschaftliche Erwerbe von bestimmten Gegenständen und Anlagegold (§§ 4b und 25c UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz93": {
                      "type": "string",
                      "description": "zum Steuersatz von 7 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz90": {
                      "type": "string",
                      "description": "zum Steuersatz von 0 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz94": {
                      "type": "string",
                      "description": "neuer Fahrzeuge (§ 1b Absatz 2 und 3 UStG) von Lieferern ohne Umsatzsteuer-Identifikationsnummer zum allgemeinen Steuersatz (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz95": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz96": {
                      "type": "string",
                      "description": "neuer Fahrzeuge (§ 1b Absatz 2 und 3 UStG) von Lieferern ohne Umsatzsteuer-Identifikationsnummer zum allgemeinen Steuersatz (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz98": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz500": {
                      "type": "string",
                      "description": "In dieser Steueranmeldung (choice)",
                      "enum": [
                        "1",
                        "2",
                        "3",
                        "4"
                      ]
                    },
                    "Kz500_Begruendung": {
                      "type": "string",
                      "description": "Ergänzende Angaben zur Steueranmeldung (text)",
                      "minLength": 1,
                      "maxLength": 180
                    }
                  },
                  "required": [
                    "Kz83"
                  ]
                },
                "period": {
                  "type": "string",
                  "enum": [
                    "01",
                    "02",
                    "03",
                    "04",
                    "05",
                    "06",
                    "07",
                    "08",
                    "09",
                    "10",
                    "11",
                    "12",
                    "41",
                    "42",
                    "43",
                    "44"
                  ]
                },
                "correction": {
                  "type": "boolean"
                },
                "economic_id": {
                  "type": "string",
                  "pattern": "^DE[0-9]{9}$"
                }
              },
              "required": [
                "schema_version",
                "source_revision",
                "creation_date",
                "year",
                "period",
                "tax_office",
                "tax_number",
                "supplier",
                "taxpayer",
                "fields"
              ],
              "x-go-type": "json.RawMessage",
              "description": "Final reported values, not automatic tax calculation. Every payload remains test-marked. Schema and native plausibility are separate checks."
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-derived-v1"
                  ]
                },
                "source_snapshot_sha256": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "mapping_version": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                },
                "mapping_sha256": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "draft": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "schema_version": {
                      "type": "string",
                      "enum": [
                        "ustva-2026-v2"
                      ]
                    },
                    "source_revision": {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                    },
                    "creation_date": {
                      "type": "string",
                      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                    },
                    "year": {
                      "type": "integer",
                      "enum": [
                        2026
                      ]
                    },
                    "tax_office": {
                      "type": "string",
                      "pattern": "^[0-9]{4}$"
                    },
                    "tax_number": {
                      "type": "string",
                      "pattern": "^[0-9]{4}0[0-9]{8}$"
                    },
                    "supplier": {
                      "$ref": "#/components/schemas/Supplier"
                    },
                    "taxpayer": {
                      "$ref": "#/components/schemas/TaxpayerV2"
                    },
                    "period": {
                      "type": "string",
                      "enum": [
                        "01",
                        "02",
                        "03",
                        "04",
                        "05",
                        "06",
                        "07",
                        "08",
                        "09",
                        "10",
                        "11",
                        "12",
                        "41",
                        "42",
                        "43",
                        "44"
                      ]
                    },
                    "correction": {
                      "type": "boolean"
                    },
                    "economic_id": {
                      "type": "string",
                      "pattern": "^DE[0-9]{9}$"
                    }
                  },
                  "required": [
                    "schema_version",
                    "source_revision",
                    "creation_date",
                    "year",
                    "period",
                    "tax_office",
                    "tax_number",
                    "supplier",
                    "taxpayer"
                  ],
                  "x-go-type": "json.RawMessage",
                  "description": "Reporting metadata for classified facts. Final fields and month are forbidden; period is explicit."
                },
                "facts": {
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 256,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_ref": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "group": {
                        "type": "string",
                        "enum": [
                          "Kz21",
                          "Kz35",
                          "Kz37",
                          "Kz39",
                          "Kz41",
                          "Kz42",
                          "Kz43",
                          "Kz44",
                          "Kz45",
                          "Kz46",
                          "Kz48",
                          "Kz49",
                          "Kz50",
                          "Kz59",
                          "Kz60",
                          "Kz61",
                          "Kz62",
                          "Kz63",
                          "Kz64",
                          "Kz65",
                          "Kz66",
                          "Kz67",
                          "Kz69",
                          "Kz73",
                          "Kz76",
                          "Kz77",
                          "Kz81",
                          "Kz84",
                          "Kz86",
                          "Kz87",
                          "Kz89",
                          "Kz90",
                          "Kz91",
                          "Kz93",
                          "Kz94",
                          "Kz95"
                        ]
                      },
                      "base": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$",
                        "description": "Exact caller-confirmed EUR amount; no rate calculation."
                      },
                      "tax": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$",
                        "description": "Exact caller-confirmed EUR amount; no rate calculation."
                      }
                    },
                    "required": [
                      "id",
                      "source_ref",
                      "source_version",
                      "group"
                    ],
                    "oneOf": [
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz21",
                              "Kz41",
                              "Kz42",
                              "Kz43",
                              "Kz44",
                              "Kz45",
                              "Kz48",
                              "Kz49",
                              "Kz60",
                              "Kz77",
                              "Kz87",
                              "Kz90",
                              "Kz91"
                            ]
                          }
                        },
                        "required": [
                          "base"
                        ],
                        "not": {
                          "required": [
                            "tax"
                          ]
                        }
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz35",
                              "Kz46",
                              "Kz73",
                              "Kz76",
                              "Kz81",
                              "Kz84",
                              "Kz86",
                              "Kz89",
                              "Kz93",
                              "Kz94",
                              "Kz95"
                            ]
                          }
                        },
                        "required": [
                          "base",
                          "tax"
                        ]
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz59",
                              "Kz61",
                              "Kz62",
                              "Kz63",
                              "Kz64",
                              "Kz65",
                              "Kz66",
                              "Kz67",
                              "Kz69"
                            ]
                          }
                        },
                        "required": [
                          "tax"
                        ],
                        "not": {
                          "required": [
                            "base"
                          ]
                        }
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz37",
                              "Kz39"
                            ]
                          },
                          "tax": {
                            "type": "string",
                            "pattern": "^(0\\.00|[1-9][0-9]{0,12}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                          }
                        },
                        "required": [
                          "tax"
                        ],
                        "not": {
                          "required": [
                            "base"
                          ]
                        }
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz50"
                            ]
                          },
                          "base": {
                            "type": "string",
                            "pattern": "^(0\\.00|[1-9][0-9]{0,12}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                          }
                        },
                        "required": [
                          "base"
                        ],
                        "not": {
                          "required": [
                            "tax"
                          ]
                        }
                      }
                    ],
                    "x-go-type": "json.RawMessage",
                    "description": "Caller-confirmed annual group and exact amounts. Kz37/Kz39 tax and Kz50 base must be nonnegative per fact. Kz50 and Kz37 are additional informational reductions already reflected in the main groups; they do not affect Kz83. No classification inference; source references need not identify Accounting records."
                  }
                }
              },
              "required": [
                "schema_version",
                "source_snapshot_sha256",
                "mapping_version",
                "mapping_sha256",
                "draft",
                "facts"
              ],
              "x-go-type": "json.RawMessage",
              "description": "Restricted derived EUR mode. Aggregate exact cents before whole-euro projection; fractional aggregate bases fail. Preserve supplied tax cents and derive Kz83 using pinned form rules. Kz50/Kz37 are informational and never counted again in Kz83. Final fields and control/text/date Kennziffer fields are unsupported. Test-marked and unvalidated; no filing permission."
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-mapped-v1"
                  ]
                },
                "source_snapshot_sha256": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "mapping_id": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
                },
                "mapping_revision": {
                  "type": "integer",
                  "format": "int64",
                  "minimum": 1,
                  "maximum": 2147483647
                },
                "draft": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "schema_version": {
                      "type": "string",
                      "enum": [
                        "ustva-2026-v2"
                      ]
                    },
                    "source_revision": {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                    },
                    "creation_date": {
                      "type": "string",
                      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                    },
                    "year": {
                      "type": "integer",
                      "enum": [
                        2026
                      ]
                    },
                    "tax_office": {
                      "type": "string",
                      "pattern": "^[0-9]{4}$"
                    },
                    "tax_number": {
                      "type": "string",
                      "pattern": "^[0-9]{4}0[0-9]{8}$"
                    },
                    "supplier": {
                      "$ref": "#/components/schemas/Supplier"
                    },
                    "taxpayer": {
                      "$ref": "#/components/schemas/TaxpayerV2"
                    },
                    "period": {
                      "type": "string",
                      "enum": [
                        "01",
                        "02",
                        "03",
                        "04",
                        "05",
                        "06",
                        "07",
                        "08",
                        "09",
                        "10",
                        "11",
                        "12",
                        "41",
                        "42",
                        "43",
                        "44"
                      ]
                    },
                    "correction": {
                      "type": "boolean"
                    },
                    "economic_id": {
                      "type": "string",
                      "pattern": "^DE[0-9]{9}$"
                    }
                  },
                  "required": [
                    "schema_version",
                    "source_revision",
                    "creation_date",
                    "year",
                    "period",
                    "tax_office",
                    "tax_number",
                    "supplier",
                    "taxpayer"
                  ],
                  "x-go-type": "json.RawMessage",
                  "description": "Reporting metadata for classified facts. Final fields and month are forbidden; period is explicit."
                },
                "facts": {
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 256,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_ref": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_key": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "base": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      },
                      "tax": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      }
                    },
                    "required": [
                      "id",
                      "source_ref",
                      "source_version",
                      "source_key"
                    ],
                    "anyOf": [
                      {
                        "required": [
                          "base"
                        ]
                      },
                      {
                        "required": [
                          "tax"
                        ]
                      }
                    ],
                    "description": "Mapped fact input. The confirmed source mapping determines which base/tax fields are valid for its source_key; values remain caller-classified exact EUR amounts."
                  }
                }
              },
              "required": [
                "schema_version",
                "source_snapshot_sha256",
                "mapping_id",
                "mapping_revision",
                "draft",
                "facts"
              ],
              "x-go-type": "json.RawMessage",
              "description": "Public source-key-mapped UStVA input. The referenced confirmed mapping revision binds each source_key to a pinned group. Never supply final form fields or compiler-private representations."
            }
          ],
          "x-go-type": "json.RawMessage"
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "corporation_tax_option": {
              "type": "boolean",
              "description": "Explicit section 1a KStG case assertion, bound to the GCD option. Omitted/false retains the ordinary case; true currently permits eligible domestic annual AO/GKV or UKV core reports without EV/MicroBilG. Filing remains denied."
            },
            "micro_bilg_prepared": {
              "type": "boolean",
              "description": "Explicit customer assertion that this corporation's statements were prepared under MicroBilG. True selects the fiscal-microbilg entry schema; absent or false selects the ordinary fiscal schema."
            },
            "schema_version": {
              "type": "string",
              "enum": [
                "ebilanz-core-6.9-v1"
              ]
            },
            "source_revision": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
            },
            "mapping_version": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
            },
            "tax_number": {
              "type": "string",
              "minLength": 13,
              "maxLength": 13,
              "pattern": "^[0-9]{4}0[0-9]{8}$"
            },
            "tax_office": {
              "type": "string",
              "minLength": 4,
              "maxLength": 4,
              "pattern": "^[0-9]{4}$"
            },
            "supplier": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "closing_date": {
              "type": "string",
              "format": "date",
              "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
            },
            "contexts": {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "dimensions": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/EBilanzDimension"
                        },
                        "minItems": 0,
                        "maxItems": 16
                      },
                      "start_date": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                      },
                      "end_date": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                      }
                    },
                    "required": [
                      "id",
                      "start_date",
                      "end_date"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "dimensions": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/EBilanzDimension"
                        },
                        "minItems": 0,
                        "maxItems": 16
                      },
                      "instant": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                      }
                    },
                    "required": [
                      "id",
                      "instant"
                    ]
                  }
                ],
                "description": "Exactly one instant or duration period. The module verifies date equality, semantic uniqueness and official dimensions."
              },
              "minItems": 2,
              "maxItems": 256
            },
            "facts": {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "value"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "minLength": 0,
                        "maxLength": 4096
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "context",
                      "state",
                      "value"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "nil"
                        ]
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "context",
                      "state"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "tuple"
                        ]
                      },
                      "children": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/EBilanzFact"
                        },
                        "minItems": 1,
                        "maxItems": 5000
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "state",
                      "children"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "nil"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "state"
                    ]
                  }
                ],
                "description": "Closed value, nil item, populated tuple or nil tuple shapes. Nil tuples omit context, unit, value and children. Official concept/type/nillability, total fact count 5000 and tuple depth 4 are enforced by the pinned module."
              },
              "minItems": 1,
              "maxItems": 5000
            },
            "accounts": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80,
                    "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                  },
                  "number": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  },
                  "label": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "balance": {
                    "type": "string",
                    "minLength": 4,
                    "maxLength": 21,
                    "pattern": "^(0\\.00|-?[1-9][0-9]*\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                  },
                  "fact_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80,
                    "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                  },
                  "source": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  }
                },
                "required": [
                  "id",
                  "number",
                  "label",
                  "balance",
                  "fact_id",
                  "source"
                ]
              },
              "minItems": 0,
              "maxItems": 5000
            }
          },
          "required": [
            "schema_version",
            "source_revision",
            "mapping_version",
            "tax_number",
            "tax_office",
            "supplier",
            "closing_date",
            "contexts",
            "facts"
          ],
          "description": "Final reported facts and explicitly mapped Kontensalden under pinned E-Bilanz 6.9 artifacts. No caller-supplied profile, runtime, catalog or procedure overrides. Official semantic/taxonomy relationships, byte bounds and source mapping consistency are validated by the module; this shape is not qualification evidence."
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "schema_version": {
              "type": "string",
              "enum": [
                "ebilanz-core-6.9-mapped-v1"
              ]
            },
            "source_snapshot_sha256": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            "mapping_id": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
            },
            "mapping_revision": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 2147483647
            },
            "draft": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ebilanz-core-6.9-v1"
                  ]
                },
                "source_revision": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 80,
                  "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                },
                "tax_number": {
                  "type": "string",
                  "minLength": 13,
                  "maxLength": 13,
                  "pattern": "^[0-9]{4}0[0-9]{8}$"
                },
                "tax_office": {
                  "type": "string",
                  "minLength": 4,
                  "maxLength": 4,
                  "pattern": "^[0-9]{4}$"
                },
                "supplier": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512
                },
                "closing_date": {
                  "type": "string",
                  "format": "date",
                  "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                },
                "contexts": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "dimensions": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/EBilanzDimension"
                            },
                            "minItems": 0,
                            "maxItems": 16
                          },
                          "start_date": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                          },
                          "end_date": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                          }
                        },
                        "required": [
                          "id",
                          "start_date",
                          "end_date"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "dimensions": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/EBilanzDimension"
                            },
                            "minItems": 0,
                            "maxItems": 16
                          },
                          "instant": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                          }
                        },
                        "required": [
                          "id",
                          "instant"
                        ]
                      }
                    ],
                    "description": "Exactly one instant or duration period. The module verifies date equality, semantic uniqueness and official dimensions."
                  },
                  "minItems": 2,
                  "maxItems": 256
                },
                "facts": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "context": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "unit": {
                            "type": "string",
                            "enum": [
                              "EUR"
                            ]
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "value"
                            ]
                          },
                          "value": {
                            "type": "string",
                            "minLength": 0,
                            "maxLength": 4096
                          },
                          "footnote": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 16384,
                            "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "context",
                          "state",
                          "value"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "context": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "unit": {
                            "type": "string",
                            "enum": [
                              "EUR"
                            ]
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "nil"
                            ]
                          },
                          "footnote": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 16384,
                            "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "context",
                          "state"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "tuple"
                            ]
                          },
                          "children": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/EBilanzFact"
                            },
                            "minItems": 1,
                            "maxItems": 5000
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "state",
                          "children"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "nil"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "state"
                        ]
                      }
                    ],
                    "description": "Closed value, nil item, populated tuple or nil tuple shapes. Nil tuples omit context, unit, value and children. Official concept/type/nillability, total fact count 5000 and tuple depth 4 are enforced by the pinned module."
                  },
                  "minItems": 0,
                  "maxItems": 5000
                },
                "accounts": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "number": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      },
                      "label": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "balance": {
                        "type": "string",
                        "minLength": 4,
                        "maxLength": 21,
                        "pattern": "^(0\\.00|-?[1-9][0-9]*\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      },
                      "fact_id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      }
                    },
                    "required": [
                      "id",
                      "number",
                      "label",
                      "balance",
                      "fact_id",
                      "source"
                    ]
                  },
                  "minItems": 0,
                  "maxItems": 5000
                }
              },
              "required": [
                "schema_version",
                "source_revision",
                "tax_number",
                "tax_office",
                "supplier",
                "closing_date",
                "contexts",
                "facts"
              ],
              "description": "Explicit E-Bilanz metadata, contexts, GCD facts and account details accompanying mapped monetary facts. The service supplies mapping_version. Explicit facts cannot override mapped target cells or identifiers."
            },
            "source_facts": {
              "type": "array",
              "minItems": 1,
              "maxItems": 256,
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "source_ref": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_key": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "value"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "maxLength": 21,
                        "pattern": "^(0\\.00|-?[1-9][0-9]*\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "context",
                      "unit",
                      "sources",
                      "source_ref",
                      "source_version",
                      "source_key",
                      "state",
                      "value"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "source_ref": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_key": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "nil"
                        ]
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "context",
                      "unit",
                      "sources",
                      "source_ref",
                      "source_version",
                      "source_key",
                      "state"
                    ]
                  }
                ],
                "description": "One final monetary fact per source key. sources must contain source_ref. The confirmed mapping supplies the concept and exact dimensions; only value or NIL is accepted."
              }
            }
          },
          "required": [
            "schema_version",
            "source_snapshot_sha256",
            "mapping_id",
            "mapping_revision",
            "draft",
            "source_facts"
          ],
          "x-go-type": "json.RawMessage",
          "description": "Public source-key-mapped E-Bilanz input, at most 512 KiB. Names an exact confirmed revision. Compiler-private snapshots and caller-supplied confirmation are rejected."
        }
      ],
      "x-go-type": "json.RawMessage"
    }
  },
  "required": [
    "id",
    "product_id",
    "revision",
    "profile_version",
    "input"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/drafts/{draftId}/revisions/{revision}GetDraftRevision

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

draftId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

revision · path · required

{
  "type": "integer",
  "format": "int64",
  "minimum": 1,
  "maximum": 2147483647
}

Responses

200 · application/json

Successful operation

Required fields: id, product_id, revision, profile_version, input

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "profile_version": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,9}$"
    },
    "input": {
      "oneOf": [
        {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-v1"
                  ]
                },
                "source_revision": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                },
                "creation_date": {
                  "type": "string",
                  "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                },
                "year": {
                  "type": "integer",
                  "enum": [
                    2026
                  ]
                },
                "month": {
                  "type": "string",
                  "pattern": "^(0[1-9]|1[0-2])$"
                },
                "tax_office": {
                  "type": "string",
                  "pattern": "^[0-9]{4}$"
                },
                "tax_number": {
                  "type": "string",
                  "pattern": "^[0-9]{4}0[0-9]{8}$"
                },
                "supplier": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 45
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "house_number": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 9
                    },
                    "postal_code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 12
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "country": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "phone": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "email": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 70
                    }
                  },
                  "required": [
                    "name",
                    "street",
                    "house_number",
                    "postal_code",
                    "city",
                    "country",
                    "phone",
                    "email"
                  ]
                },
                "taxpayer": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "designation": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 50
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 60
                    },
                    "first_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 33
                    },
                    "house_number": {
                      "type": "string",
                      "pattern": "^[0-9]{1,9}$"
                    },
                    "postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 34
                    }
                  },
                  "required": [
                    "designation",
                    "name",
                    "first_name",
                    "street",
                    "house_number",
                    "postal_code",
                    "city"
                  ]
                },
                "fields": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "Kz81": {
                      "type": "string",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz86": {
                      "type": "string",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz66": {
                      "type": "string",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz83": {
                      "type": "string",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    }
                  },
                  "required": [
                    "Kz83"
                  ]
                }
              },
              "required": [
                "schema_version",
                "source_revision",
                "creation_date",
                "year",
                "month",
                "tax_office",
                "tax_number",
                "supplier",
                "taxpayer",
                "fields"
              ],
              "x-go-type": "json.RawMessage"
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-v2"
                  ]
                },
                "source_revision": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                },
                "creation_date": {
                  "type": "string",
                  "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                },
                "year": {
                  "type": "integer",
                  "enum": [
                    2026
                  ]
                },
                "tax_office": {
                  "type": "string",
                  "pattern": "^[0-9]{4}$"
                },
                "tax_number": {
                  "type": "string",
                  "pattern": "^[0-9]{4}0[0-9]{8}$"
                },
                "supplier": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 45
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "house_number": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 9
                    },
                    "postal_code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 12
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "country": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "phone": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "email": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 70
                    }
                  },
                  "required": [
                    "name",
                    "street",
                    "house_number",
                    "postal_code",
                    "city",
                    "country",
                    "phone",
                    "email"
                  ]
                },
                "taxpayer": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "designation": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 50
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 60
                    },
                    "first_name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 30
                    },
                    "street": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 33
                    },
                    "house_number": {
                      "type": "string",
                      "pattern": "^[0-9]{1,9}$"
                    },
                    "postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    },
                    "city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 34
                    },
                    "name_prefix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "name_suffix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "house_number_suffix": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 15
                    },
                    "address_supplement": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "foreign_postal_code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 13
                    },
                    "country": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "po_box_city": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 34
                    },
                    "po_box": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 10
                    },
                    "phone": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "email": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 70
                    },
                    "po_box_postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    },
                    "large_recipient_postal_code": {
                      "type": "string",
                      "pattern": "^[0-9]{5}$"
                    }
                  },
                  "required": [
                    "name"
                  ]
                },
                "fields": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "Kz21": {
                      "type": "string",
                      "description": "Nicht steuerbare sonstige Leistungen gemäß § 18b Satz 1 Nummer 2 UStG (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz22": {
                      "type": "string",
                      "description": "Belege (z.B. Verträge, Rechnungen) werden gesondert eingereicht (flag)",
                      "enum": [
                        "1"
                      ]
                    },
                    "Kz26": {
                      "type": "string",
                      "description": "Das SEPA-Lastschriftmandat soll ausnahmsweise (z. B. wegen Verrechnungswünschen) für diesen Voranmeldungszeitraum nicht verwendet werden. Ein ggf. verbleibender Restbetrag ist gesondert zu entrichten. (flag)",
                      "enum": [
                        "1"
                      ]
                    },
                    "Kz29": {
                      "type": "string",
                      "description": "Verrechnung des Erstattungsbetrags erwünscht / Erstattungsbetrag ist abgetreten (Teilen Sie bitte die Verrechnungswünsche dem Finanzamt gesondert mit). (flag)",
                      "enum": [
                        "1"
                      ]
                    },
                    "Kz35": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz36": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz37": {
                      "type": "string",
                      "description": "Minderung der abziehbaren Vorsteuerbeträge (in der Zeile $Kz66.Vordruckzeile$ aus Rechnungen von anderen Unternehmen (§ 15 Absatz 1 Satz 1 Nummer 1 UStG) sowie in den Zeilen $Kz63.Vordruckzeile$ und $Kz59.Vordruckzeile$ enthalten) (EUR)",
                      "pattern": "^(0\\.00|[1-9][0-9]{0,10}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz39": {
                      "type": "string",
                      "description": "Abzug der festgesetzten Sondervorauszahlung für Dauerfristverlängerung (in der Regel nur in der letzten Voranmeldung des Besteuerungszeitraums auszufüllen) (EUR)",
                      "pattern": "^(0\\.00|[1-9][0-9]{0,10}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz41": {
                      "type": "string",
                      "description": "Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) an Abnehmer mit Umsatzsteuer-Identifikationsnummer (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz42": {
                      "type": "string",
                      "description": "Lieferungen des ersten Abnehmers bei innergemeinschaftlichen Dreiecksgeschäften (§ 25b UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz43": {
                      "type": "string",
                      "description": "Weitere steuerfreie Umsätze mit Vorsteuerabzug (z. B. Ausfuhrlieferungen, Umsätze nach § 4 Nummer 2 bis 7 UStG, Umsätze nach Verordnungen der EU) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz44": {
                      "type": "string",
                      "description": "Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) neuer Fahrzeuge an Abnehmer ohne Umsatzsteuer-Identifikationsnummer (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz45": {
                      "type": "string",
                      "description": "Übrige nicht steuerbare Umsätze (Leistungsort nicht im Inland) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz46": {
                      "type": "string",
                      "description": "Sonstige Leistungen nach § 3a Absatz 2 UStG eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz47": {
                      "type": "string",
                      "description": "Sonstige Leistungen nach § 3a Absatz 2 UStG eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz48": {
                      "type": "string",
                      "description": "Steuerfreie Umsätze ohne Vorsteuerabzug (z. B. Umsätze nach § 4 Nummer 8 bis 29 oder § 19 Absatz 1 UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz49": {
                      "type": "string",
                      "description": "Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz50": {
                      "type": "string",
                      "description": "Minderung der Bemessungsgrundlage (in den Zeilen $Kz81.Vordruckzeile$ bis $Kz76.Vordruckzeile$ enthalten) (whole EUR)",
                      "pattern": "^(0|[1-9][0-9]{0,12})$"
                    },
                    "Kz59": {
                      "type": "string",
                      "description": "Vorsteuerabzug für innergemeinschaftliche Lieferungen neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) sowie von Kleinunternehmern im Sinne des § 19 Absatz 1 UStG (§ 15 Absatz 4a UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz60": {
                      "type": "string",
                      "description": "Steuerpflichtige Umsätze des leistenden Unternehmers, für die der Leistungsempfänger die Steuer nach § 13b Absatz 5 UStG schuldet (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz61": {
                      "type": "string",
                      "description": "Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb von Gegenständen (§ 15 Absatz 1 Satz 1 Nummer 3 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz62": {
                      "type": "string",
                      "description": "Entstandene Einfuhrumsatzsteuer (§ 15 Absatz 1 Satz 1 Nummer 2 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz63": {
                      "type": "string",
                      "description": "Vorsteuerbeträge, die nach allgemeinen Durchschnittssätzen berechnet sind (§ 23a UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz64": {
                      "type": "string",
                      "description": "Berichtigung des Vorsteuerabzugs (§ 15a UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz65": {
                      "type": "string",
                      "description": "Steuer infolge des Wechsels der Besteuerungsform sowie Nachsteuer auf versteuerte Anzahlungen und ähnlichem wegen Steuersatzänderung (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz66": {
                      "type": "string",
                      "description": "Vorsteuerbeträge aus Rechnungen von anderen Unternehmern (§ 15 Absatz 1 Satz 1 Nummer 1 UStG), aus Leistungen im Sinne des § 27 Absatz 40a UStG und aus innergemeinschaftlichen Dreiecksgeschäften (§ 25b Absatz 5 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz67": {
                      "type": "string",
                      "description": "Vorsteuerbeträge aus Leistungen im Sinne des § 13b UStG (§ 15 Absatz 1 Satz 1 Nummer 4 UStG) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz69": {
                      "type": "string",
                      "description": "In Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (§ 14c UStG) sowie Steuerbeträge, die nach § 6a Absatz 4 Satz 2, § 17 Absatz 1 Satz 7, § 25b Absatz 2 UStG oder von einem Auslagerer oder Lagerhalter nach § 27 Absatz 40a UStG geschuldet werden. (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz70": {
                      "type": "string",
                      "description": "Wechsel von der Kleinunternehmer-Regelung (§ 19 UStG) zur Regelbesteuerung\nDatum des Wechsels (date); compiler also checks real calendar dates",
                      "pattern": "^(0[1-9]|[12][0-9]|3[01])\\.(0[1-9]|1[0-2])\\.[0-9]{4}$"
                    },
                    "Kz73": {
                      "type": "string",
                      "description": "Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz74": {
                      "type": "string",
                      "description": "Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz76": {
                      "type": "string",
                      "description": "Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (Sägewerkserzeugnisse, Getränke und alkoholische Flüssigkeiten, z. B. Wein) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz77": {
                      "type": "string",
                      "description": "Lieferungen land- und forstwirtschaftlicher Betriebe nach § 24 UStG an Abnehmer mit Umsatzsteuer-Identifikationsnummer (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz80": {
                      "type": "string",
                      "description": "Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (Sägewerkserzeugnisse, Getränke und alkoholische Flüssigkeiten, z. B. Wein) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz81": {
                      "type": "string",
                      "description": "zum Steuersatz von 19 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz83": {
                      "type": "string",
                      "description": "Verbleibende Umsatzsteuer-Vorauszahlung beziehungsweise verbleibender Überschuss (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz84": {
                      "type": "string",
                      "description": "Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG) (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz85": {
                      "type": "string",
                      "description": "Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG) (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz86": {
                      "type": "string",
                      "description": "zum Steuersatz von 7 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz87": {
                      "type": "string",
                      "description": "zum Steuersatz von 0 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz89": {
                      "type": "string",
                      "description": "zum Steuersatz von 19 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz91": {
                      "type": "string",
                      "description": "Steuerfreie innergemeinschaftliche Erwerbe von bestimmten Gegenständen und Anlagegold (§§ 4b und 25c UStG) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz93": {
                      "type": "string",
                      "description": "zum Steuersatz von 7 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz90": {
                      "type": "string",
                      "description": "zum Steuersatz von 0 Prozent (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz94": {
                      "type": "string",
                      "description": "neuer Fahrzeuge (§ 1b Absatz 2 und 3 UStG) von Lieferern ohne Umsatzsteuer-Identifikationsnummer zum allgemeinen Steuersatz (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz95": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Bemessungsgrundlage) (whole EUR)",
                      "pattern": "^(0|-?[1-9][0-9]{0,12})$"
                    },
                    "Kz96": {
                      "type": "string",
                      "description": "neuer Fahrzeuge (§ 1b Absatz 2 und 3 UStG) von Lieferern ohne Umsatzsteuer-Identifikationsnummer zum allgemeinen Steuersatz (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz98": {
                      "type": "string",
                      "description": "zu anderen Steuersätzen (Steuer) (EUR)",
                      "pattern": "^(0\\.00|-?[1-9][0-9]{0,10}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                    },
                    "Kz500": {
                      "type": "string",
                      "description": "In dieser Steueranmeldung (choice)",
                      "enum": [
                        "1",
                        "2",
                        "3",
                        "4"
                      ]
                    },
                    "Kz500_Begruendung": {
                      "type": "string",
                      "description": "Ergänzende Angaben zur Steueranmeldung (text)",
                      "minLength": 1,
                      "maxLength": 180
                    }
                  },
                  "required": [
                    "Kz83"
                  ]
                },
                "period": {
                  "type": "string",
                  "enum": [
                    "01",
                    "02",
                    "03",
                    "04",
                    "05",
                    "06",
                    "07",
                    "08",
                    "09",
                    "10",
                    "11",
                    "12",
                    "41",
                    "42",
                    "43",
                    "44"
                  ]
                },
                "correction": {
                  "type": "boolean"
                },
                "economic_id": {
                  "type": "string",
                  "pattern": "^DE[0-9]{9}$"
                }
              },
              "required": [
                "schema_version",
                "source_revision",
                "creation_date",
                "year",
                "period",
                "tax_office",
                "tax_number",
                "supplier",
                "taxpayer",
                "fields"
              ],
              "x-go-type": "json.RawMessage",
              "description": "Final reported values, not automatic tax calculation. Every payload remains test-marked. Schema and native plausibility are separate checks."
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-derived-v1"
                  ]
                },
                "source_snapshot_sha256": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "mapping_version": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                },
                "mapping_sha256": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "draft": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "schema_version": {
                      "type": "string",
                      "enum": [
                        "ustva-2026-v2"
                      ]
                    },
                    "source_revision": {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                    },
                    "creation_date": {
                      "type": "string",
                      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                    },
                    "year": {
                      "type": "integer",
                      "enum": [
                        2026
                      ]
                    },
                    "tax_office": {
                      "type": "string",
                      "pattern": "^[0-9]{4}$"
                    },
                    "tax_number": {
                      "type": "string",
                      "pattern": "^[0-9]{4}0[0-9]{8}$"
                    },
                    "supplier": {
                      "$ref": "#/components/schemas/Supplier"
                    },
                    "taxpayer": {
                      "$ref": "#/components/schemas/TaxpayerV2"
                    },
                    "period": {
                      "type": "string",
                      "enum": [
                        "01",
                        "02",
                        "03",
                        "04",
                        "05",
                        "06",
                        "07",
                        "08",
                        "09",
                        "10",
                        "11",
                        "12",
                        "41",
                        "42",
                        "43",
                        "44"
                      ]
                    },
                    "correction": {
                      "type": "boolean"
                    },
                    "economic_id": {
                      "type": "string",
                      "pattern": "^DE[0-9]{9}$"
                    }
                  },
                  "required": [
                    "schema_version",
                    "source_revision",
                    "creation_date",
                    "year",
                    "period",
                    "tax_office",
                    "tax_number",
                    "supplier",
                    "taxpayer"
                  ],
                  "x-go-type": "json.RawMessage",
                  "description": "Reporting metadata for classified facts. Final fields and month are forbidden; period is explicit."
                },
                "facts": {
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 256,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_ref": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "group": {
                        "type": "string",
                        "enum": [
                          "Kz21",
                          "Kz35",
                          "Kz37",
                          "Kz39",
                          "Kz41",
                          "Kz42",
                          "Kz43",
                          "Kz44",
                          "Kz45",
                          "Kz46",
                          "Kz48",
                          "Kz49",
                          "Kz50",
                          "Kz59",
                          "Kz60",
                          "Kz61",
                          "Kz62",
                          "Kz63",
                          "Kz64",
                          "Kz65",
                          "Kz66",
                          "Kz67",
                          "Kz69",
                          "Kz73",
                          "Kz76",
                          "Kz77",
                          "Kz81",
                          "Kz84",
                          "Kz86",
                          "Kz87",
                          "Kz89",
                          "Kz90",
                          "Kz91",
                          "Kz93",
                          "Kz94",
                          "Kz95"
                        ]
                      },
                      "base": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$",
                        "description": "Exact caller-confirmed EUR amount; no rate calculation."
                      },
                      "tax": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$",
                        "description": "Exact caller-confirmed EUR amount; no rate calculation."
                      }
                    },
                    "required": [
                      "id",
                      "source_ref",
                      "source_version",
                      "group"
                    ],
                    "oneOf": [
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz21",
                              "Kz41",
                              "Kz42",
                              "Kz43",
                              "Kz44",
                              "Kz45",
                              "Kz48",
                              "Kz49",
                              "Kz60",
                              "Kz77",
                              "Kz87",
                              "Kz90",
                              "Kz91"
                            ]
                          }
                        },
                        "required": [
                          "base"
                        ],
                        "not": {
                          "required": [
                            "tax"
                          ]
                        }
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz35",
                              "Kz46",
                              "Kz73",
                              "Kz76",
                              "Kz81",
                              "Kz84",
                              "Kz86",
                              "Kz89",
                              "Kz93",
                              "Kz94",
                              "Kz95"
                            ]
                          }
                        },
                        "required": [
                          "base",
                          "tax"
                        ]
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz59",
                              "Kz61",
                              "Kz62",
                              "Kz63",
                              "Kz64",
                              "Kz65",
                              "Kz66",
                              "Kz67",
                              "Kz69"
                            ]
                          }
                        },
                        "required": [
                          "tax"
                        ],
                        "not": {
                          "required": [
                            "base"
                          ]
                        }
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz37",
                              "Kz39"
                            ]
                          },
                          "tax": {
                            "type": "string",
                            "pattern": "^(0\\.00|[1-9][0-9]{0,12}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                          }
                        },
                        "required": [
                          "tax"
                        ],
                        "not": {
                          "required": [
                            "base"
                          ]
                        }
                      },
                      {
                        "properties": {
                          "group": {
                            "type": "string",
                            "enum": [
                              "Kz50"
                            ]
                          },
                          "base": {
                            "type": "string",
                            "pattern": "^(0\\.00|[1-9][0-9]{0,12}\\.[0-9]{2}|0\\.(0[1-9]|[1-9][0-9]))$"
                          }
                        },
                        "required": [
                          "base"
                        ],
                        "not": {
                          "required": [
                            "tax"
                          ]
                        }
                      }
                    ],
                    "x-go-type": "json.RawMessage",
                    "description": "Caller-confirmed annual group and exact amounts. Kz37/Kz39 tax and Kz50 base must be nonnegative per fact. Kz50 and Kz37 are additional informational reductions already reflected in the main groups; they do not affect Kz83. No classification inference; source references need not identify Accounting records."
                  }
                }
              },
              "required": [
                "schema_version",
                "source_snapshot_sha256",
                "mapping_version",
                "mapping_sha256",
                "draft",
                "facts"
              ],
              "x-go-type": "json.RawMessage",
              "description": "Restricted derived EUR mode. Aggregate exact cents before whole-euro projection; fractional aggregate bases fail. Preserve supplied tax cents and derive Kz83 using pinned form rules. Kz50/Kz37 are informational and never counted again in Kz83. Final fields and control/text/date Kennziffer fields are unsupported. Test-marked and unvalidated; no filing permission."
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ustva-2026-mapped-v1"
                  ]
                },
                "source_snapshot_sha256": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "mapping_id": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
                },
                "mapping_revision": {
                  "type": "integer",
                  "format": "int64",
                  "minimum": 1,
                  "maximum": 2147483647
                },
                "draft": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "schema_version": {
                      "type": "string",
                      "enum": [
                        "ustva-2026-v2"
                      ]
                    },
                    "source_revision": {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                    },
                    "creation_date": {
                      "type": "string",
                      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                    },
                    "year": {
                      "type": "integer",
                      "enum": [
                        2026
                      ]
                    },
                    "tax_office": {
                      "type": "string",
                      "pattern": "^[0-9]{4}$"
                    },
                    "tax_number": {
                      "type": "string",
                      "pattern": "^[0-9]{4}0[0-9]{8}$"
                    },
                    "supplier": {
                      "$ref": "#/components/schemas/Supplier"
                    },
                    "taxpayer": {
                      "$ref": "#/components/schemas/TaxpayerV2"
                    },
                    "period": {
                      "type": "string",
                      "enum": [
                        "01",
                        "02",
                        "03",
                        "04",
                        "05",
                        "06",
                        "07",
                        "08",
                        "09",
                        "10",
                        "11",
                        "12",
                        "41",
                        "42",
                        "43",
                        "44"
                      ]
                    },
                    "correction": {
                      "type": "boolean"
                    },
                    "economic_id": {
                      "type": "string",
                      "pattern": "^DE[0-9]{9}$"
                    }
                  },
                  "required": [
                    "schema_version",
                    "source_revision",
                    "creation_date",
                    "year",
                    "period",
                    "tax_office",
                    "tax_number",
                    "supplier",
                    "taxpayer"
                  ],
                  "x-go-type": "json.RawMessage",
                  "description": "Reporting metadata for classified facts. Final fields and month are forbidden; period is explicit."
                },
                "facts": {
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 256,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_ref": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_key": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "base": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      },
                      "tax": {
                        "type": "string",
                        "pattern": "^(0\\.00|-?[1-9][0-9]{0,12}\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      }
                    },
                    "required": [
                      "id",
                      "source_ref",
                      "source_version",
                      "source_key"
                    ],
                    "anyOf": [
                      {
                        "required": [
                          "base"
                        ]
                      },
                      {
                        "required": [
                          "tax"
                        ]
                      }
                    ],
                    "description": "Mapped fact input. The confirmed source mapping determines which base/tax fields are valid for its source_key; values remain caller-classified exact EUR amounts."
                  }
                }
              },
              "required": [
                "schema_version",
                "source_snapshot_sha256",
                "mapping_id",
                "mapping_revision",
                "draft",
                "facts"
              ],
              "x-go-type": "json.RawMessage",
              "description": "Public source-key-mapped UStVA input. The referenced confirmed mapping revision binds each source_key to a pinned group. Never supply final form fields or compiler-private representations."
            }
          ],
          "x-go-type": "json.RawMessage"
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "corporation_tax_option": {
              "type": "boolean",
              "description": "Explicit section 1a KStG case assertion, bound to the GCD option. Omitted/false retains the ordinary case; true currently permits eligible domestic annual AO/GKV or UKV core reports without EV/MicroBilG. Filing remains denied."
            },
            "micro_bilg_prepared": {
              "type": "boolean",
              "description": "Explicit customer assertion that this corporation's statements were prepared under MicroBilG. True selects the fiscal-microbilg entry schema; absent or false selects the ordinary fiscal schema."
            },
            "schema_version": {
              "type": "string",
              "enum": [
                "ebilanz-core-6.9-v1"
              ]
            },
            "source_revision": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
            },
            "mapping_version": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
            },
            "tax_number": {
              "type": "string",
              "minLength": 13,
              "maxLength": 13,
              "pattern": "^[0-9]{4}0[0-9]{8}$"
            },
            "tax_office": {
              "type": "string",
              "minLength": 4,
              "maxLength": 4,
              "pattern": "^[0-9]{4}$"
            },
            "supplier": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "closing_date": {
              "type": "string",
              "format": "date",
              "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
            },
            "contexts": {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "dimensions": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/EBilanzDimension"
                        },
                        "minItems": 0,
                        "maxItems": 16
                      },
                      "start_date": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                      },
                      "end_date": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                      }
                    },
                    "required": [
                      "id",
                      "start_date",
                      "end_date"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "dimensions": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/EBilanzDimension"
                        },
                        "minItems": 0,
                        "maxItems": 16
                      },
                      "instant": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                      }
                    },
                    "required": [
                      "id",
                      "instant"
                    ]
                  }
                ],
                "description": "Exactly one instant or duration period. The module verifies date equality, semantic uniqueness and official dimensions."
              },
              "minItems": 2,
              "maxItems": 256
            },
            "facts": {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "value"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "minLength": 0,
                        "maxLength": 4096
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "context",
                      "state",
                      "value"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "nil"
                        ]
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "context",
                      "state"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "tuple"
                        ]
                      },
                      "children": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/EBilanzFact"
                        },
                        "minItems": 1,
                        "maxItems": 5000
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "state",
                      "children"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "concept": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "nil"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "concept",
                      "sources",
                      "state"
                    ]
                  }
                ],
                "description": "Closed value, nil item, populated tuple or nil tuple shapes. Nil tuples omit context, unit, value and children. Official concept/type/nillability, total fact count 5000 and tuple depth 4 are enforced by the pinned module."
              },
              "minItems": 1,
              "maxItems": 5000
            },
            "accounts": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80,
                    "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                  },
                  "number": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  },
                  "label": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "balance": {
                    "type": "string",
                    "minLength": 4,
                    "maxLength": 21,
                    "pattern": "^(0\\.00|-?[1-9][0-9]*\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                  },
                  "fact_id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80,
                    "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                  },
                  "source": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  }
                },
                "required": [
                  "id",
                  "number",
                  "label",
                  "balance",
                  "fact_id",
                  "source"
                ]
              },
              "minItems": 0,
              "maxItems": 5000
            }
          },
          "required": [
            "schema_version",
            "source_revision",
            "mapping_version",
            "tax_number",
            "tax_office",
            "supplier",
            "closing_date",
            "contexts",
            "facts"
          ],
          "description": "Final reported facts and explicitly mapped Kontensalden under pinned E-Bilanz 6.9 artifacts. No caller-supplied profile, runtime, catalog or procedure overrides. Official semantic/taxonomy relationships, byte bounds and source mapping consistency are validated by the module; this shape is not qualification evidence."
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "schema_version": {
              "type": "string",
              "enum": [
                "ebilanz-core-6.9-mapped-v1"
              ]
            },
            "source_snapshot_sha256": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            "mapping_id": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
            },
            "mapping_revision": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 2147483647
            },
            "draft": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "schema_version": {
                  "type": "string",
                  "enum": [
                    "ebilanz-core-6.9-v1"
                  ]
                },
                "source_revision": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 80,
                  "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                },
                "tax_number": {
                  "type": "string",
                  "minLength": 13,
                  "maxLength": 13,
                  "pattern": "^[0-9]{4}0[0-9]{8}$"
                },
                "tax_office": {
                  "type": "string",
                  "minLength": 4,
                  "maxLength": 4,
                  "pattern": "^[0-9]{4}$"
                },
                "supplier": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512
                },
                "closing_date": {
                  "type": "string",
                  "format": "date",
                  "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                },
                "contexts": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "dimensions": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/EBilanzDimension"
                            },
                            "minItems": 0,
                            "maxItems": 16
                          },
                          "start_date": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                          },
                          "end_date": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                          }
                        },
                        "required": [
                          "id",
                          "start_date",
                          "end_date"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "dimensions": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/EBilanzDimension"
                            },
                            "minItems": 0,
                            "maxItems": 16
                          },
                          "instant": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
                          }
                        },
                        "required": [
                          "id",
                          "instant"
                        ]
                      }
                    ],
                    "description": "Exactly one instant or duration period. The module verifies date equality, semantic uniqueness and official dimensions."
                  },
                  "minItems": 2,
                  "maxItems": 256
                },
                "facts": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "context": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "unit": {
                            "type": "string",
                            "enum": [
                              "EUR"
                            ]
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "value"
                            ]
                          },
                          "value": {
                            "type": "string",
                            "minLength": 0,
                            "maxLength": 4096
                          },
                          "footnote": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 16384,
                            "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "context",
                          "state",
                          "value"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "context": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                          },
                          "unit": {
                            "type": "string",
                            "enum": [
                              "EUR"
                            ]
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "nil"
                            ]
                          },
                          "footnote": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 16384,
                            "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "context",
                          "state"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "tuple"
                            ]
                          },
                          "children": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/EBilanzFact"
                            },
                            "minItems": 1,
                            "maxItems": 5000
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "state",
                          "children"
                        ]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80,
                            "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                          },
                          "concept": {
                            "type": "string",
                            "minLength": 1,
                            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "minItems": 1,
                            "maxItems": 100,
                            "uniqueItems": true
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "nil"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "concept",
                          "sources",
                          "state"
                        ]
                      }
                    ],
                    "description": "Closed value, nil item, populated tuple or nil tuple shapes. Nil tuples omit context, unit, value and children. Official concept/type/nillability, total fact count 5000 and tuple depth 4 are enforced by the pinned module."
                  },
                  "minItems": 0,
                  "maxItems": 5000
                },
                "accounts": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "number": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      },
                      "label": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "balance": {
                        "type": "string",
                        "minLength": 4,
                        "maxLength": 21,
                        "pattern": "^(0\\.00|-?[1-9][0-9]*\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      },
                      "fact_id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      }
                    },
                    "required": [
                      "id",
                      "number",
                      "label",
                      "balance",
                      "fact_id",
                      "source"
                    ]
                  },
                  "minItems": 0,
                  "maxItems": 5000
                }
              },
              "required": [
                "schema_version",
                "source_revision",
                "tax_number",
                "tax_office",
                "supplier",
                "closing_date",
                "contexts",
                "facts"
              ],
              "description": "Explicit E-Bilanz metadata, contexts, GCD facts and account details accompanying mapped monetary facts. The service supplies mapping_version. Explicit facts cannot override mapped target cells or identifiers."
            },
            "source_facts": {
              "type": "array",
              "minItems": 1,
              "maxItems": 256,
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "source_ref": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_key": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "value"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "maxLength": 21,
                        "pattern": "^(0\\.00|-?[1-9][0-9]*\\.[0-9]{2}|-?0\\.(0[1-9]|[1-9][0-9]))$"
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "context",
                      "unit",
                      "sources",
                      "source_ref",
                      "source_version",
                      "source_key",
                      "state",
                      "value"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z][A-Za-z0-9._:-]{0,79}$"
                      },
                      "context": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "EUR"
                        ]
                      },
                      "sources": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true
                      },
                      "source_ref": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "source_version": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "source_key": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "nil"
                        ]
                      },
                      "footnote": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 16384,
                        "description": "Optional plain-text footnote on this item, never interpreted as markup. At most 16 KiB of UTF-8 per note, 128 notes and 128 KiB total per preparation. Blank-only text and non-XML characters fail semantic validation. Line breaks are preserved in the rendered footnote. Tuple footnotes are unsupported."
                      }
                    },
                    "required": [
                      "id",
                      "context",
                      "unit",
                      "sources",
                      "source_ref",
                      "source_version",
                      "source_key",
                      "state"
                    ]
                  }
                ],
                "description": "One final monetary fact per source key. sources must contain source_ref. The confirmed mapping supplies the concept and exact dimensions; only value or NIL is accepted."
              }
            }
          },
          "required": [
            "schema_version",
            "source_snapshot_sha256",
            "mapping_id",
            "mapping_revision",
            "draft",
            "source_facts"
          ],
          "x-go-type": "json.RawMessage",
          "description": "Public source-key-mapped E-Bilanz input, at most 512 KiB. Names an exact confirmed revision. Compiler-private snapshots and caller-supplied confirmation are rejected."
        }
      ],
      "x-go-type": "json.RawMessage"
    }
  },
  "required": [
    "id",
    "product_id",
    "revision",
    "profile_version",
    "input"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/ebilanz-mappingsCreate an E-Bilanz source mapping

Creates revision 1 of a caller-classified source mapping. Confirmation is a separate delegated decision.

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

Request body

application/json · required

Required fields: document

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "document": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "schema_version": {
          "type": "string",
          "enum": [
            "ebilanz-6.9-mapping-v1"
          ]
        },
        "source_namespace": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
        },
        "procedure": {
          "type": "string",
          "enum": [
            "Bilanz_6.9"
          ]
        },
        "taxonomy_archive_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "entries": {
          "type": "array",
          "minItems": 1,
          "maxItems": 256,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "source_key": {
                "type": "string",
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
              },
              "concept": {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
              },
              "context_kind": {
                "type": "string",
                "enum": [
                  "instant",
                  "duration"
                ]
              },
              "dimensions": {
                "type": "array",
                "minItems": 0,
                "maxItems": 16,
                "items": {
                  "oneOf": [
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        },
                        "member": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        }
                      },
                      "required": [
                        "name",
                        "member"
                      ]
                    },
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        },
                        "typed_value": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        }
                      },
                      "required": [
                        "name",
                        "typed_value"
                      ]
                    }
                  ]
                }
              }
            },
            "required": [
              "source_key",
              "concept",
              "context_kind",
              "dimensions"
            ]
          }
        }
      },
      "required": [
        "schema_version",
        "source_namespace",
        "procedure",
        "taxonomy_archive_sha256",
        "entries"
      ],
      "description": "Confirmed one-to-one classification of final monetary facts. The private pinned taxonomy validates each concept, period kind and dimension; no inferred tax treatment or account aggregation. Maximum document size 64 KiB."
    }
  },
  "required": [
    "document"
  ]
}

Responses

201 · application/json

Successful operation

Required fields: id, product_id, revision, document, mapping_sha256, challenge, statement_version, statement, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "document": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "schema_version": {
          "type": "string",
          "enum": [
            "ebilanz-6.9-mapping-v1"
          ]
        },
        "source_namespace": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
        },
        "procedure": {
          "type": "string",
          "enum": [
            "Bilanz_6.9"
          ]
        },
        "taxonomy_archive_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "entries": {
          "type": "array",
          "minItems": 1,
          "maxItems": 256,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "source_key": {
                "type": "string",
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
              },
              "concept": {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
              },
              "context_kind": {
                "type": "string",
                "enum": [
                  "instant",
                  "duration"
                ]
              },
              "dimensions": {
                "type": "array",
                "minItems": 0,
                "maxItems": 16,
                "items": {
                  "oneOf": [
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        },
                        "member": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        }
                      },
                      "required": [
                        "name",
                        "member"
                      ]
                    },
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        },
                        "typed_value": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        }
                      },
                      "required": [
                        "name",
                        "typed_value"
                      ]
                    }
                  ]
                }
              }
            },
            "required": [
              "source_key",
              "concept",
              "context_kind",
              "dimensions"
            ]
          }
        }
      },
      "required": [
        "schema_version",
        "source_namespace",
        "procedure",
        "taxonomy_archive_sha256",
        "entries"
      ],
      "description": "Confirmed one-to-one classification of final monetary facts. The private pinned taxonomy validates each concept, period kind and dimension; no inferred tax treatment or account aggregation. Maximum document size 64 KiB."
    },
    "mapping_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "challenge": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "statement_version": {
      "type": "string",
      "enum": [
        "eric.ebilanz-mapping-confirmation.v1"
      ]
    },
    "statement": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "unconfirmed",
        "confirmed",
        "withdrawn"
      ]
    }
  },
  "required": [
    "id",
    "product_id",
    "revision",
    "document",
    "mapping_sha256",
    "challenge",
    "statement_version",
    "statement",
    "status"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/ebilanz-mappings/{mappingId}Read the latest E-Bilanz mapping revision

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

mappingId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
}

Responses

200 · application/json

Successful operation

Required fields: id, product_id, revision, document, mapping_sha256, challenge, statement_version, statement, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "document": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "schema_version": {
          "type": "string",
          "enum": [
            "ebilanz-6.9-mapping-v1"
          ]
        },
        "source_namespace": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
        },
        "procedure": {
          "type": "string",
          "enum": [
            "Bilanz_6.9"
          ]
        },
        "taxonomy_archive_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "entries": {
          "type": "array",
          "minItems": 1,
          "maxItems": 256,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "source_key": {
                "type": "string",
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
              },
              "concept": {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
              },
              "context_kind": {
                "type": "string",
                "enum": [
                  "instant",
                  "duration"
                ]
              },
              "dimensions": {
                "type": "array",
                "minItems": 0,
                "maxItems": 16,
                "items": {
                  "oneOf": [
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        },
                        "member": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        }
                      },
                      "required": [
                        "name",
                        "member"
                      ]
                    },
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        },
                        "typed_value": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        }
                      },
                      "required": [
                        "name",
                        "typed_value"
                      ]
                    }
                  ]
                }
              }
            },
            "required": [
              "source_key",
              "concept",
              "context_kind",
              "dimensions"
            ]
          }
        }
      },
      "required": [
        "schema_version",
        "source_namespace",
        "procedure",
        "taxonomy_archive_sha256",
        "entries"
      ],
      "description": "Confirmed one-to-one classification of final monetary facts. The private pinned taxonomy validates each concept, period kind and dimension; no inferred tax treatment or account aggregation. Maximum document size 64 KiB."
    },
    "mapping_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "challenge": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "statement_version": {
      "type": "string",
      "enum": [
        "eric.ebilanz-mapping-confirmation.v1"
      ]
    },
    "statement": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "unconfirmed",
        "confirmed",
        "withdrawn"
      ]
    }
  },
  "required": [
    "id",
    "product_id",
    "revision",
    "document",
    "mapping_sha256",
    "challenge",
    "statement_version",
    "statement",
    "status"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
PUT /products/{productId}/ebilanz-mappings/{mappingId}Create a new E-Bilanz mapping revision

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

mappingId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

Request body

application/json · required

Required fields: expected_revision, document

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "expected_revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "document": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "schema_version": {
          "type": "string",
          "enum": [
            "ebilanz-6.9-mapping-v1"
          ]
        },
        "source_namespace": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
        },
        "procedure": {
          "type": "string",
          "enum": [
            "Bilanz_6.9"
          ]
        },
        "taxonomy_archive_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "entries": {
          "type": "array",
          "minItems": 1,
          "maxItems": 256,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "source_key": {
                "type": "string",
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
              },
              "concept": {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
              },
              "context_kind": {
                "type": "string",
                "enum": [
                  "instant",
                  "duration"
                ]
              },
              "dimensions": {
                "type": "array",
                "minItems": 0,
                "maxItems": 16,
                "items": {
                  "oneOf": [
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        },
                        "member": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        }
                      },
                      "required": [
                        "name",
                        "member"
                      ]
                    },
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        },
                        "typed_value": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        }
                      },
                      "required": [
                        "name",
                        "typed_value"
                      ]
                    }
                  ]
                }
              }
            },
            "required": [
              "source_key",
              "concept",
              "context_kind",
              "dimensions"
            ]
          }
        }
      },
      "required": [
        "schema_version",
        "source_namespace",
        "procedure",
        "taxonomy_archive_sha256",
        "entries"
      ],
      "description": "Confirmed one-to-one classification of final monetary facts. The private pinned taxonomy validates each concept, period kind and dimension; no inferred tax treatment or account aggregation. Maximum document size 64 KiB."
    }
  },
  "required": [
    "expected_revision",
    "document"
  ]
}

Responses

200 · application/json

Successful operation

Required fields: id, product_id, revision, document, mapping_sha256, challenge, statement_version, statement, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "document": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "schema_version": {
          "type": "string",
          "enum": [
            "ebilanz-6.9-mapping-v1"
          ]
        },
        "source_namespace": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
        },
        "procedure": {
          "type": "string",
          "enum": [
            "Bilanz_6.9"
          ]
        },
        "taxonomy_archive_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "entries": {
          "type": "array",
          "minItems": 1,
          "maxItems": 256,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "source_key": {
                "type": "string",
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
              },
              "concept": {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
              },
              "context_kind": {
                "type": "string",
                "enum": [
                  "instant",
                  "duration"
                ]
              },
              "dimensions": {
                "type": "array",
                "minItems": 0,
                "maxItems": 16,
                "items": {
                  "oneOf": [
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        },
                        "member": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        }
                      },
                      "required": [
                        "name",
                        "member"
                      ]
                    },
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        },
                        "typed_value": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        }
                      },
                      "required": [
                        "name",
                        "typed_value"
                      ]
                    }
                  ]
                }
              }
            },
            "required": [
              "source_key",
              "concept",
              "context_kind",
              "dimensions"
            ]
          }
        }
      },
      "required": [
        "schema_version",
        "source_namespace",
        "procedure",
        "taxonomy_archive_sha256",
        "entries"
      ],
      "description": "Confirmed one-to-one classification of final monetary facts. The private pinned taxonomy validates each concept, period kind and dimension; no inferred tax treatment or account aggregation. Maximum document size 64 KiB."
    },
    "mapping_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "challenge": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "statement_version": {
      "type": "string",
      "enum": [
        "eric.ebilanz-mapping-confirmation.v1"
      ]
    },
    "statement": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "unconfirmed",
        "confirmed",
        "withdrawn"
      ]
    }
  },
  "required": [
    "id",
    "product_id",
    "revision",
    "document",
    "mapping_sha256",
    "challenge",
    "statement_version",
    "statement",
    "status"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/ebilanz-mappings/{mappingId}/revisions/{revision}Read a specific E-Bilanz mapping revision

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

mappingId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
}

revision · path · required

{
  "type": "integer",
  "format": "int64",
  "minimum": 1,
  "maximum": 2147483647
}

Responses

200 · application/json

Successful operation

Required fields: id, product_id, revision, document, mapping_sha256, challenge, statement_version, statement, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "document": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "schema_version": {
          "type": "string",
          "enum": [
            "ebilanz-6.9-mapping-v1"
          ]
        },
        "source_namespace": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
        },
        "procedure": {
          "type": "string",
          "enum": [
            "Bilanz_6.9"
          ]
        },
        "taxonomy_archive_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "entries": {
          "type": "array",
          "minItems": 1,
          "maxItems": 256,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "source_key": {
                "type": "string",
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
              },
              "concept": {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
              },
              "context_kind": {
                "type": "string",
                "enum": [
                  "instant",
                  "duration"
                ]
              },
              "dimensions": {
                "type": "array",
                "minItems": 0,
                "maxItems": 16,
                "items": {
                  "oneOf": [
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        },
                        "member": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        }
                      },
                      "required": [
                        "name",
                        "member"
                      ]
                    },
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        },
                        "typed_value": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        }
                      },
                      "required": [
                        "name",
                        "typed_value"
                      ]
                    }
                  ]
                }
              }
            },
            "required": [
              "source_key",
              "concept",
              "context_kind",
              "dimensions"
            ]
          }
        }
      },
      "required": [
        "schema_version",
        "source_namespace",
        "procedure",
        "taxonomy_archive_sha256",
        "entries"
      ],
      "description": "Confirmed one-to-one classification of final monetary facts. The private pinned taxonomy validates each concept, period kind and dimension; no inferred tax treatment or account aggregation. Maximum document size 64 KiB."
    },
    "mapping_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "challenge": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "statement_version": {
      "type": "string",
      "enum": [
        "eric.ebilanz-mapping-confirmation.v1"
      ]
    },
    "statement": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "unconfirmed",
        "confirmed",
        "withdrawn"
      ]
    }
  },
  "required": [
    "id",
    "product_id",
    "revision",
    "document",
    "mapping_sha256",
    "challenge",
    "statement_version",
    "statement",
    "status"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/ebilanz-mappings/{mappingId}/revisions/{revision}/confirmationsConfirm an E-Bilanz mapping revision

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

mappingId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
}

revision · path · required

{
  "type": "integer",
  "format": "int64",
  "minimum": 1,
  "maximum": 2147483647
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

Request body

application/json · required

Required fields: signed_decision

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "signed_decision": {
      "type": "string",
      "minLength": 1,
      "maxLength": 16384,
      "description": "Compact EdDSA JWS from the registered product approval authority, bound to the exact mapping revision, challenge, statement and requested action."
    }
  },
  "required": [
    "signed_decision"
  ]
}

Responses

201 · application/json

Successful operation

Required fields: id, mapping_id, revision, action, evidence_type, mapping_sha256, created_at

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "mapping_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "action": {
      "type": "string",
      "enum": [
        "confirm",
        "withdraw"
      ]
    },
    "evidence_type": {
      "type": "string",
      "enum": [
        "partner_asserted"
      ]
    },
    "mapping_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    }
  },
  "required": [
    "id",
    "mapping_id",
    "revision",
    "action",
    "evidence_type",
    "mapping_sha256",
    "created_at"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/ebilanz-mappings/{mappingId}/revisions/{revision}/withdrawalsWithdraw an E-Bilanz mapping confirmation

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

mappingId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
}

revision · path · required

{
  "type": "integer",
  "format": "int64",
  "minimum": 1,
  "maximum": 2147483647
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

Request body

application/json · required

Required fields: signed_decision

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "signed_decision": {
      "type": "string",
      "minLength": 1,
      "maxLength": 16384,
      "description": "Compact EdDSA JWS from the registered product approval authority, bound to the exact mapping revision, challenge, statement and requested action."
    }
  },
  "required": [
    "signed_decision"
  ]
}

Responses

201 · application/json

Successful operation

Required fields: id, mapping_id, revision, action, evidence_type, mapping_sha256, created_at

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "mapping_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "action": {
      "type": "string",
      "enum": [
        "confirm",
        "withdraw"
      ]
    },
    "evidence_type": {
      "type": "string",
      "enum": [
        "partner_asserted"
      ]
    },
    "mapping_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    }
  },
  "required": [
    "id",
    "mapping_id",
    "revision",
    "action",
    "evidence_type",
    "mapping_sha256",
    "created_at"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/filing-consents/{consentId}Get filing consent

Preparation-specific partner-asserted consent for authorized test transmission only. Requires fresh v3/v4 filings.approve actor status. Transmission eligibility remains blocked; no native job or dispatch is created.

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

consentId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

X-ERIC-Human-Authorization · header

Exactly one Bearer human access token for ebilanz.app. Required for immutable combined_human_required authority versions; rejected for legacy versions. Independently verified alongside the machine DPoP credential, with exact operator binding and current action-specific local human permission through commit. Credentials are never returned.

{
  "type": "string",
  "minLength": 1,
  "maxLength": 16384
}

Responses

200 · application/json

Immutable consent evidence; not transmission eligibility.

Required fields: id, product_id, preparation_id, mandate_id, binding_sha256, binding_json, purpose, evidence_type, transmission_eligibility, status, expires_at, statement_version, statement, review_html, review_json, manifest_json

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "preparation_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "mandate_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "binding_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "binding_json": {
      "type": "string",
      "maxLength": 65536,
      "description": "Exact UTF-8 immutable binding JSON conforming to FilingBinding. Hash the decoded string bytes; do not reserialize."
    },
    "purpose": {
      "type": "string",
      "enum": [
        "authorized_test_transmission"
      ]
    },
    "evidence_type": {
      "type": "string",
      "enum": [
        "partner_asserted"
      ]
    },
    "transmission_eligibility": {
      "type": "string",
      "enum": [
        "blocked"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "confirmed",
        "revoked",
        "expired"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time"
    },
    "statement_version": {
      "enum": [
        "eric.test-transmission-consent.v1"
      ],
      "type": "string"
    },
    "statement": {
      "enum": [
        "Ich autorisiere ausschließlich die TEST-Übermittlung der unveränderten, vollständig geprüften Vorbereitung mit dem hier gebundenen Verfahren, Zeitraum und Zertifikat. Dies ist keine Produktionsübermittlung und keine steuerliche Einreichung. Die Ausführung bleibt bis zur unabhängigen technischen Qualifikation gesperrt."
      ],
      "type": "string"
    },
    "review_html": {
      "type": "string",
      "description": "Complete exact frozen review. Display all contents in a script-free sandbox before consent."
    },
    "review_json": {
      "type": "string",
      "description": "Exact UTF-8 review.json bytes as a string."
    },
    "manifest_json": {
      "type": "string",
      "description": "Exact UTF-8 manifest.json bytes as a string."
    }
  },
  "required": [
    "id",
    "product_id",
    "preparation_id",
    "mandate_id",
    "binding_sha256",
    "binding_json",
    "purpose",
    "evidence_type",
    "transmission_eligibility",
    "status",
    "expires_at",
    "statement_version",
    "statement",
    "review_html",
    "review_json",
    "manifest_json"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/filing-consents/{consentId}/confirmationsConfirm filing consent

Preparation-specific partner-asserted consent for authorized test transmission only. Requires fresh v3/v4 filings.approve actor status. Transmission eligibility remains blocked; no native job or dispatch is created.

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

consentId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

X-ERIC-Human-Authorization · header

Exactly one Bearer human access token for ebilanz.app. Required for immutable combined_human_required authority versions; rejected for legacy versions. Independently verified alongside the machine DPoP credential, with exact operator binding and current action-specific local human permission through commit. Credentials are never returned.

{
  "type": "string",
  "minLength": 1,
  "maxLength": 16384
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

Request body

application/json · required

Required fields: decision_jws

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "decision_jws": {
      "type": "string",
      "minLength": 1,
      "maxLength": 16384,
      "description": "Closed eric-filing-decision+jwt JWS from the registered SaaS authority, binding exact consent hash, challenge, purpose, actor, action and expiry."
    }
  },
  "required": [
    "decision_jws"
  ]
}

Responses

201 · application/json

Immutable consent evidence; not transmission eligibility.

Required fields: id, product_id, preparation_id, mandate_id, binding_sha256, binding_json, purpose, evidence_type, transmission_eligibility, status, expires_at, statement_version, statement, review_html, review_json, manifest_json

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "preparation_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "mandate_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "binding_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "binding_json": {
      "type": "string",
      "maxLength": 65536,
      "description": "Exact UTF-8 immutable binding JSON conforming to FilingBinding. Hash the decoded string bytes; do not reserialize."
    },
    "purpose": {
      "type": "string",
      "enum": [
        "authorized_test_transmission"
      ]
    },
    "evidence_type": {
      "type": "string",
      "enum": [
        "partner_asserted"
      ]
    },
    "transmission_eligibility": {
      "type": "string",
      "enum": [
        "blocked"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "confirmed",
        "revoked",
        "expired"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time"
    },
    "statement_version": {
      "enum": [
        "eric.test-transmission-consent.v1"
      ],
      "type": "string"
    },
    "statement": {
      "enum": [
        "Ich autorisiere ausschließlich die TEST-Übermittlung der unveränderten, vollständig geprüften Vorbereitung mit dem hier gebundenen Verfahren, Zeitraum und Zertifikat. Dies ist keine Produktionsübermittlung und keine steuerliche Einreichung. Die Ausführung bleibt bis zur unabhängigen technischen Qualifikation gesperrt."
      ],
      "type": "string"
    },
    "review_html": {
      "type": "string",
      "description": "Complete exact frozen review. Display all contents in a script-free sandbox before consent."
    },
    "review_json": {
      "type": "string",
      "description": "Exact UTF-8 review.json bytes as a string."
    },
    "manifest_json": {
      "type": "string",
      "description": "Exact UTF-8 manifest.json bytes as a string."
    }
  },
  "required": [
    "id",
    "product_id",
    "preparation_id",
    "mandate_id",
    "binding_sha256",
    "binding_json",
    "purpose",
    "evidence_type",
    "transmission_eligibility",
    "status",
    "expires_at",
    "statement_version",
    "statement",
    "review_html",
    "review_json",
    "manifest_json"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/filing-consents/{consentId}/revocationsRevoke filing consent

Preparation-specific partner-asserted consent for authorized test transmission only. Requires fresh v3/v4 filings.approve actor status. Transmission eligibility remains blocked; no native job or dispatch is created.

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

consentId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

X-ERIC-Human-Authorization · header

Exactly one Bearer human access token for ebilanz.app. Required for immutable combined_human_required authority versions; rejected for legacy versions. Independently verified alongside the machine DPoP credential, with exact operator binding and current action-specific local human permission through commit. Credentials are never returned.

{
  "type": "string",
  "minLength": 1,
  "maxLength": 16384
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

Request body

application/json · required

Required fields: decision_jws

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "decision_jws": {
      "type": "string",
      "minLength": 1,
      "maxLength": 16384,
      "description": "Closed eric-filing-decision+jwt JWS from the registered SaaS authority, binding exact consent hash, challenge, purpose, actor, action and expiry."
    }
  },
  "required": [
    "decision_jws"
  ]
}

Responses

201 · application/json

Immutable consent evidence; not transmission eligibility.

Required fields: id, product_id, preparation_id, mandate_id, binding_sha256, binding_json, purpose, evidence_type, transmission_eligibility, status, expires_at, statement_version, statement, review_html, review_json, manifest_json

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "preparation_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "mandate_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "binding_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "binding_json": {
      "type": "string",
      "maxLength": 65536,
      "description": "Exact UTF-8 immutable binding JSON conforming to FilingBinding. Hash the decoded string bytes; do not reserialize."
    },
    "purpose": {
      "type": "string",
      "enum": [
        "authorized_test_transmission"
      ]
    },
    "evidence_type": {
      "type": "string",
      "enum": [
        "partner_asserted"
      ]
    },
    "transmission_eligibility": {
      "type": "string",
      "enum": [
        "blocked"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "confirmed",
        "revoked",
        "expired"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time"
    },
    "statement_version": {
      "enum": [
        "eric.test-transmission-consent.v1"
      ],
      "type": "string"
    },
    "statement": {
      "enum": [
        "Ich autorisiere ausschließlich die TEST-Übermittlung der unveränderten, vollständig geprüften Vorbereitung mit dem hier gebundenen Verfahren, Zeitraum und Zertifikat. Dies ist keine Produktionsübermittlung und keine steuerliche Einreichung. Die Ausführung bleibt bis zur unabhängigen technischen Qualifikation gesperrt."
      ],
      "type": "string"
    },
    "review_html": {
      "type": "string",
      "description": "Complete exact frozen review. Display all contents in a script-free sandbox before consent."
    },
    "review_json": {
      "type": "string",
      "description": "Exact UTF-8 review.json bytes as a string."
    },
    "manifest_json": {
      "type": "string",
      "description": "Exact UTF-8 manifest.json bytes as a string."
    }
  },
  "required": [
    "id",
    "product_id",
    "preparation_id",
    "mandate_id",
    "binding_sha256",
    "binding_json",
    "purpose",
    "evidence_type",
    "transmission_eligibility",
    "status",
    "expires_at",
    "statement_version",
    "statement",
    "review_html",
    "review_json",
    "manifest_json"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/mappingsCreate a UStVA source mapping

Creates revision 1 of a caller-classified source mapping. Confirmation is a separate delegated decision.

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

Request body

application/json · required

Required fields: document

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "document": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "schema_version": {
          "type": "string",
          "enum": [
            "ustva-2026-mapping-v1"
          ]
        },
        "source_namespace": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
        },
        "procedure": {
          "type": "string",
          "enum": [
            "UStVA_2026"
          ]
        },
        "rule_version": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
        },
        "rules_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "entries": {
          "type": "array",
          "minItems": 1,
          "maxItems": 256,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "source_key": {
                "type": "string",
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
              },
              "group": {
                "type": "string",
                "enum": [
                  "Kz21",
                  "Kz35",
                  "Kz37",
                  "Kz39",
                  "Kz41",
                  "Kz42",
                  "Kz43",
                  "Kz44",
                  "Kz45",
                  "Kz46",
                  "Kz48",
                  "Kz49",
                  "Kz50",
                  "Kz59",
                  "Kz60",
                  "Kz61",
                  "Kz62",
                  "Kz63",
                  "Kz64",
                  "Kz65",
                  "Kz66",
                  "Kz67",
                  "Kz69",
                  "Kz73",
                  "Kz76",
                  "Kz77",
                  "Kz81",
                  "Kz84",
                  "Kz86",
                  "Kz87",
                  "Kz89",
                  "Kz90",
                  "Kz91",
                  "Kz93",
                  "Kz94",
                  "Kz95"
                ]
              }
            },
            "required": [
              "source_key",
              "group"
            ]
          }
        }
      },
      "required": [
        "schema_version",
        "source_namespace",
        "procedure",
        "rule_version",
        "rules_sha256",
        "entries"
      ]
    }
  },
  "required": [
    "document"
  ]
}

Responses

201 · application/json

Successful operation

Required fields: id, product_id, revision, document, mapping_sha256, challenge, statement_version, statement, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "document": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "schema_version": {
          "type": "string",
          "enum": [
            "ustva-2026-mapping-v1"
          ]
        },
        "source_namespace": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
        },
        "procedure": {
          "type": "string",
          "enum": [
            "UStVA_2026"
          ]
        },
        "rule_version": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
        },
        "rules_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "entries": {
          "type": "array",
          "minItems": 1,
          "maxItems": 256,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "source_key": {
                "type": "string",
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
              },
              "group": {
                "type": "string",
                "enum": [
                  "Kz21",
                  "Kz35",
                  "Kz37",
                  "Kz39",
                  "Kz41",
                  "Kz42",
                  "Kz43",
                  "Kz44",
                  "Kz45",
                  "Kz46",
                  "Kz48",
                  "Kz49",
                  "Kz50",
                  "Kz59",
                  "Kz60",
                  "Kz61",
                  "Kz62",
                  "Kz63",
                  "Kz64",
                  "Kz65",
                  "Kz66",
                  "Kz67",
                  "Kz69",
                  "Kz73",
                  "Kz76",
                  "Kz77",
                  "Kz81",
                  "Kz84",
                  "Kz86",
                  "Kz87",
                  "Kz89",
                  "Kz90",
                  "Kz91",
                  "Kz93",
                  "Kz94",
                  "Kz95"
                ]
              }
            },
            "required": [
              "source_key",
              "group"
            ]
          }
        }
      },
      "required": [
        "schema_version",
        "source_namespace",
        "procedure",
        "rule_version",
        "rules_sha256",
        "entries"
      ]
    },
    "mapping_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "challenge": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "statement_version": {
      "type": "string",
      "enum": [
        "eric.mapping-confirmation.v1"
      ]
    },
    "statement": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "unconfirmed",
        "confirmed",
        "withdrawn"
      ]
    }
  },
  "required": [
    "id",
    "product_id",
    "revision",
    "document",
    "mapping_sha256",
    "challenge",
    "statement_version",
    "statement",
    "status"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/mappings/{mappingId}Read the latest UStVA mapping revision

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

mappingId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
}

Responses

200 · application/json

Successful operation

Required fields: id, product_id, revision, document, mapping_sha256, challenge, statement_version, statement, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "document": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "schema_version": {
          "type": "string",
          "enum": [
            "ustva-2026-mapping-v1"
          ]
        },
        "source_namespace": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
        },
        "procedure": {
          "type": "string",
          "enum": [
            "UStVA_2026"
          ]
        },
        "rule_version": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
        },
        "rules_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "entries": {
          "type": "array",
          "minItems": 1,
          "maxItems": 256,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "source_key": {
                "type": "string",
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
              },
              "group": {
                "type": "string",
                "enum": [
                  "Kz21",
                  "Kz35",
                  "Kz37",
                  "Kz39",
                  "Kz41",
                  "Kz42",
                  "Kz43",
                  "Kz44",
                  "Kz45",
                  "Kz46",
                  "Kz48",
                  "Kz49",
                  "Kz50",
                  "Kz59",
                  "Kz60",
                  "Kz61",
                  "Kz62",
                  "Kz63",
                  "Kz64",
                  "Kz65",
                  "Kz66",
                  "Kz67",
                  "Kz69",
                  "Kz73",
                  "Kz76",
                  "Kz77",
                  "Kz81",
                  "Kz84",
                  "Kz86",
                  "Kz87",
                  "Kz89",
                  "Kz90",
                  "Kz91",
                  "Kz93",
                  "Kz94",
                  "Kz95"
                ]
              }
            },
            "required": [
              "source_key",
              "group"
            ]
          }
        }
      },
      "required": [
        "schema_version",
        "source_namespace",
        "procedure",
        "rule_version",
        "rules_sha256",
        "entries"
      ]
    },
    "mapping_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "challenge": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "statement_version": {
      "type": "string",
      "enum": [
        "eric.mapping-confirmation.v1"
      ]
    },
    "statement": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "unconfirmed",
        "confirmed",
        "withdrawn"
      ]
    }
  },
  "required": [
    "id",
    "product_id",
    "revision",
    "document",
    "mapping_sha256",
    "challenge",
    "statement_version",
    "statement",
    "status"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
PUT /products/{productId}/mappings/{mappingId}Create a new UStVA mapping revision

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

mappingId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

Request body

application/json · required

Required fields: expected_revision, document

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "expected_revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "document": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "schema_version": {
          "type": "string",
          "enum": [
            "ustva-2026-mapping-v1"
          ]
        },
        "source_namespace": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
        },
        "procedure": {
          "type": "string",
          "enum": [
            "UStVA_2026"
          ]
        },
        "rule_version": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
        },
        "rules_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "entries": {
          "type": "array",
          "minItems": 1,
          "maxItems": 256,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "source_key": {
                "type": "string",
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
              },
              "group": {
                "type": "string",
                "enum": [
                  "Kz21",
                  "Kz35",
                  "Kz37",
                  "Kz39",
                  "Kz41",
                  "Kz42",
                  "Kz43",
                  "Kz44",
                  "Kz45",
                  "Kz46",
                  "Kz48",
                  "Kz49",
                  "Kz50",
                  "Kz59",
                  "Kz60",
                  "Kz61",
                  "Kz62",
                  "Kz63",
                  "Kz64",
                  "Kz65",
                  "Kz66",
                  "Kz67",
                  "Kz69",
                  "Kz73",
                  "Kz76",
                  "Kz77",
                  "Kz81",
                  "Kz84",
                  "Kz86",
                  "Kz87",
                  "Kz89",
                  "Kz90",
                  "Kz91",
                  "Kz93",
                  "Kz94",
                  "Kz95"
                ]
              }
            },
            "required": [
              "source_key",
              "group"
            ]
          }
        }
      },
      "required": [
        "schema_version",
        "source_namespace",
        "procedure",
        "rule_version",
        "rules_sha256",
        "entries"
      ]
    }
  },
  "required": [
    "expected_revision",
    "document"
  ]
}

Responses

200 · application/json

Successful operation

Required fields: id, product_id, revision, document, mapping_sha256, challenge, statement_version, statement, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "document": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "schema_version": {
          "type": "string",
          "enum": [
            "ustva-2026-mapping-v1"
          ]
        },
        "source_namespace": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
        },
        "procedure": {
          "type": "string",
          "enum": [
            "UStVA_2026"
          ]
        },
        "rule_version": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
        },
        "rules_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "entries": {
          "type": "array",
          "minItems": 1,
          "maxItems": 256,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "source_key": {
                "type": "string",
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
              },
              "group": {
                "type": "string",
                "enum": [
                  "Kz21",
                  "Kz35",
                  "Kz37",
                  "Kz39",
                  "Kz41",
                  "Kz42",
                  "Kz43",
                  "Kz44",
                  "Kz45",
                  "Kz46",
                  "Kz48",
                  "Kz49",
                  "Kz50",
                  "Kz59",
                  "Kz60",
                  "Kz61",
                  "Kz62",
                  "Kz63",
                  "Kz64",
                  "Kz65",
                  "Kz66",
                  "Kz67",
                  "Kz69",
                  "Kz73",
                  "Kz76",
                  "Kz77",
                  "Kz81",
                  "Kz84",
                  "Kz86",
                  "Kz87",
                  "Kz89",
                  "Kz90",
                  "Kz91",
                  "Kz93",
                  "Kz94",
                  "Kz95"
                ]
              }
            },
            "required": [
              "source_key",
              "group"
            ]
          }
        }
      },
      "required": [
        "schema_version",
        "source_namespace",
        "procedure",
        "rule_version",
        "rules_sha256",
        "entries"
      ]
    },
    "mapping_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "challenge": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "statement_version": {
      "type": "string",
      "enum": [
        "eric.mapping-confirmation.v1"
      ]
    },
    "statement": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "unconfirmed",
        "confirmed",
        "withdrawn"
      ]
    }
  },
  "required": [
    "id",
    "product_id",
    "revision",
    "document",
    "mapping_sha256",
    "challenge",
    "statement_version",
    "statement",
    "status"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/mappings/{mappingId}/revisions/{revision}Read a specific UStVA mapping revision

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

mappingId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
}

revision · path · required

{
  "type": "integer",
  "format": "int64",
  "minimum": 1,
  "maximum": 2147483647
}

Responses

200 · application/json

Successful operation

Required fields: id, product_id, revision, document, mapping_sha256, challenge, statement_version, statement, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "document": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "schema_version": {
          "type": "string",
          "enum": [
            "ustva-2026-mapping-v1"
          ]
        },
        "source_namespace": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
        },
        "procedure": {
          "type": "string",
          "enum": [
            "UStVA_2026"
          ]
        },
        "rule_version": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
        },
        "rules_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "entries": {
          "type": "array",
          "minItems": 1,
          "maxItems": 256,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "source_key": {
                "type": "string",
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$"
              },
              "group": {
                "type": "string",
                "enum": [
                  "Kz21",
                  "Kz35",
                  "Kz37",
                  "Kz39",
                  "Kz41",
                  "Kz42",
                  "Kz43",
                  "Kz44",
                  "Kz45",
                  "Kz46",
                  "Kz48",
                  "Kz49",
                  "Kz50",
                  "Kz59",
                  "Kz60",
                  "Kz61",
                  "Kz62",
                  "Kz63",
                  "Kz64",
                  "Kz65",
                  "Kz66",
                  "Kz67",
                  "Kz69",
                  "Kz73",
                  "Kz76",
                  "Kz77",
                  "Kz81",
                  "Kz84",
                  "Kz86",
                  "Kz87",
                  "Kz89",
                  "Kz90",
                  "Kz91",
                  "Kz93",
                  "Kz94",
                  "Kz95"
                ]
              }
            },
            "required": [
              "source_key",
              "group"
            ]
          }
        }
      },
      "required": [
        "schema_version",
        "source_namespace",
        "procedure",
        "rule_version",
        "rules_sha256",
        "entries"
      ]
    },
    "mapping_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "challenge": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "statement_version": {
      "type": "string",
      "enum": [
        "eric.mapping-confirmation.v1"
      ]
    },
    "statement": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "unconfirmed",
        "confirmed",
        "withdrawn"
      ]
    }
  },
  "required": [
    "id",
    "product_id",
    "revision",
    "document",
    "mapping_sha256",
    "challenge",
    "statement_version",
    "statement",
    "status"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/mappings/{mappingId}/revisions/{revision}/confirmationsConfirm a UStVA mapping revision

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

mappingId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
}

revision · path · required

{
  "type": "integer",
  "format": "int64",
  "minimum": 1,
  "maximum": 2147483647
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

Request body

application/json · required

Required fields: signed_decision

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "signed_decision": {
      "type": "string",
      "minLength": 1,
      "maxLength": 16384,
      "description": "Compact EdDSA JWS from the registered product approval authority, bound to the exact mapping revision, challenge, statement and requested action."
    }
  },
  "required": [
    "signed_decision"
  ]
}

Responses

201 · application/json

Successful operation

Required fields: id, mapping_id, revision, action, evidence_type, mapping_sha256, created_at

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "mapping_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "action": {
      "type": "string",
      "enum": [
        "confirm",
        "withdraw"
      ]
    },
    "evidence_type": {
      "type": "string",
      "enum": [
        "partner_asserted"
      ]
    },
    "mapping_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    }
  },
  "required": [
    "id",
    "mapping_id",
    "revision",
    "action",
    "evidence_type",
    "mapping_sha256",
    "created_at"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/mappings/{mappingId}/revisions/{revision}/withdrawalsWithdraw a UStVA mapping confirmation

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

mappingId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
}

revision · path · required

{
  "type": "integer",
  "format": "int64",
  "minimum": 1,
  "maximum": 2147483647
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

Request body

application/json · required

Required fields: signed_decision

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "signed_decision": {
      "type": "string",
      "minLength": 1,
      "maxLength": 16384,
      "description": "Compact EdDSA JWS from the registered product approval authority, bound to the exact mapping revision, challenge, statement and requested action."
    }
  },
  "required": [
    "signed_decision"
  ]
}

Responses

201 · application/json

Successful operation

Required fields: id, mapping_id, revision, action, evidence_type, mapping_sha256, created_at

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "mapping_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "action": {
      "type": "string",
      "enum": [
        "confirm",
        "withdraw"
      ]
    },
    "evidence_type": {
      "type": "string",
      "enum": [
        "partner_asserted"
      ]
    },
    "mapping_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    }
  },
  "required": [
    "id",
    "mapping_id",
    "revision",
    "action",
    "evidence_type",
    "mapping_sha256",
    "created_at"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/modules/ebilanz-6.9/form-planPlan source-backed fields for an explicit E-Bilanz annual case

Stateless read-authorized planning, with existing product/tenant DPoP binding and strict case selector. No Idempotency-Key, domain write, outbox, draft, job, native execution or filing authority. Missing pinned taxonomy returns 503. Unsupported cases, malformed selectors and over-limit bodies fail closed. All final values and NIL decisions remain caller-supplied; complete preparation applies authoritative semantic checks.

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Request body

application/json · required

Required fields: legal_form, fiscal_start, closing_date

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "reporting_start": {
      "type": "string",
      "format": "date",
      "description": "Explicit current reporting duration start inside fiscal year, required only for UB/LZB/ZW/UJ."
    },
    "reporting_end": {
      "type": "string",
      "format": "date",
      "description": "Explicit current reporting duration end inside fiscal year, required only for UB/LZB/ZW/UJ."
    },
    "ub_income_statement": {
      "type": "boolean",
      "description": "UB-only explicit GuV/BVV component choice, including explicit false. Omit for all other statement types."
    },
    "tax_statement_type": {
      "type": "string",
      "enum": [
        "SB",
        "EB"
      ],
      "description": "MU annual tax statement selection: SB special or EB supplementary, distinct from opening statement_type EB. Omit for other legal forms."
    },
    "corporation_tax_option": {
      "type": "boolean",
      "description": "Explicit section 1a KStG case assertion, bound to the GCD option. Omitted/false retains the ordinary case; true currently permits eligible domestic annual AO/GKV or UKV core reports without EV/MicroBilG. Filing remains denied."
    },
    "micro_bilg_prepared": {
      "type": "boolean",
      "description": "Explicit MicroBilG preparation assertion for eligible corporation GKV cases."
    },
    "result_appropriation": {
      "type": "boolean",
      "description": "Select annual corporation balance-profit presentation with EV."
    },
    "legal_form": {
      "type": "string",
      "enum": [
        "EU",
        "EUF",
        "EUN",
        "GmbH",
        "UG",
        "AG",
        "OHG",
        "KG",
        "GKG",
        "AGKG",
        "GOHG",
        "AGOHG",
        "GBR",
        "PG",
        "ASG",
        "soPG",
        "EWI",
        "Other.MUN",
        "MU"
      ]
    },
    "income_statement_format": {
      "type": "string",
      "enum": [
        "GKV",
        "UKV"
      ],
      "default": "GKV"
    },
    "fiscal_start": {
      "type": "string",
      "format": "date",
      "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
    },
    "closing_date": {
      "type": "string",
      "format": "date",
      "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
    },
    "statement_type": {
      "type": "string",
      "enum": [
        "E",
        "EB",
        "UBandE",
        "LSB",
        "LAB",
        "UB",
        "LZB",
        "ZW",
        "UJ"
      ],
      "default": "E"
    },
    "revision_status": {
      "type": "string",
      "enum": [
        "E",
        "B",
        "G",
        "BG",
        "I",
        "sK"
      ],
      "default": "E"
    },
    "fiscal_end": {
      "type": "string",
      "format": "date",
      "description": "Defaults to closing_date for existing cases; UB/LZB/ZW/UJ require explicit fiscal_end. Opening reports have closing_date equal fiscal_start; their fiscal_end may be later."
    },
    "accounting_standard": {
      "type": "string",
      "enum": [
        "AO",
        "HAOE",
        "HGBM"
      ],
      "default": "AO"
    }
  },
  "required": [
    "legal_form",
    "fiscal_start",
    "closing_date"
  ],
  "description": "Read-only case selector, at most 1 KiB. No business facts, taxonomy overrides, native work or durable draft. Actual calendar dates and ordering are checked by the service."
}

Responses

200 · application/json

Successful operation

Required fields: entry_schema, schema_version, procedure, taxonomy_version, taxonomy_archive_sha256, technical_guides_archive_sha256, semantic_rule_version, case, case_bindings, contexts, fields, presentation_edges, calculation_edges, dimension_sets, bal, limits, period_rules

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "entry_schema": {
      "type": "string",
      "format": "uri",
      "description": "Selected pinned fiscal taxonomy entry schema; MicroBilG has a distinct entry point even for opening reports."
    },
    "schema_version": {
      "type": "string",
      "enum": [
        "ebilanz-form-plan-v7",
        "ebilanz-form-plan-v8",
        "ebilanz-form-plan-v9",
        "ebilanz-form-plan-v10",
        "ebilanz-form-plan-v11",
        "ebilanz-form-plan-v12",
        "ebilanz-form-plan-v13",
        "ebilanz-form-plan-v14",
        "ebilanz-form-plan-v15",
        "ebilanz-form-plan-v16",
        "ebilanz-form-plan-v17",
        "ebilanz-form-plan-v18",
        "ebilanz-form-plan-v19",
        "ebilanz-form-plan-v20"
      ]
    },
    "procedure": {
      "type": "string",
      "enum": [
        "Bilanz_6.9"
      ]
    },
    "taxonomy_version": {
      "type": "string",
      "enum": [
        "6.9"
      ]
    },
    "taxonomy_archive_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "technical_guides_archive_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "semantic_rule_version": {
      "type": "string"
    },
    "case": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "reporting_start": {
          "type": "string",
          "format": "date",
          "description": "Explicit current reporting duration start inside fiscal year, required only for UB/LZB/ZW/UJ."
        },
        "reporting_end": {
          "type": "string",
          "format": "date",
          "description": "Explicit current reporting duration end inside fiscal year, required only for UB/LZB/ZW/UJ."
        },
        "ub_income_statement": {
          "type": "boolean",
          "description": "UB-only explicit GuV/BVV component choice, including explicit false. Omit for all other statement types."
        },
        "tax_statement_type": {
          "type": "string",
          "enum": [
            "SB",
            "EB"
          ]
        },
        "tax_statement_type_label": {
          "type": "string"
        },
        "corporation_tax_option": {
          "type": "boolean",
          "description": "Explicit section 1a KStG case assertion, bound to the GCD option. Omitted/false retains the ordinary case; true currently permits eligible domestic annual AO/GKV or UKV core reports without EV/MicroBilG. Filing remains denied."
        },
        "micro_bilg_prepared": {
          "type": "boolean"
        },
        "result_appropriation": {
          "type": "boolean"
        },
        "legal_form": {
          "type": "string",
          "enum": [
            "EU",
            "EUF",
            "EUN",
            "GmbH",
            "UG",
            "AG",
            "OHG",
            "KG",
            "GKG",
            "AGKG",
            "GOHG",
            "AGOHG",
            "GBR",
            "PG",
            "ASG",
            "soPG",
            "EWI",
            "Other.MUN",
            "MU"
          ]
        },
        "legal_form_label": {
          "type": "string"
        },
        "income_statement_format": {
          "type": "string",
          "enum": [
            "GKV",
            "UKV"
          ]
        },
        "income_statement_format_label": {
          "type": "string"
        },
        "fiscal_start": {
          "type": "string",
          "format": "date",
          "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
        },
        "closing_date": {
          "type": "string",
          "format": "date",
          "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
        },
        "required_components": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "B",
              "GuV",
              "GuVMicroBilG",
              "EV",
              "BVV",
              "SGE",
              "SGEP",
              "BAL",
              "KS",
              "STU",
              "KKE"
            ]
          }
        },
        "account_details_required": {
          "type": "boolean"
        },
        "account_detail_modes": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "provided",
              "unavailable_with_footnote"
            ]
          }
        },
        "statement_type": {
          "type": "string",
          "enum": [
            "E",
            "EB",
            "UBandE",
            "LSB",
            "LAB",
            "UB",
            "LZB",
            "ZW",
            "UJ"
          ],
          "default": "E"
        },
        "revision_status": {
          "type": "string",
          "enum": [
            "E",
            "B",
            "G",
            "BG",
            "I",
            "sK"
          ],
          "default": "E"
        },
        "fiscal_end": {
          "type": "string",
          "format": "date",
          "description": "Defaults to closing_date for existing cases; UB/LZB/ZW/UJ require explicit fiscal_end. Opening reports have closing_date equal fiscal_start; their fiscal_end may be later."
        },
        "statement_type_label": {
          "type": "string"
        },
        "revision_status_label": {
          "type": "string"
        },
        "accounting_standard": {
          "type": "string",
          "enum": [
            "AO",
            "HAOE",
            "HGBM"
          ],
          "default": "AO"
        },
        "accounting_standard_label": {
          "type": "string"
        }
      },
      "required": [
        "micro_bilg_prepared",
        "result_appropriation",
        "legal_form",
        "legal_form_label",
        "income_statement_format",
        "income_statement_format_label",
        "fiscal_start",
        "closing_date",
        "required_components",
        "account_details_required",
        "account_detail_modes",
        "statement_type",
        "revision_status",
        "fiscal_end",
        "statement_type_label",
        "revision_status_label",
        "accounting_standard",
        "accounting_standard_label"
      ]
    },
    "case_bindings": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "tuple_path": {
            "type": "array",
            "maxItems": 4,
            "items": {
              "type": "string",
              "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
            },
            "description": "Exact outermost-to-innermost tuple ancestry for this binding, excluding the leaf. Explicit empty array means root fact. Present in v17; omitted historical bindings retain their original interpretation."
          },
          "concept": {
            "type": "string",
            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
          },
          "value_from": {
            "type": "string",
            "enum": [
              "fiscal_start",
              "closing_date",
              "tax_number",
              "tax_office",
              "literal_false",
              "literal_true",
              "company_name",
              "street",
              "postcode",
              "city",
              "fiscal_end"
            ]
          }
        },
        "required": [
          "concept",
          "value_from"
        ]
      }
    },
    "contexts": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80,
                "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
              },
              "dimensions": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        },
                        "member": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        }
                      },
                      "required": [
                        "name",
                        "member"
                      ]
                    },
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        },
                        "typed_value": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        }
                      },
                      "required": [
                        "name",
                        "typed_value"
                      ]
                    }
                  ]
                },
                "minItems": 0,
                "maxItems": 16
              },
              "start_date": {
                "type": "string",
                "format": "date",
                "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
              },
              "end_date": {
                "type": "string",
                "format": "date",
                "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
              }
            },
            "required": [
              "id",
              "start_date",
              "end_date"
            ]
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80,
                "pattern": "^[A-Za-z_][A-Za-z0-9._-]{0,79}$"
              },
              "dimensions": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        },
                        "member": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        }
                      },
                      "required": [
                        "name",
                        "member"
                      ]
                    },
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                        },
                        "typed_value": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        }
                      },
                      "required": [
                        "name",
                        "typed_value"
                      ]
                    }
                  ]
                },
                "minItems": 0,
                "maxItems": 16
              },
              "instant": {
                "type": "string",
                "format": "date",
                "pattern": "^202[5-7]-[0-9]{2}-[0-9]{2}$"
              }
            },
            "required": [
              "id",
              "instant"
            ]
          }
        ],
        "description": "Exactly one instant or duration period. The module verifies date equality, semantic uniqueness and official dimensions."
      },
      "minItems": 2,
      "maxItems": 2
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "concept": {
            "type": "string",
            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
          },
          "label": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "monetary",
              "text",
              "date",
              "boolean",
              "year",
              "language",
              "tuple",
              "abstract",
              "qname",
              "positive_integer"
            ]
          },
          "period": {
            "type": "string",
            "enum": [
              "",
              "instant",
              "duration"
            ]
          },
          "allowed_states": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "value",
                "nil",
                "tuple"
              ]
            },
            "maxItems": 3
          },
          "required": {
            "type": "boolean"
          },
          "required_state": {
            "type": "string",
            "enum": [
              "value",
              "nil",
              "tuple"
            ]
          },
          "required_when": {
            "type": "string",
            "enum": [
              "account_details_unavailable",
              "kke_coordinate"
            ]
          },
          "fiscal_requirement": {
            "type": "string"
          },
          "components": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "B",
                "GuV",
                "GuVMicroBilG",
                "EV",
                "BVV",
                "SGE",
                "SGEP",
                "BAL",
                "STU",
                "KKE"
              ]
            }
          },
          "pattern": {
            "type": "string"
          },
          "tuple": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "mode": {
                "type": "string",
                "enum": [
                  "choice",
                  "sequence"
                ]
              },
              "children": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                }
              },
              "required_children": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                }
              },
              "many": {
                "type": "boolean"
              },
              "selected_member": {
                "type": "string",
                "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
              },
              "children_state": {
                "type": "string",
                "enum": [
                  "nil"
                ]
              },
              "repeatable_children": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Sequence children whose official xs:element maxOccurs is unbounded; other sequence children remain singletons."
              }
            },
            "required": [
              "mode",
              "children",
              "required_children",
              "many"
            ]
          },
          "dimension_set_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            }
          },
          "valid_since": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "valid_through": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "fiscal_valid_since": {
            "type": "string"
          },
          "fiscal_valid_through": {
            "type": "string"
          },
          "selection_value": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Exact empty lexical marker for a caller-selected string choice item; supplied only after explicit selection, never for a NIL fact."
          },
          "value_literal": {
            "type": "string",
            "enum": [
              "siehe Fußnote",
              "false",
              "true"
            ],
            "description": "Exact current-case lexical value when reported with state value. The explanation pointer additionally requires explicit source footnote text; the corporate-tax option is bound to the selected case."
          },
          "footnote_required": {
            "type": "boolean",
            "enum": [
              true
            ],
            "description": "A nonblank plain-text footnote is required when this item is reported with state value; no default explanation is supplied."
          },
          "repeatable": {
            "type": "boolean",
            "description": "Official repeatable top-level tuple; each occurrence has independent child identities."
          }
        },
        "required": [
          "concept",
          "label",
          "kind",
          "period",
          "allowed_states",
          "required",
          "components",
          "dimension_set_ids"
        ],
        "description": "Explicit source-derived field metadata. Required describes ordinary presence. Required_state describes explicit current case constraints; optional selection/ancestor/BAL constraints still apply. No amount or NIL default is returned."
      }
    },
    "presentation_edges": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "from": {
            "type": "string",
            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
          },
          "to": {
            "type": "string",
            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
          },
          "component": {
            "type": "string",
            "enum": [
              "B",
              "GuV",
              "GuVMicroBilG",
              "EV",
              "BVV",
              "SGE",
              "SGEP",
              "BAL",
              "KKE"
            ]
          }
        },
        "required": [
          "from",
          "to",
          "component"
        ]
      }
    },
    "calculation_edges": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "from": {
            "type": "string",
            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
          },
          "to": {
            "type": "string",
            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
          },
          "weight": {
            "type": "integer"
          },
          "network": {
            "type": "string"
          }
        },
        "required": [
          "from",
          "to",
          "weight",
          "network"
        ]
      }
    },
    "dimension_sets": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "axes"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "axes": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "name",
                "label",
                "kind",
                "members"
              ],
              "properties": {
                "name": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "explicit",
                    "typed"
                  ]
                },
                "typed_domain": {
                  "type": "string"
                },
                "members": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "name",
                      "label",
                      "value_legal_forms"
                    ],
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "label": {
                        "type": "string"
                      },
                      "value_legal_forms": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "EU",
                            "EUF",
                            "EUN",
                            "GmbH",
                            "UG",
                            "AG",
                            "OHG",
                            "KG",
                            "GKG",
                            "AGKG",
                            "GOHG",
                            "AGOHG",
                            "GBR",
                            "PG",
                            "ASG",
                            "soPG",
                            "EWI",
                            "Other.MUN",
                            "MU"
                          ]
                        },
                        "maxItems": 19
                      },
                      "valid_since": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "valid_through": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "fiscal_valid_since": {
                        "type": "string"
                      },
                      "fiscal_valid_through": {
                        "type": "string"
                      },
                      "tax_prohibited_nonzero": {
                        "type": "boolean"
                      }
                    },
                    "description": "Member from a pinned effective dimension domain. Legal-form, date and tax-value restrictions must be respected; independent members do not establish complete BAL or filing validity."
                  }
                }
              }
            },
            "maxItems": 16
          }
        }
      }
    },
    "bal": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "required_when": {
          "type": "string",
          "enum": [
            "row_contains_value"
          ]
        },
        "required_fields": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
          }
        },
        "asset_axis": {
          "type": "string",
          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
        },
        "tax_axis": {
          "type": "string",
          "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
        },
        "bases": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "name": {
                "type": "string",
                "enum": [
                  "tax",
                  "commercial",
                  "transition"
                ]
              },
              "columns": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
                },
                "minItems": 1,
                "maxItems": 3
              }
            },
            "required": [
              "name",
              "columns"
            ]
          }
        },
        "value_edges": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "from": {
                "type": "string",
                "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
              },
              "to": {
                "type": "string",
                "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
              },
              "component": {
                "type": "string",
                "enum": [
                  "B",
                  "GuV",
                  "GuVMicroBilG",
                  "EV",
                  "BVV",
                  "SGE",
                  "SGEP",
                  "BAL",
                  "KKE"
                ]
              }
            },
            "required": [
              "from",
              "to",
              "component"
            ]
          }
        },
        "asset_edges": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "from": {
                "type": "string",
                "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
              },
              "to": {
                "type": "string",
                "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
              },
              "component": {
                "type": "string",
                "enum": [
                  "B",
                  "GuV",
                  "GuVMicroBilG",
                  "EV",
                  "BVV",
                  "SGE",
                  "SGEP",
                  "BAL",
                  "KKE"
                ]
              }
            },
            "required": [
              "from",
              "to",
              "component"
            ]
          }
        },
        "calculation_edges": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "from": {
                "type": "string",
                "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
              },
              "to": {
                "type": "string",
                "pattern": "^[A-Za-z_][A-Za-z0-9._-]*:[A-Za-z_][A-Za-z0-9._-]*$"
              },
              "weight": {
                "type": "integer"
              },
              "network": {
                "type": "string"
              }
            },
            "required": [
              "from",
              "to",
              "weight",
              "network"
            ]
          }
        }
      },
      "required": [
        "required_when",
        "required_fields",
        "asset_axis",
        "tax_axis",
        "bases",
        "value_edges",
        "asset_edges",
        "calculation_edges"
      ]
    },
    "limits": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "period_rules": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "reporting_period_binding": {
          "type": "string",
          "enum": [
            "within_fiscal_year"
          ]
        },
        "fiscal_start_min": {
          "type": "string",
          "format": "date"
        },
        "fiscal_start_max": {
          "type": "string",
          "format": "date"
        },
        "fiscal_end_min": {
          "type": "string",
          "format": "date"
        },
        "fiscal_end_max": {
          "type": "string",
          "format": "date"
        },
        "closing_date_binding": {
          "type": "string",
          "enum": [
            "fiscal_start",
            "fiscal_end",
            "within_fiscal_year"
          ]
        },
        "self_employment_same_calendar_year": {
          "type": "boolean",
          "const": true
        },
        "maximum_months": {
          "type": "integer",
          "const": 12
        }
      },
      "required": [
        "fiscal_start_min",
        "fiscal_start_max",
        "fiscal_end_min",
        "fiscal_end_max",
        "closing_date_binding",
        "self_employment_same_calendar_year",
        "maximum_months"
      ]
    },
    "reconciliation": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "root_concept": {
          "type": "string"
        },
        "kind_concept": {
          "type": "string"
        },
        "kind_choices": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "requires_nonzero": {
          "type": "boolean"
        },
        "entries": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "concept": {
                "type": "string"
              },
              "target_concept": {
                "type": "string"
              },
              "current_delta_concept": {
                "type": "string"
              },
              "previous_delta_concept": {
                "type": "string"
              },
              "targets": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "required": [
              "concept",
              "target_concept",
              "current_delta_concept",
              "targets"
            ]
          }
        }
      },
      "required": [
        "root_concept",
        "kind_concept",
        "kind_choices",
        "requires_nonzero",
        "entries"
      ]
    },
    "partnership": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "shareholder_tuple": {
          "type": "string"
        },
        "shareholder_id": {
          "type": "string"
        },
        "shareholder_group": {
          "type": "string"
        },
        "partner_axis": {
          "type": "string"
        },
        "tax_axis": {
          "type": "string"
        },
        "tax_member": {
          "type": "string"
        },
        "equity_axis": {
          "type": "string"
        },
        "equity_member_root": {
          "type": "string"
        },
        "kke_partner_groups": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "kke_equity_member_roots": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Source-backed active shareholder-group QName to permitted valued KKE equity-member root QName (6.9 B.19.1). Present in v9 through current v12 plans; absent from earlier historical plans."
        },
        "required_kke_fields": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "shareholder_tuple",
        "shareholder_id",
        "shareholder_group",
        "partner_axis",
        "tax_axis",
        "tax_member",
        "equity_axis",
        "equity_member_root",
        "kke_partner_groups",
        "required_kke_fields"
      ],
      "description": "OHG/KG/GKG/AGKG/GOHG/AGOHG/GBR/PG/ASG/soPG AO/HAOE/HGBM GKV/UKV annual or AO/HAOE opening GHB shareholder/KKE linkage. KKE supports tax values only; commercial and transition columns remain unsupported. Typed partner-axis values equal the declared shareholder ID. Required cells apply to each selected concrete equity member and its source presentation ancestors; clients supply all final amounts and NIL decisions. Preparation enforces complete equations."
    }
  },
  "required": [
    "entry_schema",
    "schema_version",
    "procedure",
    "taxonomy_version",
    "taxonomy_archive_sha256",
    "technical_guides_archive_sha256",
    "semantic_rule_version",
    "case",
    "case_bindings",
    "contexts",
    "fields",
    "presentation_edges",
    "calculation_edges",
    "dimension_sets",
    "bal",
    "limits",
    "period_rules"
  ],
  "description": "Deterministic 4 MiB-bounded form metadata for one supported case. No financial source values, raw archives or inferred tax decisions. This is not preparation, native validation, approval or transmission qualification."
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/modules/ebilanz-6.9/mapping-catalogRead pinned E-Bilanz 6.9 monetary mapping metadata

Requires the existing eric.read product/tenant binding. Returns a bounded deterministic mapping-target/dimension catalog with explicit applicability limits; the complete preparation must still validate. Missing private taxonomy configuration returns 503. No query overrides or runtime resource fetches.

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Responses

200 · application/json

Successful operation

Required fields: schema_version, procedure, taxonomy_version, taxonomy_archive_sha256, semantic_rule_version, scope, targets, dimension_sets, limits

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema_version",
    "procedure",
    "taxonomy_version",
    "taxonomy_archive_sha256",
    "semantic_rule_version",
    "scope",
    "targets",
    "dimension_sets",
    "limits"
  ],
  "properties": {
    "schema_version": {
      "type": "string",
      "enum": [
        "ebilanz-mapping-metadata-v1"
      ]
    },
    "procedure": {
      "type": "string",
      "enum": [
        "Bilanz_6.9"
      ]
    },
    "taxonomy_version": {
      "type": "string",
      "enum": [
        "6.9"
      ]
    },
    "taxonomy_archive_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "semantic_rule_version": {
      "type": "string"
    },
    "scope": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "legal_forms",
        "accounting_standard",
        "income_statement_format",
        "annual"
      ],
      "properties": {
        "legal_forms": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "EU",
              "GmbH",
              "OHG",
              "KG",
              "GKG",
              "AGKG",
              "GOHG",
              "AGOHG",
              "GBR",
              "PG",
              "ASG",
              "soPG",
              "EWI",
              "Other.MUN",
              "MU"
            ]
          },
          "maxItems": 2
        },
        "accounting_standard": {
          "type": "string",
          "enum": [
            "AO"
          ]
        },
        "income_statement_format": {
          "type": "string",
          "enum": [
            "GKV"
          ]
        },
        "annual": {
          "type": "boolean",
          "enum": [
            true
          ]
        }
      }
    },
    "targets": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "concept",
          "label",
          "period",
          "nillable",
          "components",
          "value_legal_forms",
          "dimension_set_ids"
        ],
        "properties": {
          "concept": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "period": {
            "type": "string",
            "enum": [
              "instant",
              "duration"
            ]
          },
          "nillable": {
            "type": "boolean"
          },
          "components": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "B",
                "GuV",
                "BVV",
                "SGE",
                "SGEP",
                "BAL",
                "KKE"
              ]
            },
            "maxItems": 5
          },
          "value_legal_forms": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "EU",
                "EUF",
                "EUN",
                "GmbH",
                "UG",
                "AG",
                "OHG",
                "KG",
                "GKG",
                "AGKG",
                "GOHG",
                "AGOHG",
                "GBR",
                "PG",
                "ASG",
                "soPG",
                "EWI",
                "Other.MUN",
                "MU"
              ]
            },
            "maxItems": 19
          },
          "dimension_set_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            }
          },
          "valid_since": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "valid_through": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "fiscal_valid_since": {
            "type": "string"
          },
          "fiscal_valid_through": {
            "type": "string"
          },
          "fiscal_requirement": {
            "type": "string"
          }
        },
        "description": "Discoverable monetary target; value_legal_forms is permission for a non-NIL value, not proof of complete filing validity. Date boundaries, declared components, source context, ancestors, calculations and BAL relationships remain subject to preparation validation. Empty dimension_set_ids means an ordinary context without dimensions; otherwise use one complete referenced axis set."
      }
    },
    "dimension_sets": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "axes"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "axes": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "name",
                "label",
                "kind",
                "members"
              ],
              "properties": {
                "name": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "explicit",
                    "typed"
                  ]
                },
                "typed_domain": {
                  "type": "string"
                },
                "members": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "name",
                      "label",
                      "value_legal_forms"
                    ],
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "label": {
                        "type": "string"
                      },
                      "value_legal_forms": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "EU",
                            "EUF",
                            "EUN",
                            "GmbH",
                            "UG",
                            "AG",
                            "OHG",
                            "KG",
                            "GKG",
                            "AGKG",
                            "GOHG",
                            "AGOHG",
                            "GBR",
                            "PG",
                            "ASG",
                            "soPG",
                            "EWI",
                            "Other.MUN",
                            "MU"
                          ]
                        },
                        "maxItems": 19
                      },
                      "valid_since": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "valid_through": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "fiscal_valid_since": {
                        "type": "string"
                      },
                      "fiscal_valid_through": {
                        "type": "string"
                      },
                      "tax_prohibited_nonzero": {
                        "type": "boolean"
                      }
                    },
                    "description": "Member from a pinned effective dimension domain. Legal-form, date and tax-value restrictions must be respected; independent members do not establish complete BAL or filing validity."
                  }
                }
              }
            },
            "maxItems": 16
          }
        }
      }
    },
    "limits": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "description": "Deterministic projection of the configured pinned taxonomy for mapping discovery, bounded to 4 MiB. Raw archives and private source facts are never returned. This is an offline candidate scope, not native qualification, filing approval, or transmission authority."
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/modules/ustva-2026/derived-rulesRead pinned UStVA 2026 aggregation and formula rules

Exact source-pinned rule artifact for the restricted derived mode. Mapping confirmation remains a SaaS assertion; neither metadata nor compilation establishes tax plausibility or filing authority.

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Responses

200 · application/json

Successful operation

Required fields: version, projection, tax_policy, formula, sources, groups

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "version",
    "projection",
    "tax_policy",
    "formula",
    "sources",
    "groups"
  ],
  "properties": {
    "version": {
      "type": "string"
    },
    "projection": {
      "type": "string"
    },
    "tax_policy": {
      "type": "string"
    },
    "formula": {
      "type": "string"
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "sha256"
        ],
        "properties": {
          "url": {
            "type": "string"
          },
          "archive_sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "member": {
            "type": "string"
          },
          "sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "locator": {
            "type": "string"
          }
        }
      }
    },
    "groups": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "group",
          "base_field",
          "tax_field",
          "tax_required",
          "result_sign"
        ],
        "properties": {
          "group": {
            "type": "string"
          },
          "base_field": {
            "type": "string"
          },
          "tax_field": {
            "type": "string"
          },
          "tax_required": {
            "type": "boolean"
          },
          "result_sign": {
            "type": "integer",
            "enum": [
              -1,
              0,
              1
            ]
          }
        }
      }
    }
  }
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/modules/ustva-2026/field-catalogRead the pinned UStVA 2026 final-field catalog

Field shapes, labels, units and provenance; does not assert tax plausibility, enabled transmission or complete tax-calculation rules.

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Responses

200 · application/json

Successful operation

Required fields: version, archive_sha256, schema_member, schema_sha256, periods, fields

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "version",
    "archive_sha256",
    "schema_member",
    "schema_sha256",
    "periods",
    "fields"
  ],
  "properties": {
    "version": {
      "type": "string"
    },
    "archive_sha256": {
      "type": "string"
    },
    "schema_member": {
      "type": "string"
    },
    "schema_sha256": {
      "type": "string"
    },
    "periods": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code",
          "label",
          "schema_type",
          "kind",
          "unit"
        ],
        "properties": {
          "code": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "schema_type": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "integer",
              "decimal",
              "choice",
              "text",
              "date"
            ]
          },
          "whole_digits": {
            "type": "integer",
            "minimum": 1
          },
          "nonnegative": {
            "type": "boolean"
          },
          "choices": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "choice_labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "max_length": {
            "type": "integer",
            "minimum": 1
          }
        }
      }
    }
  }
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/noticesGetUserNotices

Returns the pinned ERiC user notices for SaaS presentation before native use. The SaaS must offer acknowledgement for Appendix 2. Retrieval alone is not evidence that a notice was presented or acknowledged.

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Responses

200 · application/json

Pinned ERiC user notices

Required fields: schema_version, version, sdk_release, documentation_archive_sha256, license_document_sha256, license_member, notices

{
  "type": "object",
  "additionalProperties": false,
  "description": "Pinned ERiC notices for the SaaS to present before native use. The SaaS offers acknowledgement for Appendix 2. A read of this endpoint is not evidence of presentation or acknowledgement.",
  "required": [
    "schema_version",
    "version",
    "sdk_release",
    "documentation_archive_sha256",
    "license_document_sha256",
    "license_member",
    "notices"
  ],
  "properties": {
    "schema_version": {
      "type": "string",
      "enum": [
        "eric.user-notices.v1"
      ]
    },
    "version": {
      "type": "string",
      "minLength": 1
    },
    "sdk_release": {
      "type": "string",
      "minLength": 1
    },
    "documentation_archive_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "license_document_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "license_member": {
      "type": "string",
      "minLength": 1
    },
    "notices": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "description": "A notice that the SaaS presents before native use. When acknowledgement_offered is true, offer the user an acknowledgement action; retrieval is not presentation or acknowledgement evidence.",
        "required": [
          "id",
          "title",
          "text",
          "sha256",
          "acknowledgement_offered",
          "source_section"
        ],
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "title": {
            "type": "string",
            "minLength": 1
          },
          "text": {
            "type": "string"
          },
          "sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "acknowledgement_offered": {
            "type": "boolean"
          },
          "source_section": {
            "type": "string",
            "minLength": 1
          }
        }
      }
    }
  }
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/preparationsCreatePreparation

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

Request body

application/json · required

Required fields: draft_id, revision

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "draft_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    }
  },
  "required": [
    "draft_id",
    "revision"
  ]
}

Responses

201 · application/json

Successful operation

Required fields: id, product_id, draft_id, revision, profile_version, manifest_id, payload_sha256, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "draft_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "profile_version": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,9}$"
    },
    "manifest_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "payload_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "status": {
      "type": "string",
      "enum": [
        "prepared"
      ]
    }
  },
  "required": [
    "id",
    "product_id",
    "draft_id",
    "revision",
    "profile_version",
    "manifest_id",
    "payload_sha256",
    "status"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/preparations/{preparationId}GetPreparation

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

preparationId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Responses

200 · application/json

Successful operation

Required fields: id, product_id, draft_id, revision, profile_version, manifest_id, payload_sha256, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "draft_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 2147483647
    },
    "profile_version": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,9}$"
    },
    "manifest_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "payload_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "status": {
      "type": "string",
      "enum": [
        "prepared"
      ]
    }
  },
  "required": [
    "id",
    "product_id",
    "draft_id",
    "revision",
    "profile_version",
    "manifest_id",
    "payload_sha256",
    "status"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/preparations/{preparationId}/artifacts/{kind}GetPreparationArtifact

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

preparationId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

kind · path · required

{
  "type": "string",
  "enum": [
    "payload.xml",
    "review.html",
    "review.json",
    "manifest.json"
  ]
}

Responses

200 · application/xml

Successful operation

{
  "type": "string"
}

200 · application/json

Successful operation

{
  "type": "object",
  "additionalProperties": true
}

200 · text/html

Successful operation

{
  "type": "string"
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/preparations/{preparationId}/delegated-reviewsCreate delegated test review

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

preparationId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

Request body

application/json · required

Required fields: purpose

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "purpose"
  ],
  "properties": {
    "purpose": {
      "type": "string",
      "enum": [
        "test_review_only"
      ]
    }
  }
}

Responses

201 · application/json

Successful delegated test review operation

Required fields: id, product_id, preparation_id, draft_id, revision, profile_version, manifest_sha256, manifest_id, payload_sha256, review_html_sha256, review_json_sha256, statement_version, purpose, status, expires_at, statement, challenge, review_html, review_json, manifest_json, evidence_type, authority_id, authority_version, actor_id

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "product_id",
    "preparation_id",
    "draft_id",
    "revision",
    "profile_version",
    "manifest_sha256",
    "manifest_id",
    "payload_sha256",
    "review_html_sha256",
    "review_json_sha256",
    "statement_version",
    "purpose",
    "status",
    "expires_at",
    "statement",
    "challenge",
    "review_html",
    "review_json",
    "manifest_json",
    "evidence_type",
    "authority_id",
    "authority_version",
    "actor_id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "preparation_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "draft_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 1
    },
    "profile_version": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,9}$"
    },
    "manifest_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "manifest_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "payload_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "review_html_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "review_json_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "statement_version": {
      "type": "string",
      "enum": [
        "eric.test-review.v1"
      ]
    },
    "purpose": {
      "type": "string",
      "enum": [
        "test_review_only"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "confirmed",
        "revoked",
        "expired"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time"
    },
    "statement": {
      "type": "string"
    },
    "challenge": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "review_html": {
      "type": "string",
      "description": "The complete exact UTF-8 frozen HTML review. Render all of it in a sandbox without scripts, then show the accompanying statement separately."
    },
    "review_json": {
      "type": "string",
      "description": "Exact UTF-8 review.json artifact; hash the decoded string bytes, without reparsing or reserializing."
    },
    "manifest_json": {
      "type": "string",
      "description": "Exact UTF-8 manifest.json artifact; hash the decoded string bytes, without reparsing or reserializing."
    },
    "evidence_type": {
      "type": "string",
      "enum": [
        "partner_asserted"
      ]
    },
    "authority_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "authority_version": {
      "type": "integer",
      "format": "int64",
      "minimum": 1
    },
    "actor_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128
    }
  },
  "description": "SaaS-signed own-login assertion; ERiC did not observe the user reading or clicking. Test review only, never filing consent."
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/preparations/{preparationId}/filing-consentsCreate filing consent

Preparation-specific partner-asserted consent for authorized test transmission only. Requires fresh v3/v4 filings.approve actor status. Transmission eligibility remains blocked; no native job or dispatch is created. With X-ERIC-Replay-Only: true, the same exact request and idempotency key only recover a previously committed 201 response under current machine, actor, authority and optional human grants. An unused key or changed request conflicts without creating a consent. Historical mandate or ownership revocation does not block this read-only recovery.

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

preparationId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

X-ERIC-Human-Authorization · header

Exactly one Bearer human access token for ebilanz.app. Required for immutable combined_human_required authority versions; rejected for legacy versions. Independently verified alongside the machine DPoP credential, with exact operator binding and current action-specific local human permission through commit. Credentials are never returned.

{
  "type": "string",
  "minLength": 1,
  "maxLength": 16384
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

X-ERIC-Replay-Only · header

{
  "type": "string",
  "enum": [
    "true"
  ]
}

Request body

application/json · required

Required fields: mandate_id

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "mandate_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    }
  },
  "required": [
    "mandate_id"
  ]
}

Responses

201 · application/json

Immutable consent evidence; not transmission eligibility.

Required fields: id, product_id, preparation_id, mandate_id, binding_sha256, binding_json, purpose, evidence_type, transmission_eligibility, status, expires_at, statement_version, statement, review_html, review_json, manifest_json, challenge

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "preparation_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "mandate_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "binding_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "binding_json": {
      "type": "string",
      "maxLength": 65536,
      "description": "Exact UTF-8 immutable binding JSON conforming to FilingBinding. Hash the decoded string bytes; do not reserialize."
    },
    "purpose": {
      "type": "string",
      "enum": [
        "authorized_test_transmission"
      ]
    },
    "evidence_type": {
      "type": "string",
      "enum": [
        "partner_asserted"
      ]
    },
    "transmission_eligibility": {
      "type": "string",
      "enum": [
        "blocked"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "confirmed",
        "revoked",
        "expired"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time"
    },
    "statement_version": {
      "enum": [
        "eric.test-transmission-consent.v1"
      ],
      "type": "string"
    },
    "statement": {
      "enum": [
        "Ich autorisiere ausschließlich die TEST-Übermittlung der unveränderten, vollständig geprüften Vorbereitung mit dem hier gebundenen Verfahren, Zeitraum und Zertifikat. Dies ist keine Produktionsübermittlung und keine steuerliche Einreichung. Die Ausführung bleibt bis zur unabhängigen technischen Qualifikation gesperrt."
      ],
      "type": "string"
    },
    "review_html": {
      "type": "string",
      "description": "Complete exact frozen review. Display all contents in a script-free sandbox before consent."
    },
    "review_json": {
      "type": "string",
      "description": "Exact UTF-8 review.json bytes as a string."
    },
    "manifest_json": {
      "type": "string",
      "description": "Exact UTF-8 manifest.json bytes as a string."
    },
    "challenge": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$",
      "description": "Returned on creation and its exact idempotent retry. Retain server-side until the signed decision."
    }
  },
  "required": [
    "id",
    "product_id",
    "preparation_id",
    "mandate_id",
    "binding_sha256",
    "binding_json",
    "purpose",
    "evidence_type",
    "transmission_eligibility",
    "status",
    "expires_at",
    "statement_version",
    "statement",
    "review_html",
    "review_json",
    "manifest_json",
    "challenge"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/profilesCreateProfile

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

Request body

application/json · required

Required fields: version, manufacturer_id, product_name, product_version, registration_evidence_sha256

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "version": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,9}$"
    },
    "manufacturer_id": {
      "type": "string",
      "pattern": "^[0-9]{5}$"
    },
    "product_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "product_version": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "registration_evidence_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    }
  },
  "required": [
    "version",
    "manufacturer_id",
    "product_name",
    "product_version",
    "registration_evidence_sha256"
  ]
}

Responses

201 · application/json

Successful operation

Required fields: product_id, version, manufacturer_id, product_name, product_version, registration_evidence_sha256, verified

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "version": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,9}$"
    },
    "manufacturer_id": {
      "type": "string"
    },
    "product_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "product_version": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "registration_evidence_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "verified": {
      "type": "boolean"
    }
  },
  "required": [
    "product_id",
    "version",
    "manufacturer_id",
    "product_name",
    "product_version",
    "registration_evidence_sha256",
    "verified"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/profiles/{version}GetProfile

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

version · path · required

{
  "type": "string",
  "pattern": "^[1-9][0-9]{0,9}$"
}

Responses

200 · application/json

Successful operation

Required fields: product_id, version, manufacturer_id, product_name, product_version, registration_evidence_sha256, verified

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "version": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,9}$"
    },
    "manufacturer_id": {
      "type": "string"
    },
    "product_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "product_version": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "registration_evidence_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "verified": {
      "type": "boolean"
    }
  },
  "required": [
    "product_id",
    "version",
    "manufacturer_id",
    "product_name",
    "product_version",
    "registration_evidence_sha256",
    "verified"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/retrieval-artifacts/{artifactId}Read preserved retrieval artifact metadata

Read an already published test-retrieval preservation. Requires current retrieval authority for the original machine, authority version and actor; a newer authorized actor revision is allowed. Remote mandate, qualification and credential expiry or rotation do not remove historical access. This does not query, download from ELSTER, decrypt, publish or acknowledge a mailbox item.

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

artifactId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

Responses

200 · application/json

Authenticated metadata for the exact preserved bytes

Required fields: id, product_id, purpose, preserved_at, content_media_type, content_bytes, content_sha256, provenance_media_type, provenance_bytes, provenance_sha256

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "product_id",
    "purpose",
    "preserved_at",
    "content_media_type",
    "content_bytes",
    "content_sha256",
    "provenance_media_type",
    "provenance_bytes",
    "provenance_sha256"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "purpose": {
      "type": "string",
      "enum": [
        "authorized_test_retrieval"
      ]
    },
    "preserved_at": {
      "type": "string",
      "format": "date-time"
    },
    "content_media_type": {
      "type": "string",
      "enum": [
        "application/octet-stream"
      ]
    },
    "content_bytes": {
      "type": "integer",
      "format": "int64",
      "minimum": 0,
      "maximum": 4194304
    },
    "content_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "provenance_media_type": {
      "type": "string",
      "enum": [
        "application/json"
      ]
    },
    "provenance_bytes": {
      "type": "integer",
      "format": "int64",
      "minimum": 1,
      "maximum": 8192
    },
    "provenance_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    }
  }
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/retrieval-artifacts/{artifactId}/{kind}Download exact preserved content or provenance

Read an already published test-retrieval preservation. Requires current retrieval authority for the original machine, authority version and actor; a newer authorized actor revision is allowed. Remote mandate, qualification and credential expiry or rotation do not remove historical access. This does not query, download from ELSTER, decrypt, publish or acknowledge a mailbox item. Content is returned as application/octet-stream without format inference; provenance.json is the original authenticated preservation JSON. Both are attachments with no-store and nosniff.

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

artifactId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

kind · path · required

{
  "type": "string",
  "enum": [
    "content",
    "provenance.json"
  ]
}

Responses

200 · application/octet-stream

Exact authenticated artifact bytes

{
  "type": "string",
  "format": "binary"
}

200 · application/json

Exact authenticated artifact bytes

{
  "type": "string",
  "format": "binary"
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/retrieval-artifacts/{artifactId}/archive-acknowledgementRecord the client archive assertion for a preserved artifact

Assert that the SaaS client archived the exact content and provenance bytes at its opaque archive reference. One immutable receipt per artifact; matching assertions, including with a new Idempotency-Key or newer authorized actor revision, return the first receipt. Changed digests or reference conflict. Fresh original retrieval authority and authentic source bytes are required before every write or replay. This is a client assertion, not verification of external storage, an ELSTER mailbox acknowledgement or permission to delete evidence. No remote address is fetched.

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

artifactId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

Request body

application/json · required

Required fields: content_sha256, provenance_sha256, archive_reference

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "content_sha256",
    "provenance_sha256",
    "archive_reference"
  ],
  "properties": {
    "content_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "provenance_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "archive_reference": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1024,
      "description": "Opaque client archive locator, at most 1024 UTF-8 bytes without control characters or surrounding whitespace. Stored encrypted; never fetched by the service."
    }
  }
}

Responses

201 · application/json

First immutable client assertion, including exact and semantic replay

Required fields: id, artifact_id, product_id, acknowledged_at, evidence_type, content_sha256, provenance_sha256, archive_reference

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "artifact_id",
    "product_id",
    "acknowledged_at",
    "evidence_type",
    "content_sha256",
    "provenance_sha256",
    "archive_reference"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "artifact_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "acknowledged_at": {
      "type": "string",
      "format": "date-time"
    },
    "evidence_type": {
      "type": "string",
      "enum": [
        "client_asserted"
      ]
    },
    "content_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "provenance_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "archive_reference": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1024,
      "description": "Opaque client archive locator, at most 1024 UTF-8 bytes without control characters or surrounding whitespace. Stored encrypted; never fetched by the service."
    }
  }
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/retrieval-decryptionsCreateRetrievalDecryption

Queue local decryption of one already published authenticated download; no remote retrieval is initiated. Requires the original delegated retrieval principal and verified pre-use notice delivery.

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

Request body

application/json · required

Required fields: download_id

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "download_id"
  ],
  "properties": {
    "download_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    }
  }
}

Responses

202 · application/json

Local decryption metadata

Required fields: id, product_id, download_id, status, created_at, preserved

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "product_id",
    "download_id",
    "status",
    "created_at",
    "preserved"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "download_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "status": {
      "type": "string",
      "enum": [
        "queued",
        "running",
        "completed",
        "failed"
      ]
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "preserved": {
      "type": "boolean"
    },
    "artifact_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    }
  }
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/retrieval-decryptions/{decryptionId}GetRetrievalDecryption

Read bounded local job metadata under fresh delegated retrieval authority. Returns no credentials, native result or plaintext. Completed processing does not publish an artifact.

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

decryptionId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Responses

200 · application/json

Local decryption metadata

Required fields: id, product_id, download_id, status, created_at, preserved

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "product_id",
    "download_id",
    "status",
    "created_at",
    "preserved"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "download_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "status": {
      "type": "string",
      "enum": [
        "queued",
        "running",
        "completed",
        "failed"
      ]
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "preserved": {
      "type": "boolean"
    },
    "artifact_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    }
  }
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/retrieval-decryptions/{decryptionId}/preservationCreateRetrievalPreservation

Publish a completed local decryption under fresh original delegated retrieval authority after authenticating its frozen source and native result. Publication never acknowledges the ELSTER mailbox. The preserved artifact ID equals this job ID.

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

X-ERIC-Actor-Status · header · required

Fresh signed SaaS actor status JWS, bound to the registered authority and this machine client. Not included in mutation idempotency hashes.

{
  "type": "string",
  "maxLength": 16384
}

decryptionId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

Request body

application/json · required

{
  "type": "object",
  "additionalProperties": false,
  "properties": {}
}

Responses

201 · application/json

Local decryption metadata

Required fields: id, product_id, download_id, status, created_at, preserved

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "product_id",
    "download_id",
    "status",
    "created_at",
    "preserved"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "download_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "status": {
      "type": "string",
      "enum": [
        "queued",
        "running",
        "completed",
        "failed"
      ]
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "preserved": {
      "type": "boolean"
    },
    "artifact_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    }
  }
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/utilitiesEnqueue a qualified credential-free local utility

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

Request body

application/json · required

{
  "description": "Closed qualified local utility inputs. No XML, configuration, paths, credentials or transmission. Identifier results establish formal validity only; reference fetches do not establish tax validity.",
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "operation",
        "iban"
      ],
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "check-iban"
          ]
        },
        "iban": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "operation",
        "value"
      ],
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "check-bic"
          ]
        },
        "value": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "operation",
        "value"
      ],
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "check-tax-number"
          ]
        },
        "value": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "operation",
        "value"
      ],
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "check-bufa"
          ]
        },
        "value": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "operation",
        "value"
      ],
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "check-ewaz"
          ]
        },
        "value": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "operation",
        "value"
      ],
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "check-idnr"
          ]
        },
        "value": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "operation",
        "value"
      ],
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "check-widnr"
          ]
        },
        "value": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "operation",
        "value"
      ],
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "format-tax-number"
          ]
        },
        "value": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "operation",
        "value"
      ],
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "format-ewaz"
          ]
        },
        "value": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "operation",
        "value",
        "state"
      ],
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "convert-tax-number"
          ]
        },
        "value": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        "state": {
          "type": "string",
          "minLength": 2,
          "maxLength": 2,
          "pattern": "^[0-9]{2}$"
        },
        "tax_office": {
          "type": "string",
          "pattern": "^[0-9]{4}$"
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "operation",
        "value",
        "state"
      ],
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "convert-ewaz"
          ]
        },
        "value": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        "state": {
          "type": "string",
          "minLength": 2,
          "maxLength": 2,
          "pattern": "^[A-Z]{2}$"
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "operation"
      ],
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "tax-office-states"
          ]
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "operation"
      ],
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "test-tax-offices"
          ]
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "operation",
        "value"
      ],
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "tax-offices"
          ]
        },
        "value": {
          "type": "string",
          "minLength": 2,
          "maxLength": 2
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "operation",
        "value"
      ],
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "tax-office"
          ]
        },
        "value": {
          "type": "string",
          "minLength": 4,
          "maxLength": 4
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "operation",
        "procedure"
      ],
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "field-choices"
          ]
        },
        "value": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        "procedure": {
          "type": "string",
          "enum": [
            "ESt_2025"
          ]
        }
      }
    }
  ]
}

Responses

202 · application/json

Successful operation

Required fields: id, product_id, operation, status, attempts

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "product_id",
    "operation",
    "status",
    "attempts"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "operation": {
      "type": "string",
      "enum": [
        "check-iban",
        "check-bic",
        "check-tax-number",
        "check-bufa",
        "check-ewaz",
        "check-idnr",
        "check-widnr",
        "format-tax-number",
        "format-ewaz",
        "convert-tax-number",
        "convert-ewaz",
        "tax-office-states",
        "test-tax-offices",
        "tax-offices",
        "tax-office",
        "field-choices"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "queued",
        "running",
        "completed",
        "failed"
      ]
    },
    "attempts": {
      "type": "integer",
      "minimum": 0
    },
    "result": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "outcome"
      ],
      "properties": {
        "outcome": {
          "type": "string",
          "enum": [
            "succeeded",
            "rejected",
            "failed"
          ]
        },
        "failure": {
          "type": "string"
        },
        "response": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "protocol",
            "operation",
            "request_sha256",
            "sdk_release",
            "sdk_archive_sha256",
            "native_code",
            "version_xml"
          ],
          "properties": {
            "protocol": {
              "type": "integer",
              "enum": [
                1
              ]
            },
            "operation": {
              "type": "string",
              "enum": [
                "check-iban",
                "check-bic",
                "check-tax-number",
                "check-bufa",
                "check-ewaz",
                "check-idnr",
                "check-widnr",
                "format-tax-number",
                "format-ewaz",
                "convert-tax-number",
                "convert-ewaz",
                "tax-office-states",
                "test-tax-offices",
                "tax-offices",
                "tax-office",
                "field-choices"
              ]
            },
            "request_sha256": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            "sdk_release": {
              "type": "string",
              "enum": [
                "44.3.6.0"
              ]
            },
            "sdk_archive_sha256": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            "native_code": {
              "type": "integer",
              "minimum": 0
            },
            "version_xml": {
              "type": "string",
              "format": "byte",
              "maxLength": 5592408,
              "description": "Base64 of the exact SDK bytes."
            },
            "result_xml": {
              "type": "string",
              "format": "byte",
              "maxLength": 5592408,
              "description": "Base64 of the exact SDK bytes."
            },
            "result_text": {
              "type": "string",
              "format": "byte",
              "maxLength": 5592408,
              "description": "Base64 of the exact SDK bytes."
            }
          }
        }
      }
    }
  }
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/utilities/{utilityId}Read local utility status and exact terminal result

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

utilityId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Responses

200 · application/json

Successful operation

Required fields: id, product_id, operation, status, attempts

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "product_id",
    "operation",
    "status",
    "attempts"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "operation": {
      "type": "string",
      "enum": [
        "check-iban",
        "check-bic",
        "check-tax-number",
        "check-bufa",
        "check-ewaz",
        "check-idnr",
        "check-widnr",
        "format-tax-number",
        "format-ewaz",
        "convert-tax-number",
        "convert-ewaz",
        "tax-office-states",
        "test-tax-offices",
        "tax-offices",
        "tax-office",
        "field-choices"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "queued",
        "running",
        "completed",
        "failed"
      ]
    },
    "attempts": {
      "type": "integer",
      "minimum": 0
    },
    "result": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "outcome"
      ],
      "properties": {
        "outcome": {
          "type": "string",
          "enum": [
            "succeeded",
            "rejected",
            "failed"
          ]
        },
        "failure": {
          "type": "string"
        },
        "response": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "protocol",
            "operation",
            "request_sha256",
            "sdk_release",
            "sdk_archive_sha256",
            "native_code",
            "version_xml"
          ],
          "properties": {
            "protocol": {
              "type": "integer",
              "enum": [
                1
              ]
            },
            "operation": {
              "type": "string",
              "enum": [
                "check-iban",
                "check-bic",
                "check-tax-number",
                "check-bufa",
                "check-ewaz",
                "check-idnr",
                "check-widnr",
                "format-tax-number",
                "format-ewaz",
                "convert-tax-number",
                "convert-ewaz",
                "tax-office-states",
                "test-tax-offices",
                "tax-offices",
                "tax-office",
                "field-choices"
              ]
            },
            "request_sha256": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            "sdk_release": {
              "type": "string",
              "enum": [
                "44.3.6.0"
              ]
            },
            "sdk_archive_sha256": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            "native_code": {
              "type": "integer",
              "minimum": 0
            },
            "version_xml": {
              "type": "string",
              "format": "byte",
              "maxLength": 5592408,
              "description": "Base64 of the exact SDK bytes."
            },
            "result_xml": {
              "type": "string",
              "format": "byte",
              "maxLength": 5592408,
              "description": "Base64 of the exact SDK bytes."
            },
            "result_text": {
              "type": "string",
              "format": "byte",
              "maxLength": 5592408,
              "description": "Base64 of the exact SDK bytes."
            }
          }
        }
      }
    }
  }
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
POST /products/{productId}/validationsCreateValidation

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Idempotency-Key · header · required

{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9._:-]+$"
}

Request body

application/json · required

Required fields: preparation_id

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "preparation_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    }
  },
  "required": [
    "preparation_id"
  ]
}

Responses

202 · application/json

Successful operation

Required fields: id, product_id, preparation_id, status, attempts

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "preparation_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "status": {
      "type": "string",
      "enum": [
        "queued",
        "running",
        "completed",
        "failed"
      ]
    },
    "attempts": {
      "type": "integer",
      "minimum": 0
    },
    "outcome": {
      "type": "string",
      "enum": [
        "valid",
        "rejected",
        "failed"
      ]
    },
    "native_code": {
      "type": "integer"
    }
  },
  "required": [
    "id",
    "product_id",
    "preparation_id",
    "status",
    "attempts"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/validations/{validationId}GetValidation

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

validationId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

Responses

200 · application/json

Successful operation

Required fields: id, product_id, preparation_id, status, attempts

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "preparation_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "status": {
      "type": "string",
      "enum": [
        "queued",
        "running",
        "completed",
        "failed"
      ]
    },
    "attempts": {
      "type": "integer",
      "minimum": 0
    },
    "outcome": {
      "type": "string",
      "enum": [
        "valid",
        "rejected",
        "failed"
      ]
    },
    "native_code": {
      "type": "integer"
    }
  },
  "required": [
    "id",
    "product_id",
    "preparation_id",
    "status",
    "attempts"
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}
GET /products/{productId}/validations/{validationId}/artifacts/{kind}GetValidationArtifact

Returns retained validation evidence. diagnostics.json is a versioned read projection bound to the frozen preparation and result. Check status before using findings: unavailable is not an empty successful validation. Empty locations mean a global finding. Native text is untrusted plain text; render it escaped. Existing evidence.json and XML bytes are unchanged.

Parameters

X-ERIC-Tenant · header · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

productId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

validationId · path · required

{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}

kind · path · required

{
  "type": "string",
  "enum": [
    "evidence.json",
    "version.xml",
    "result.xml",
    "diagnostics.json"
  ]
}

Responses

200 · application/xml

Successful operation

{
  "type": "string"
}

200 · application/json

Successful operation

{
  "anyOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "schema",
        "status",
        "validation_id",
        "preparation_id",
        "procedure",
        "payload_sha256",
        "review_sha256",
        "request_sha256",
        "source_schema",
        "findings"
      ],
      "properties": {
        "schema": {
          "type": "string",
          "enum": [
            "eric.validation-diagnostics.v1"
          ]
        },
        "status": {
          "type": "string",
          "enum": [
            "available",
            "unavailable"
          ]
        },
        "reason": {
          "type": "string",
          "enum": [
            "native_result_unavailable",
            "unsupported_result",
            "projection_limit"
          ]
        },
        "validation_id": {
          "type": "string"
        },
        "preparation_id": {
          "type": "string"
        },
        "procedure": {
          "type": "string"
        },
        "payload_sha256": {
          "type": "string"
        },
        "review_sha256": {
          "type": "string",
          "description": "SHA-256 of frozen review.json, to which all review_path pointers refer."
        },
        "request_sha256": {
          "type": "string"
        },
        "result_sha256": {
          "type": "string"
        },
        "source_schema": {
          "type": "string"
        },
        "native_code": {
          "type": "integer"
        },
        "findings": {
          "type": "array",
          "maxItems": 4096,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "kind",
              "ticket",
              "locations"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "error",
                  "hint"
                ]
              },
              "ticket": {
                "type": "string",
                "description": "Exact native Nutzdatenticket; never normalized numerically."
              },
              "field_identifier": {
                "type": "string"
              },
              "multiple_line_index": {
                "type": "string"
              },
              "form_sequence": {
                "type": "string"
              },
              "form_line": {
                "type": "string"
              },
              "sub_area": {
                "type": "string"
              },
              "private_id": {
                "type": "string"
              },
              "rule_name": {
                "type": "string"
              },
              "code": {
                "type": "string",
                "description": "Exact FachlicheFehlerId or FachlicheHinweisId string, when supplied."
              },
              "text": {
                "type": "string"
              },
              "semantic_indices": {
                "type": "array",
                "maxItems": 64,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "name",
                    "value"
                  ],
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "value": {
                      "type": "string"
                    }
                  }
                }
              },
              "locations": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "review_path"
                  ],
                  "properties": {
                    "review_path": {
                      "type": "string",
                      "description": "JSON pointer into the immutable preparation review.json. A finding may reference several contributing inputs."
                    },
                    "concept": {
                      "type": "string"
                    },
                    "context": {
                      "type": "string"
                    },
                    "fact_id": {
                      "type": "string"
                    },
                    "source_ref": {
                      "type": "string"
                    },
                    "source_version": {
                      "type": "string"
                    }
                  }
                },
                "description": "Proven frozen review/source locations only. An empty array means global or ambiguous; no location is inferred from text."
              }
            }
          }
        }
      },
      "description": "Additive read projection, never approval or submission authority. Findings preserve native order. Parsing is bounded to 4 MiB UTF-8 XML, 4096 findings, 64 semantic indices per finding and 64 KiB per string; findings JSON is capped at 3 MiB and the complete projection at 4 MiB. Unsupported or oversized evidence is unavailable, never truncated. Raw result.xml remains separately readable."
    },
    {
      "type": "object",
      "additionalProperties": true,
      "description": "Existing evidence.json result envelope."
    }
  ]
}

default · application/problem+json

Fail-closed problem response

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "integer"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}