Business API

Serverseitige API für Verarbeitung und Ergebnisrückgabe

Die Business-API erlaubt serverseitige Einreichung ohne Browser-Checkout. Senden Sie XML- oder ZUGFeRD-/Factur-X-Dateien direkt an den Validierungsendpunkt und erhalten Sie JSON-Ergebnisse, Fehlerdetails, Batch-Validierung und kurzlebige PDF-Bericht-Links zurück. Die API ist für Verarbeitung und Rückgabe gedacht, nicht für Archivierung oder ERP-Implementierung.

Zugang zur Business API

Die Business API gehört zum Business-Tarif. Der Tarif kann über die Preisübersicht gebucht und danach im Konto mit API-Schlüsseln, JSON-Antworten und PDF-Artefakten genutzt werden.

Endpunkt

https://e-rechnung-check.de/api/external/validate

Methode

POST

Authentifizierung

X-API-Key

Anfrage

Der Endpunkt akzeptiert genau eine Datei pro Request. Nutzen Sie Multipart-Upload und senden Sie Ihren API-Schlüssel im Header. Reichen Sie nur Dateien ein, die Sie selbst außerhalb der Plattform archivieren und verwalten.

  • Form-Feld `file`: XML oder ZUGFeRD/Factur-X PDF
  • Query `lang`: `de` oder `en` für rehydrierte Fehlermeldungen
  • Unterstützte Formate: UBL XML, CII XML, ZUGFeRD 2.x / Factur-X PDF mit EN16931-kompatiblem eingebettetem XML
  • Dateigröße: maximal 10 MB
curl -X POST \
  "https://e-rechnung-check.de/api/external/validate?lang=de" \
  -H "X-API-Key: erk_live_xxxxxxxxxxxxxxxxxxxx" \
  -F "file=@invoice.xml"

Antwort

Der Endpunkt gibt aktuell JSON zurück: Status, erkannte Syntax/Profile, Fehler, Warnungen und eine optionale strukturierte Rechnungszusammenfassung. Dieses JSON ist das primäre Format für SAP-, ERP- und Backend-Integrationen.

{
  "status": "done",
  "is_valid": false,
  "xrechnung_version": "3.0.1",
  "processing_time_ms": 842,
  "errors": [
    {
      "code": "BR-DE-14",
      "severity": "fatal",
      "validation_layer": "cius",
      "section": "Seller",
      "title": "Seller VAT ID is missing",
      "explanation": "The invoice is missing a required seller VAT identifier.",
      "fix": "Add the seller VAT ID in the seller party block.",
      "bt_field": "BT-31",
      "xpath": "/Invoice/..."
    }
  ],
  "warnings": [],
  "invoice_summary": {
    "invoice_number": "RE-2026-001",
    "invoice_date": "2026-04-13",
    "format": "UBL"
  },
  "artifacts": {
    "validation_report_pdf": {
      "available": true,
      "url": "https://e-rechnung-check.de/api/external/artifacts/abc123/report.pdf",
      "expires_in_seconds": 3600
    },
    "readable_invoice_pdf": {
      "available": true,
      "url": "https://e-rechnung-check.de/api/external/artifacts/abc123/invoice.pdf",
      "expires_in_seconds": 3600
    }
  }
}

Artefakt-Ausgaben

Die API-Antwort enthält kurzlebige PDF-Links. Diese Links sind temporär, benötigen weiterhin den Business-API-Schlüssel und dienen der Ergebnisrückgabe, nicht der Archivierung.

  • Primärformat: versioniertes JSON mit Validierung, strukturierter Rechnung, Fehlercodes und maschinenlesbaren Feldern.
  • Verfügbar: kurzlebige Links für Validierungsbericht-PDF und lesbare Rechnungs-PDF, statt PDF-Dateien als Base64 im JSON.
  • Geplant: Link auf extrahierte oder korrigierte XML, falls diese Funktion für den Tarif freigeschaltet ist.
  • Geplant, noch nicht live: ZUGFeRD-/Factur-X-PDF/A-3-Export mit eingebettetem XML. Die API validiert solche Dateien heute, erzeugt aber noch keine Hybrid-PDF.
  • CSV bleibt ein mögliches Nebenformat für Reporting, aber nicht das Hauptformat für SAP- oder ERP-Integrationen.

Rechte-Endpunkt

Nutzen Sie diesen Endpunkt für einen schnellen Integrationscheck. Er bestätigt den API-Schlüssel und liefert Tarifrechte, Upload-Limits und verfügbare Routen zurück.

curl \
  "https://e-rechnung-check.de/api/external/capabilities" \
  -H "X-API-Key: erk_live_xxxxxxxxxxxxxxxxxxxx"
{
  "status": "ok",
  "plan_type": "business",
  "entitlements": {
    "plan_type": "business",
    "daily_usage_limit": null,
    "daily_validation_limit": null,
    "can_view_structured_invoice": true,
    "can_generate_invoice": true,
    "can_download_readable_pdf": true,
    "can_export": false,
    "can_autofix": true,
    "can_batch": true,
    "can_use_api": true
  },
  "limits": {
    "max_upload_size_bytes": 10485760,
    "max_upload_size_mb": 10.0,
    "batch_max_files": 10
  },
  "supported_formats": ["UBL XML", "CII XML", "ZUGFeRD 2.x", "Factur-X"],
  "supported_languages": ["de", "en"],
  "endpoints": {
    "validate": "https://e-rechnung-check.de/api/external/validate",
    "validate_batch": "https://e-rechnung-check.de/api/external/validate/batch",
    "artifact_report": "https://e-rechnung-check.de/api/external/artifacts/{token}/report.pdf",
    "artifact_invoice": "https://e-rechnung-check.de/api/external/artifacts/{token}/invoice.pdf",
    "capabilities": "https://e-rechnung-check.de/api/external/capabilities",
    "error_catalog": "https://e-rechnung-check.de/api/external/errors/catalog"
  }
}

Batch-Validierung

Für Business-Zugänge steht zusätzlich ein Batch-Endpunkt zur Verfügung. Senden Sie mehrere Dateien im selben Multipart-Request über das wiederholte Feld `files`, wenn Sie höheren Verarbeitungsdurchsatz benötigen.

curl -X POST \
  "https://e-rechnung-check.de/api/external/validate/batch?lang=de" \
  -H "X-API-Key: erk_live_xxxxxxxxxxxxxxxxxxxx" \
  -F "files=@invoice-1.xml" \
  -F "files=@invoice-2.xml"
{
  "status": "done",
  "count": 2,
  "items": [
    {
      "filename": "invoice-1.xml",
      "status": "done",
      "is_valid": true,
      "xrechnung_version": "3.0.1",
      "processing_time_ms": 615,
      "errors": [],
      "warnings": [],
      "invoice_summary": null
    },
    {
      "filename": "invoice-2.xml",
      "status": "done",
      "is_valid": false,
      "xrechnung_version": "3.0.1",
      "processing_time_ms": 702,
      "errors": [{ "code": "BR-10" }],
      "warnings": [],
      "invoice_summary": null
    }
  ]
}

Fehlerkatalog-Endpunkt

Dieser Endpunkt liefert den gepflegten Regelkatalog maschinenlesbar zurück. Damit können Integrationen Regelcodes vorab mappen oder eigene Hilfetexte vorbereiten.

curl \
  "https://e-rechnung-check.de/api/external/errors/catalog?lang=de" \
  -H "X-API-Key: erk_live_xxxxxxxxxxxxxxxxxxxx"
{
  "status": "ok",
  "catalog_version": "1.0.0",
  "xrechnung_version": "3.0.1",
  "rule_count": 183,
  "language": "de",
  "items": [
    {
      "code": "BR-01",
      "severity": "fatal",
      "section": "General Information",
      "title": "Missing invoice number",
      "explanation": "Every invoice must contain a unique invoice number.",
      "fix": "Add a unique invoice number in field BT-1.",
      "bt_field": "BT-1",
      "xpath": "/Invoice/ID",
      "examples": ["INV-2026-001"]
    }
  ]
}

Fehlerverhalten

Diese HTTP-Statuscodes sind aktuell für den externen Endpunkt relevant.

StatusBedeutung
401Kein oder ungültiger `X-API-Key`.
403Der API-Schlüssel gehört nicht zu einem Business-Konto.
413Die hochgeladene Datei überschreitet 10 MB.
422Ungültiges Multipart-Formular oder nicht unterstützte Datei.