Dokumentation

Kreditorenworkflow (AP)

Verarbeiten Sie Kreditorendokumente ueber eine feste achtstufige Pipeline mit optionaler Human-in-the-loop-Pruefung, idempotenten Befehlen und P08-Events.


POST/v1/workflows/ap/processPro

Der Kreditorenworkflow (ap_document_v1) ist eine feste Pipeline fuer Rechnungen, Bestellungen, Lieferscheine und verwandte AP-Dokumente. Er ist kein allgemeiner Workflow-Builder: Die Stufen sind fest und koennen nicht bearbeitet, neu geordnet oder erweitert werden.

Wann Sie die einfachen Extraktions-Endpunkte verwenden sollten

Verwenden Sie POST /v1/documents/extract oder POST /v1/documents/extract/file, wenn Sie eine einzelne Extraktion ohne Pruefungsschleife, Audit-Trail oder Korrekturhistorie benoetigen.

Wann Sie ap_document_v1 verwenden sollten

Verwenden Sie den Kreditorenworkflow fuer Human-in-the-loop-Pruefung, Korrekturhistorie, idempotente approve/correct/reject/retry/resume-Befehle, P08-Events und einen Audit-Trail pro Lauf.

Tarifanforderungen

TarifMaximale SeitenLaeufe/MonatBatch-Dokumente
Pro101001 (noch nicht verfuegbar)
Business1001.00025 (noch nicht verfuegbar)
Hobby / Free / StarterGesperrtGesperrtGesperrt

Batch-Laeufe sind noch nicht verfuegbar. Das Batch-Kontingent je Tarif ist modelliert, aber kein Endpunkt nimmt mehr als ein Dokument pro Lauf entgegen. Starten Sie bis dahin einen Lauf pro Dokument.

Feste Pipeline-Stufen

Der Workflow laeuft immer in dieser Reihenfolge:

  1. Capture - Quelldokument erfassen und validieren
  2. Pre-process - Dokument normalisieren und vorbereiten
  3. Classify and route - Dokumenttyp und Route bestimmen
  4. Extract - passende AP- oder E-Invoice-Extraktion ausfuehren
  5. Enrich - vorhandene Anreicherung ausfuehren oder begruendet ueberspringen
  6. Validate - Pflichtfelder, Summen, Steuern und Review-Gruende pruefen
  7. Review or persist - Review-Zustand erstellen oder Ergebnis persistieren
  8. Emit events - interne und P08-kompatible Events schreiben

Es gibt keinen Modell- oder Provider-Picker in UI, API oder SDK.

Starten eines Workflows

Kleine Dokumente koennen synchron (sync) antworten, wenn sie innerhalb der Grenzen fuer Seiten, Bytes und Zeitbudget bleiben. Groessere oder langsamere Laeufe werden asynchron (async) verarbeitet und per Status-Polling verfolgt.

curl -X POST "https://api.parsurai.com/v1/workflows/ap/process" \
  -H "X-API-Key: $PARSURAI_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -F "file=@invoice.pdf" \
  -F "review_policy=auto" \
  -F "preprocessing_policy=auto" \
  -F "persist_after_approval=true"

Polling for status

Fragen Sie GET /v1/workflows/ap/{workflow_run_id} ab, bis ein terminaler Status erreicht ist.

StatusTerminalBedeutung
pendingNeinLauf wurde angenommen und eingereiht
processingNeinEine feste Stufe wird verarbeitet
review_requiredNeinPruefung, Korrektur oder Ablehnung ist erforderlich
approvedNeinFreigabe wurde akzeptiert, finale Verarbeitung laeuft weiter
completedJaWorkflow erfolgreich abgeschlossen
rejectedJaPruefer hat den Lauf abgelehnt
failedJaEine erforderliche Stufe ist fehlgeschlagen

Handling review_required

curl -X POST "https://api.parsurai.com/v1/workflows/ap/2f0b6f4e-8b2b-4f7f-9c2d-3d58c9bb0f12/approve" \
  -H "X-API-Key: $PARSURAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workflow_run_version": 1, "reason": "Geprueft", "idempotency_key": "approve-2f0b6f4e-8b2b-4f7f-9c2d-3d58c9bb0f12-v1"}'
curl -X POST "https://api.parsurai.com/v1/workflows/ap/2f0b6f4e-8b2b-4f7f-9c2d-3d58c9bb0f12/correct" \
  -H "X-API-Key: $PARSURAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workflow_run_version": 1, "corrections": [{"path": "invoice_number", "previous_value": "INV-001", "new_value": "INV-002", "reason": "OCR-Fehler"}], "reason": "Rechnungsnummer korrigiert", "idempotency_key": "correct-2f0b6f4e-8b2b-4f7f-9c2d-3d58c9bb0f12-v1"}'
curl -X POST "https://api.parsurai.com/v1/workflows/ap/2f0b6f4e-8b2b-4f7f-9c2d-3d58c9bb0f12/reject" \
  -H "X-API-Key: $PARSURAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workflow_run_version": 1, "reason": "Duplikat", "idempotency_key": "reject-2f0b6f4e-8b2b-4f7f-9c2d-3d58c9bb0f12-v1"}'

Nebenlaeufigkeit und veraltete Versionen

Alle Befehle enthalten workflow_run_version. Bei parallelen Aenderungen antwortet die API mit 409 Conflict. Laden Sie den Status neu und senden Sie den Befehl mit der aktuellen Version.

Idempotency

BefehlSchluessel-ScopeGleiche Anfrage erneutAndere Anfrage mit gleichem Key
processTenant + workflow.process + Keygespeicherte Workflow-Antwortworkflow_idempotency_conflict
approveTenant + Befehl + Keygespeichertes Ergebnisworkflow_idempotency_conflict
correctTenant + Befehl + Keygespeichertes Ergebnisworkflow_idempotency_conflict
rejectTenant + Befehl + Keygespeichertes Ergebnisworkflow_idempotency_conflict
retry / resumeTenant + Befehl + Keygespeichertes Ergebnisworkflow_idempotency_conflict

P08 event delivery

StatusuebergangEvent-Typ
nach review_requiredreview.required
Review genehmigt/korrigiertreview.completed
nach completedworkflow.completed
nach failedworkflow.failed

Event-Daten enthalten keine rohen Dokumentbytes und keine internen Speicherreferenzen.

Retry and resume

BefehlWann verwendenWirkung
retryLauf ist failed und die Stufe kann erneut versucht werdenStartet die fehlgeschlagene/aktuelle Stufe neu
resumeLauf ist review_required oder pausiert fortsetzbarSetzt ab aktueller Stufe bzw. Checkpoint fort
curl -X POST "https://api.parsurai.com/v1/workflows/ap/2f0b6f4e-8b2b-4f7f-9c2d-3d58c9bb0f12/retry" \
  -H "X-API-Key: $PARSURAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workflow_run_version": 3, "reason": "Provider wieder verfuegbar", "idempotency_key": "retry-2f0b6f4e-8b2b-4f7f-9c2d-3d58c9bb0f12-v3"}'
curl -X POST "https://api.parsurai.com/v1/workflows/ap/2f0b6f4e-8b2b-4f7f-9c2d-3d58c9bb0f12/resume" \
  -H "X-API-Key: $PARSURAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workflow_run_version": 4, "reason": "Pruefung abgeschlossen", "idempotency_key": "resume-2f0b6f4e-8b2b-4f7f-9c2d-3d58c9bb0f12-v4"}'

Limitations

  • Kein allgemeiner Workflow-Builder; feste Stufen
  • Kein Modell- oder Provider-Picker
  • Lokaler Artefaktspeicher ist nur fuer Dev/Test oder explizite Single-Node-Deployments geeignet
  • Horizontale Produktionsaufbewahrung erfordert dauerhaften privaten Speicher
  • Keine exactly-once-Ausfuehrung; Idempotency Keys schuetzen Replays
  • Monatliche Limits gelten pro Tarif