Finanzdokumente per API hochladen und exportieren

Setzen Sie BASE auf Ihre Rahunko-Adresse, wählen Sie einen Workspace und verwenden Sie einen Bearer-Schlüssel mit den nötigen Scopes. Die drei Schritte unten bilden den implementierten Ablauf ab.

Referenz lesen

011. Upload-Anfrage erstellen

Bereiten Sie Dateiname, MIME-Typ, Byte-Länge, SHA-256 und sourceKind lokal vor. Die Antwort auf die Absicht enthält upload.id für den Upload der Datei.

  • Der Idempotency-Key hat zwischen 8 und 128 erlaubten Zeichen.
  • Der Hash bezieht sich auf genau diese Datei-Bytes.
  • Ein anderer Inhalt mit demselben Schlüssel ergibt einen Konflikt.
BASE="https://your-rahunko-origin.example"
WORKSPACE_ID="ws_123"
API_KEY="rk_replace_with_your_key"
BYTE_LENGTH=$(wc -c < march.pdf | tr -d ' ')
SHA256=$(shasum -a 256 march.pdf | awk '{print $1}')

cat > intent.json <<JSON
{
  "fileName": "march.pdf",
  "mediaType": "application/pdf",
  "byteLength": $BYTE_LENGTH,
  "sha256": "$SHA256",
  "sourceKind": "pdf"
}
JSON

curl -X POST "$BASE/api/v1/workspaces/$WORKSPACE_ID/uploads" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Idempotency-Key: march-2026-upload-01" \
  -H "Content-Type: application/json" \
  --data-binary @intent.json

022. Bytes senden und abschließen

Senden Sie dieselben Bytes mit der angegebenen Länge und dem Digest. Schließen Sie den Upload anschließend mit dem leeren JSON-Objekt ab. Finalize liefert 202.

  • Content-Length muss der angegebenen Byte-Länge entsprechen.
  • Falsche Länge, MIME, Signatur oder Hash werden abgelehnt.
  • Finalize akzeptiert nur {}.
UPLOAD_ID="upload_from_intent_response"

curl -X PUT "$BASE/api/v1/workspaces/$WORKSPACE_ID/uploads/$UPLOAD_ID" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/pdf" \
  -H "X-Content-SHA256: $SHA256" \
  --data-binary "@march.pdf"

curl -X POST "$BASE/api/v1/workspaces/$WORKSPACE_ID/uploads/$UPLOAD_ID/finalize" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

033. Status prüfen und exportieren

Verfolgen Sie den Job bis zum Abschluss, lesen Sie die aktuelle Revision und speichern Sie den Export als Datei. Ersetzen Sie in der Anfrage 3 durch die Revision des Dokuments.

  • CSV, JSON und XLSX stehen als Exportformate bereit.
  • Cancel verwendet POST .../documents/{documentId}/cancel mit {"revision":N}.
  • Delete verwendet die gleiche aktuelle Revision.
JOB_ID="job_from_finalize_response"
DOCUMENT_ID="document_from_finalize_response"
REVISION=3

curl "$BASE/api/v1/workspaces/$WORKSPACE_ID/jobs/$JOB_ID" \
  -H "Authorization: Bearer $API_KEY"

curl "$BASE/api/v1/workspaces/$WORKSPACE_ID/documents/$DOCUMENT_ID" \
  -H "Authorization: Bearer $API_KEY"

curl "$BASE/api/v1/workspaces/$WORKSPACE_ID/documents/$DOCUMENT_ID/export?format=csv&revision=$REVISION" \
  -H "Authorization: Bearer $API_KEY" \
  -o march.csv

API-Fehler antworten als JSON mit stabilem code: 401 für einen ungültigen Schlüssel, 403 für fehlende Scopes, 409 für Status- oder Revisionskonflikte und 422 für abgelehnte Datei-Bytes.