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
- Self-Service registrieren — Firmenname + E-Mail, Bestätigungslink klicken, API-Key erhalten. 50 Calls gratis, keine Kreditkarte.
- 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
| Feld | Typ | Beschreibung |
|---|---|---|
document_type | string, required | kontoauszug, steuerbescheid, lohnabrechnung, mahnung, kuendigung, bussgeldbescheid |
file | file, required | PDF / 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
| HTTP | Code | Bedeutung |
|---|---|---|
| 400 | invalid_request | Fehlendes Feld, falscher MIME-Type, Datei zu groß |
| 400 | document_type_unsupported | Unbekannter document_type |
| 401 | invalid_api_key | Token fehlt / unbekannt |
| 401 | revoked_api_key | Key wurde widerrufen |
| 402 | quota_exceeded | Trial-Kontingent verbraucht (nur Trial) |
| 403 | insufficient_scope | Key hat nicht analyze:write |
| 422 | document_not_recognized | Dokument passt nicht zum document_type |
| 429 | rate_limited | Minütliches Rate-Limit überschritten |
| 500 | processing_failed | OCR/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
| Tier | Monatlich | Inkl. Calls | Überschreitung |
|---|---|---|---|
| Trial | gratis | 50 | — (harte Sperre) |
| API Starter | €99 | 200 | €0,50/Call |
| API Pro | €299 | 1.000 | €0,35/Call |
| API Business | €799 | 5.000 | €0,25/Call |
| Enterprise | Volumen- 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.