DMS
Das DMS ist die zentrale Ablage für Dateien — Verträge, Rechnungen,
Personalakte, Compliance-Nachweise. Versionen, Anhänge und Inhalts-Layer
liegen direkt am dms_document-Datensatz; die Datei-Storage-Schicht ist
über den separaten File-Upload-Flow getrennt.
Resources – Inhalte
| Resource | Pfad | Permission-Präfix |
|---|---|---|
| Dokumente | /api/v1/dms_documents | dms_document |
| Ordner | /api/v1/dms_folders | dms_folder |
| Dokumenttypen | /api/v1/dms_document_types | dms_document_type |
| Annotationen | /api/v1/dms_annotations | dms_annotation |
| Kommentare | /api/v1/dms_comments | dms_comment |
| Templates | /api/v1/dms_templates | dms_template |
| Form-Layouts | /api/v1/dms_form_layouts | dms_form_layout |
| Sharing-Links | /api/v1/dms_shares | dms_share |
| Signaturen | /api/v1/dms_signatures | dms_signature |
| Signatur-Anfragen | /api/v1/dms_signing_requests | dms_signing_request |
Resources – Verarbeitung & Storage
| Resource | Pfad | Permission-Präfix |
|---|---|---|
| Filing-Regeln | /api/v1/dms_filing_rules | dms_filing_rule |
| Parser | /api/v1/dms_parsers | dms_parser |
| Extraction-Feedback | /api/v1/dms_extraction_feedback | dms_extraction_feedback |
| Retention-Policies | /api/v1/dms_retention_policies | dms_retention_policy |
| Storage-Backends | /api/v1/dms_storage_backends | dms_storage_backend |
| DATEV-Exports | /api/v1/dms_datev_exports | dms_datev_export |
| SharePoint-Sync-Logs | /api/v1/dms_sharepoint_sync_logs | dms_sharepoint_sync_log |
| Sync-Konflikte | /api/v1/dms_sync_conflicts | dms_sync_conflict |
Schemas
Document
Schema for validating DMS document entities (Dokumentenverwaltung)
title
Document title
description
Optional description or summary
documentTypeId
Reference to dms_document_types (custom document type)
documentType
Legacy document type string (deprecated, use documentTypeId)
customFields
Custom field values defined by the document type schema
status
Document lifecycle status
DRAFTNEEDS_REVIEWAPPROVEDREJECTEDBOOKEDARCHIVED partyId
Linked CRM party
contactPartyId
Linked contact person
contractId
Linked contract
projectId
Linked project
employeeId
Linked employee profile
assignedToId
Assigned user for review
customerVisible
When true, document is published on the project customer portal (requires project.customerAccess feature releasedDocuments).
customerUploaded
True if the document was uploaded by a customer via the public portal.
uploadedByPartyId
Customer party that uploaded this file (set when customerUploaded = true).
orgUnitId
Owning org unit
tags
Manual + auto tags
folderId
Reference to dms_folders entity
folderPath
Virtual folder path (e.g. /invoices/2026/)
checkedOutBy
User ID who has this document checked out
checkedOutAt
When the document was checked out
lockExpiresAt
Auto-release lock after this time (default 24h)
fileId
Reference to files collection
mimeType
MIME type of the document file
sizeBytes
File size in bytes
s3Key
S3 storage key
thumbnailS3Key
S3 key for thumbnail image
pageCount
Number of pages (PDF)
extractedText
Full text extracted from document for search
textExtractionStatus
Text extraction pipeline status
PENDINGCOMPLETEFAILED ocrStatus
OCR processing status
NOT_NEEDEDPENDINGCOMPLETEFAILED ocrMethod
Which OCR method produced the text
tesseractai-vision ocrConfidence
OCR confidence score (0-100)
ocrError
Reason why the last OCR attempt failed (exception message or diagnostic hint)
searchablePdfS3Key
S3 key for the searchable PDF (original + invisible OCR text layer)
classificationConfidence
Classification confidence score 0-1
classificationSource
How the document was classified. EINVOICE = ZUGFeRD/XRechnung Pre-Classifier matched the embedded SellerTradeParty/BuyerTradeParty against the tenant identity.
LLMRULEMANUALEINVOICE classificationTrace
Diagnose-Spur der letzten Klassifikation: welche Regeln matchten, welche E-Invoice-Felder die Tenant-Identität trafen, oder bei MANUAL der vorherige Doktyp. Zeigt im UI „Warum wurde dieses Dokument so klassifiziert?".
source
LLMRULEMANUALEINVOICE confidence
winnerScore
winnerName
candidates
documentTypeName
evaluations
patternType
keywordregexbuiltin field
position
required
matchedSnippet
einvoiceFormat
einvoiceMatchedOn
vendor.ibanvendor.vatIdbuyer.vatId einvoiceVendorName
einvoiceVendorIban
einvoiceVendorVatId
einvoiceBuyerName
einvoiceBuyerVatId
previousDocumentTypeId
previousDocumentTypeName
previousSource
manualByUserId
retentionPolicyId
Applied retention policy
retentionExpiresAt
When retention period expires
retentionStartAt
Zeitpunkt, an dem die Aufbewahrungsuhr gestartet ist (abgeleitet aus retentionStartTrigger des Doctypes).
retentionUntil
Berechneter Ablauf der Aufbewahrungspflicht. Vor diesem Zeitpunkt blockiert der Soft-Delete-Endpoint und (bei retentionMode=compliance) auch S3 jede Löschung.
retentionMode
Effektiver Object-Lock-Modus dieses Dokuments (vom Doctype geerbt, beim Lock-Apply eingefroren).
nonegovernancecompliance s3VersionId
S3-VersionId des PUT, an dem der Object-Lock haftet. Pflicht, weil Lock immer auf eine konkrete Version greift.
s3ObjectLockApplied
Sanity-Flag: true sobald PutObjectRetention erfolgreich gegen S3 gefeuert wurde. Daily-Integrity-Job verifiziert via GetObjectRetention.
contentSha256
Hex-codierter SHA-256-Hash des Originalinhalts beim Upload. Daily-Integrity-Job vergleicht gegen neu berechneten Hash zur Manipulationsprüfung (GoBD Rz. 110 Unveränderbarkeit).
legalHold
Aufbewahrungs-Sperre (S3 PutObjectLegalHold). Wenn active=true, blockiert jede Löschung — auch nach Ablauf von retentionUntil. Verwendung: Steuerprüfung, Litigation Hold, Audit.
reason
releasedBy
releasedAt
caseRef
Aktenzeichen / Case-ID für Audit-Trail
documentVersions
Previous versions of this document
incomingInvoice
Incoming invoice specific data (Eingangsrechnung)
vendorPartyId
Matched CRM party for vendor
vendorName
vendorTaxId
Steuernummer or USt-IdNr
vendorIban
invoiceNumber
invoiceDate
dueDate
netAmount
vatAmount
grossAmount
currency
paymentTerms
paymentReference
Verwendungszweck / payment reference
zugferdVersion
xRechnungVersion
extractionMethod
ZUGFERDXRECHNUNGLLM_VISIONOCR_LLMPARSERMANUAL extractionConfidence
extractionParserId
Which dms_parser was used
corrections
User corrections for feedback loop
bookingReference
datevExportedAt
aiSummary
AI-generated document summary
aiTags
AI-suggested tags
suggestedFolderPath
AI-suggested filing location
suggestedFolderId
AI-suggested folder ID
duplicateOfId
Reference to potential duplicate document
duplicateConfidence
Similarity score for duplicate detection (0-1)
embeddingStatus
Vector embedding generation status
PENDINGPROCESSINGDONEFAILED lastEmbeddedAt
When embeddings were last generated
entitySuggestions
entitySuggestionStatus
PENDINGCOMPLETEFAILED expiresAt
Document expiry date (e.g. TÜV, certificates, warranties)
expiryNotificationDays
Days before expiry to send notification
syncSource
localsharepoint lastSyncedAt
syncError
backendId
Storage backend currently holding the bytes.
backendItemId
Backend-specific item id (e.g. Graph driveItem id, S3 key, FS path).
backendETag
Backend ETag at last sync — used for 3-way conflict detection.
appliedFilingPolicyId
Filing policy most recently applied to this document.
resolvedPath
Backend-absolute path at the time of last filing (audit + quick display).
originalBackendPath
Pfad, an dem das Dokument beim Inbound-Sync ursprünglich lag (z.B. "/Kunden/ACME/Rechnungen/file.pdf"). Quelle der Pfad-Hoheit, wenn keine Filing-Policy mit overrideBackendPath greift.
originalBackendId
Backend, das das Dokument ursprünglich geliefert hat (Inbound-Origin). Bleibt stabil, auch wenn ein späterer Move das aktive Backend ändert.
pathSource
Welcher Pfad gewinnt aktuell als resolvedPath: "origin" = Backend-Original (Inbound), "policy" = Filing-Policy-Template.
originpolicy filingStatus
Filing lifecycle state (ADR 0051).
unfiledinboxfiledmisfiledfiling_failedmissing_in_backend syncState
Conflict-locking state-machine (ADR 0052 §7.4).
cleanpending_outboundpending_inboundconflictrenamingmigrating requiresHumanReview
Ingestion-Inbox quarantine flag (ADR 0051 §7.2.5).
classification
Sensitivity classification used by filing policies (§9.4).
publicinternalconfidentialstrictly_confidential processingStartedAt
When the post-ingestion pipeline acquired this lock. Null = idle.
processingJobId
BullMQ jobId of the running pipeline (used for explicit cancellation).
processingStage
Current pipeline stage — surfaced to the user as a progress hint.
ocrclassifyextractfile processingExpiresAt
Lock TTL — past this point the lock is considered stale.
processingCancelledAt
Set by POST /dms/documents/:id/unlock. The worker checks this between stages and bails on the next stage boundary.
lastOutboundMoveAt
Timestamp of the most recent successful outbound move/push.
lastOutboundMoveJobId
BullMQ jobId of the last outbound-move attempt (used for diagnostics and idempotency).
outboundMoveAttempts
Total outbound-move attempts (increments on every CAS-lock acquisition).
encryptionOverride
Per-document override of the document type's defaultEncryption. null = inherit from type.
nonezero-knowledge encryption
Encryption metadata for ZK-protected files. Set on upload, never mutated; rotation requires re-upload.
mode
Currently only zero-knowledge is supported.
zero-knowledge alg
AES-256-GCM iv
Base64-encoded 12-byte IV used to encrypt the file body.
keyId
Optional identifier for the per-document DEK (e.g. UUIDv7 generated client-side).
wrappedKeys
Per-recipient wraps of the per-document DEK. Each entry mirrors vault_customer_keys.memberKeys.
type
userteamrole id
wrappedKey
ephemeralPublicKey
addedAt
addedBy
notes
Free-text notes
Keine Felder passen zum Filter.
Folder
Schema for validating DMS folder entities (Ordnerstruktur)
name
Folder display name
parentId
Parent folder ID (null = root level)
path
Full materialized path (e.g. /Rechnungen/2026/)
description
icon
Icon name for display
color
Color hex for display
defaultDocumentTypeId
Default document type for uploads into this folder
retentionPolicyId
Retention policy inherited by documents in this folder
sortOrder
Sort order among siblings
createdFromTemplateId
Folder template that produced this folder (for traceability and re-apply).
linkedEntityType
Entity type this folder belongs to (party, project, vehicle, …).
linkedEntityId
Entity ID this folder belongs to.
backendId
Storage backend that physically holds this folder (if any).
backendItemId
Backend-specific folder identifier (e.g. Graph driveItem id).
resolvedPath
Backend-absolute path at creation time (audit + quick display).
syncSource
Origin of the most recent write. Drives echo-suppression in the opposite direction.
localsharepoint lastSyncedAt
Last successful sync timestamp (in or out).
syncError
Last sync error message — cleared on successful sync.
syncState
Conflict-locking state-machine for folder sync (mirrors dms_document.syncState).
cleanpending_outboundpending_inboundconflictrenamingmigrating filingStatus
Folder filing state. missing_in_backend = SharePoint counterpart no longer exists (K2 scenario).
unfiledfiledfiling_failedmissing_in_backend originalBackendPath
Path at which the folder was first discovered on the backend — source of truth for path-source: origin.
originalBackendId
Backend that originally delivered this folder (inbound origin). Stable across later moves.
pathSource
Which path currently wins as resolvedPath: "origin" = backend, "policy" = filing policy template.
originpolicy lastOutboundMoveAt
Timestamp of the most recent successful outbound folder operation.
lastOutboundMoveJobId
BullMQ jobId of the last outbound-folder attempt (diagnostics + idempotency).
outboundMoveAttempts
Total outbound attempts (increments on every CAS-lock acquisition).
pathRewriteStatus
Bulk path-rewrite progress after a folder move. null/done = idle.
pendingin_progressdone pathRewriteCursor
Cursor for chunked path-rewrite continuation (last processed _id).
pathRewriteFrom
Source path prefix for the in-progress async rewrite.
pathRewriteTo
Target path prefix for the in-progress async rewrite.
deletedInBackend
SharePoint counterpart was deleted while DMS-side changes are still pending — needs conflict triage.
deletedInBackendAt
When the SP-side delete was first observed.
Keine Felder passen zum Filter.
Document-Type
Schema for defining DMS document types (Dokumententypen / Archive) with custom field definitions
name
Document type name (e.g. Eingangsrechnung, Vertrag)
key
Stable snake_case identifier (e.g. incoming_invoice). Required + immutable for system types; optional for tenant-custom types.
isSystem
Plattform-Seed. Nicht löschbar; key/scope/retentionMode immutable. Setzbar nur durch Seed-Service.
scope
Fachliche Gruppierung (Posteingang-Tabs, Berechtigungen, Reporting). System-Types tragen einen Scope; Custom-Types optional.
financesalesprocurementhrlegalcomplianceit_opsgeneral description
icon
Icon name from the Icons registry
color
Badge color (hex or CSS variable)
fields
Custom field definitions for this document type
key
camelCase field identifier, used as key in customFields
label
Display label for the field
type
Field value type
texttextareanumbercurrencydatedatetimeselectmultiselectcheckboxrelation required
defaultValue
Default value for new documents (any JSON value).
placeholder
group
Visual grouping label for form sections
sortOrder
Display order within group
width
Grid column width (out of 12)
346812 extractionHint
Natural language hint for LLM extraction (e.g. "Rechnungsnummer")
extractionPath
JSON path for structured data (e.g. ZUGFeRD XML)
relationConfig
targetCollection
Target collection (e.g. parties, contracts)
displayField
Field to display from target (e.g. name)
defaultStatus
Default status for new documents of this type
DRAFTNEEDS_REVIEWAPPROVEDREJECTEDBOOKEDARCHIVED autoExtract
Auto-trigger LLM/OCR extraction on upload
retentionDays
Auto-archive after N days
retentionPolicyId
Linked retention policy
retentionMode
S3 Object-Lock-Modus: 'compliance' für Buchhaltungs-Belege (§ 147 AO), 'governance' für HR/Verträge (DSGVO-Balance), 'none' für ephemere Dokumente.
nonegovernancecompliance retentionMonths
Aufbewahrungsdauer in Monaten ab retentionStartTrigger. Beispiele: 120 (10 Jahre § 147 AO), 72 (6 Jahre § 257 HGB), 12 (DSGVO-Min für Bewerbungen).
retentionStartTrigger
Wann die Aufbewahrungsuhr startet. 'fiscalYearEnd' für Buchhaltungs-Belege (§ 147 AO startet erst mit Ende des Kalenderjahrs), 'employeeLeft' für HR-Akten, 'contractEnd' für Verträge.
createdAtfiscalYearEndcontractEndemployeeLeftmanualField retentionStartFieldKey
Bei retentionStartTrigger='manualField': Pfad auf das Datum-Feld (z.B. 'customFields.contractEndDate').
legalBasis
Rechtliche Grundlage der Aufbewahrungspflicht (z.B. "§ 147 AO", "§ 257 HGB", "Art. 6(1)(c) DSGVO"). Wird im UI als Erklärung angezeigt, warum ein Dokument nicht löschbar ist.
requireApprovalBeforeLock
Wenn true, wird der COMPLIANCE-Lock erst nach Status-Übergang nach APPROVED gesetzt (sonst sofort nach Klassifikation). Verhindert Lock-Theater bei Falsch-Klassifikation.
workflow
Custom workflow definition for this document type. If null, default workflow is used.
statuses
Custom status definitions (replaces default DRAFT/NEEDS_REVIEW/...)
id
Status identifier (e.g. DRAFT, IN_REVIEW)
label
Display label (i18n key or plain text)
color
Badge color (hex or MUI color name)
icon
Icon name for this status
isFinal
If true, no further transitions are allowed from this status
transitions
Allowed transitions between statuses
from
Source status ID
to
Target status ID
label
Button label for this transition
requiredPermission
Permission required (e.g. dms_document_approve)
requireComment
User must provide a comment/reason for this transition
autoAssign
Auto-assign to role on transition (e.g. "accounting")
webhookUrl
Trigger webhook on transition
color
Button color for this transition
primarysuccesserrorwarninginherit initialStatus
Starting status for new documents (defaults to first status in list)
formLayoutId
Optional custom form layout (overrides auto-generated form)
defaultEncryption
Default encryption mode for documents of this type. Server never sees plaintext when set to zero-knowledge.
nonezero-knowledge defaultWrapPolicy
Default wrap-policy for the per-document DEK. Applied at upload time and used as starting ACL; uploaders may add or remove specific recipients per document.
includeEmployee
Wrap the DEK for the subject employee (party-linked PERSON or employee_profile). Default true.
includeManager
Wrap the DEK for the employee's direct manager (auto-tracked).
roles
Permission strings whose holders are auto-wrapped (e.g. "dms_hr_officer", "payroll_manage").
explicitUserIds
Explicit user UUIDs to always include in the wrap list.
isActive
sortOrder
inboxFilterEnabled
Wenn true, erscheint dieser Doktyp als eigener Filter-Tab im DMS-Posteingang (sortiert nach sortOrder).
extractionProfile
Name of the extraction profile (e.g. "invoice_v1") used to pull structured fields via OCR + LLM.
defaultFilingPolicyId
Fallback filing policy — used when no higher-priority policy matches the upload context.
onClassificationSpawnEntity
Auto-action when this document type is detected. Spawn a new entity, attach to an existing one, or both (attach-or-spawn).
mode
Auto-action mode: 'spawn' creates a new entity (legacy behaviour), 'attach' only links to an existing entity, 'attach_or_spawn' tries attach first and falls back to spawn.
spawnattachattach_or_spawn targetEntityType
confidenceThreshold
fieldMappings
extractedField
targetField
transform
parseDateparseCurrencytrimupperlowerasIs required
lookupFields
For 'attach' / 'attach_or_spawn': fields used to find the existing entity. Each row maps an extracted field to a target entity field; the lookup is an AND of all required entries.
extractedField
targetEntityField
transform
parseDateparseCurrencytrimupperlowerasIs required
linkRole
linkBackToDocument
requireHumanApproval
dedupeBy
postClassificationActions
Geordnete Aktionsliste, die nach Klassifizierung sequenziell ausgeführt wird (Workflow / Entity-Spawn / Filing-Policy / Notification).
type
workflowentity_spawnfiling_policynotification enabled
name
confidenceThreshold
continueOnError
classificationRules
Deterministic classification rules evaluated before the LLM fallback. Each rule contributes its weight to the document type score when matched.
id
Stable rule identifier (UUIDv7).
label
Optional human-readable name.
patternType
keywordregexbuiltin pattern
Literal substring (keyword), regex source (regex) or built-in key (e.g. 'iban').
weight
Positive boosts the document type score; negative reduces it.
required
Veto rule: if true and the pattern does not match, the document type is excluded entirely.
field
ocrTextfileNamemimeTypesenderDomainfolderPathall position
Only meaningful when field='ocrText'.
firstPagelastPageany caseSensitive
classificationRuleThreshold
Minimum total score (0-100) required for the rule classifier to declare a winner. Below this, the LLM fallback is used.
postProcessing
Workflow-Lifecycle-Hooks pro Doktyp. Jeder Slot ist optional und referenziert eine workflowDefinitionId.
onClassified
minConfidence
Workflow läuft nur, wenn classificationConfidence >= minConfidence. Default 0 (immer feuern).
onExtracted
requireFields
Workflow läuft nur, wenn alle genannten extrahierten Felder Werte haben (verhindert leere Trigger bei OCR-Fehlern).
onFiled
Keine Felder passen zum Filter.
Annotation
Schema for validating DMS PDF annotations (PDF-Annotationen)
documentId
Reference to dms_document
pageNumber
Page number (1-based)
type
Annotation type
HIGHLIGHTCOMMENTSTAMPSIGNATUREFREEHANDRECTANGLE content
Text content (for COMMENT type)
color
Color in hex (e.g. #FFFF00)
opacity
stampType
Stamp type (only for STAMP annotations)
APPROVEDREJECTEDDRAFTCONFIDENTIALCUSTOM stampText
Custom stamp text (only for CUSTOM stampType)
freehandPath
SVG path data for FREEHAND annotations
Keine Felder passen zum Filter.
Comment
Threaded comment on a DMS document
documentId
Reference to dms_document
parentCommentId
Parent comment ID for threaded replies
body
Comment text (may contain @mentions as @[userId])
mentions
User IDs mentioned in this comment
annotationId
Linked annotation (for comments on specific PDF regions)
isResolved
Whether this comment thread is resolved
resolvedBy
Who resolved this thread
resolvedAt
Keine Felder passen zum Filter.
Template
Schema for validating DMS PDF generation templates (PDF-Vorlagen)
name
Template name
description
templateType
Type of document this template generates
INVOICEOFFERCONTRACTREPORTLETTERCUSTOM engine
Rendering engine (Puppeteer + Handlebars)
HTML_PDF htmlTemplate
Handlebars HTML template body
cssStyles
CSS styles for the template
headerHtml
HTML for page header
variables
Template variables with types
orientation
PORTRAITLANDSCAPE paperSize
A4A3LETTERLEGAL sampleData
Sample JSON data for template preview
thumbnailS3Key
S3 key for template preview thumbnail
isActive
sortOrder
Keine Felder passen zum Filter.
Form-Layout
Schema for validating form layouts used by the visual schema editor (Formular-Layouts)
schemaId
Link to schema_definitions (schema ID)
title
description
layout
sections
collapsible
defaultCollapsed
columns
123 fields
fieldKey
Matches the schema property name
column
0-based column index
order
Sort order within column
width
MUI Grid width units
widget
Widget type override
AUTOTEXTTEXTAREARICHTEXTSELECTMULTISELECTCHECKBOXDATEDATETIMENUMBERCURRENCYFILERELATIONCOMPUTEDHIDDEN widgetConfig
Widget-specific config (options, relation target, etc.)
startsNewRow
Explicit row-break marker. When true, begins a new row regardless of leftover width in the preceding row. When false/undefined, joins the previous row until cumulative width > 12.
isActive
Keine Felder passen zum Filter.
Signature
Schema for electronic signatures on DMS documents (Elektronische Unterschriften)
documentId
Reference to dms_document
signingRequestId
Reference to dms_signing_request (if part of a request)
documentVersion
Version of the document at signing time
documentHash
SHA-256 hash of the PDF at signing time
signatureType
FES = Fortgeschrittene Elektronische Signatur, QES = Qualifizierte
FESQES status
PENDINGSIGNEDREJECTEDEXPIREDREVOKED signerId
Codemeta user ID (null for external signers)
signerName
Display name of the signer
signerEmail
Email of the signer
signerIp
IP address at signing time
certificate
X.509 certificate (PEM) — for FES: self-signed per-tenant CA
signatureValue
PKCS#7 / CMS signature (Base64)
timestampToken
RFC 3161 TSA response (Base64)
signedAt
provider
Signature provider
internald-trustsign-meswisscom providerTransactionId
External provider reference
providerCertificate
Provider-issued certificate
signingOrder
Position in multi-signer sequence (1, 2, 3...)
signingToken
Token for email-based signing (like approval tokens)
signingTokenExpiresAt
reminderSentAt
rejectionReason
Keine Felder passen zum Filter.
Signing-Request
Schema for grouping multiple signatures for one document (Unterschriftenanfrage)
documentId
Reference to dms_document
title
Title of the signing request
status
DRAFTIN_PROGRESSCOMPLETEDCANCELLEDEXPIRED signers
sequential
true = sign in order, false = parallel signing
message
Message to signers
expiresAt
Deadline for all signatures
completedDocumentId
ID of final signed PDF (new document version)
Keine Felder passen zum Filter.
Filing-Rule
rule
Natural language filing rule, e.g. "Rechnungen von Müller GmbH immer nach /Kunden/Müller/Rechnungen"
priority
active
matchCount
Number of times this rule has been matched
lastMatchedAt
Keine Felder passen zum Filter.
Parser
Schema for validating DMS parser entities (Extraktionscode-Templates für Eingangsrechnungen)
name
Parser name
description
Description of what this parser handles
vendorPartyId
Vendor-specific parser (linked to CRM party)
matchCriteria
Criteria for matching this parser to incoming documents
vendorTaxId
Match by USt-IdNr / Steuernummer
vendorIban
Match by IBAN
vendorName
Match by vendor name (fuzzy)
documentPattern
Regex pattern to match against first page text
parserType
How this parser was created
ZUGFERDXRECHNUNGLLM_GENERATEDCUSTOM code
TypeScript source code for extraction
compiledCode
Transpiled JavaScript for sandboxed execution
status
Parser lifecycle status
DRAFTNEEDS_REVIEWAPPROVEDDISABLED approvedBy
approvedAt
successCount
Number of successful extractions
failureCount
Number of failed extractions
lastUsedAt
llmGenerationPrompt
Original prompt used to generate this parser
llmModel
LLM model that generated this parser
Keine Felder passen zum Filter.
Extraction-Feedback
User corrections to extraction results for ML feedback loop
documentId
Reference to the DMS document
field
The field path that was corrected (e.g. incomingInvoice.vendorName)
originalValue
Value before correction
correctedValue
User-provided correct value
extractionMethod
Which extraction method produced the original value
ZUGFERDXRECHNUNGLLM_VISIONOCR_LLMPARSERMANUAL parserId
Which dms_parser was used (if any)
vendorPartyId
Vendor party for vendor-specific learning
documentTypeId
Document type for type-specific learning
applied
Whether this feedback has been incorporated into parser/rules
Keine Felder passen zum Filter.
Retention
Schema for validating DMS retention policies (GoBD-Aufbewahrungsrichtlinien)
name
Policy name
description
documentTypes
Which document types this policy applies to
retentionYears
Retention period in years (6 for Handelsrecht, 10 for Steuerrecht)
action
Action when retention expires
ARCHIVENOTIFYDELETE_REVIEW isGobdRelevant
If true, documents can never be auto-deleted
notifyBeforeDays
Days before expiry to send notification
isActive
Keine Felder passen zum Filter.
Storage-Backend
Registry-Eintrag für einen Byte-Speicher des Filing-Systems — S3, SharePoint, lokales Filesystem, OneDrive, Nextcloud oder SMB-Share.
name
description
kind
s3_primarysharepointlocal_fsonedrive_tenantnextcloudsmb_share default
Nur ein Backend pro Tenant darf default=true sein.
active
rootPathIdentityMode
Stabilitäts-Policy für Wurzelpfade. stable_only erzwingt IDs im Pfad, Display-Namen als Metadatum.
hybridstable_only inboxPolicy
always erzwingt Inbox-Quarantäne für alle Inbound-Items (revisionssichere Umgebungen).
defaultalways misfileMode
Was passiert, wenn ein Inbound-Item nicht am Policy-konformen Pfad liegt? strict=auto-move, informational=flag only, off=ignore.
offinformationalstrict config
Kind-spezifische Konfiguration (discriminated union via `kind`-Feld).
kind
s3_primarysharepointlocal_fsonedrive_tenantnextcloudsmb_share bucket
keyPrefix
siteUrl
siteId
driveId
libraryName
rootFolderId
rootFolderPath
conflictStrategy
codemeta_winssharepoint_winslast_write_winsprompt_user subscriptionId
subscriptionExpiresAt
subscriptionStatus
pendingactiveskippederror subscriptionError
subscriptionLastAttemptAt
deltaToken
bootstrapState
pendingin_progresscompletedfailed bootstrapStartedAt
bootstrapCompletedAt
bootstrapCursor
bootstrapError
rootPath
followSymlinks
permissionModel
inherituid_gid watchMode
inotifypolling pollingIntervalMs
trashRetentionDays
userPrincipalName
baseUrl
username
appPasswordCipherRef
unc
domain
passwordCipherRef
lastHealthCheckAt
lastHealthOk
lastHealthDetails
lastSyncError
lastSyncAt
lastSuccessfulOutboundAt
Keine Felder passen zum Filter.
DATEV-Export
DATEV CSV export batch for Buchungsstapel
status
Export batch status
PENDINGPROCESSINGCOMPLETEFAILED documentIds
Document IDs included in this export
dateFrom
Start of date range filter
dateTo
End of date range filter
beraterNr
DATEV Beraternummer
mandantenNr
DATEV Mandantennummer
wirtschaftsjahrBeginn
Start of fiscal year (Wirtschaftsjahr)
sachkontenlaenge
Length of general ledger account numbers (Sachkontenlänge)
45678 documentCount
Number of documents in export
totalNetAmount
Total net amount of all exported invoices
totalGrossAmount
Total gross amount of all exported invoices
s3Key
S3 key of generated CSV file
fileName
Generated file name (e.g. EXTF_Buchungsstapel_2026-03.csv)
errorMessage
Error message if export failed
exportedAt
When the export completed
Keine Felder passen zum Filter.
Sync-Conflict
Geparkter 3-Wege-Konflikt zwischen DMS- und Backend-Seite. Sperrt das betroffene Entity (syncState=conflict), bis ein User oder eine Auto-Resolution-Policy entscheidet. Trägt sowohl Document- als auch Folder-Konflikte (ADR 0095a).
entityType
Conflict target — document (default) or folder (ADR 0095a).
documentfolder documentId
folderId
folderPath
dmsVersionAtConflict
backendETagAtConflict
lastSyncCheckpoint
resolution
pendingkeep_dmskeep_backendstack_versionsauto_last_write_wins resolvedAt
resolvedBy
resolutionNote
Keine Felder passen zum Filter.
Datei-Upload
Dateien werden über die separate File-API hochgeladen, nicht über den Standard-CRUD-Endpoint. Der Flow:
POST /files/v1/uploads— initiiert einen Upload, gibt eine signierte Pre-Sign-URL zurück.- Sie laden die Datei direkt zur Storage-Schicht (PUT).
POST /files/v1/uploads/<id>/finalize— bestätigt den Upload.POST /api/v1/dms_documents— verknüpft das Dokument mit der Datei.
Versionierung
Versionen liegen als typisierte Liste am Dokument-Datensatz. Eine neue
Version laden Sie über die File-API hoch und ergänzen sie über ein
PATCH /api/v1/dms_documents/<id> an die Versions-Liste.
Sharing-Links
Public-Links für externe Zugriffe (z. B. eine Rechnung an einen Kunden):
POST /api/v1/dms_shares
{
"documentId": "0193…",
"expiresAt": "2026-06-01T00:00:00Z",
"passwordProtected": true,
"downloadAllowed": true
}
Die Antwort enthält einen Slug. Der Empfänger ruft den Link unter
/api/v1/public/sharing/<slug> auf.
Signatur-Anfragen
Innerhalb des DMS lassen sich Signatur-Anfragen direkt am Dokument
auslösen — dms_signing_requests. Für komplexere Workflows mit mehreren
Unterzeichnern, Templates und PAdES-konformer Signatur nutzen Sie das
eSign-Modul.
Verwandt
- Konventionen
- eSign — Dokumente unterschreiben lassen
- Public Endpoints — Share-Link-Resolution