Invofox tracks the main elements mentioned in our core concepts through a simplified state system:
Each element progresses through clearly defined states, generating webhook events when states change. This provides real-time visibility into your document processing pipeline.
For API endpoints to retrieve current state information, see Information Retrieval.
processing - Import created and files are being processedprocessed - All files have finished processing (either processed or rejected)Transition Logic: An Import moves to processed when every File in the Import has reached either processed or rejected state.
Only the processed state triggers webhook events for Imports.
import.processed - Triggered when an Import reaches processed statepending - File registered from Import or extracted from ZIPprocessing - File ingested and being processed internallyrejected - File rejected before processing (invalid format, configuration issues, corruption)processed - File has generated Documents and all Documents are processedTransition Logic: A File moves to processed when:
processed stateprocessed stateprocessed or rejected stateWebhook events are triggered when Files reach final states: rejected or processed.
When a File reaches rejected status, it includes an error field containing one of the following error codes:
Note: Additional error codes may be added in future versions. The error codes are returned as strings in the
errorfield for programmatic handling.
file.rejected - Triggered when a File reaches rejected statefile.processed - Triggered when a File reaches processed stateDocuments have two state systems:
Processing Status (internal):
processing - Document assigned ID and being processedprocessed - Automatic processing completedPublic States (workflow):
pendingCorrection - Document awaiting manual corrections or reviewapproved - Document approved (manual or automatic)discarded - Document discarded (manual or automatic)processing - ⚠️ Deprecated - Legacy public state, use processing status insteadexported - ⚠️ Deprecated - Legacy exported stateerror - ⚠️ Deprecated - Legacy error stateNote: The document workflow system including
publicStatefield and related events (approved,discarded,updated) is currently being reevaluated and refined. Implementation details may change in future versions.
Transition Logic: A Document moves from processing to processed status when all automatic extraction and processing logic completes. Separately, documents can be assigned public workflow states (pendingCorrection, approved, discarded) for business process management.
Webhook events are triggered for both processing states and public workflow states.
Processing Status Flow:
Public State Flow (separate from processing):
Processing Events:
document.created - Triggered when a Document is created and immediately enters processing status
processing status. At this point the document will be empty. The API will return a 202 Accepted status indicating the document is reserved but not yet available for retrieval. Full document data will be available after document.processed event.document.processed - Triggered when a Document reaches processed status
processedFor webhook configuration and implementation details, see Webhook Implementation.
These special processing scenarios affect how state transitions work for complex file types and configurations.
When a File generates multiple Documents (e.g., multi-page PDF):
processing state while being processed, which results in Document creationprocessed only when all Documents reach processed stateThis splitting can happen automatically using Invofox’s Splitter premium feature, which intelligently detects document boundaries and creates separate Document records.
The File’s metadata will include information about page splits as shown in ImportInfo Structure.
For Document state details and API structure, see Document Structure.
When a ZIP file is uploaded through multiple file upload endpoints:
pending to processing statusprocessed only when all child Files reach processed or rejectedImportant: ZIP files are only supported through multiple file upload endpoints (Direct Upload and URL Upload). ZIP files are processed asynchronously and transition directly to pending state upon acceptance.
For advanced ZIP processing workflows, you can combine Splitter + Classifier premium features to automatically separate and identify different document types within ZIP archives.
The parent File’s file.processed event will include information about all extracted child Files. For compressed file metadata structure, see File API Structure.