Zum Hauptinhalt springen

API zum Extrahieren von Kontoauszügen

REST-API zum Konvertieren von PDF-Kontoauszügen in strukturiertes JSON. Mindestens 99,9 % der Transaktionen korrekt identifiziert, automatische Rückerstattung bei Fehler.

$ curl https://api.bankstatementlab.com/v1/extractions \
  -H "Authorization: Bearer bsl_live_..." \
  -F "file=@statement.pdf"

Extraktion von Kontoauszügen

Extrahieren Sie Transaktionen, Salden und Metadaten aus jedem PDF.

Strukturierte JSON-Ausgabe

Einheitliches Schema für alle 10 unterstützten Sprachen.

Mindestens 99,9 % der Transaktionen korrekt identifiziert

Automatische Rückerstattung bei Fehler. Keine Gebühr für fehlgeschlagene Extraktionen.

Synchroner und asynchroner Modus

Synchron für kleine PDFs, asynchron + Polling für große Stapel.

Codebeispiele

Integrieren Sie in jede Sprache. Beispiele unten.

$ curl https://api.bankstatementlab.com/v1/extractions \
  -H "Authorization: Bearer bsl_live_..." \
  -F "file=@statement.pdf"

Antwortformate

Die Felder data, column_names und transaction_count sind nur vorhanden, wenn status gleich "completed" ist. Andernfalls fehlen sie im JSON vollständig (sie sind nicht null).

GET /v1/extractions/:id

200 OK – Extraktion abgeschlossen

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "ext_3f8a9b2c1d4e5f6a7b8c9d0e",
  "status": "completed",
  "file_name": "statement-march-2026.pdf",
  "created_at": "2026-03-15T10:23:00.000Z",
  "completed_at": "2026-03-15T10:23:18.000Z",
  "page_count": 3,
  "credits_charged": 3,
  "api_key_id": "ak_abc123",
  "column_names": ["Date", "Description", "Amount"],
  "transaction_count": 42,
  "data": {
    "columns": ["Date", "Description", "Amount"],
    "transactions": [
      ["2026-03-01", "VIREMENT SEPA", "1500.00"],
      ["2026-03-02", "CB CARREFOUR", "-45.20"]
    ]
  }
}

200 OK – Extraktion läuft

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "ext_3f8a9b2c1d4e5f6a7b8c9d0e",
  "status": "processing",
  "file_name": "statement-march-2026.pdf",
  "created_at": "2026-03-15T10:23:00.000Z",
  "page_count": 3,
  "credits_charged": 3,
  "api_key_id": "ak_abc123"
}

200 OK – Extraktion fehlgeschlagen

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "ext_3f8a9b2c1d4e5f6a7b8c9d0e",
  "status": "failed",
  "file_name": "statement-march-2026.pdf",
  "created_at": "2026-03-15T10:23:00.000Z",
  "completed_at": "2026-03-15T10:23:32.000Z",
  "page_count": 3,
  "credits_charged": 3,
  "api_key_id": "ak_abc123",
  "error": {
    "type": "extraction_failed",
    "message": "Extraction failed due to an internal error. Contact support if the issue persists."
  }
}

Polling-Muster

Wenn eine Extraktion im async-Modus läuft, enthält die Antwort status: "processing", bis der Worker fertig ist. Prüfen Sie immer, ob status gleich "completed" ist, BEVOR Sie die Felder data, transaction_count und column_names lesen; bis zum Abschluss der Extraktion fehlen sie im JSON.

Empfohlene Polling-Frequenz auf Client-Seite: 5 bis 10 Sekunden. Der Worker auf Server-Seite läuft alle 10 Sekunden – schnelleres Polling beschleunigt das Ergebnis nicht.

GET /v1/extractions

200 OK – Gemischte Seite (ein Element pro Status)

HTTP/1.1 200 OK
Content-Type: application/json

{
  "data": [
    {
      "id": "ext_001",
      "status": "completed",
      "file_name": "march.pdf",
      "created_at": "2026-03-15T10:00:00.000Z",
      "completed_at": "2026-03-15T10:00:18.000Z",
      "page_count": 3,
      "credits_charged": 3,
      "api_key_id": "ak_abc123",
      "column_names": ["Date", "Description", "Amount"],
      "transaction_count": 42
    },
    {
      "id": "ext_002",
      "status": "processing",
      "file_name": "april.pdf",
      "created_at": "2026-04-15T10:00:00.000Z",
      "page_count": 5,
      "credits_charged": 5,
      "api_key_id": "ak_abc123"
    },
    {
      "id": "ext_003",
      "status": "failed",
      "file_name": "may.pdf",
      "created_at": "2026-05-15T10:00:00.000Z",
      "completed_at": "2026-05-15T10:00:42.000Z",
      "page_count": 2,
      "credits_charged": 2,
      "api_key_id": "ak_abc123",
      "error": {
        "type": "extraction_failed",
        "message": "Extraction failed due to an internal error. Contact support if the issue persists."
      }
    }
  ],
  "has_more": false
}

Polling-Muster

Wenn eine Extraktion im async-Modus läuft, enthält die Antwort status: "processing", bis der Worker fertig ist. Prüfen Sie immer, ob status gleich "completed" ist, BEVOR Sie die Felder data, transaction_count und column_names lesen; bis zum Abschluss der Extraktion fehlen sie im JSON.

Empfohlene Polling-Frequenz auf Client-Seite: 5 bis 10 Sekunden. Der Worker auf Server-Seite läuft alle 10 Sekunden – schnelleres Polling beschleunigt das Ergebnis nicht.

Entwickelt für

Buchhaltungsautomatisierung

Importieren Sie Kontoauszüge Ihrer Kunden direkt in Ihren Buchhaltungsablauf.

Due Diligence bei der Kreditvergabe

Überprüfen Sie Einkommen und Cashflow anhand der Kontoauszüge des Antragstellers.

Persönliche Finanz-Apps

Ermöglichen Sie Benutzern, ihre Kontoauszüge ohne manuelle Dateneingabe zu verknüpfen.

Gleiche Credits, Web + API

1 Credit = 1 Seite. Die Credits werden mit Ihrem Pro- oder Business-Tarif geteilt; für die API gilt kein separater Mindestbetrag.

Siehe Preise →

Häufig gestellte Fragen

Senden Sie Ihren API-Schlüssel als Bearer-Token im Authorization-Header. Wir verwenden API-Schlüssel – kein OAuth in Version 1.

10 Anfragen pro Sekunde und 1.000 Anfragen pro Stunde je API-Schlüssel. Benötigen Sie höhere Limits? Kontaktieren Sie uns.

Wir streben nach bestem Bemühen eine Verfügbarkeit von 99 % an. In v1 gibt es kein vertragliches SLA; kontaktieren Sie uns für Enterprise-Zusagen.

Fehlgeschlagene Extraktionen werden automatisch Ihrem Guthaben gutgeschrieben. Sie zahlen nur für erfolgreiche Seiten.

PDF nur in v1. Max. 20 MB pro Datei. Bild- und CSV-Unterstützung folgt später.

Englisch, Französisch, Spanisch, Deutsch, Italienisch, Portugiesisch, Japanisch, Niederländisch, Koreanisch, Hindi.

Beginnen Sie noch heute mit der Entwicklung

Das kostenlose Kontingent umfasst 5 Credits. Keine Kreditkarte erforderlich.

Holen Sie sich Ihren API-Schlüssel