Reference
Changelog
Release notes for the public API contract. Check the current schema at /openapi.json when updating your integration.
- 2026-10-27v1.5.0
Original files, client metadata and export marks
New GET /api/v1/documents/{document_id}/file returns the original upload or email attachment with its type and file name; documents carry file_sha256, its SHA-256. POST /api/v1/documents accepts metadata, a flat object of string values up to 1024 bytes, returned unchanged on jobs, documents and callbacks. Documents now include job_id, source (channel, and for email the message id, From, To, subject and receipt time), direction (expense, sales or unknown, by the same rule as the list filters), external_ref, exported and exported_at, in GET responses, list items and callbacks. New PATCH /api/v1/documents/{document_id} sets external_ref and exported. GET /api/v1/documents accepts exported, created_after and include=full. Callbacks accept events; add document.failed to be told when a file fails for good. Callbacks that do not change events keep receiving document.processed only. New error code: 404 file_not_available.
- 2026-09-27v1.4.0
Job cancellation and earlier upload errors
New DELETE /api/v1/jobs/{job_id} cancels a job that has not produced a document (queued, paused, failed, or still processing); the job then reports failed with the new job_cancelled code, and a job that already produced a document returns 409 job_not_cancellable. POST /api/v1/documents now refuses unsupported file types with 415 unsupported_media_type, and refuses API uploads with 402 api_billing_required when paid API processing is off and the free allowance is used up, instead of accepting jobs that would fail. regions now defaults to true, matching what business uploads already returned; send regions=false to leave them out of that document's responses and callbacks. raw_text and regions accept true/false, 1/0 or yes/no. A job's error is now null unless the job is failed or paused. Two preparation failures now report 502 processing_failed instead of 500 internal_error.
- 2026-09-27v1.3.1
Documentation corrections
Documentation now matches the API; no request or response changed. File type, page count and billing problems are reported on the job, not by POST /api/v1/documents, and OpenAPI lists only the HTTP errors each operation can return. Jobs can be paused for identity verification or missing invoice details, and error can be set on paused or retrying jobs. Pending jobs cannot be cancelled by deleting their document (correcting 1.2.0): a job exposes document_id only after it succeeds. Each pages entry is its own job. Uploads are limited to 2 in progress per workspace and 100 MiB per request body. Idempotency-Key is optional but recommended. Business documents include regions whenever locations are available. /usage counts every channel. Callbacks document X-Digitizer-Event-Id, never fire for paused or failed jobs, and the event is published in the OpenAPI webhooks section. The OpenAPI version now tracks this changelog.
- 2026-09-24v1.3.0
Simplified document and line-item schema
Removed account_number, payments_credits, consumption and the payment.auth_code, payment.reference and payment.receipt_number fields from the response schema and /openapi.json. The line-item ean field was removed; a printed barcode/EAN now returns in code. Integrations that read these fields should stop doing so. Missing line-item net_unit_price, subtotal and vat_amount are now derived arithmetically from the line amount and rate.
- 2026-09-24v1.2.0
Durable document processing queue
POST /api/v1/documents now returns HTTP 202 with a queued submission: a durable job per uploaded file (1-100 files), listed in jobs and job_ids. Poll GET /api/v1/jobs/{job_id} (no faster than once per second), then fetch GET /api/v1/documents/{document_id} when the job succeeds. Accepted work is persisted before acceptance and survives disconnects and server restarts. The endpoint accepts an Idempotency-Key: reuse the same key and input to receive the existing jobs; different input with the same key returns 409. Queue overload returns 429 with Retry-After. A pending job is cancelled by deleting its document. The separate POST /api/v1/documents/batch endpoint was removed; use POST /api/v1/documents for both single and batch uploads.
- 2026-09-22v1.1.0
Consistent accounting fields and public response contract
Net and gross documents share one line schema. amount now always aliases total; null means unavailable. Public results use field_status for review outcomes. Processing diagnostics are no longer included in API or preview responses. Errors use stable customer-facing codes. Clients consuming older diagnostic fields should migrate to the documented schema.
/openapi.json in CI to detect new endpoints.