← All documentation

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

E-Rechnung

XML-Upload und gepinnte asynchrone Validierung sind nachgewiesen; Issuance benötigt Releaseevidenz.

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
# E-Rechnung — Produktion

Die öffentliche Maschinen-API deckt Dokumente und Validierungen ab. Sie stellt keine Rechnung aus und versendet keine Rechnung.

Quelle: devacc-einvoice-platform Commit d4a456dd25a52d250bf003b6984f96d297e8fe2f, 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/einvoice. Maschine: Client Credentials mit private_key_jwt und DPoP. Signaturschlüssel bleiben ausschließlich im Serverprozess.
Quickstart · quickstart.md
Download quickstart.md
# E-Rechnung: 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/einvoice` mit `private_key_jwt` und DPoP beziehen. Den DPoP-Proof an genau den Ziel-Request binden; Nonce-Antworten gemäß Auth-Transport behandeln.
3. Mit einvoice.policies:read GET /einvoice/v1/validation-policies eine Policy wählen. Dokumentbytes mit Content-Digest SHA-256 und stabilem Idempotency-Key an POST /einvoice/v1/documents senden; anschließend mit einvoice.validations:write eine Validierung starten und ihren Status/Ergebnis abrufen.
4. Nur die im `public-openapi.json` dieser Revision gelisteten Operationen verwenden. Bei 429 die veröffentlichten technischen Limits beachten.

Verfügbare Produktions-Scopes: `einvoice.documents:write`, `einvoice.documents:read`, `einvoice.validations:write`, `einvoice.validations:read`, `einvoice.policies:read`, `einvoice.issuance:write`, `einvoice.issuance:read`. Pro Client nur den tatsächlich benötigten Teil beantragen.

Go v0.1.0 ist über den öffentlichen Go-Modul-Proxy installierbar. TypeScript und Python v0.1.0 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 { EInvoiceClient, resourceFor } from "../dist/index.js";

const documentId = "doc_abcdefghijklmnopqrst";
const operationId = "vop_abcdefghijklmnopqrst";
const policyId = "vpol_abcdefghijklmnopqrst";

for (const profile of ["production", "test"]) {
  const transport = {
    async request(target) {
      if (!String(target).startsWith(resourceFor(profile) + "/v1/")) throw new Error("profile crossover");
      const path = new URL(target).pathname;
      let status = 200;
      let body;
      switch (path) {
        case "/einvoice/v1/validation-policies": body = { items: [{ id: policyId }] }; break;
        case "/einvoice/v1/documents": status = 201; body = { id: documentId }; break;
        case "/einvoice/v1/validation-operations": status = 202; body = { id: operationId, status: "queued" }; break;
        case "/einvoice/v1/validation-operations/" + operationId: body = { id: operationId, status: "succeeded" }; break;
        case "/einvoice/v1/validation-operations/" + operationId + "/result": body = { operationId, valid: false, issues: [{ code: "fixture.invalid" }] }; break;
        default: throw new Error("unexpected fixture route");
      }
      return new Response(JSON.stringify(body), { status, headers: { "Content-Type": "application/json" } });
    },
  };
  const client = new EInvoiceClient(profile, transport);
  const policies = await client.listValidationPolicies();
  const document = await client.createDocument(new TextEncoder().encode("<synthetic/>"), "fixture-upload-00000001");
  const operation = await client.createValidationOperation(document.id, policies.items[0].id, "fixture-validate-00000001");
  const terminal = await client.waitValidation(operation.id, 2000);
  const result = await client.getValidationResult(terminal.id);
  process.stdout.write(profile + " fixture: operation=" + terminal.id + " valid=" + result.valid + "\n");
}
Examples · examples/go.go
Download examples/go.go
package main

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

	einvoice "github.com/dev-null-GmbH/d0-sdk/einvoice/go"
)

// This synthetic transport exercises the real product SDK without network
// access or credentials. The shared machine transport is used for live clients.
type fixture struct{ resource string }

func (f fixture) RoundTrip(r *http.Request) (*http.Response, error) {
	if !strings.HasPrefix(r.URL.String(), f.resource+"/v1/") {
		return nil, fmt.Errorf("profile crossover")
	}
	status, body := 200, "{}"
	switch r.URL.Path {
	case "/einvoice/v1/validation-policies":
		body = `{"items":[{"id":"vpol_abcdefghijklmnopqrst"}]}`
	case "/einvoice/v1/documents":
		status, body = 201, `{"id":"doc_abcdefghijklmnopqrst"}`
	case "/einvoice/v1/validation-operations":
		status, body = 202, `{"id":"vop_abcdefghijklmnopqrst","status":"queued"}`
	case "/einvoice/v1/validation-operations/vop_abcdefghijklmnopqrst":
		body = `{"id":"vop_abcdefghijklmnopqrst","status":"succeeded"}`
	case "/einvoice/v1/validation-operations/vop_abcdefghijklmnopqrst/result":
		body = `{"operationId":"vop_abcdefghijklmnopqrst","valid":false,"issues":[{"severity":"error","code":"fixture.invalid","message":"Synthetic"}]}`
	default:
		return nil, fmt.Errorf("unexpected fixture route")
	}
	return &http.Response{StatusCode: status, Header: http.Header{"Content-Type": {"application/json"}}, Body: io.NopCloser(strings.NewReader(body))}, nil
}

func main() {
	for _, profile := range []einvoice.Profile{einvoice.Production, einvoice.Test} {
		resource, _ := profile.Resource()
		client, err := einvoice.NewClient(profile, &http.Client{Transport: fixture{resource}})
		if err != nil {
			panic(err)
		}
		ctx := context.Background()
		policies, err := client.ListValidationPolicies(ctx, 50, "")
		if err != nil {
			panic(err)
		}
		document, err := client.CreateDocument(ctx, []byte("<synthetic/>"), "fixture-upload-00000001")
		if err != nil {
			panic(err)
		}
		operation, err := client.CreateValidationOperation(ctx, document.ID, policies.Items[0].ID, "fixture-validate-00000001")
		if err != nil {
			panic(err)
		}
		terminal, err := client.WaitValidation(ctx, operation.ID, 2*time.Second)
		if err != nil {
			panic(err)
		}
		result, err := client.GetValidationResult(ctx, terminal.ID)
		if err != nil {
			panic(err)
		}
		fmt.Printf("%s fixture: operation=%s valid=%t\n", profile, terminal.ID, result.Valid)
	}
}
Examples · examples/python.py
Download examples/python.py
"""Run both fixed product profiles against a synthetic in-memory transport."""

import io
import json
from urllib.parse import urlsplit

from d0_auth_machine import MachineClient

from d0_einvoice import EInvoiceClient, resource_for

DOCUMENT = "doc_abcdefghijklmnopqrst"
OPERATION = "vop_abcdefghijklmnopqrst"
POLICY = "vpol_abcdefghijklmnopqrst"


class Response:
    def __init__(self, status, value):
        self.status = status
        self.headers = {"Content-Type": "application/json"}
        self.body = io.BytesIO(json.dumps(value).encode())

    def read(self, length):
        return self.body.read(length)

    def close(self):
        self.body.close()


class FixtureMachine(MachineClient):
    def __init__(self, profile):
        self.resource = resource_for(profile)

    def request(self, url, **options):
        if not url.startswith(self.resource + "/v1/"):
            raise ValueError("profile crossover")
        path = urlsplit(url).path
        if path == "/einvoice/v1/validation-policies":
            return Response(200, {"items": [{"id": POLICY}]})
        if path == "/einvoice/v1/documents":
            return Response(201, {"id": DOCUMENT})
        if path == "/einvoice/v1/validation-operations":
            return Response(202, {"id": OPERATION, "status": "queued"})
        if path == "/einvoice/v1/validation-operations/" + OPERATION:
            return Response(200, {"id": OPERATION, "status": "succeeded"})
        if path == "/einvoice/v1/validation-operations/" + OPERATION + "/result":
            return Response(200, {"operationId": OPERATION, "valid": False, "issues": [{"code": "fixture.invalid"}]})
        raise ValueError("unexpected fixture route")


for profile in ("production", "test"):
    client = EInvoiceClient(profile, FixtureMachine(profile))
    policies = client.list_validation_policies()
    document = client.create_document(b"<synthetic/>", "fixture-upload-00000001")
    operation = client.create_validation_operation(document["id"], policies["items"][0]["id"], "fixture-validate-00000001")
    terminal = client.wait_validation(operation["id"], 2)
    result = client.get_validation_result(terminal["id"])
    print(profile, "fixture: operation=", terminal["id"], "valid=", result["valid"])
Error catalog · errors.md
Download errors.md
# E-Rechnung — 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`, `304`, `400`, `401`, `403`, `404`, `409`, `410`, `411`, `413`, `415`, `422`, `429`, `500`, `503`, `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.
Changelog · CHANGELOG.md
Download CHANGELOG.md
# E-Rechnung 2026-10-15-github-archives-release

- Neue unveränderliche Dokumentationsrevision. Die vorige Revision `2026-10-15-go-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 einvoice v0.1.0 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.0 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
# E-Rechnung typescript SDK

Paket: `@dev-null-gmbh/einvoice` v0.1.0, 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-einvoice-0.1.0.tgz
```

Das Offline-Beispiel dieser Revision liegt unter `catalog/v1/bundles/einvoice/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
# E-Rechnung Go SDK

Paket: `github.com/dev-null-GmbH/d0-sdk/einvoice/go` v0.1.0. Gemeinsamer Maschinen-Auth-Transport: `github.com/dev-null-GmbH/d0-sdk/auth/go` v0.1.0. Beide sind über den öffentlichen Go-Modul-Proxy mit aktivierter Checksum-Datenbank aus frischer, anonymer Umgebung installierbar. Lizenz: MIT.

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

Modul-Tags: `einvoice/go/v0.1.0` und `auth/go/v0.1.0`, beide auf `d0-sdk@a7b1730310ccd3decafc299382f4e2f48ebefda7`. Die Quellrevision des API-Vertrags bleibt `devacc-einvoice-platform@d4a456dd25a52d250bf003b6984f96d297e8fe2f`.

Das unveränderte Offline-Fixture aus `devacc-einvoice-platform@d4a456dd25a52d250bf003b6984f96d297e8fe2f:sdk/go/examples/fixture/main.go` liegt unter `catalog/v1/bundles/einvoice/2026-10-15-github-archives-release/examples/go.go` (SHA-256 `88bd16d86548c5c2888608f2b6c03e94db414efe11364d105c94ed46e37b3eb1`). Es demonstriert den Client mit festem production-Profil ohne Netzaufruf. Öffentliche Operationen und Scopes stehen ausschließlich in public-openapi.json; interne und nicht implementierte Operationen sind kein SDK-Vertrag.

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
# E-Rechnung python SDK

Paket: `d0-einvoice` v0.1.0, 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_einvoice-0.1.0-py3-none-any.whl
```

Das Offline-Beispiel dieser Revision liegt unter `catalog/v1/bundles/einvoice/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
POST/documentscreateDocumentImplemented
GET/documents/{documentId}getDocumentImplemented
POST/validation-operationscreateValidationOperationImplemented
GET/validation-operations/{validationOperationId}getValidationOperationImplemented
GET/validation-operations/{validationOperationId}/resultgetValidationResultImplemented
GET/validation-policieslistValidationPoliciesImplemented
GET/validation-policies/{validationPolicyId}getValidationPolicyImplemented
POST/issuance-operationscreateIssuanceOperationDeclared
GET/issuance-operations/{issuanceOperationId}getIssuanceOperationDeclared
GET/issuance-operations/{issuanceOperationId}/resultgetIssuanceResultDeclared
GET/issued-invoices/{invoiceId}/xmlgetIssuedInvoiceXmlDeclared

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.

7 of 7 operations

POST /documentsStore one immutable XML source

Stores the exact request body as a validation-only document. The body is not normalized, transcoded, parsed, or validated by this operation. `Content-Length` is the exact byte count, not a character count, and the sole `Content-Digest` value is computed over those same transmitted representation bytes. An exact `Idempotency-Key` replay returns the original `201` response verbatim. Reusing the key for different bytes, headers, media type, or target is `422`; a still-running exact replay is `409`. Missing length is `411`, an oversized body is `413`, and a count or digest mismatch is `400`. The connection is closed after a body-integrity failure so that unread or surplus bytes cannot become another request.

Parameters

Idempotency-Key · header · required

Opaque, client-generated, high-entropy key unique to this authenticated project and operation route. It is compared as an exact case-sensitive value after HTTP field parsing. Use the same key after an uncertain response; never derive it from invoice data or other PII.

{
  "type": "string",
  "pattern": "^[A-Za-z0-9._~:+/=-]{16,255}$",
  "minLength": 16,
  "maxLength": 255
}

Content-Length · header · required

Canonical positive decimal byte length of the exact XML representation. Transfer-Encoding and conflicting or duplicate lengths are forbidden.

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

Content-Digest · header · required

Exactly one canonical RFC 9530 SHA-256 member over the representation bytes. Other algorithms, dictionaries with multiple members, and duplicate field lines are rejected.

{
  "type": "string",
  "description": "Canonical single-member RFC 9530 SHA-256 Content-Digest value.",
  "pattern": "^sha-256=:[A-Za-z0-9+/]{43}=:$",
  "minLength": 54,
  "maxLength": 54
}

Request body

application/xml · required

{
  "type": "string",
  "format": "binary",
  "contentMediaType": "application/xml",
  "description": "Exact, unencoded XML representation bytes."
}

Responses

201 · application/json

The exact bytes were verified and durably stored.

Required fields: schema, id, mediaType, byteIdentity, createdAt, expiresAt

{
  "type": "object",
  "additionalProperties": false,
  "description": "Immutable metadata for exact validation-only XML bytes.",
  "required": [
    "schema",
    "id",
    "mediaType",
    "byteIdentity",
    "createdAt",
    "expiresAt"
  ],
  "properties": {
    "schema": {
      "type": "string",
      "const": "d0.einvoice.document.v1",
      "minLength": 23,
      "maxLength": 23
    },
    "id": {
      "type": "string",
      "description": "Opaque public identifier; its characters carry no semantics.",
      "pattern": "^doc_[A-Za-z0-9]{20,80}$",
      "minLength": 24,
      "maxLength": 84
    },
    "mediaType": {
      "type": "string",
      "const": "application/xml",
      "minLength": 15,
      "maxLength": 15
    },
    "byteIdentity": {
      "type": "object",
      "additionalProperties": false,
      "description": "Exact immutable identity of one byte representation.",
      "required": [
        "sizeBytes",
        "sha256",
        "contentDigest"
      ],
      "properties": {
        "sizeBytes": {
          "type": "integer",
          "format": "int64",
          "minimum": 1,
          "maximum": 20971520
        },
        "sha256": {
          "type": "string",
          "description": "Lowercase hexadecimal SHA-256 digest.",
          "pattern": "^[0-9a-f]{64}$",
          "minLength": 64,
          "maxLength": 64
        },
        "contentDigest": {
          "type": "string",
          "description": "Canonical single-member RFC 9530 SHA-256 Content-Digest value.",
          "pattern": "^sha-256=:[A-Za-z0-9+/]{43}=:$",
          "minLength": 54,
          "maxLength": 54
        }
      }
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "RFC 3339 timestamp with an explicit UTC offset.",
      "minLength": 20,
      "maxLength": 64
    },
    "expiresAt": {
      "allOf": [
        {
          "type": "string",
          "format": "date-time",
          "description": "RFC 3339 timestamp with an explicit UTC offset.",
          "minLength": 20,
          "maxLength": 64
        }
      ],
      "description": "Declared deletion deadline for validation-only source bytes."
    }
  }
}

400 · application/problem+json

Malformed request, headers, query, JSON, or byte-integrity failure.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

401 · application/problem+json

OAuth token or its required DPoP proof is absent, invalid, expired, or replayed.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

403 · application/problem+json

The authenticated client lacks a required scope.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

409 · application/problem+json

Current resource or idempotency state conflicts with the request. Common types include `request-in-progress`, `result-not-ready`, and `operation-failed`.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

411 · application/problem+json

A canonical positive Content-Length is required for this upload.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

413 · application/problem+json

Declared or observed content exceeds this endpoint's exact representation limit.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

415 · application/problem+json

Content-Type, charset parameter, or content coding is unsupported.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

422 · application/problem+json

The well-formed request cannot be accepted. Common types include `idempotency-key-reused`, `validation-policy-unavailable`, and `document-not-validatable`.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

429 · application/problem+json

Project or client rate limit was exceeded.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

500 · application/problem+json

Unexpected internal failure with no sensitive diagnostics.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

503 · application/problem+json

A required durable platform dependency is temporarily unavailable.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

default · application/problem+json

Any other bounded 4xx or 5xx RFC 9457 response.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}
GET /documents/{documentId}Fetch immutable document metadata

Returns exact-byte metadata, never the XML body or object-store coordinates. A document outside the authenticated project is reported as `404`. Expired validation-only content is reported as `410` and cannot be used to create a new validation operation.

Parameters

documentId · path · required

Opaque public document identifier; clients must not parse it.

{
  "type": "string",
  "description": "Opaque public identifier; its characters carry no semantics.",
  "pattern": "^doc_[A-Za-z0-9]{20,80}$",
  "minLength": 24,
  "maxLength": 84
}

If-None-Match · header

RFC 9110 entity-tag condition. Send the last strong ETag to avoid retransmitting an unchanged representation. Lists and `*` are accepted according to the HTTP field grammar.

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

Responses

200 · application/json

Immutable metadata for the exact stored source.

Required fields: schema, id, mediaType, byteIdentity, createdAt, expiresAt

{
  "type": "object",
  "additionalProperties": false,
  "description": "Immutable metadata for exact validation-only XML bytes.",
  "required": [
    "schema",
    "id",
    "mediaType",
    "byteIdentity",
    "createdAt",
    "expiresAt"
  ],
  "properties": {
    "schema": {
      "type": "string",
      "const": "d0.einvoice.document.v1",
      "minLength": 23,
      "maxLength": 23
    },
    "id": {
      "type": "string",
      "description": "Opaque public identifier; its characters carry no semantics.",
      "pattern": "^doc_[A-Za-z0-9]{20,80}$",
      "minLength": 24,
      "maxLength": 84
    },
    "mediaType": {
      "type": "string",
      "const": "application/xml",
      "minLength": 15,
      "maxLength": 15
    },
    "byteIdentity": {
      "type": "object",
      "additionalProperties": false,
      "description": "Exact immutable identity of one byte representation.",
      "required": [
        "sizeBytes",
        "sha256",
        "contentDigest"
      ],
      "properties": {
        "sizeBytes": {
          "type": "integer",
          "format": "int64",
          "minimum": 1,
          "maximum": 20971520
        },
        "sha256": {
          "type": "string",
          "description": "Lowercase hexadecimal SHA-256 digest.",
          "pattern": "^[0-9a-f]{64}$",
          "minLength": 64,
          "maxLength": 64
        },
        "contentDigest": {
          "type": "string",
          "description": "Canonical single-member RFC 9530 SHA-256 Content-Digest value.",
          "pattern": "^sha-256=:[A-Za-z0-9+/]{43}=:$",
          "minLength": 54,
          "maxLength": 54
        }
      }
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "RFC 3339 timestamp with an explicit UTC offset.",
      "minLength": 20,
      "maxLength": 64
    },
    "expiresAt": {
      "allOf": [
        {
          "type": "string",
          "format": "date-time",
          "description": "RFC 3339 timestamp with an explicit UTC offset.",
          "minLength": 20,
          "maxLength": 64
        }
      ],
      "description": "Declared deletion deadline for validation-only source bytes."
    }
  }
}

304

The selected representation has the supplied entity tag.

401 · application/problem+json

OAuth token or its required DPoP proof is absent, invalid, expired, or replayed.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

403 · application/problem+json

The authenticated client lacks a required scope.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

404 · application/problem+json

Resource does not exist in the authenticated project.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

410 · application/problem+json

Validation-only source bytes have expired and are unavailable.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

429 · application/problem+json

Project or client rate limit was exceeded.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

500 · application/problem+json

Unexpected internal failure with no sensitive diagnostics.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

503 · application/problem+json

A required durable platform dependency is temporarily unavailable.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

default · application/problem+json

Any other bounded 4xx or 5xx RFC 9457 response.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}
POST /validation-operationsQueue validation against an explicit pinned policy

Creates durable work for one immutable XML document and one explicit validation-policy id. The policy id resolves to a frozen manifest before the operation is committed; retries and worker attempts never select a newer policy, validator, or ruleset. The response is always the original queued snapshot for an exact `Idempotency-Key` replay, even if the operation has since become terminal. Fetch `Location` for current state. A reused key with a different exact JSON representation is `422`; an exact replay still being committed is `409` with `Retry-After`. Duplicate JSON names, unknown members, explicit nulls, trailing JSON values, unavailable policies, expired documents, and cross-project references are rejected before work is queued. The exact UTF-8 JSON representation, including insignificant whitespace, is limited to 8192 bytes; a larger representation is `413`. HTTP transfer framing is decoded before fingerprinting and is not part of the representation; representation content codings remain unsupported.

Parameters

Idempotency-Key · header · required

Opaque, client-generated, high-entropy key unique to this authenticated project and operation route. It is compared as an exact case-sensitive value after HTTP field parsing. Use the same key after an uncertain response; never derive it from invoice data or other PII.

{
  "type": "string",
  "pattern": "^[A-Za-z0-9._~:+/=-]{16,255}$",
  "minLength": 16,
  "maxLength": 255
}

Request body

application/json · required

Required fields: documentId, validationPolicyId

{
  "type": "object",
  "additionalProperties": false,
  "description": "Exact immutable source and explicit policy selection.",
  "required": [
    "documentId",
    "validationPolicyId"
  ],
  "properties": {
    "documentId": {
      "type": "string",
      "description": "Opaque public identifier; its characters carry no semantics.",
      "pattern": "^doc_[A-Za-z0-9]{20,80}$",
      "minLength": 24,
      "maxLength": 84
    },
    "validationPolicyId": {
      "type": "string",
      "description": "Opaque id pinning exactly one immutable policy manifest.",
      "pattern": "^vpol_[A-Za-z0-9]{20,80}$",
      "minLength": 25,
      "maxLength": 85
    }
  }
}

Responses

202 · application/json

Validation was durably queued, or this is an exact replay.

Required fields: schema, id, documentId, validationPolicyId, status, requestedAt, updatedAt

{
  "x-d0-wire-variant": "queued",
  "type": "object",
  "additionalProperties": false,
  "description": "Durable work accepted but not yet started by a processor worker.",
  "required": [
    "schema",
    "id",
    "documentId",
    "validationPolicyId",
    "status",
    "requestedAt",
    "updatedAt"
  ],
  "properties": {
    "schema": {
      "type": "string",
      "const": "d0.einvoice.validation-operation.v1",
      "minLength": 35,
      "maxLength": 35
    },
    "id": {
      "type": "string",
      "description": "Opaque public identifier; its characters carry no semantics.",
      "pattern": "^vop_[A-Za-z0-9]{20,80}$",
      "minLength": 24,
      "maxLength": 84
    },
    "documentId": {
      "type": "string",
      "description": "Opaque public identifier; its characters carry no semantics.",
      "pattern": "^doc_[A-Za-z0-9]{20,80}$",
      "minLength": 24,
      "maxLength": 84
    },
    "validationPolicyId": {
      "type": "string",
      "description": "Opaque id pinning exactly one immutable policy manifest.",
      "pattern": "^vpol_[A-Za-z0-9]{20,80}$",
      "minLength": 25,
      "maxLength": 85
    },
    "status": {
      "type": "string",
      "const": "queued",
      "minLength": 6,
      "maxLength": 6
    },
    "requestedAt": {
      "type": "string",
      "format": "date-time",
      "description": "RFC 3339 timestamp with an explicit UTC offset.",
      "minLength": 20,
      "maxLength": 64
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "RFC 3339 timestamp with an explicit UTC offset.",
      "minLength": 20,
      "maxLength": 64
    }
  }
}

400 · application/problem+json

Malformed request, headers, query, JSON, or byte-integrity failure.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

401 · application/problem+json

OAuth token or its required DPoP proof is absent, invalid, expired, or replayed.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

403 · application/problem+json

The authenticated client lacks a required scope.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

404 · application/problem+json

Resource does not exist in the authenticated project.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

409 · application/problem+json

Current resource or idempotency state conflicts with the request. Common types include `request-in-progress`, `result-not-ready`, and `operation-failed`.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

410 · application/problem+json

Validation-only source bytes have expired and are unavailable.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

413 · application/problem+json

Declared or observed content exceeds this endpoint's exact representation limit.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

415 · application/problem+json

Content-Type, charset parameter, or content coding is unsupported.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

422 · application/problem+json

The well-formed request cannot be accepted. Common types include `idempotency-key-reused`, `validation-policy-unavailable`, and `document-not-validatable`.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

429 · application/problem+json

Project or client rate limit was exceeded.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

500 · application/problem+json

Unexpected internal failure with no sensitive diagnostics.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

503 · application/problem+json

A required durable platform dependency is temporarily unavailable.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

default · application/problem+json

Any other bounded 4xx or 5xx RFC 9457 response.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}
GET /validation-operations/{validationOperationId}Fetch current validation state

Returns the current monotonic state. `Location` remains the canonical operation URI for its lifetime. `Retry-After` is present while state is `queued` or `running` and absent once terminal. Send `If-None-Match` to receive `304` when no observable transition occurred. The strong `ETag` changes at every transition and becomes permanent at `succeeded` or `failed`.

Parameters

validationOperationId · path · required

Opaque public validation-operation identifier.

{
  "type": "string",
  "description": "Opaque public identifier; its characters carry no semantics.",
  "pattern": "^vop_[A-Za-z0-9]{20,80}$",
  "minLength": 24,
  "maxLength": 84
}

If-None-Match · header

RFC 9110 entity-tag condition. Send the last strong ETag to avoid retransmitting an unchanged representation. Lists and `*` are accepted according to the HTTP field grammar.

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

Responses

200 · application/json

Current durable validation state.

{
  "description": "Durable state discriminated by `status`. Variants are fully closed and\nexplicit null values are never used.\n",
  "oneOf": [
    {
      "x-d0-wire-variant": "queued",
      "type": "object",
      "additionalProperties": false,
      "description": "Durable work accepted but not yet started by a processor worker.",
      "required": [
        "schema",
        "id",
        "documentId",
        "validationPolicyId",
        "status",
        "requestedAt",
        "updatedAt"
      ],
      "properties": {
        "schema": {
          "type": "string",
          "const": "d0.einvoice.validation-operation.v1",
          "minLength": 35,
          "maxLength": 35
        },
        "id": {
          "type": "string",
          "description": "Opaque public identifier; its characters carry no semantics.",
          "pattern": "^vop_[A-Za-z0-9]{20,80}$",
          "minLength": 24,
          "maxLength": 84
        },
        "documentId": {
          "type": "string",
          "description": "Opaque public identifier; its characters carry no semantics.",
          "pattern": "^doc_[A-Za-z0-9]{20,80}$",
          "minLength": 24,
          "maxLength": 84
        },
        "validationPolicyId": {
          "type": "string",
          "description": "Opaque id pinning exactly one immutable policy manifest.",
          "pattern": "^vpol_[A-Za-z0-9]{20,80}$",
          "minLength": 25,
          "maxLength": 85
        },
        "status": {
          "type": "string",
          "const": "queued",
          "minLength": 6,
          "maxLength": 6
        },
        "requestedAt": {
          "type": "string",
          "format": "date-time",
          "description": "RFC 3339 timestamp with an explicit UTC offset.",
          "minLength": 20,
          "maxLength": 64
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "RFC 3339 timestamp with an explicit UTC offset.",
          "minLength": 20,
          "maxLength": 64
        }
      }
    },
    {
      "x-d0-wire-variant": "running",
      "type": "object",
      "additionalProperties": false,
      "description": "Processing has started; internal retries remain in this state.",
      "required": [
        "schema",
        "id",
        "documentId",
        "validationPolicyId",
        "status",
        "requestedAt",
        "updatedAt",
        "startedAt"
      ],
      "properties": {
        "schema": {
          "type": "string",
          "const": "d0.einvoice.validation-operation.v1",
          "minLength": 35,
          "maxLength": 35
        },
        "id": {
          "type": "string",
          "description": "Opaque public identifier; its characters carry no semantics.",
          "pattern": "^vop_[A-Za-z0-9]{20,80}$",
          "minLength": 24,
          "maxLength": 84
        },
        "documentId": {
          "type": "string",
          "description": "Opaque public identifier; its characters carry no semantics.",
          "pattern": "^doc_[A-Za-z0-9]{20,80}$",
          "minLength": 24,
          "maxLength": 84
        },
        "validationPolicyId": {
          "type": "string",
          "description": "Opaque id pinning exactly one immutable policy manifest.",
          "pattern": "^vpol_[A-Za-z0-9]{20,80}$",
          "minLength": 25,
          "maxLength": 85
        },
        "status": {
          "type": "string",
          "const": "running",
          "minLength": 7,
          "maxLength": 7
        },
        "requestedAt": {
          "type": "string",
          "format": "date-time",
          "description": "RFC 3339 timestamp with an explicit UTC offset.",
          "minLength": 20,
          "maxLength": 64
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "RFC 3339 timestamp with an explicit UTC offset.",
          "minLength": 20,
          "maxLength": 64
        },
        "startedAt": {
          "type": "string",
          "format": "date-time",
          "description": "RFC 3339 timestamp with an explicit UTC offset.",
          "minLength": 20,
          "maxLength": 64
        }
      }
    },
    {
      "x-d0-wire-variant": "succeeded",
      "type": "object",
      "additionalProperties": false,
      "description": "Immutable terminal state proving that validation completed. The linked\nresult may report `valid: false`.\n",
      "required": [
        "schema",
        "id",
        "documentId",
        "validationPolicyId",
        "status",
        "requestedAt",
        "updatedAt",
        "startedAt",
        "completedAt",
        "resultId",
        "resultUri"
      ],
      "properties": {
        "schema": {
          "type": "string",
          "const": "d0.einvoice.validation-operation.v1",
          "minLength": 35,
          "maxLength": 35
        },
        "id": {
          "type": "string",
          "description": "Opaque public identifier; its characters carry no semantics.",
          "pattern": "^vop_[A-Za-z0-9]{20,80}$",
          "minLength": 24,
          "maxLength": 84
        },
        "documentId": {
          "type": "string",
          "description": "Opaque public identifier; its characters carry no semantics.",
          "pattern": "^doc_[A-Za-z0-9]{20,80}$",
          "minLength": 24,
          "maxLength": 84
        },
        "validationPolicyId": {
          "type": "string",
          "description": "Opaque id pinning exactly one immutable policy manifest.",
          "pattern": "^vpol_[A-Za-z0-9]{20,80}$",
          "minLength": 25,
          "maxLength": 85
        },
        "status": {
          "type": "string",
          "const": "succeeded",
          "minLength": 9,
          "maxLength": 9
        },
        "requestedAt": {
          "type": "string",
          "format": "date-time",
          "description": "RFC 3339 timestamp with an explicit UTC offset.",
          "minLength": 20,
          "maxLength": 64
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "RFC 3339 timestamp with an explicit UTC offset.",
          "minLength": 20,
          "maxLength": 64
        },
        "startedAt": {
          "type": "string",
          "format": "date-time",
          "description": "RFC 3339 timestamp with an explicit UTC offset.",
          "minLength": 20,
          "maxLength": 64
        },
        "completedAt": {
          "type": "string",
          "format": "date-time",
          "description": "RFC 3339 timestamp with an explicit UTC offset.",
          "minLength": 20,
          "maxLength": 64
        },
        "resultId": {
          "type": "string",
          "description": "Opaque public identifier; its characters carry no semantics.",
          "pattern": "^vrs_[A-Za-z0-9]{20,80}$",
          "minLength": 24,
          "maxLength": 84
        },
        "resultUri": {
          "type": "string",
          "format": "uri-reference",
          "pattern": "^/einvoice/v1/validation-operations/[^/?#]{1,96}/result$",
          "minLength": 43,
          "maxLength": 207
        }
      }
    },
    {
      "x-d0-wire-variant": "failed",
      "type": "object",
      "additionalProperties": false,
      "description": "Immutable terminal processing failure with no validation result.",
      "required": [
        "schema",
        "id",
        "documentId",
        "validationPolicyId",
        "status",
        "requestedAt",
        "updatedAt",
        "startedAt",
        "completedAt",
        "failure"
      ],
      "properties": {
        "schema": {
          "type": "string",
          "const": "d0.einvoice.validation-operation.v1",
          "minLength": 35,
          "maxLength": 35
        },
        "id": {
          "type": "string",
          "description": "Opaque public identifier; its characters carry no semantics.",
          "pattern": "^vop_[A-Za-z0-9]{20,80}$",
          "minLength": 24,
          "maxLength": 84
        },
        "documentId": {
          "type": "string",
          "description": "Opaque public identifier; its characters carry no semantics.",
          "pattern": "^doc_[A-Za-z0-9]{20,80}$",
          "minLength": 24,
          "maxLength": 84
        },
        "validationPolicyId": {
          "type": "string",
          "description": "Opaque id pinning exactly one immutable policy manifest.",
          "pattern": "^vpol_[A-Za-z0-9]{20,80}$",
          "minLength": 25,
          "maxLength": 85
        },
        "status": {
          "type": "string",
          "const": "failed",
          "minLength": 6,
          "maxLength": 6
        },
        "requestedAt": {
          "type": "string",
          "format": "date-time",
          "description": "RFC 3339 timestamp with an explicit UTC offset.",
          "minLength": 20,
          "maxLength": 64
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "RFC 3339 timestamp with an explicit UTC offset.",
          "minLength": 20,
          "maxLength": 64
        },
        "startedAt": {
          "type": "string",
          "format": "date-time",
          "description": "RFC 3339 timestamp with an explicit UTC offset.",
          "minLength": 20,
          "maxLength": 64
        },
        "completedAt": {
          "type": "string",
          "format": "date-time",
          "description": "RFC 3339 timestamp with an explicit UTC offset.",
          "minLength": 20,
          "maxLength": 64
        },
        "failure": {
          "type": "object",
          "additionalProperties": false,
          "description": "Stable public classification without processor diagnostics.",
          "required": [
            "code"
          ],
          "properties": {
            "code": {
              "type": "string",
              "enum": [
                "source-unavailable",
                "processor-unavailable",
                "validation-processing-failed"
              ],
              "minLength": 18,
              "maxLength": 36
            }
          }
        }
      }
    }
  ],
  "discriminator": {
    "propertyName": "status",
    "mapping": {
      "queued": "#/components/schemas/ValidationOperationQueued",
      "running": "#/components/schemas/ValidationOperationRunning",
      "succeeded": "#/components/schemas/ValidationOperationSucceeded",
      "failed": "#/components/schemas/ValidationOperationFailed"
    }
  }
}

304

Operation representation is unchanged.

401 · application/problem+json

OAuth token or its required DPoP proof is absent, invalid, expired, or replayed.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

403 · application/problem+json

The authenticated client lacks a required scope.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

404 · application/problem+json

Resource does not exist in the authenticated project.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

429 · application/problem+json

Project or client rate limit was exceeded.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

500 · application/problem+json

Unexpected internal failure with no sensitive diagnostics.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

503 · application/problem+json

A required durable platform dependency is temporarily unavailable.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

default · application/problem+json

Any other bounded 4xx or 5xx RFC 9457 response.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}
GET /validation-operations/{validationOperationId}/resultFetch an immutable validation result

Exists only after the operation succeeds. A queued or running operation, or a failed operation that can never produce a result, returns `409` with a stable problem type. The result contains exact source identity, the frozen policy manifest, processor and validator components, ruleset artifacts, and their SHA-256 digests. `valid: false` is a normal `200` result proving that validation completed; it is never represented as a failed operation or a problem response.

Parameters

validationOperationId · path · required

Opaque public validation-operation identifier.

{
  "type": "string",
  "description": "Opaque public identifier; its characters carry no semantics.",
  "pattern": "^vop_[A-Za-z0-9]{20,80}$",
  "minLength": 24,
  "maxLength": 84
}

If-None-Match · header

RFC 9110 entity-tag condition. Send the last strong ETag to avoid retransmitting an unchanged representation. Lists and `*` are accepted according to the HTTP field grammar.

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

Responses

200 · application/json

Immutable completed validation evidence.

Required fields: schema, id, operationId, source, validationPolicy, valid, syntax, validatedAt, evidence, issues

{
  "type": "object",
  "additionalProperties": false,
  "description": "Immutable evidence for one completed validation. Invalid XML or an\ninvoice that violates the selected policy is represented by\n`valid: false`, at least one error issue, and a successful operation.\n",
  "required": [
    "schema",
    "id",
    "operationId",
    "source",
    "validationPolicy",
    "valid",
    "syntax",
    "validatedAt",
    "evidence",
    "issues"
  ],
  "properties": {
    "schema": {
      "type": "string",
      "const": "d0.einvoice.validation-result.v1",
      "minLength": 32,
      "maxLength": 32
    },
    "id": {
      "type": "string",
      "description": "Opaque public identifier; its characters carry no semantics.",
      "pattern": "^vrs_[A-Za-z0-9]{20,80}$",
      "minLength": 24,
      "maxLength": 84
    },
    "operationId": {
      "type": "string",
      "description": "Opaque public identifier; its characters carry no semantics.",
      "pattern": "^vop_[A-Za-z0-9]{20,80}$",
      "minLength": 24,
      "maxLength": 84
    },
    "source": {
      "type": "object",
      "additionalProperties": false,
      "description": "Exact immutable source bytes consumed by the processor.",
      "required": [
        "documentId",
        "mediaType",
        "byteIdentity"
      ],
      "properties": {
        "documentId": {
          "type": "string",
          "description": "Opaque public identifier; its characters carry no semantics.",
          "pattern": "^doc_[A-Za-z0-9]{20,80}$",
          "minLength": 24,
          "maxLength": 84
        },
        "mediaType": {
          "type": "string",
          "const": "application/xml",
          "minLength": 15,
          "maxLength": 15
        },
        "byteIdentity": {
          "type": "object",
          "additionalProperties": false,
          "description": "Exact immutable identity of one byte representation.",
          "required": [
            "sizeBytes",
            "sha256",
            "contentDigest"
          ],
          "properties": {
            "sizeBytes": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 20971520
            },
            "sha256": {
              "type": "string",
              "description": "Lowercase hexadecimal SHA-256 digest.",
              "pattern": "^[0-9a-f]{64}$",
              "minLength": 64,
              "maxLength": 64
            },
            "contentDigest": {
              "type": "string",
              "description": "Canonical single-member RFC 9530 SHA-256 Content-Digest value.",
              "pattern": "^sha-256=:[A-Za-z0-9+/]{43}=:$",
              "minLength": 54,
              "maxLength": 54
            }
          }
        }
      }
    },
    "validationPolicy": {
      "type": "object",
      "additionalProperties": false,
      "description": "Frozen policy manifest selected before work was queued.",
      "required": [
        "id",
        "version",
        "manifestSha256",
        "manifestContentDigest"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Opaque id pinning exactly one immutable policy manifest.",
          "pattern": "^vpol_[A-Za-z0-9]{20,80}$",
          "minLength": 25,
          "maxLength": 85
        },
        "version": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "manifestSha256": {
          "type": "string",
          "description": "Lowercase hexadecimal SHA-256 digest.",
          "pattern": "^[0-9a-f]{64}$",
          "minLength": 64,
          "maxLength": 64
        },
        "manifestContentDigest": {
          "type": "string",
          "description": "Canonical single-member RFC 9530 SHA-256 Content-Digest value.",
          "pattern": "^sha-256=:[A-Za-z0-9+/]{43}=:$",
          "minLength": 54,
          "maxLength": 54
        }
      }
    },
    "valid": {
      "type": "boolean"
    },
    "syntax": {
      "type": "string",
      "enum": [
        "ubl",
        "cii",
        "unknown"
      ],
      "minLength": 3,
      "maxLength": 7
    },
    "profile": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048
    },
    "validatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "RFC 3339 timestamp with an explicit UTC offset.",
      "minLength": 20,
      "maxLength": 64
    },
    "evidence": {
      "type": "object",
      "additionalProperties": false,
      "description": "Exact software and compliance artifacts used for this result.",
      "required": [
        "processor",
        "validator",
        "rulesets"
      ],
      "properties": {
        "processor": {
          "allOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "description": "Version and SHA-256 identity of one executed or loaded artifact.",
              "required": [
                "kind",
                "name",
                "version",
                "artifactSha256",
                "artifactContentDigest"
              ],
              "properties": {
                "kind": {
                  "type": "string",
                  "enum": [
                    "processor",
                    "validator",
                    "ruleset"
                  ],
                  "minLength": 7,
                  "maxLength": 9
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "version": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "artifactSha256": {
                  "type": "string",
                  "description": "Lowercase hexadecimal SHA-256 digest.",
                  "pattern": "^[0-9a-f]{64}$",
                  "minLength": 64,
                  "maxLength": 64
                },
                "artifactContentDigest": {
                  "type": "string",
                  "description": "Canonical single-member RFC 9530 SHA-256 Content-Digest value.",
                  "pattern": "^sha-256=:[A-Za-z0-9+/]{43}=:$",
                  "minLength": 54,
                  "maxLength": 54
                }
              }
            },
            {
              "type": "object",
              "required": [
                "kind"
              ],
              "properties": {
                "kind": {
                  "const": "processor"
                }
              }
            }
          ]
        },
        "validator": {
          "allOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "description": "Version and SHA-256 identity of one executed or loaded artifact.",
              "required": [
                "kind",
                "name",
                "version",
                "artifactSha256",
                "artifactContentDigest"
              ],
              "properties": {
                "kind": {
                  "type": "string",
                  "enum": [
                    "processor",
                    "validator",
                    "ruleset"
                  ],
                  "minLength": 7,
                  "maxLength": 9
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "version": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "artifactSha256": {
                  "type": "string",
                  "description": "Lowercase hexadecimal SHA-256 digest.",
                  "pattern": "^[0-9a-f]{64}$",
                  "minLength": 64,
                  "maxLength": 64
                },
                "artifactContentDigest": {
                  "type": "string",
                  "description": "Canonical single-member RFC 9530 SHA-256 Content-Digest value.",
                  "pattern": "^sha-256=:[A-Za-z0-9+/]{43}=:$",
                  "minLength": 54,
                  "maxLength": 54
                }
              }
            },
            {
              "type": "object",
              "required": [
                "kind"
              ],
              "properties": {
                "kind": {
                  "const": "validator"
                }
              }
            }
          ]
        },
        "rulesets": {
          "type": "array",
          "description": "Ordered immutable compliance evidence. The first component is the primary ruleset that produced the validation finding; later components preserve additional provenance artifacts loaded by that policy.",
          "minItems": 1,
          "maxItems": 16,
          "uniqueItems": true,
          "items": {
            "allOf": [
              {
                "type": "object",
                "additionalProperties": false,
                "description": "Version and SHA-256 identity of one executed or loaded artifact.",
                "required": [
                  "kind",
                  "name",
                  "version",
                  "artifactSha256",
                  "artifactContentDigest"
                ],
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "processor",
                      "validator",
                      "ruleset"
                    ],
                    "minLength": 7,
                    "maxLength": 9
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "version": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "artifactSha256": {
                    "type": "string",
                    "description": "Lowercase hexadecimal SHA-256 digest.",
                    "pattern": "^[0-9a-f]{64}$",
                    "minLength": 64,
                    "maxLength": 64
                  },
                  "artifactContentDigest": {
                    "type": "string",
                    "description": "Canonical single-member RFC 9530 SHA-256 Content-Digest value.",
                    "pattern": "^sha-256=:[A-Za-z0-9+/]{43}=:$",
                    "minLength": 54,
                    "maxLength": 54
                  }
                }
              },
              {
                "type": "object",
                "required": [
                  "kind"
                ],
                "properties": {
                  "kind": {
                    "const": "ruleset"
                  }
                }
              }
            ]
          }
        }
      }
    },
    "issues": {
      "type": "array",
      "maxItems": 1000,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "description": "Structured policy finding. Message and location are bounded, stable, and\ncontain no invoice values, customer data, or attacker-controlled parser\ntext.\n",
        "required": [
          "severity",
          "code",
          "message"
        ],
        "properties": {
          "severity": {
            "type": "string",
            "enum": [
              "error",
              "warning",
              "information"
            ],
            "minLength": 5,
            "maxLength": 11
          },
          "code": {
            "type": "string",
            "description": "Stable ASCII identifier emitted by the pinned compliance ruleset;\nnever free-form diagnostic text or invoice-derived data.\n",
            "minLength": 1,
            "maxLength": 256,
            "pattern": "^[A-Za-z][A-Za-z0-9]*(?:[._:-][A-Za-z0-9]+)*$"
          },
          "message": {
            "type": "string",
            "minLength": 1,
            "maxLength": 8192
          },
          "location": {
            "type": "string",
            "minLength": 1,
            "maxLength": 8192
          }
        }
      }
    }
  },
  "oneOf": [
    {
      "title": "Valid validation result",
      "x-d0-wire-variant": "valid",
      "required": [
        "valid",
        "profile"
      ],
      "properties": {
        "valid": {
          "const": true
        },
        "syntax": {
          "enum": [
            "ubl",
            "cii"
          ]
        },
        "issues": {
          "not": {
            "contains": {
              "type": "object",
              "properties": {
                "severity": {
                  "const": "error"
                }
              },
              "required": [
                "severity"
              ]
            }
          }
        }
      }
    },
    {
      "title": "Invalid validation result with recognized syntax",
      "x-d0-wire-variant": "invalid-recognized",
      "required": [
        "valid"
      ],
      "properties": {
        "valid": {
          "const": false
        },
        "syntax": {
          "enum": [
            "ubl",
            "cii"
          ]
        },
        "issues": {
          "minItems": 1,
          "contains": {
            "type": "object",
            "properties": {
              "severity": {
                "const": "error"
              }
            },
            "required": [
              "severity"
            ]
          }
        }
      }
    },
    {
      "title": "Invalid validation result with unknown syntax",
      "x-d0-wire-variant": "invalid-unknown",
      "required": [
        "valid"
      ],
      "properties": {
        "valid": {
          "const": false
        },
        "syntax": {
          "const": "unknown"
        },
        "issues": {
          "minItems": 1,
          "contains": {
            "type": "object",
            "properties": {
              "severity": {
                "const": "error"
              }
            },
            "required": [
              "severity"
            ]
          }
        }
      },
      "not": {
        "properties": {
          "profile": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2048
          }
        },
        "required": [
          "profile"
        ]
      }
    }
  ]
}

304

The selected representation has the supplied entity tag.

401 · application/problem+json

OAuth token or its required DPoP proof is absent, invalid, expired, or replayed.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

403 · application/problem+json

The authenticated client lacks a required scope.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

404 · application/problem+json

Resource does not exist in the authenticated project.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

409 · application/problem+json

Current resource or idempotency state conflicts with the request. Common types include `request-in-progress`, `result-not-ready`, and `operation-failed`.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

429 · application/problem+json

Project or client rate limit was exceeded.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

500 · application/problem+json

Unexpected internal failure with no sensitive diagnostics.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

503 · application/problem+json

A required durable platform dependency is temporarily unavailable.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

default · application/problem+json

Any other bounded 4xx or 5xx RFC 9457 response.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}
GET /validation-policiesList validation policies

Lists immutable policy manifests visible to the authenticated project. `available` and `deprecated` policies may be selected for new operations; `withdrawn` policies remain discoverable for historical evidence but are rejected by new validation requests. Pagination order is stable for the lifetime of a cursor.

Parameters

limit · query

Maximum number of policies to return.

{
  "type": "integer",
  "format": "int32",
  "minimum": 1,
  "maximum": 100,
  "default": 50
}

cursor · query

Opaque cursor returned by the preceding page.

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

If-None-Match · header

RFC 9110 entity-tag condition. Send the last strong ETag to avoid retransmitting an unchanged representation. Lists and `*` are accepted according to the HTTP field grammar.

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

Responses

200 · application/json

One bounded page of validation policies.

Required fields: schema, items

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema",
    "items"
  ],
  "properties": {
    "schema": {
      "type": "string",
      "const": "d0.einvoice.validation-policy-page.v1",
      "minLength": 37,
      "maxLength": 37
    },
    "items": {
      "type": "array",
      "maxItems": 100,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "description": "Discoverable lifecycle metadata plus an immutable canonical policy\nmanifest. Lifecycle `status` may change; every other field is frozen.\n",
        "required": [
          "schema",
          "id",
          "name",
          "version",
          "status",
          "manifestSha256",
          "manifestContentDigest",
          "acceptedSyntaxes",
          "profiles",
          "validator",
          "rulesets",
          "publishedAt"
        ],
        "properties": {
          "schema": {
            "type": "string",
            "const": "d0.einvoice.validation-policy.v1",
            "minLength": 32,
            "maxLength": 32
          },
          "id": {
            "type": "string",
            "description": "Opaque id pinning exactly one immutable policy manifest.",
            "pattern": "^vpol_[A-Za-z0-9]{20,80}$",
            "minLength": 25,
            "maxLength": 85
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2048
          },
          "version": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "status": {
            "type": "string",
            "enum": [
              "available",
              "deprecated",
              "withdrawn"
            ],
            "minLength": 9,
            "maxLength": 10
          },
          "manifestSha256": {
            "type": "string",
            "description": "Lowercase hexadecimal SHA-256 digest.",
            "pattern": "^[0-9a-f]{64}$",
            "minLength": 64,
            "maxLength": 64
          },
          "manifestContentDigest": {
            "type": "string",
            "description": "Canonical single-member RFC 9530 SHA-256 Content-Digest value.",
            "pattern": "^sha-256=:[A-Za-z0-9+/]{43}=:$",
            "minLength": 54,
            "maxLength": 54
          },
          "acceptedSyntaxes": {
            "type": "array",
            "minItems": 1,
            "maxItems": 2,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "ubl",
                "cii"
              ],
              "minLength": 3,
              "maxLength": 3
            }
          },
          "profiles": {
            "type": "array",
            "minItems": 1,
            "maxItems": 16,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 2048
            }
          },
          "validator": {
            "allOf": [
              {
                "type": "object",
                "additionalProperties": false,
                "description": "Version and SHA-256 identity of one executed or loaded artifact.",
                "required": [
                  "kind",
                  "name",
                  "version",
                  "artifactSha256",
                  "artifactContentDigest"
                ],
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "processor",
                      "validator",
                      "ruleset"
                    ],
                    "minLength": 7,
                    "maxLength": 9
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "version": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "artifactSha256": {
                    "type": "string",
                    "description": "Lowercase hexadecimal SHA-256 digest.",
                    "pattern": "^[0-9a-f]{64}$",
                    "minLength": 64,
                    "maxLength": 64
                  },
                  "artifactContentDigest": {
                    "type": "string",
                    "description": "Canonical single-member RFC 9530 SHA-256 Content-Digest value.",
                    "pattern": "^sha-256=:[A-Za-z0-9+/]{43}=:$",
                    "minLength": 54,
                    "maxLength": 54
                  }
                }
              },
              {
                "type": "object",
                "required": [
                  "kind"
                ],
                "properties": {
                  "kind": {
                    "const": "validator"
                  }
                }
              }
            ]
          },
          "rulesets": {
            "type": "array",
            "description": "Ordered policy evidence. The first component identifies the primary runtime ruleset; later components identify additional immutable provenance artifacts required by the policy.",
            "minItems": 1,
            "maxItems": 16,
            "uniqueItems": true,
            "items": {
              "allOf": [
                {
                  "type": "object",
                  "additionalProperties": false,
                  "description": "Version and SHA-256 identity of one executed or loaded artifact.",
                  "required": [
                    "kind",
                    "name",
                    "version",
                    "artifactSha256",
                    "artifactContentDigest"
                  ],
                  "properties": {
                    "kind": {
                      "type": "string",
                      "enum": [
                        "processor",
                        "validator",
                        "ruleset"
                      ],
                      "minLength": 7,
                      "maxLength": 9
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 256
                    },
                    "version": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 256
                    },
                    "artifactSha256": {
                      "type": "string",
                      "description": "Lowercase hexadecimal SHA-256 digest.",
                      "pattern": "^[0-9a-f]{64}$",
                      "minLength": 64,
                      "maxLength": 64
                    },
                    "artifactContentDigest": {
                      "type": "string",
                      "description": "Canonical single-member RFC 9530 SHA-256 Content-Digest value.",
                      "pattern": "^sha-256=:[A-Za-z0-9+/]{43}=:$",
                      "minLength": 54,
                      "maxLength": 54
                    }
                  }
                },
                {
                  "type": "object",
                  "required": [
                    "kind"
                  ],
                  "properties": {
                    "kind": {
                      "const": "ruleset"
                    }
                  }
                }
              ]
            }
          },
          "publishedAt": {
            "type": "string",
            "format": "date-time",
            "description": "RFC 3339 timestamp with an explicit UTC offset.",
            "minLength": 20,
            "maxLength": 64
          }
        }
      }
    },
    "nextCursor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1024
    }
  }
}

304

The selected representation has the supplied entity tag.

400 · application/problem+json

Malformed request, headers, query, JSON, or byte-integrity failure.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

401 · application/problem+json

OAuth token or its required DPoP proof is absent, invalid, expired, or replayed.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

403 · application/problem+json

The authenticated client lacks a required scope.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

429 · application/problem+json

Project or client rate limit was exceeded.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

500 · application/problem+json

Unexpected internal failure with no sensitive diagnostics.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

503 · application/problem+json

A required durable platform dependency is temporarily unavailable.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

default · application/problem+json

Any other bounded 4xx or 5xx RFC 9457 response.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}
GET /validation-policies/{validationPolicyId}Fetch one pinned validation policy

Returns a discoverable policy and the digest of its canonical immutable manifest. Lifecycle status may later change to prevent new selections, but the id, version, manifest digest, accepted syntax/profile set, and component identities never change.

Parameters

validationPolicyId · path · required

Opaque identifier of one immutable validation-policy manifest.

{
  "type": "string",
  "description": "Opaque id pinning exactly one immutable policy manifest.",
  "pattern": "^vpol_[A-Za-z0-9]{20,80}$",
  "minLength": 25,
  "maxLength": 85
}

If-None-Match · header

RFC 9110 entity-tag condition. Send the last strong ETag to avoid retransmitting an unchanged representation. Lists and `*` are accepted according to the HTTP field grammar.

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

Responses

200 · application/json

One validation policy.

Required fields: schema, id, name, version, status, manifestSha256, manifestContentDigest, acceptedSyntaxes, profiles, validator, rulesets, publishedAt

{
  "type": "object",
  "additionalProperties": false,
  "description": "Discoverable lifecycle metadata plus an immutable canonical policy\nmanifest. Lifecycle `status` may change; every other field is frozen.\n",
  "required": [
    "schema",
    "id",
    "name",
    "version",
    "status",
    "manifestSha256",
    "manifestContentDigest",
    "acceptedSyntaxes",
    "profiles",
    "validator",
    "rulesets",
    "publishedAt"
  ],
  "properties": {
    "schema": {
      "type": "string",
      "const": "d0.einvoice.validation-policy.v1",
      "minLength": 32,
      "maxLength": 32
    },
    "id": {
      "type": "string",
      "description": "Opaque id pinning exactly one immutable policy manifest.",
      "pattern": "^vpol_[A-Za-z0-9]{20,80}$",
      "minLength": 25,
      "maxLength": 85
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048
    },
    "version": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128
    },
    "status": {
      "type": "string",
      "enum": [
        "available",
        "deprecated",
        "withdrawn"
      ],
      "minLength": 9,
      "maxLength": 10
    },
    "manifestSha256": {
      "type": "string",
      "description": "Lowercase hexadecimal SHA-256 digest.",
      "pattern": "^[0-9a-f]{64}$",
      "minLength": 64,
      "maxLength": 64
    },
    "manifestContentDigest": {
      "type": "string",
      "description": "Canonical single-member RFC 9530 SHA-256 Content-Digest value.",
      "pattern": "^sha-256=:[A-Za-z0-9+/]{43}=:$",
      "minLength": 54,
      "maxLength": 54
    },
    "acceptedSyntaxes": {
      "type": "array",
      "minItems": 1,
      "maxItems": 2,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "enum": [
          "ubl",
          "cii"
        ],
        "minLength": 3,
        "maxLength": 3
      }
    },
    "profiles": {
      "type": "array",
      "minItems": 1,
      "maxItems": 16,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 2048
      }
    },
    "validator": {
      "allOf": [
        {
          "type": "object",
          "additionalProperties": false,
          "description": "Version and SHA-256 identity of one executed or loaded artifact.",
          "required": [
            "kind",
            "name",
            "version",
            "artifactSha256",
            "artifactContentDigest"
          ],
          "properties": {
            "kind": {
              "type": "string",
              "enum": [
                "processor",
                "validator",
                "ruleset"
              ],
              "minLength": 7,
              "maxLength": 9
            },
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "version": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "artifactSha256": {
              "type": "string",
              "description": "Lowercase hexadecimal SHA-256 digest.",
              "pattern": "^[0-9a-f]{64}$",
              "minLength": 64,
              "maxLength": 64
            },
            "artifactContentDigest": {
              "type": "string",
              "description": "Canonical single-member RFC 9530 SHA-256 Content-Digest value.",
              "pattern": "^sha-256=:[A-Za-z0-9+/]{43}=:$",
              "minLength": 54,
              "maxLength": 54
            }
          }
        },
        {
          "type": "object",
          "required": [
            "kind"
          ],
          "properties": {
            "kind": {
              "const": "validator"
            }
          }
        }
      ]
    },
    "rulesets": {
      "type": "array",
      "description": "Ordered policy evidence. The first component identifies the primary runtime ruleset; later components identify additional immutable provenance artifacts required by the policy.",
      "minItems": 1,
      "maxItems": 16,
      "uniqueItems": true,
      "items": {
        "allOf": [
          {
            "type": "object",
            "additionalProperties": false,
            "description": "Version and SHA-256 identity of one executed or loaded artifact.",
            "required": [
              "kind",
              "name",
              "version",
              "artifactSha256",
              "artifactContentDigest"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "processor",
                  "validator",
                  "ruleset"
                ],
                "minLength": 7,
                "maxLength": 9
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 256
              },
              "version": {
                "type": "string",
                "minLength": 1,
                "maxLength": 256
              },
              "artifactSha256": {
                "type": "string",
                "description": "Lowercase hexadecimal SHA-256 digest.",
                "pattern": "^[0-9a-f]{64}$",
                "minLength": 64,
                "maxLength": 64
              },
              "artifactContentDigest": {
                "type": "string",
                "description": "Canonical single-member RFC 9530 SHA-256 Content-Digest value.",
                "pattern": "^sha-256=:[A-Za-z0-9+/]{43}=:$",
                "minLength": 54,
                "maxLength": 54
              }
            }
          },
          {
            "type": "object",
            "required": [
              "kind"
            ],
            "properties": {
              "kind": {
                "const": "ruleset"
              }
            }
          }
        ]
      }
    },
    "publishedAt": {
      "type": "string",
      "format": "date-time",
      "description": "RFC 3339 timestamp with an explicit UTC offset.",
      "minLength": 20,
      "maxLength": 64
    }
  }
}

304

The selected representation has the supplied entity tag.

401 · application/problem+json

OAuth token or its required DPoP proof is absent, invalid, expired, or replayed.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

403 · application/problem+json

The authenticated client lacks a required scope.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

404 · application/problem+json

Resource does not exist in the authenticated project.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

429 · application/problem+json

Project or client rate limit was exceeded.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

500 · application/problem+json

Unexpected internal failure with no sensitive diagnostics.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

503 · application/problem+json

A required durable platform dependency is temporarily unavailable.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}

default · application/problem+json

Any other bounded 4xx or 5xx RFC 9457 response.

Required fields: type, title, status

{
  "type": "object",
  "additionalProperties": false,
  "description": "Bounded RFC 9457 problem details with one safe extension.",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://api\\.d0\\.eu/einvoice/problems/[a-z0-9-]{1,96}$",
      "minLength": 37,
      "maxLength": 2048,
      "description": "Stable machine-readable problem-type URI."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 400,
      "maximum": 599
    },
    "detail": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "instance": {
      "type": "string",
      "format": "uri-reference",
      "minLength": 1,
      "maxLength": 2048
    },
    "invalidParameters": {
      "type": "array",
      "maxItems": 100,
      "description": "Safe structural request errors; values are never echoed.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      }
    }
  }
}