POST that fileAI sends to your callback URL as an upload moves through processing. It tells you which step finished, whether it succeeded, and, once the upload has been split into documents, the fileId of each document, so you can fetch values without polling. This page is the payload reference. To choose between callbacks and polling, and for extract, split, classify and agent job callbacks, see Async jobs.
How it works
Where the callback goes
You setcallbackURL when you request the upload, or rely on your API key’s default callback URL. Multipart uploads do not fall back to the key’s default. The full rules are under Upload options. Files added in the fileAI app or by email use your organization’s file-processing callback URL, if one is set.
Use an HTTPS URL that accepts POST with a JSON body. Any #fragment on the URL is dropped before sending.
What gets sent
Each event is a singlePOST with Content-Type: application/json. There are no other custom headers: no signature, no timestamp, no event id. fileAI logs your response status but does not act on it, and sets no client timeout of its own.
A typical successful upload sends events for these steps, in roughly this order:
processing_started usually arrives twice: first with waiting, then with completed. Not every upload passes through every step, and the order is not guaranteed: key your logic on step and status, not on position.
fileIds first appears on split_classify, and again on processing_finished. An upload that fails sends processing_failed with status error and an errorReason.
Reprocessing a document (for example, replacing its file) can send another round of events for the same
uploadId, including beethoven_ocr or ai_form_filling with status processing and a further processing_finished. Make your handler safe to run more than once.Example
A successful upload that produced two documents ends with:Reference
Payload fields
There is no
timestamp field. Record the time you received the event if you need one; GET /v1/uploads/{uploadId} returns a timestamp per step.
Statuses
Steps
Related
Async jobs
Upload status polling, and callbacks for extract, split, classify and agent jobs.
Uploads
Single, batch and multipart uploads, where you set
callbackURL.Incremental loading
Pull new and changed files on a schedule instead of reacting to events.
API quickstart
Upload a file and read its values end to end.