Dokumentation

Schnellstart

Parsen Sie Ihre erste Rechnung mit der aktuellen Parsurai-Extraktions-API.


Diese Anleitung zeigt, wie Sie einen API-Schluessel erhalten und die erste Extraktionsanfrage senden.

Schritt 1 - Kostenloses Konto erstellen

Registrieren Sie sich auf parsurai.com ohne Kreditkarte. Der Free-Tarif enthaelt 100 Extraktionen pro Monat und automatische Locale-Erkennung.

Schritt 2 - E-Mail verifizieren und API-Schluessel abrufen

Klicken Sie auf den Bestaetigungslink in Ihrer E-Mail. Die Bestaetigungsseite zeigt Ihren API-Schluessel an -- dies ist das einzige Mal, dass er vollstaendig angezeigt wird. Kopieren Sie ihn, bevor Sie die Seite verlassen.

Schluessel tragen das Praefix sk_live_. Das Developer Dashboard zeigt danach nur noch das Praefix, nie den vollstaendigen Schluessel: Falls Sie ihn nicht gespeichert haben, erzeugen Sie unter Einstellungen -> API-Schluessel einen neuen; der alte bleibt gueltig, bis Sie ihn loeschen.

Speichern Sie API-Schluessel in Umgebungsvariablen. Hinterlegen Sie sie nie in Browser-Code, mobilen App-Bundles oder Quellcode-Repositories.

export PARSURAI_API_KEY="sk_live_your_actual_key_here"

Schritt 3 - Erste Extraktion senden

Der Text-Endpunkt akzeptiert einen JSON-Body mit text und optional locale. Free-Konten sollten auto verwenden; explizite Locale-Hinweise erfordern Hobby oder hoeher.

curl -X POST https://api.parsurai.com/v1/extract \
  -H "X-API-Key: $PARSURAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "INVOICE\nFrom: Acme Ltd...\nTotal: £1,200.00", "locale": "auto"}'

Schritt 4 - Antwort verstehen

Eine erfolgreiche 200 OK-Antwort folgt dem Backend-Extraktionsschema:

{
  "invoice_id": "2f7d7f8a-32fb-4a7c-a3b1-53b61b64252f",
  "invoice": {
    "document_type": "invoice",
    "vendor": {
      "name": "Acme Ltd",
      "address": "123 High Street, London EC1A 1BB",
      "email": null,
      "phone": null,
      "tax_id": "GB123456789",
      "iban": "GB29NWBK60161331926819",
      "bank_name": null
    },
    "buyer": {
      "name": "Buyer GmbH",
      "address": null,
      "email": null,
      "phone": null,
      "tax_id": "DE123456789",
      "iban": null,
      "bank_name": null
    },
    "invoice_number": "INV-2026-001",
    "issue_date": "2026-06-13",
    "due_date": "2026-07-13",
    "billing_period_start": null,
    "billing_period_end": null,
    "reference_numbers": [],
    "line_items": [
      {
        "description": "Software Subscription - Annual",
        "quantity": 1,
        "unit": null,
        "unit_price": 1200.0,
        "discount": null,
        "total": 1200.0,
        "tax_rate": 0.0
      }
    ],
    "subtotal": 1200.0,
    "discount_total": null,
    "tax_breakdown": [
      {
        "tax_type": "VAT",
        "rate": 0.0,
        "taxable_amount": 1200.0,
        "tax_amount": 0.0
      }
    ],
    "tax_total": 0.0,
    "total_amount": 1200.0,
    "amount_paid": null,
    "amount_due": 1200.0,
    "currency": "GBP",
    "payment_terms": "Net 30",
    "payment_instructions": null,
    "locale": "en",
    "confidence": 0.98,
    "field_confidence": {},
    "notes": []
  },
  "duplicate_risk": null,
  "anomalies": [],
  "confidence_low": false,
  "field_bboxes": null
}

Wichtige Antwortfelder

FeldTypBeschreibung
invoice_idUUID-StringEindeutige Extraktions-ID fuer Folgeaufrufe
invoice.document_typestringinvoice, credit_note, pro_forma, receipt oder other
invoice.vendorobjectVerkaeuferdaten inklusive name, tax_id, iban und Kontaktfeldern
invoice.buyerobjectKaeuferdaten mit derselben Struktur
invoice.line_items[].tax_ratenumber oder nullSteuersatz als Dezimalwert, z. B. 0.19
invoice.subtotalnumber oder nullBetrag vor Steuer und Rabatt, falls extrahiert
invoice.tax_totalnumber oder nullGesamter Steuerbetrag, falls extrahiert
invoice.total_amountnumberErforderlicher Gesamtbetrag
invoice.confidencenumberGesamt-Konfidenz von 0.0 bis 1.0
duplicate_riskobject oder nullDuplikatsignal fuer Pro und Business
anomaliesarrayAnomalie-Flags fuer Pro und Business
field_bboxesobject oder nullFeldpositionen fuer PDF-/Bild-Uploads auf Pro und Business, wenn OCR-Spans verfuegbar sind

Schritt 5 - Datei parsen

Nutzen Sie den Datei-Endpunkt fuer PDF- oder Bild-Uploads. Der Locale-Hinweis ist ein Query-Parameter.

curl -X POST "https://api.parsurai.com/v1/extract/file?locale=auto" \
  -H "X-API-Key: $PARSURAI_API_KEY" \
  -F "file=@invoice.pdf"

Text-, Datei- und URL-Workflows

Nutzen Sie POST /v1/extract, wenn der Rechnungstext bereits in Ihrem Backend vorliegt, zum Beispiel aus einem E-Mail-Parser oder ERP-Notizfeld. Dieser Weg ist am leichtesten zu integrieren, weil der Body reines JSON ist.

Nutzen Sie POST /v1/extract/file, wenn Ihr Backend PDF- oder Bilddateien entgegennimmt. Senden Sie die Datei als Multipart-Form-Data und uebergeben Sie locale=auto, sofern der Tarif keine expliziten Locale-Hinweise freischaltet.

Nutzen Sie POST /v1/extract/url, wenn das Dokument bereits unter einer oeffentlich erreichbaren URL liegt. Die API ruft diese URL serverseitig ab, daher muss die Datei ohne Browser-Cookies oder privaten Netzwerkzugriff erreichbar sein.

Stapel-Scans, Trennung und Klassifizierung

Nicht jedes Dokument ist eine einzelne, saubere Rechnung. Die AP-Dokument-Endpunkte von Parsurai verarbeiten mehrseitige Stapel und gemischte Scans:

  • POST /v1/documents/split - Gruppiert einen mehrseitigen PDF-Stapel anhand von Dokumentgrenzen in logische Dokumente, sodass aus einem 20-seitigen Upload 5 einzelne Rechnungen werden.
  • POST /v1/documents/crop - Erkennt und isoliert mehrere physische Dokumente, die zusammen auf einer Seite gescannt oder fotografiert wurden.
  • POST /v1/documents/classify - Identifiziert den Dokumenttyp (invoice, purchase_order, delivery_note, receipt, bank_statement u. a.) mit Konfidenzwert vor dem Parsing.
  • POST /v1/documents/extract - Parst Bestellungen, Lieferscheine, Zahlungsavise und weitere AP-Dokumente ueber den dedizierten AP-Dokument-Envelope, getrennt von den Rechnungs-Endpunkten oben.

Benoetigen Sie Review, Korrekturhistorie und Audit-Trails rund um diese Schritte? Nutzen Sie den AP-Dokumentenworkflow - eine feste achtstufige Pipeline mit Human-in-the-Loop-Review statt einzelner Endpunktaufrufe.

Diese Endpunkte sind auf Pro- und Business-Tarifen verfuegbar. Siehe AP-Dokumentextraktion, Automatische Trennung, Automatischer Zuschnitt und AP-Klassifizierung fuer die vollstaendige Referenz.

Nutzung und Fehler pruefen

Nach einer erfolgreichen Extraktion koennen Sie GET /v1/usage abfragen und calls_this_month, quota, plan_name und resets_on in Ihrer eigenen Oberflaeche anzeigen. Wenn eine Extraktion quota_exceeded zurueckgibt, stoppen Sie weiteren Extraktionstraffic bis zum Reset-Datum oder wechseln Sie in einen hoeheren Tarif.

Wenn eine Anfrage feature_not_in_plan zurueckgibt, behalten Sie das gespeicherte Extraktionsergebnis und blenden Sie den gesperrten Workflow in Ihrer UI aus. Typische Beispiele sind explizite Locale-Hinweise im Free-Tarif, ZUGFeRD unterhalb von Pro und Intelligenzfunktionen unterhalb von Pro.

Behandeln Sie invoice_id als stabile Uebergabe-ID fuer Folgeworkflows wie Duplikatpruefung, Anomaliepruefung und Nutzerfeedback.

Naechste Schritte