Dokumentenprüfung-API: Integrationsleitfaden für Entwickler
Dokumentenprüfung per REST-API mit OAuth 2.0, Webhooks und SDKs integrieren. Endpoints, Codebeispiele, Preismodelle und DSGVO-Konformität.

Diesen Artikel zusammenfassen mit
Eine Dokumentenprüfung-API ist eine programmatische Schnittstelle, über die Entwickler Ausweisdokumente, Rechnungen, Bescheinigungen oder Adressnachweise einreichen und strukturierte Prüfergebnisse erhalten — Echtheitsprüfungen, Datenextraktion, Betrugssignale — ohne die zugrunde liegenden KI-Modelle selbst entwickeln zu müssen. Die CheckFile-API verarbeitet ein Dokument in durchschnittlich 4,2 Sekunden, erreicht eine OCR-Genauigkeit von 98,7 % in 24 Sprachen und unterstützt mehr als 3 200 Dokumenttypen in 32 Rechtsräumen.
Die EU-KI-Verordnung (Verordnung (EU) 2024/1689, Art. 6 und Anhang III) stuft KI-Systeme zur Identitätsdokumentenprüfung im Finanzdienstleistungsbereich als Hochrisiko ein und verpflichtet Anbieter zur Führung technischer Dokumentation, eines Risikomanagementsystems und menschlicher Aufsichtsfähigkeiten. Jede API, die Sie integrieren, muss diese Anforderungen erfüllen — andernfalls übernehmen Sie die Konformitätslücke.
Dieser Leitfaden behandelt Authentifizierung, Kern-Endpoints, Webhook-Konfiguration, Fehlerbehandlung, SDK-Optionen und Preisgestaltung. Er richtet sich an Backend-Entwickler, DevOps-Teams und technische Leiter, die Dokumentenprüfung-APIs für den Produktionseinsatz evaluieren.
Dieser Artikel dient ausschließlich zu Informationszwecken und stellt keine Rechts-, Finanz- oder Regulierungsberatung dar.
Authentifizierung und Sicherheit
Die CheckFile-API verwendet OAuth 2.0 Client Credentials für die Maschine-zu-Maschine-Authentifizierung gemäß RFC 6749, Abschnitt 4.4. Sie tauschen Ihre client_id und client_secret gegen ein zeitlich begrenztes Bearer-Token (60 Minuten Gültigkeit) und fügen dieses Token im Authorization-Header jeder nachfolgenden Anfrage ein.
Sämtlicher API-Verkehr ist mit TLS 1.3 verschlüsselt. Dokumente werden im Ruhezustand mit AES-256 verschlüsselt, und personenbezogene Daten werden automatisch aus Protokollen entfernt — in Übereinstimmung mit Art. 32 DSGVO zu angemessenen technischen Maßnahmen (DSGVO, Art. 32).
# Zugriffstoken abrufen
curl -X POST https://api.checkfile.ai/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=IHRE_ID&client_secret=IHR_SECRET"
# Antwort
{
"access_token": "eyJhbGciOi...",
"token_type": "Bearer",
"expires_in": 3600
}
Zentrale Sicherheitsfunktionen:
- IP-Allowlisting — API-Zugriff auf bekannte Server-IPs beschränken
- Rate-Limiting — pro Plan konfigurierbar (siehe Preisabschnitt)
- Webhook-Signaturen — HMAC-SHA256-Überprüfung bei jedem Callback
- Audit-Log — jeder API-Aufruf wird mit Zeitstempel, Client-ID, Dokumenttyp und Ergebnis protokolliert
Scopes und Berechtigungen
| Scope | Berechtigung | Anwendungsfall |
|---|---|---|
documents:write |
Dokumente hochladen und einreichen | Standardprüfungsablauf |
documents:read |
Ergebnisse und Status abrufen | Polling-basierte Integrationen |
webhooks:manage |
Webhooks erstellen und konfigurieren | Ereignisgesteuerte Architekturen |
analytics:read |
Nutzungsmetriken abrufen | Monitoring-Dashboards |
admin:manage |
API-Schlüssel und Teamzugriff verwalten | DevOps und Administration |
Kern-Endpoints der API
Die API folgt RESTful-Konventionen mit JSON-Payloads. Basis-URL: https://api.checkfile.ai/v1.
Dokumenteinreichung
POST /v1/documents/verify
Content-Type: multipart/form-data
Authorization: Bearer {token}
# Felder:
# file (erforderlich) — Dokumentbild oder PDF (max. 20 MB)
# document_type (optional) — "passport", "id_card", "invoice", "proof_of_address"
# country (optional) — ISO 3166-1 Alpha-2-Code
# webhook_url (optional) — Callback-URL für asynchrone Ergebnisse
# reference_id (optional) — Ihre interne Referenz zur Korrelation
Antwort (HTTP 202 Accepted):
{
"document_id": "doc_8f3a2b1c",
"status": "processing",
"estimated_completion_seconds": 4,
"created_at": "2026-03-19T10:15:00Z"
}
Wird document_type nicht angegeben, verwendet die API ihr KI-Klassifizierungssystem — das eine Klassifizierungsgenauigkeit von 96,1 % bei unserem Benchmark von über 3 200 Dokumenttypen erreicht — zur automatischen Typerkennung.
Ergebnisabfrage
GET /v1/documents/{document_id}
Authorization: Bearer {token}
Antwort (HTTP 200):
{
"document_id": "doc_8f3a2b1c",
"status": "completed",
"document_type": "personalausweis",
"country": "DE",
"verification": {
"authentic": true,
"confidence": 0.97,
"fraud_signals": [],
"checks": {
"mrz_valid": true,
"photo_tamper": false,
"expiry_valid": true,
"data_consistency": true
}
},
"extracted_data": {
"full_name": "Anna Müller",
"date_of_birth": "1990-05-12",
"document_number": "T220001293",
"expiry_date": "2031-05-11",
"nationality": "DEU"
},
"processing_time_ms": 3840,
"created_at": "2026-03-19T10:15:00Z",
"completed_at": "2026-03-19T10:15:03.840Z"
}
Das extracted_data-Objekt erreicht eine Feldextraktionsgenauigkeit von 94,3 % in unserem internen Benchmark über alle unterstützten Dokumenttypen.
Stapelverarbeitung
Für Integrationen mit hohem Volumen akzeptiert der Batch-Endpoint bis zu 50 Dokumente pro Anfrage:
POST /v1/documents/verify/batch
Content-Type: multipart/form-data
Authorization: Bearer {token}
# files[] — Array von Dokumentdateien
# options — JSON-Objekt mit gemeinsamen Einstellungen
Batch-Anfragen geben eine batch_id zurück und liefern Ergebnisse per Webhook, sobald jedes Dokument verarbeitet ist.
Webhook-Konfiguration
Ereignisgesteuerte Architekturen vermeiden Polling-Overhead. Registrieren Sie einen Webhook-Endpoint, um Echtzeit-Benachrichtigungen nach Abschluss der Prüfungen zu erhalten.
POST /v1/webhooks
Authorization: Bearer {token}
Content-Type: application/json
{
"url": "https://ihre-app.de/webhooks/checkfile",
"events": ["document.completed", "document.failed", "document.review_required"],
"secret": "whsec_ihr_geheimer_schluessel"
}
Jede Webhook-Zustellung enthält einen X-CheckFile-Signature-Header mit einem HMAC-SHA256-Hash des Payloads. Überprüfen Sie ihn vor der Verarbeitung:
import hmac
import hashlib
def verify_webhook(payload: bytes, signature: str, secret: str) -> bool:
expected = hmac.new(
secret.encode(), payload, hashlib.sha256
).hexdigest()
return hmac.compare_digest(f"sha256={expected}", signature)
Webhook-Wiederholungsrichtlinie: 3 Versuche mit exponentiellem Backoff (5s, 30s, 300s). Nach 3 Fehlversuchen wird der Webhook deaktiviert und Ihr Team erhält eine E-Mail-Benachrichtigung.
| Ereignis | Auslöser | Payload enthält |
|---|---|---|
document.completed |
Prüfung erfolgreich abgeschlossen | Vollständiges Ergebnisobjekt |
document.failed |
Verarbeitungsfehler (beschädigte Datei, nicht unterstütztes Format) | Fehlercode und Meldung |
document.review_required |
Ergebnis mit niedrigem Vertrauenswert zur manuellen Überprüfung markiert | Teilergebnis und Vertrauenswert |
batch.completed |
Alle Dokumente im Batch verarbeitet | Zusammenfassung mit Einzelstatus |
SDK und Integrationsoptionen
Die REST-API funktioniert mit jeder Programmiersprache, aber offizielle SDKs reduzieren die Integrationszeit von Tagen auf Stunden.
Verfügbare SDKs
| Sprache | Paket | Installation |
|---|---|---|
| Python | checkfile-sdk |
pip install checkfile-sdk |
| Node.js | @checkfile/sdk |
npm install @checkfile/sdk |
| Java | com.checkfile:sdk |
Maven Central |
| Go | github.com/checkfile/sdk-go |
go get |
Python-Integrationsbeispiel
from checkfile import CheckFileClient
client = CheckFileClient(
client_id="IHRE_CLIENT_ID",
client_secret="IHR_CLIENT_SECRET"
)
# Synchrone Prüfung
result = client.documents.verify(
file=open("personalausweis.pdf", "rb"),
document_type="id_card",
country="DE"
)
print(f"Authentisch: {result.verification.authentic}")
print(f"Name: {result.extracted_data.full_name}")
print(f"Verarbeitungszeit: {result.processing_time_ms}ms")
Node.js-Integrationsbeispiel
import { CheckFileClient } from '@checkfile/sdk';
import { readFileSync } from 'fs';
const client = new CheckFileClient({
clientId: process.env.CHECKFILE_CLIENT_ID,
clientSecret: process.env.CHECKFILE_CLIENT_SECRET,
});
const result = await client.documents.verify({
file: readFileSync('personalausweis.pdf'),
documentType: 'id_card',
country: 'DE',
});
console.log(`Authentisch: ${result.verification.authentic}`);
console.log(`Vertrauen: ${result.verification.confidence}`);
Die SDKs übernehmen Token-Erneuerung, Wiederholungsversuche mit exponentiellem Backoff und Webhook-Signaturprüfung automatisch. Unsere Analyse zeigt, dass SDK-basierte Integrationen die mediane Zeit bis zur Produktionsreife von 8 Tagen (reines REST) auf 2 Tage reduzieren.
Fehlerbehandlung und Rate-Limits
Die API verwendet Standard-HTTP-Statuscodes mit strukturierten Fehlerkörpern:
{
"error": {
"code": "DOCUMENT_UNREADABLE",
"message": "Die hochgeladene Datei konnte nicht verarbeitet werden. Stellen Sie sicher, dass DPI >= 300.",
"details": { "min_dpi": 300, "detected_dpi": 72 },
"request_id": "req_9f2c4d1e"
}
}
Häufige Fehlercodes
| HTTP-Status | Fehlercode | Lösung |
|---|---|---|
| 400 | INVALID_FILE_FORMAT |
PDF, JPEG, PNG oder TIFF verwenden |
| 400 | DOCUMENT_UNREADABLE |
Scanauflösung auf 300+ DPI erhöhen |
| 401 | TOKEN_EXPIRED |
OAuth-Token erneuern |
| 413 | FILE_TOO_LARGE |
Datei unter 20 MB reduzieren |
| 429 | RATE_LIMIT_EXCEEDED |
Retry-After-Header-Dauer abwarten |
| 503 | SERVICE_DEGRADED |
Mit exponentiellem Backoff wiederholen |
Rate-Limits nach Tarif
| Tarif | Anfragen/Minute | Burst | Gleichzeitige Uploads |
|---|---|---|---|
| Starter | 60 | 10 | 5 |
| Business | 500 | 50 | 25 |
| Enterprise | 2.000+ | 200 | 100 |
Rate-Limit-Header (X-RateLimit-Remaining, X-RateLimit-Reset) sind in jeder Antwort enthalten. Bauen Sie Ihre Wiederholungslogik auf diesen Headern auf, statt Verzögerungen fest zu kodieren.
Konformität und Datenverarbeitung
Die Dokumentenprüfung berührt personenbezogene Daten in mehreren Rechtsräumen. Die API ist mit Konformität als erstrangiger Anforderung konzipiert.
Seit März 2026 verpflichtet die DSGVO (Verordnung (EU) 2016/679, Art. 28) Verantwortliche, nur Auftragsverarbeiter einzusetzen, die hinreichende Garantien für geeignete technische und organisatorische Maßnahmen bieten. CheckFile agiert als Auftragsverarbeiter mit einem unterzeichneten Auftragsverarbeitungsvertrag (AVV) in allen Business- und Enterprise-Tarifen.
Gemäß den Anforderungen der BaFin an die Auslagerung von IT-Dienstleistungen (MaRisk AT 9) bietet die API:
- Aufbewahrung: Dokumente werden nach der Verarbeitung gelöscht, sofern Sie nicht explizit Speicherung anfordern (konfigurierbar von 0 bis 365 Tagen)
- Datenresidenz: Verarbeitung in der EU standardmäßig; US- und APAC-Regionen auf Enterprise-Tarifen verfügbar
- Prüfpfad: Jeder API-Aufruf erzeugt einen unveränderlichen Prüfdatensatz mit Dokument-Hash, Zeitstempel, Ergebnis und Client-ID
- SOC 2 Typ II-Zertifizierung für die API-Infrastruktur
- PCI-DSS-konforme Dokumentenverarbeitung für Finanzdokumente
Für Integrationen, die dem GwG (Geldwäschegesetz) unterliegen, stellt CheckFile die erforderliche Drittanbieter-Sicherheitsdokumentation, Ergebnisse der Geschäftskontinuitätstests und Exit-Strategiebedingungen bereit.
Preisstruktur
CheckFile verwendet ein Preismodell pro Dokument mit Mengenrabatten. Alle Tarife umfassen den vollständigen API-Zugang, Webhooks und Audit-Protokolle.
| Tarif | Monatspreis | Enthaltene Prüfungen | Zusätzliche Prüfung | Support |
|---|---|---|---|---|
| Starter | Kostenlos | 100 | -- | Community |
| Business | Ab 299 EUR/Monat | 2.000 | 0,12 EUR | Prioritäts-E-Mail (< 4h) |
| Enterprise | Individuell | Individuelles Volumen | Verhandelt | Dedizierter CSM + SLA |
Alle Details zu Volumenstufen, Jahresrabatte und Enterprise-SLA-Bedingungen finden Sie auf der Preisseite.
Unsere Plattformanalyse zeigt, dass Organisationen, die von manueller Dokumentenprüfung auf API-basierte Prüfung umsteigen, die Kosten pro Vorgang um 67 % und die Bearbeitungszeit um 83 % senken. Die durchschnittliche Amortisationszeit für Business-Kunden liegt bei unter 3 Monaten ab einem Volumen von 500+ Dokumenten pro Monat.
| Manueller Prozess | API-automatisiert | Einsparung |
|---|---|---|
| 12 Min./Dokument | 4,2 Sekunden | 99,4 % Zeitersparnis |
| 4,80 EUR/Dokument (Personalkosten) | 0,12-0,15 EUR/Dokument | 67-97 % Kostenreduktion |
| 89 % Genauigkeit (menschlicher Fehler) | 98,7 % OCR-Genauigkeit | Weniger Nachprüfungen |
| Nur Geschäftszeiten | 99,94 % Verfügbarkeit, rund um die Uhr | Keine zeitlichen Einschränkungen |
Integrationsarchitektur-Muster
Muster 1: Synchron (einfach)
Für Integrationen mit niedrigem Volumen (< 60 Anfragen/Min.), einreichen und abfragen:
Client → POST /v1/documents/verify → 202 Accepted
Client → GET /v1/documents/{id} (Polling alle 2s) → 200 mit Ergebnissen
Geeignet für Onboarding-Abläufe, bei denen der Benutzer auf die Verifizierung wartet.
Muster 2: Asynchron mit Webhooks (empfohlen)
Für Produktions-Workloads, einreichen und Ergebnisse per Webhook empfangen:
Client → POST /v1/documents/verify (mit webhook_url) → 202 Accepted
CheckFile → POST webhook_url (signierter Payload) → Ihr Handler verarbeitet das Ergebnis
Entkoppelt Einreichung von Verarbeitung. Skaliert linear mit dem Volumen.
Muster 3: Batch-Pipeline
Für Backoffice-Verarbeitung (nächtliche KYC-Überprüfungen, Massen-Compliance-Checks):
Client → POST /v1/documents/verify/batch (bis zu 50 Dateien) → batch_id
CheckFile → POST webhook_url pro Dokument bei Fertigstellung
CheckFile → POST webhook_url mit batch.completed-Zusammenfassung
Unsere Plattform verarbeitet monatlich über 180.000 Dokumente mit diesen Mustern. Das asynchrone Webhook-Muster deckt 94 % der Produktionsintegrationen ab.
Erste Schritte
Die Integration folgt vier Schritten:
- Konto erstellen bei checkfile.ai und API-Zugangsdaten im Dashboard generieren
- In der Sandbox testen — die Sandbox-Umgebung spiegelt die Produktion mit synthetischen Dokumenten wider (ohne Abrechnung)
- Integrieren mit dem SDK oder direkten REST-Aufrufen, beginnend mit dem synchronen Muster
- Live gehen — auf Produktions-Zugangsdaten wechseln und Webhooks konfigurieren
Die API-Dokumentation enthält einen interaktiven Playground zum Testen der Endpoints, und die Preisseite erläutert die Tarifoptionen für Ihr erwartetes Volumen.
Für Teams, die automatisierte Dokumentenprüfungs-Workflows aufbauen, lässt sich die API direkt mit den in unserem Workflow-Einrichtungsleitfaden beschriebenen Mustern integrieren. Wenn Sie Prüfungslösungen umfassender evaluieren, deckt unser Leitfaden zur Automatisierung der Dokumentenprüfung das gesamte Spektrum der Ansätze zur Dokumentenprüfung ab.
Häufig gestellte Fragen
Welche Dokumenttypen unterstützt die API?
Die CheckFile-API unterstützt über 3.200 Dokumenttypen in 32 Rechtsräumen: Reisepässe, Personalausweise, Führerscheine, Rechnungen, Kontoauszüge, Adressnachweise, Steuerbescheide, Gehaltsabrechnungen und Handelsregisterauszüge. Das KI-Klassifizierungssystem erkennt Dokumenttypen automatisch mit 96,1 % Genauigkeit, wenn der document_type-Parameter weggelassen wird.
Wie lange dauert die Überprüfung?
Die durchschnittliche Verarbeitungszeit beträgt 4,2 Sekunden pro Dokument. Die P95-Latenz liegt unter 12 Sekunden für Standarddokumenttypen. Batch-Einreichungen verarbeiten Dokumente parallel — ein 50-Dokumente-Batch wird typischerweise in 30 bis 60 Sekunden abgeschlossen, je nach Dokumentkomplexität.
Ist die API DSGVO-konform?
Ja. CheckFile agiert als Auftragsverarbeiter gemäß Art. 28 DSGVO mit unterzeichnetem AVV, EU-basierter Verarbeitungsinfrastruktur, konfigurierbarer Datenaufbewahrung (0 bis 365 Tage) und automatischer Entfernung personenbezogener Daten aus Protokollen. SOC 2 Typ II und ISO 27001-Zertifizierungen decken die API-Infrastruktur ab.
Kann ich die API vor einem kostenpflichtigen Tarif testen?
Der Starter-Tarif umfasst 100 kostenlose Prüfungen pro Monat, und die Sandbox-Umgebung ermöglicht unbegrenzte Tests mit synthetischen Dokumenten ohne Kosten. Keine Kreditkarte erforderlich, um zu starten.
Was passiert, wenn die API ein Dokument nicht verifizieren kann?
Dokumente, die unter den Vertrauensschwellenwert fallen, werden mit dem Status review_required gekennzeichnet und über Webhook an Ihre manuelle Überprüfungswarteschlange weitergeleitet. Die Antwort enthält das Teilergebnis mit Vertrauenswert, extrahierten Daten und den spezifischen Betrugssignalen, die die Kennzeichnung ausgelöst haben. So geht kein Dokument verloren.