Kreditorenworkflow (AP)
Verarbeiten Sie Kreditorendokumente ueber eine feste achtstufige Pipeline mit optionaler Human-in-the-loop-Pruefung, idempotenten Befehlen und P08-Events.
/v1/workflows/ap/processProDer 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
| Tarif | Maximale Seiten | Laeufe/Monat | Batch-Dokumente |
|---|---|---|---|
| Pro | 10 | 100 | 1 (noch nicht verfuegbar) |
| Business | 100 | 1.000 | 25 (noch nicht verfuegbar) |
| Hobby / Free / Starter | Gesperrt | Gesperrt | Gesperrt |
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:
- Capture - Quelldokument erfassen und validieren
- Pre-process - Dokument normalisieren und vorbereiten
- Classify and route - Dokumenttyp und Route bestimmen
- Extract - passende AP- oder E-Invoice-Extraktion ausfuehren
- Enrich - vorhandene Anreicherung ausfuehren oder begruendet ueberspringen
- Validate - Pflichtfelder, Summen, Steuern und Review-Gruende pruefen
- Review or persist - Review-Zustand erstellen oder Ergebnis persistieren
- 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.
| Status | Terminal | Bedeutung |
|---|---|---|
pending | Nein | Lauf wurde angenommen und eingereiht |
processing | Nein | Eine feste Stufe wird verarbeitet |
review_required | Nein | Pruefung, Korrektur oder Ablehnung ist erforderlich |
approved | Nein | Freigabe wurde akzeptiert, finale Verarbeitung laeuft weiter |
completed | Ja | Workflow erfolgreich abgeschlossen |
rejected | Ja | Pruefer hat den Lauf abgelehnt |
failed | Ja | Eine 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
| Befehl | Schluessel-Scope | Gleiche Anfrage erneut | Andere Anfrage mit gleichem Key |
|---|---|---|---|
process | Tenant + workflow.process + Key | gespeicherte Workflow-Antwort | workflow_idempotency_conflict |
approve | Tenant + Befehl + Key | gespeichertes Ergebnis | workflow_idempotency_conflict |
correct | Tenant + Befehl + Key | gespeichertes Ergebnis | workflow_idempotency_conflict |
reject | Tenant + Befehl + Key | gespeichertes Ergebnis | workflow_idempotency_conflict |
retry / resume | Tenant + Befehl + Key | gespeichertes Ergebnis | workflow_idempotency_conflict |
P08 event delivery
| Statusuebergang | Event-Typ |
|---|---|
nach review_required | review.required |
| Review genehmigt/korrigiert | review.completed |
nach completed | workflow.completed |
nach failed | workflow.failed |
Event-Daten enthalten keine rohen Dokumentbytes und keine internen Speicherreferenzen.
Retry and resume
| Befehl | Wann verwenden | Wirkung |
|---|---|---|
retry | Lauf ist failed und die Stufe kann erneut versucht werden | Startet die fehlgeschlagene/aktuelle Stufe neu |
resume | Lauf ist review_required oder pausiert fortsetzbar | Setzt 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