API v1

Dokument-Verstehen API

Eine Bearer-Token-authentifizierte JSON-API mit zwei Fähigkeiten: Kontoauszüge parsen (PDF → strukturierte Buchungen) und deutsche Dokumente analysieren (Steuerbescheid, Lohnabrechnung, Mahnung, Kündigung, Bußgeldbescheid) — alles über einen REST-Endpunkt.

Für wen das gedacht ist

  • Steuerberater & Buchhaltung — Mandanten-Kontoauszüge automatisch in strukturierte Buchungen überführen, Steuerbescheide in Sekunden auswerten.
  • Fintechs & Software-Anbieter — bank statement parsing als Baustein im eigenen Produkt, ohne eigene OCR-Pipeline.
  • HR-, Schuldner- und Verbraucherberatung — Lohnabrechnungen, Mahnungen und Bescheide in Batch prüfen, Auffälligkeiten automatisch flaggen.

Schnellstart

  1. Self-Service registrieren — Firmenname + E-Mail, Bestätigungslink klicken, API-Key erhalten. 50 Calls gratis, keine Kreditkarte.
  2. Ersten Request senden:
curl -X POST https://www.kontoauszugskonverter.com/api/v1/analyze \
  -H "Authorization: Bearer sk_live_..." \
  -F "document_type=kontoauszug" \
  -F "file=@kontoauszug_juni.pdf"

Authentifizierung

Jeder Request trägt Ihren API-Key als Bearer-Token im Authorization-Header:

Authorization: Bearer sk_live_a1b2c3d4e5f6...

Key-Verwaltung: Beliebig viele Keys pro Organisation. Unter /api-account erstellen und widerrufen Sie Keys self-service — bei Kompromittierung neuen Key anlegen, alten sofort widerrufen.

Endpunkt: POST /api/v1/analyze

Synchron — ein Request, eine Antwort. Kontoauszüge dauern typischerweise 4–10 Sekunden, Analysen 10–30 Sekunden je nach Seitenzahl.

Felder

FeldTypBeschreibung
document_typestring, requiredkontoauszug, steuerbescheid, lohnabrechnung, mahnung, kuendigung, bussgeldbescheid
filefile, requiredPDF / JPG / PNG · max 10 MB

Antwort (200) — kontoauszug

Bank statement parsing: erkannte Tabellen mit allen Buchungen, layoutunabhängig.

{
  "document_type": "kontoauszug",
  "project_slug": "kontoauszugs-konverter",
  "pages": 3,
  "latency_ms": 4620,
  "tables": [
    {
      "name": "Umsätze",
      "headers": ["Datum", "Buchungstext", "Empfänger", "Betrag"],
      "rows": [
        ["03.06.2026", "Kartenzahlung", "REWE SAGT DANKE", "-87,43"],
        ["05.06.2026", "SEPA-Gutschrift", "ACME GmbH Gehalt", "2.780,50"]
      ]
    }
  ]
}

Antwort (200) — Analyse-Dokumenttypen

{
  "document_type": "lohnabrechnung",
  "project_slug": "lohnabrechnung-verstehen",
  "pages": 2,
  "latency_ms": 18342,
  "analysis": {
    "summary": "Lohnabrechnung März 2026 für Max Mustermann. Brutto 4.500 €, Netto 2.780 €, Lohnsteuer Klasse I.",
    "sections": [ /* … */ ],
    "key_numbers": {
      "gross_salary": { "value": "4.500,00 €", "page": 1 },
      "net_salary":   { "value": "2.780,50 €", "page": 1 },
      "tax_class":    { "value": "I", "page": 1 }
      /* … produktspezifisch */
    },
    "review_flags": [
      { "topic": "Fehlender Kinderfreibetrag", "severity": "warning",
        "description": "…" }
    ]
  }
}

Fehler

HTTPCodeBedeutung
400invalid_requestFehlendes Feld, falscher MIME-Type, Datei zu groß
400document_type_unsupportedUnbekannter document_type
401invalid_api_keyToken fehlt / unbekannt
401revoked_api_keyKey wurde widerrufen
402quota_exceededTrial-Kontingent verbraucht (nur Trial)
403insufficient_scopeKey hat nicht analyze:write
422document_not_recognizedDokument passt nicht zum document_type
429rate_limitedMinütliches Rate-Limit überschritten
500processing_failedOCR/LLM-Aufruf fehlgeschlagen

Nur erfolgreich verarbeitete Dokumente sind abrechnungsrelevant — Validierungs- und Authentifizierungsfehler kosten keine Calls.

Endpunkt: GET /api/v1/usage

Aktuelle Nutzung im laufenden Abrechnungszeitraum — gut zum Einbinden in eigene Dashboards.

{
  "organization": { "id": "…", "name": "Musterkanzlei GmbH", "tier": "pro" },
  "period": { "start": "2026-07-01T00:00:00.000Z", "end": "2026-08-01T00:00:00.000Z" },
  "usage": {
    "billable_calls": 342,
    "included_calls": 1000,
    "overage_calls": 0,
    "overage_cents_per_call": 35,
    "overage_cost_cents": 0
  }
}

Endpunkte: POST /api/v1/billing/*

Upgrades laufen self-service über Stripe Checkout — am einfachsten per Klick unter /api-account, oder direkt per API:

# Upgrade auf einen bezahlten Tier (starter | pro | business)
curl -X POST https://www.kontoauszugskonverter.com/api/v1/billing/checkout \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"tier": "pro"}'
# → { "url": "https://checkout.stripe.com/…" }

# Rechnungen, Zahlungsmethode, Kündigung (Stripe-Portal)
curl -X POST https://www.kontoauszugskonverter.com/api/v1/billing/portal \
  -H "Authorization: Bearer sk_live_..."
# → { "url": "https://billing.stripe.com/…" }

Tier-Wechsel bei bestehendem Abo (z.B. Starter → Pro): kurze Mail an api@kontoauszugskonverter.com — wir stellen mit anteiliger Verrechnung um.

Preise

TierMonatlichInkl. CallsÜberschreitung
Trialgratis50— (harte Sperre)
API Starter€99200€0,50/Call
API Pro€2991.000€0,35/Call
API Business€7995.000€0,25/Call
EnterpriseVolumen- und SLA-Pakete — direkt anfragen

Abrechnung monatlich über Stripe, USt. ausgewiesen, USt-IdNr.-Erfassung im Checkout. Überschreitungs-Calls werden separat in Rechnung gestellt. Upgrade self-service unter /api-account.

Datenschutz & Speicherung

  • Ihre PDFs werden nicht persistent gespeichert. Für die Analyse gelesen, danach verworfen.
  • Nur der Audit-Eintrag bleibt: Zeitstempel, document_type, Latenz, Ihre Organisation. Kein Inhalt.
  • EU-Hosting: Vercel EU-Edge + Supabase eu-west-1. OCR über Google Cloud Vision (EU).
  • LLM-Anbieter: OpenRouter / Anthropic je nach Dokumenttyp. Wenn Sie aus Compliance-Gründen einen dedizierten LLM-Anbieter benötigen, sprechen Sie uns für den Enterprise-Tier an.