> This documentation belongs to Invofox, an AI-powered document processing
> platform. The API extracts structured data (fields) from unstructured
> documents (invoices, contracts, forms, bank statements, and more).
> Key concepts: Account, Environment, Document Type, Field, File, Import,
> and Document. When answering, prefer the exact terminology defined in the
> Glossary and cite the relevant API Reference endpoint when applicable.

# Glossary

> The single source of truth for Invofox terminology — accounts, environments, document types, fields, files, imports, documents, states, webhooks, and the Splitter and Classifier features.

<div className="ivf-gloss-cat" id="account-access">Account &amp; access</div>

### Account
Your organization's top-level workspace within Invofox. Contains one or more Environments.

### Environment
A workspace within your Account used to organize document processing workflows. Each one can be configured as a **TEST** or **PRODUCTION** environment, each with its own configuration. API keys are scoped to an Environment.

### API Key
The credential used to authenticate API requests. Created and managed in Environment Settings, and scoped to a single Environment.

### Roles & permissions
Access is granted per Account and per Environment through three roles, each one building on the one before it:

- **User** — works with documents (review, correct, modify…) but can't change Account or Environment configuration.
- **Developer** — everything a User can do, plus configuration: API keys, webhooks and the rest of the settings.
- **Admin** — full access, including all Account and Environment configuration.

<div className="ivf-gloss-cat" id="ingestion">Ingestion</div>

### Import
The upload operation and the top-level container. Every upload (via API, web, or email) creates one Import that groups one or more Files. You track progress by polling the Import through its `importId`.

### File
A single uploaded file inside an Import. Once processed, each File produces one or more **Documents** — one for a simple PDF, or several when a multi-document PDF is split or a ZIP is expanded.

### Document
The extracted result produced from a File: the structured data (Fields). A single File can yield several Documents. Identified by a `documentId` and fetched with `GET /documents/{documentId}`.

<div className="ivf-bdemo"><div className="ivf-bdemo-cap">One <strong>Import</strong> groups one or more <strong>Files</strong>; each File produces one or more <strong>Documents</strong>.</div><div className="ivf-ing"><div className="ivf-ing-row"><div className="ivf-ing-cell"><div className="ivf-ing-import">Import</div><div className="ivf-ing-lbl">one upload</div></div><div className="ivf-ing-arrow">→</div><div className="ivf-ing-group"><div className="ivf-ing-row"><div className="ivf-ing-cell"><div className="ivf-ing-card"></div><div className="ivf-ing-lbl">File · invoices-march.pdf</div></div><div className="ivf-ing-arrow">→</div><div className="ivf-ing-docs"><div className="ivf-ing-cell"><div className="ivf-ing-card ivf-green"></div><div className="ivf-ing-lbl ivf-green">Document</div></div><div className="ivf-ing-cell"><div className="ivf-ing-card ivf-green"></div><div className="ivf-ing-lbl ivf-green">Document</div></div><div className="ivf-ing-cell"><div className="ivf-ing-card ivf-green"></div><div className="ivf-ing-lbl ivf-green">Document</div></div></div></div><div className="ivf-ing-row"><div className="ivf-ing-cell"><div className="ivf-ing-card"></div><div className="ivf-ing-lbl">File · invoice.pdf</div></div><div className="ivf-ing-arrow">→</div><div className="ivf-ing-cell"><div className="ivf-ing-card ivf-green"></div><div className="ivf-ing-lbl ivf-green">Document</div></div></div></div></div><div className="ivf-ing-note">Two Files in one Import: <strong>invoices-march.pdf</strong> is a multi-document PDF split into 3 Documents; <strong>invoice.pdf</strong> yields 1.</div><div className="ivf-ing-divider"></div><div className="ivf-ing-row"><div className="ivf-ing-cell"><div className="ivf-ing-import">Import</div><div className="ivf-ing-lbl">one upload</div></div><div className="ivf-ing-arrow">→</div><div className="ivf-ing-cell"><div className="ivf-ing-card"></div><div className="ivf-ing-lbl">File · invoice.pdf</div></div><div className="ivf-ing-arrow">→</div><div className="ivf-ing-cell"><div className="ivf-ing-card ivf-green"></div><div className="ivf-ing-lbl ivf-green">Document</div></div></div><div className="ivf-ing-note">The simplest case — one PDF: <strong>1 Import → 1 File → 1 Document</strong>.</div></div></div>

### Compressed File (ZIP)
An archive file (`application/zip`) containing multiple files. It is accepted by the upload endpoints, extracted asynchronously, and each extracted child File then follows its own lifecycle. The parent File is marked `compressed: true`.

### clientData
An optional metadata object you attach when uploading. Invofox never processes it — it is returned verbatim in API responses and webhook events. It's particularly useful for:

- **Internal reference tracking** — store your own IDs, reference numbers, or metadata.
- **Webhook integration** — the data is returned in webhook notifications, for easy correlation with your internal systems.
- **Information retrieval** — access your custom data when retrieving extracted document information through the API.

<div className="ivf-gloss-cat" id="extraction">Extraction</div>

### Document Type
The configuration that defines how a specific kind of document is processed and which Fields are extracted from it. Can be assigned manually at upload or detected automatically by the Classifier.

### Field
A single data point extracted from a document — for example an invoice number, a total amount, or a date. Which Fields are extracted is determined by the Document Type.

<div className="ivf-gloss-cat" id="processing-states">Processing &amp; states</div>

### Processing state
The internal lifecycle status of an Import, File, or Document. Common values include `pending`, `processing`, `processed`, and `rejected` (the exact set depends on the entity). State changes are what trigger webhook events.

### Public state
A separate, business-workflow status assigned to a Document, independent of the internal processing state. It is one of:

- `pendingCorrection` — awaiting human review.
- `approved` — reviewed and accepted.
- `discarded` — rejected or not valid.

### Corrections
Sending corrected Field values (or the right Document Type) back to Invofox via `PUT /documents/{id}` after a Document has been processed. Each correction feeds model training, so extraction accuracy improves over time. See the [Feedback loop](/documentation/feedback-loop) page.

### Error code
The value returned in a File's `error` field when it is rejected (for example, `ERR_UNSUPPORTED_FILE_FORMAT`). Returned as a string for programmatic handling.

<div className="ivf-gloss-cat" id="webhooks">Webhooks</div>

### Webhook
An HTTP callback that Invofox sends to your endpoint when an event occurs, so you receive updates in real time instead of polling.

### Webhook event
The payload Invofox delivers to your endpoint. It always includes `type`, `id`, `timestamp`, `data`, and `version`. The `type` matches a state transition (e.g. `document.processed`). See the [Webhooks Reference →](https://developers.invofox.com/webhooks-reference/webhooks-reference/document-processing/receive-document-created) for the full event list and payload schemas.

### HMAC signature
An optional signature Invofox adds to webhook requests so you can verify they genuinely came from Invofox. You configure a shared secret and validate the signature on your endpoint.

### Idempotency
Processing each webhook event exactly once, using its unique `id`. Because delivery may be retried, your handler should ignore an event id it has already processed.

### Polling
Repeatedly calling the API to check whether something is ready, instead of letting a Webhook notify you. Discouraged in production — it creates many "empty" requests and adds latency; if it's unavoidable, space the calls out with exponential backoff. Webhooks are the recommended alternative.

<div className="ivf-gloss-cat" id="advanced-features">Advanced features</div>

### Splitter
A feature that automatically separates a multi-document File into individual Documents, detecting document boundaries with AI. Removes the need to split batched files manually.

### Classifier
A feature that automatically identifies a document's type, assigning the right Document Type so you don't have to set it at upload. Combined with the Splitter, it enables fully automated processing of mixed-document batches.